76 lines
1.3 MiB
76 lines
1.3 MiB
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/conclusionApi-DdQ50ahC.js","assets/radix-vendor-DIkYAdWy.js","assets/charts-vendor-Bme4E5cb.js","assets/utils-vendor-DHm03ykU.js","assets/ui-vendor-CdaLA-IN.js","assets/socket-vendor-TjCxX7sJ.js","assets/redux-vendor-tbZCm13o.js","assets/router-vendor-AvM4PHvP.js","assets/requestNavigation-BHUhqpDm.js"])))=>i.map(i=>d[i]);
|
||
var Yp=Object.defineProperty;var Zp=(t,s,a)=>s in t?Yp(t,s,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[s]=a;var Hi=(t,s,a)=>Zp(t,typeof s!="symbol"?s+"":s,a);import{j as e,S as ou,R as cu,I as du,F as mu,a as Xp,T as Qp,P as Jp,C as qp,b as eg,O as uu,c as hu,d as tg,e as sg,f as ag,D as rg,g as ng,A as ig,h as lg,i as og,k as cg,l as dg,m as mg,n as ug,V as hg,o as xg,p as pg,q as gg,r as fg,s as yg,t as vg,u as bg,v as jg,w as Ng,x as wg,y as Cg,z as Ag,B as Sg,E as Tg,G as kg,H as Rg,J as Dg,K as Pg,L as Ig,M as Eg,N as Mg,Q as xu,U as pu,W as Fg,X as gu,Y as fu,Z as _g,_ as Lg,$ as Og,a0 as $g,a1 as Ug,a2 as Bg,a3 as Vg,a4 as zg,a5 as Hg,a6 as Wg,a7 as Gg,a8 as Kg,a9 as Yg,aa as Zg,ab as Xg}from"./radix-vendor-DIkYAdWy.js";import{a as Qg,r as x,c as yu,d as Sr,B as Pl,C as ai,X as ri,Y as ni,T as Tr,L as ii,e as pa,P as vu,f as bu,g as ju,h as Jg,i as dd,j as yi,k as vi,b as qg}from"./charts-vendor-Bme4E5cb.js";import{a as mo,f as Nu,b as De,d as ef,c as tf,e as sf,s as $s,g as uo,h as md,i as af,j as ya,k as vn,l as ho,m as wu,n as Rs,o as Fs,p as Wi,q as Sa,r as rf,t as Il,u as nf,v as El,w as lf,x as of,y as cf,z as df,A as Gi,B as ud,C as mf,D as Cu,E as Au,F as xo,G as po,H as uf,I as hf,J as Su}from"./utils-vendor-DHm03ykU.js";import{L as xf,S as ss,C as Ge,a as Os,b as Je,X as ht,H as pf,c as Tu,U as kt,F as _e,d as Ce,e as Mr,P as Us,f as gf,g as ff,B as js,h as $a,i as Ki,j as go,k as ku,l as Fr,m as yf,n as Ha,o as ut,R as Bt,I as kn,T as _t,p as Ye,q as ha,r as vf,A as ls,s as os,M as Hs,t as bi,u as Gt,v as Ml,D as wt,Z as ji,w as Mt,x as bf,y as jf,z as Nf,E as wf,G as Cf,J as Af,K as Sf,N as Tf,O as kf,Q as Rf,V as Df,W as Pf,Y as Ta,_ as Ni,$ as Ua,a0 as li,a1 as hd,a2 as $n,a3 as oi,a4 as Ru,a5 as gt,a6 as If,a7 as q,a8 as Bs,a9 as zs,aa as wi,ab as xs,ac as Du,ad as jt,ae as Ef,af as Mf,ag as Ff,ah as Ci,ai as Pu,aj as _f,ak as Lf,al as Ps,am as ka,an as Ai,ao as Si,ap as vs,aq as Of,ar as $f,as as Iu,at as Uf,au as Yn,av as bn,aw as fo,ax as Ti,ay as Eu,az as Mu,aA as Fu,aB as yo,aC as ki,aD as Ri,aE as Bf,aF as Fl,aG as vo,aH as _u,aI as ci,aJ as Vf,aK as zf,aL as Hf,aM as Di,aN as Pi,aO as bo,aP as Wf,aQ as xd,aR as Wa,aS as Gf,aT as jo,aU as Kf,aV as br,aW as Lu,aX as pd,aY as Yf,aZ as Zf,a_ as Xf,a$ as Ou,b0 as Qf,b1 as Jf,b2 as qf,b3 as e0}from"./ui-vendor-CdaLA-IN.js";import{l as t0}from"./socket-vendor-TjCxX7sJ.js";import{c as _r,a as s0}from"./redux-vendor-tbZCm13o.js";import{u as Pa,a as gr,b as $u,B as a0,R as r0,c as qt}from"./router-vendor-AvM4PHvP.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))r(n);new MutationObserver(n=>{for(const i of n)if(i.type==="childList")for(const l of i.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function a(n){const i={};return n.integrity&&(i.integrity=n.integrity),n.referrerPolicy&&(i.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?i.credentials="include":n.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(n){if(n.ep)return;n.ep=!0;const i=a(n);fetch(n.href,i)}})();var _l={},gd=Qg;_l.createRoot=gd.createRoot,_l.hydrateRoot=gd.hydrateRoot;var Uu={exports:{}},Bu={};/**
|
||
* @license React
|
||
* use-sync-external-store-with-selector.production.js
|
||
*
|
||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||
*
|
||
* This source code is licensed under the MIT license found in the
|
||
* LICENSE file in the root directory of this source tree.
|
||
*/var Rn=x;function n0(t,s){return t===s&&(t!==0||1/t===1/s)||t!==t&&s!==s}var i0=typeof Object.is=="function"?Object.is:n0,l0=Rn.useSyncExternalStore,o0=Rn.useRef,c0=Rn.useEffect,d0=Rn.useMemo,m0=Rn.useDebugValue;Bu.useSyncExternalStoreWithSelector=function(t,s,a,r,n){var i=o0(null);if(i.current===null){var l={hasValue:!1,value:null};i.current=l}else l=i.current;i=d0(function(){function c(g){if(!d){if(d=!0,m=g,g=r(g),n!==void 0&&l.hasValue){var p=l.value;if(n(p,g))return u=p}return u=g}if(p=u,i0(m,g))return p;var y=r(g);return n!==void 0&&n(p,y)?(m=g,p):(m=g,u=y)}var d=!1,m,u,h=a===void 0?null:a;return[function(){return c(s())},h===null?void 0:function(){return c(h())}]},[s,a,r,n]);var o=l0(t,i[0],i[1]);return c0(function(){l.hasValue=!0,l.value=o},[o]),m0(o),o};Uu.exports=Bu;var u0=Uu.exports;function h0(t){t()}function x0(){let t=null,s=null;return{clear(){t=null,s=null},notify(){h0(()=>{let a=t;for(;a;)a.callback(),a=a.next})},get(){const a=[];let r=t;for(;r;)a.push(r),r=r.next;return a},subscribe(a){let r=!0;const n=s={callback:a,next:null,prev:s};return n.prev?n.prev.next=n:t=n,function(){!r||t===null||(r=!1,n.next?n.next.prev=n.prev:s=n.prev,n.prev?n.prev.next=n.next:t=n.next)}}}}var fd={notify(){},get:()=>[]};function p0(t,s){let a,r=fd,n=0,i=!1;function l(y){m();const f=r.subscribe(y);let b=!1;return()=>{b||(b=!0,f(),u())}}function o(){r.notify()}function c(){p.onStateChange&&p.onStateChange()}function d(){return i}function m(){n++,a||(a=t.subscribe(c),r=x0())}function u(){n--,a&&n===0&&(a(),a=void 0,r.clear(),r=fd)}function h(){i||(i=!0,m())}function g(){i&&(i=!1,u())}const p={addNestedSub:l,notifyNestedSubs:o,handleChangeWrapper:c,isSubscribed:d,trySubscribe:h,tryUnsubscribe:g,getListeners:()=>r};return p}var g0=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",f0=g0(),y0=()=>typeof navigator<"u"&&navigator.product==="ReactNative",v0=y0(),b0=()=>f0||v0?x.useLayoutEffect:x.useEffect,j0=b0(),Yi=Symbol.for("react-redux-context"),Zi=typeof globalThis<"u"?globalThis:{};function N0(){if(!x.createContext)return{};const t=Zi[Yi]??(Zi[Yi]=new Map);let s=t.get(x.createContext);return s||(s=x.createContext(null),t.set(x.createContext,s)),s}var Ba=N0();function w0(t){const{children:s,context:a,serverState:r,store:n}=t,i=x.useMemo(()=>{const c=p0(n);return{store:n,subscription:c,getServerState:r?()=>r:void 0}},[n,r]),l=x.useMemo(()=>n.getState(),[n]);j0(()=>{const{subscription:c}=i;return c.onStateChange=c.notifyNestedSubs,c.trySubscribe(),l!==n.getState()&&c.notifyNestedSubs(),()=>{c.tryUnsubscribe(),c.onStateChange=void 0}},[i,l]);const o=a||Ba;return x.createElement(o.Provider,{value:i},s)}var C0=w0;function No(t=Ba){return function(){return x.useContext(t)}}var Vu=No();function zu(t=Ba){const s=t===Ba?Vu:No(t),a=()=>{const{store:r}=s();return r};return Object.assign(a,{withTypes:()=>a}),a}var A0=zu();function S0(t=Ba){const s=t===Ba?A0:zu(t),a=()=>s().dispatch;return Object.assign(a,{withTypes:()=>a}),a}var T0=S0(),k0=(t,s)=>t===s;function R0(t=Ba){const s=t===Ba?Vu:No(t),a=(r,n={})=>{const{equalityFn:i=k0}=typeof n=="function"?{equalityFn:n}:n,l=s(),{store:o,subscription:c,getServerState:d}=l;x.useRef(!0);const m=x.useCallback({[r.name](h){return r(h)}}[r.name],[r]),u=u0.useSyncExternalStoreWithSelector(c.addNestedSub,o.getState,d||o.getState,m,i);return x.useDebugValue(u),u};return Object.assign(a,{withTypes:()=>a}),a}var D0=R0(),Ll=function(t,s){return Ll=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,r){a.__proto__=r}||function(a,r){for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(a[n]=r[n])},Ll(t,s)};function P0(t,s){if(typeof s!="function"&&s!==null)throw new TypeError("Class extends value "+String(s)+" is not a constructor or null");Ll(t,s);function a(){this.constructor=t}t.prototype=s===null?Object.create(s):(a.prototype=s.prototype,new a)}var di=function(){return di=Object.assign||function(s){for(var a,r=1,n=arguments.length;r<n;r++){a=arguments[r];for(var i in a)Object.prototype.hasOwnProperty.call(a,i)&&(s[i]=a[i])}return s},di.apply(this,arguments)};var ir=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function wo(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Co(t,s){return t(s={exports:{}},s.exports),s.exports}var ar=Co(function(t,s){Object.defineProperty(s,"__esModule",{value:!0});var a=function(){function r(){var n=this;this.locked=new Map,this.addToLocked=function(i,l){var o=n.locked.get(i);o===void 0?l===void 0?n.locked.set(i,[]):n.locked.set(i,[l]):l!==void 0&&(o.unshift(l),n.locked.set(i,o))},this.isLocked=function(i){return n.locked.has(i)},this.lock=function(i){return new Promise(function(l,o){n.isLocked(i)?n.addToLocked(i,l):(n.addToLocked(i),l())})},this.unlock=function(i){var l=n.locked.get(i);if(l!==void 0&&l.length!==0){var o=l.pop();n.locked.set(i,l),o!==void 0&&setTimeout(o,0)}else n.locked.delete(i)}}return r.getInstance=function(){return r.instance===void 0&&(r.instance=new r),r.instance},r}();s.default=function(){return a.getInstance()}});wo(ar);var I0=wo(Co(function(t,s){var a=ir&&ir.__awaiter||function(m,u,h,g){return new(h||(h=Promise))(function(p,y){function f(w){try{v(g.next(w))}catch(A){y(A)}}function b(w){try{v(g.throw(w))}catch(A){y(A)}}function v(w){w.done?p(w.value):new h(function(A){A(w.value)}).then(f,b)}v((g=g.apply(m,u||[])).next())})},r=ir&&ir.__generator||function(m,u){var h,g,p,y,f={label:0,sent:function(){if(1&p[0])throw p[1];return p[1]},trys:[],ops:[]};return y={next:b(0),throw:b(1),return:b(2)},typeof Symbol=="function"&&(y[Symbol.iterator]=function(){return this}),y;function b(v){return function(w){return function(A){if(h)throw new TypeError("Generator is already executing.");for(;f;)try{if(h=1,g&&(p=2&A[0]?g.return:A[0]?g.throw||((p=g.return)&&p.call(g),0):g.next)&&!(p=p.call(g,A[1])).done)return p;switch(g=0,p&&(A=[2&A[0],p.value]),A[0]){case 0:case 1:p=A;break;case 4:return f.label++,{value:A[1],done:!1};case 5:f.label++,g=A[1],A=[0];continue;case 7:A=f.ops.pop(),f.trys.pop();continue;default:if(p=f.trys,!((p=p.length>0&&p[p.length-1])||A[0]!==6&&A[0]!==2)){f=0;continue}if(A[0]===3&&(!p||A[1]>p[0]&&A[1]<p[3])){f.label=A[1];break}if(A[0]===6&&f.label<p[1]){f.label=p[1],p=A;break}if(p&&f.label<p[2]){f.label=p[2],f.ops.push(A);break}p[2]&&f.ops.pop(),f.trys.pop();continue}A=u.call(m,f)}catch(S){A=[6,S],g=0}finally{h=p=0}if(5&A[0])throw A[1];return{value:A[0]?A[1]:void 0,done:!0}}([v,w])}}},n=ir;Object.defineProperty(s,"__esModule",{value:!0});var i="browser-tabs-lock-key",l={key:function(m){return a(n,void 0,void 0,function(){return r(this,function(u){throw new Error("Unsupported")})})},getItem:function(m){return a(n,void 0,void 0,function(){return r(this,function(u){throw new Error("Unsupported")})})},clear:function(){return a(n,void 0,void 0,function(){return r(this,function(m){return[2,window.localStorage.clear()]})})},removeItem:function(m){return a(n,void 0,void 0,function(){return r(this,function(u){throw new Error("Unsupported")})})},setItem:function(m,u){return a(n,void 0,void 0,function(){return r(this,function(h){throw new Error("Unsupported")})})},keySync:function(m){return window.localStorage.key(m)},getItemSync:function(m){return window.localStorage.getItem(m)},clearSync:function(){return window.localStorage.clear()},removeItemSync:function(m){return window.localStorage.removeItem(m)},setItemSync:function(m,u){return window.localStorage.setItem(m,u)}};function o(m){return new Promise(function(u){return setTimeout(u,m)})}function c(m){for(var u="0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz",h="",g=0;g<m;g++)h+=u[Math.floor(Math.random()*u.length)];return h}var d=function(){function m(u){this.acquiredIatSet=new Set,this.storageHandler=void 0,this.id=Date.now().toString()+c(15),this.acquireLock=this.acquireLock.bind(this),this.releaseLock=this.releaseLock.bind(this),this.releaseLock__private__=this.releaseLock__private__.bind(this),this.waitForSomethingToChange=this.waitForSomethingToChange.bind(this),this.refreshLockWhileAcquired=this.refreshLockWhileAcquired.bind(this),this.storageHandler=u,m.waiters===void 0&&(m.waiters=[])}return m.prototype.acquireLock=function(u,h){return h===void 0&&(h=5e3),a(this,void 0,void 0,function(){var g,p,y,f,b,v,w;return r(this,function(A){switch(A.label){case 0:g=Date.now()+c(4),p=Date.now()+h,y=i+"-"+u,f=this.storageHandler===void 0?l:this.storageHandler,A.label=1;case 1:return Date.now()<p?[4,o(30)]:[3,8];case 2:return A.sent(),f.getItemSync(y)!==null?[3,5]:(b=this.id+"-"+u+"-"+g,[4,o(Math.floor(25*Math.random()))]);case 3:return A.sent(),f.setItemSync(y,JSON.stringify({id:this.id,iat:g,timeoutKey:b,timeAcquired:Date.now(),timeRefreshed:Date.now()})),[4,o(30)];case 4:return A.sent(),(v=f.getItemSync(y))!==null&&(w=JSON.parse(v)).id===this.id&&w.iat===g?(this.acquiredIatSet.add(g),this.refreshLockWhileAcquired(y,g),[2,!0]):[3,7];case 5:return m.lockCorrector(this.storageHandler===void 0?l:this.storageHandler),[4,this.waitForSomethingToChange(p)];case 6:A.sent(),A.label=7;case 7:return g=Date.now()+c(4),[3,1];case 8:return[2,!1]}})})},m.prototype.refreshLockWhileAcquired=function(u,h){return a(this,void 0,void 0,function(){var g=this;return r(this,function(p){return setTimeout(function(){return a(g,void 0,void 0,function(){var y,f,b;return r(this,function(v){switch(v.label){case 0:return[4,ar.default().lock(h)];case 1:return v.sent(),this.acquiredIatSet.has(h)?(y=this.storageHandler===void 0?l:this.storageHandler,(f=y.getItemSync(u))===null?(ar.default().unlock(h),[2]):((b=JSON.parse(f)).timeRefreshed=Date.now(),y.setItemSync(u,JSON.stringify(b)),ar.default().unlock(h),this.refreshLockWhileAcquired(u,h),[2])):(ar.default().unlock(h),[2])}})})},1e3),[2]})})},m.prototype.waitForSomethingToChange=function(u){return a(this,void 0,void 0,function(){return r(this,function(h){switch(h.label){case 0:return[4,new Promise(function(g){var p=!1,y=Date.now(),f=!1;function b(){if(f||(window.removeEventListener("storage",b),m.removeFromWaiting(b),clearTimeout(v),f=!0),!p){p=!0;var w=50-(Date.now()-y);w>0?setTimeout(g,w):g(null)}}window.addEventListener("storage",b),m.addToWaiting(b);var v=setTimeout(b,Math.max(0,u-Date.now()))})];case 1:return h.sent(),[2]}})})},m.addToWaiting=function(u){this.removeFromWaiting(u),m.waiters!==void 0&&m.waiters.push(u)},m.removeFromWaiting=function(u){m.waiters!==void 0&&(m.waiters=m.waiters.filter(function(h){return h!==u}))},m.notifyWaiters=function(){m.waiters!==void 0&&m.waiters.slice().forEach(function(u){return u()})},m.prototype.releaseLock=function(u){return a(this,void 0,void 0,function(){return r(this,function(h){switch(h.label){case 0:return[4,this.releaseLock__private__(u)];case 1:return[2,h.sent()]}})})},m.prototype.releaseLock__private__=function(u){return a(this,void 0,void 0,function(){var h,g,p,y;return r(this,function(f){switch(f.label){case 0:return h=this.storageHandler===void 0?l:this.storageHandler,g=i+"-"+u,(p=h.getItemSync(g))===null?[2]:(y=JSON.parse(p)).id!==this.id?[3,2]:[4,ar.default().lock(y.iat)];case 1:f.sent(),this.acquiredIatSet.delete(y.iat),h.removeItemSync(g),ar.default().unlock(y.iat),m.notifyWaiters(),f.label=2;case 2:return[2]}})})},m.lockCorrector=function(u){for(var h=Date.now()-5e3,g=u,p=[],y=0;;){var f=g.keySync(y);if(f===null)break;p.push(f),y++}for(var b=!1,v=0;v<p.length;v++){var w=p[v];if(w.includes(i)){var A=g.getItemSync(w);if(A!==null){var S=JSON.parse(A);(S.timeRefreshed===void 0&&S.timeAcquired<h||S.timeRefreshed!==void 0&&S.timeRefreshed<h)&&(g.removeItemSync(w),b=!0)}}}b&&m.notifyWaiters()},m.waiters=void 0,m}();s.default=d}));new TextEncoder;new TextDecoder;var or=Co(function(t,s){var a=ir&&ir.__assign||function(){return a=Object.assign||function(c){for(var d,m=1,u=arguments.length;m<u;m++)for(var h in d=arguments[m])Object.prototype.hasOwnProperty.call(d,h)&&(c[h]=d[h]);return c},a.apply(this,arguments)};function r(c,d){if(!d)return"";var m="; "+c;return d===!0?m:m+"="+d}function n(c,d,m){return encodeURIComponent(c).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/\(/g,"%28").replace(/\)/g,"%29")+"="+encodeURIComponent(d).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent)+function(u){if(typeof u.expires=="number"){var h=new Date;h.setMilliseconds(h.getMilliseconds()+864e5*u.expires),u.expires=h}return r("Expires",u.expires?u.expires.toUTCString():"")+r("Domain",u.domain)+r("Path",u.path)+r("Secure",u.secure)+r("SameSite",u.sameSite)}(m)}function i(c){for(var d={},m=c?c.split("; "):[],u=/(%[\dA-F]{2})+/gi,h=0;h<m.length;h++){var g=m[h].split("="),p=g.slice(1).join("=");p.charAt(0)==='"'&&(p=p.slice(1,-1));try{d[g[0].replace(u,decodeURIComponent)]=p.replace(u,decodeURIComponent)}catch{}}return d}function l(){return i(document.cookie)}function o(c,d,m){document.cookie=n(c,d,a({path:"/"},m))}s.__esModule=!0,s.encode=n,s.parse=i,s.getAll=l,s.get=function(c){return l()[c]},s.set=o,s.remove=function(c,d){o(c,"",a(a({},d),{expires:-1}))}});wo(or),or.encode,or.parse,or.getAll;or.get;or.set;or.remove;var yd;(function(t){t.Code="code",t.ConnectCode="connect_code"})(yd||(yd={}));var vd;(function(t){t.Bearer="Bearer",t.DPoP="DPoP"})(vd||(vd={}));new I0;var E0={isAuthenticated:!1,isLoading:!0,error:void 0,user:void 0},Ss=function(){throw new Error("You forgot to wrap your component in <Auth0Provider>.")},M0=di(di({},E0),{buildAuthorizeUrl:Ss,buildLogoutUrl:Ss,getAccessTokenSilently:Ss,getAccessTokenWithPopup:Ss,getIdTokenClaims:Ss,loginWithRedirect:Ss,loginWithPopup:Ss,connectAccountWithRedirect:Ss,logout:Ss,handleRedirectCallback:Ss,getDpopNonce:Ss,setDpopNonce:Ss,generateDpopProof:Ss,createFetcher:Ss}),F0=x.createContext(M0);(function(t){P0(s,t);function s(a,r){var n=t.call(this,r??a)||this;return n.error=a,n.error_description=r,Object.setPrototypeOf(n,s.prototype),n}return s})(Error);var _0=function(t){return t===void 0&&(t=F0),x.useContext(t)};const Xi="idToken",Qi="userData",L0=()=>!0;class st{static setAccessToken(s){}static getAccessToken(){return null}static setRefreshToken(s){}static getRefreshToken(){return null}static setIdToken(s){sessionStorage.setItem(Xi,s)}static getIdToken(){return sessionStorage.getItem(Xi)}static setUserData(s){localStorage.setItem(Qi,JSON.stringify(s))}static getUserData(){const s=localStorage.getItem(Qi);if(!s)return null;try{return JSON.parse(s)}catch{return null}}static clearAll(){try{sessionStorage.setItem("__logout_in_progress__","true"),sessionStorage.setItem("__force_logout__","true")}catch(s){console.warn("Could not set logout flags:",s)}try{localStorage.removeItem(Qi),sessionStorage.removeItem(Xi)}catch(s){console.warn("Error clearing user data:",s)}{try{sessionStorage.setItem("__logout_in_progress__","true"),sessionStorage.setItem("__force_logout__","true")}catch{}return}}static hasAccessToken(){return!!this.getUserData()}static hasRefreshToken(){return!!this.getUserData()}static isLocalhost(){return window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"||window.location.hostname===""}static isProduction(){return L0()}}function Ji(t,s=5){if(!t)return!0;try{const a=t.split(".");if(a.length!==3||!a[1])return!0;const n=JSON.parse(atob(a[1])).exp*1e3,i=Date.now(),l=s*60*1e3;return n-i<l}catch{return!0}}const Hu="https://reflow-uat.royalenfield.com/api/v1",be=mo.create({baseURL:Hu,headers:{"Content-Type":"application/json"},withCredentials:!0});be.interceptors.request.use(t=>t,t=>Promise.reject(t));be.interceptors.response.use(t=>t,async t=>{var a,r;const s=t.config;if(t.code==="ERR_NETWORK"||t.code==="ECONNREFUSED"||(a=t.message)!=null&&a.includes("ERR_CONNECTION_REFUSED"),((r=t.response)==null?void 0:r.status)===401&&!s._retry){s._retry=!0;const n=!0;try{const i=st.getRefreshToken(),l=await mo.post(`${Hu}/auth/refresh`,n?{}:{refreshToken:i},{withCredentials:!0}),c=(l.data.data||l.data).accessToken;return be(s)}catch(i){return st.clearAll(),window.location.href="/",Promise.reject(i)}}return Promise.reject(t)});async function O0(t,s){var a,r;try{const n=await be.post("/auth/token-exchange",{code:t,redirectUri:s},{responseType:"json",headers:{"Content-Type":"application/json",Accept:"application/json"}});if(Array.isArray(n.data))throw console.error("❌ Response is an array (buffer issue):",{arrayLength:n.data.length,firstFew:n.data.slice(0,10),rawResponse:n}),new Error("Invalid response format: received array instead of JSON. Check Content-Type header.");const i=n.data,l=i.data||i;return l.user&&st.setUserData(l.user),l.idToken&&st.setIdToken(l.idToken),l.accessToken&&l.refreshToken&&(st.setAccessToken(l.accessToken),st.setRefreshToken(l.refreshToken)),l}catch(n){throw console.error("❌ Token exchange failed:",{message:n.message,response:(a=n.response)==null?void 0:a.data,status:(r=n.response)==null?void 0:r.status,code:t?`${t.substring(0,10)}...`:"MISSING",redirectUri:s}),n}}async function $0(){var r;const t={},a=(await be.post("/auth/refresh",t)).data;if((r=a.data)!=null&&r.accessToken||a.accessToken,a.success!==!1)return"cookie-based-auth";throw new Error("Failed to refresh token")}async function cn(){const s=(await be.get("/auth/me")).data;return s.data||s}async function U0(){var t,s;try{await be.post("/auth/logout",{},{withCredentials:!0})}catch(a){console.error("📡 Logout API error:",a),console.error("📡 Error details:",{message:a.message,status:(t=a.response)==null?void 0:t.status,data:(s=a.response)==null?void 0:s.data})}}const Ol="https://ssodev.rebridge.co.in/realms/RE",Wu="REFLOW",Ao=`${window.location.origin}/login/callback`;function B0(){const t=new URLSearchParams(window.location.search),s=t.has("logout")||t.has("tanflow_logged_out");s&&(sessionStorage.removeItem("tanflow_logged_out"),sessionStorage.removeItem("__logout_in_progress__"),sessionStorage.removeItem("__force_logout__"),console.log("🚪 Cleared logout flags before initiating Tanflow login"));const a=Math.random().toString(36).substring(7);sessionStorage.setItem("auth_provider","tanflow"),sessionStorage.setItem("tanflow_auth_state",a);let r=`${Ol}/protocol/openid-connect/auth?client_id=${Wu}&response_type=code&scope=openid&redirect_uri=${encodeURIComponent(Ao)}&state=${a}`;s&&(r+="&prompt=login",console.log("🚪 Adding prompt=login to force re-authentication after logout")),console.log("🚪 Initiating Tanflow login",{isAfterLogout:s,hasPrompt:s}),window.location.href=r}async function V0(t,s){var r,n,i;const a="https://reflow-uat.royalenfield.com/api/v1";try{const l=await mo.post(`${a}/auth/tanflow/token-exchange`,{code:t,redirectUri:Ao,state:s},{withCredentials:!0,headers:{"Content-Type":"application/json"}}),o=((r=l.data)==null?void 0:r.data)||l.data;return o.accessToken&&st.setAccessToken(o.accessToken),o.refreshToken&&st.setRefreshToken(o.refreshToken),o.idToken&&st.setIdToken(o.idToken),o.user&&st.setUserData(o.user),o}catch(l){throw console.error("❌ Tanflow token exchange failed:",{message:l.message,response:(n=l.response)==null?void 0:n.data,status:(i=l.response)==null?void 0:i.status}),l}}function z0(t){if(!t){console.warn("🚪 No id_token available for Tanflow logout, redirecting to home");const n=`${window.location.origin}/?tanflow_logged_out=true&logout=${Date.now()}`;window.location.replace(n);return}const s=Ao,a=new URL(`${Ol}/protocol/openid-connect/logout`);a.searchParams.set("client_id",Wu),a.searchParams.set("id_token_hint",t),a.searchParams.set("post_logout_redirect_uri",s);const r=a.toString();console.log("🚪 Tanflow logout initiated",{hasIdToken:!!t,idTokenPrefix:t?t.substring(0,20)+"...":"none",postLogoutRedirectUri:s,logoutUrlBase:`${Ol}/protocol/openid-connect/logout`,finalLogoutUrl:r.replace(t.substring(0,20),"***")}),sessionStorage.setItem("__logout_in_progress__","true"),sessionStorage.setItem("__force_logout__","true"),console.log("🚪 Redirecting to Tanflow logout endpoint..."),window.location.href=r}const Gu=x.createContext(void 0);function H0({children:t}){const[s,a]=x.useState(!1),[r,n]=x.useState(!0),[i,l]=x.useState(null),[o,c]=x.useState(null),[d,m]=x.useState(!1);x.useEffect(()=>{const v=sessionStorage.getItem("__logout_in_progress__"),w=sessionStorage.getItem("__force_logout__");if(v==="true"||w==="true"){sessionStorage.removeItem("__logout_in_progress__"),sessionStorage.removeItem("__force_logout__"),st.clearAll();try{localStorage.clear(),sessionStorage.clear()}catch(S){console.error("Error clearing storage:",S)}a(!1),l(null),n(!1),c(null);return}const A=new URLSearchParams(window.location.search);if(A.has("logout")||A.has("okta_logged_out")||A.has("tanflow_logged_out")){console.log("🚪 Logout parameter detected in URL, clearing all tokens"),st.clearAll(),sessionStorage.removeItem("auth_provider"),sessionStorage.removeItem("tanflow_auth_state"),sessionStorage.removeItem("__logout_in_progress__"),sessionStorage.removeItem("__force_logout__"),sessionStorage.removeItem("tanflow_logged_out"),localStorage.clear(),a(!1),l(null),n(!1);const S=new URLSearchParams;A.has("okta_logged_out")&&S.set("okta_logged_out","true"),A.has("tanflow_logged_out")&&S.set("tanflow_logged_out","true");const k=S.toString()?`/?${S.toString()}`:"/";window.history.replaceState({},document.title,k);return}window.location.pathname==="/login/callback"||window.location.pathname==="/login/tanflow/callback"||(st.getUserData(),d?n(!1):h())},[d]),x.useEffect(()=>{if(!s)return;const v=async()=>{try{await f()}catch(S){console.error("Silent refresh failed:",S)}},w=10*60*1e3,A=setInterval(v,w);return()=>clearInterval(A)},[s]);const u=x.useRef(!1);x.useEffect(()=>{if(u.current||window.location.pathname!=="/login/callback")return;(async()=>{const w=new URLSearchParams(window.location.search);if((w.has("logout")||w.has("tanflow_logged_out")||w.has("okta_logged_out"))&&!w.get("code")){console.log("🚪 Logout redirect detected in callback, redirecting to home");const F=new URLSearchParams;w.has("tanflow_logged_out")&&F.set("tanflow_logged_out","true"),w.has("okta_logged_out")&&F.set("okta_logged_out","true"),w.has("logout")&&F.set("logout",w.get("logout")||Date.now().toString());const T=F.toString()?`/?${F.toString()}`:"/?logout="+Date.now();window.location.replace(T);return}u.current=!0;const A=w.get("code"),S=w.get("error");if(window.history.replaceState({},document.title,"/login/callback"),sessionStorage.getItem("auth_provider")==="tanflow"){u.current=!1;return}if(S){c(new Error(`Authentication error: ${S}`)),n(!1),sessionStorage.removeItem("auth_provider");return}if(!A){n(!1),sessionStorage.removeItem("auth_provider");return}try{n(!0),a(!1),c(null);const F=`${window.location.origin}/login/callback`,T=await O0(A,F);l(T.user),a(!0),c(null),sessionStorage.removeItem("auth_provider"),window.history.replaceState({},document.title,"/")}catch(F){console.error("❌ Token exchange error in AuthContext:",F),c(F),a(!1),l(null),sessionStorage.removeItem("auth_provider"),u.current=!1}finally{n(!1)}})()},[]);const h=async()=>{var w;if(d){n(!1);return}const v=!0;try{if(n(!0),v){const k=st.getUserData();try{const F=await cn();l(F),st.setUserData(F),a(!0)}catch(F){if(((w=F==null?void 0:F.response)==null?void 0:w.status)===401)try{await f();const T=await cn();l(T),st.setUserData(T),a(!0)}catch{st.clearAll(),a(!1),l(null)}else F!=null&&F.isConnectionError?k?(l(k),a(!0)):(a(!1),l(null)):(st.clearAll(),a(!1),l(null))}return}const A=st.getAccessToken(),S=st.getUserData();if(!A){a(!1),l(null),n(!1);return}if(Ji(A))try{await f();const k=st.getAccessToken();if(k&&!Ji(k)){const F=st.getUserData();if(F)l(F),a(!0);else try{const T=await cn();l(T),st.setUserData(T),a(!0)}catch{st.clearAll(),a(!1),l(null)}}else st.clearAll(),a(!1),l(null)}catch{st.clearAll(),a(!1),l(null)}else if(S)l(S),a(!0);else try{const k=await cn();l(k),st.setUserData(k),a(!0)}catch{st.clearAll(),a(!1),l(null)}}catch(A){console.error("Error checking auth status:",A),c(A),st.clearAll(),a(!1),l(null)}finally{n(!1)}},g=async()=>{try{c(null);const v="https://dev-830839.oktapreview.com",w="0oa2jgzvrpdwx2iqd0h8",A=`${window.location.origin}/login/callback`,S="code",k="openid profile email",F=Math.random().toString(36).substring(7);sessionStorage.setItem("auth_provider","okta");const T=new URLSearchParams(window.location.search),D=T.has("logout")||T.has("okta_logged_out")||T.has("tanflow_logged_out");let C=`${v}/oauth2/default/v1/authorize?client_id=${w}&redirect_uri=${encodeURIComponent(A)}&response_type=${S}&scope=${encodeURIComponent(k)}&state=${F}`;D&&(C+="&prompt=login"),window.location.href=C}catch(v){throw c(v),v}},p=async()=>{try{const v=st.getIdToken(),w=sessionStorage.getItem("auth_provider")||(v&&v.includes("tanflow")?"tanflow":null)||"okta";sessionStorage.setItem("__logout_in_progress__","true"),sessionStorage.setItem("__force_logout__","true"),m(!0),a(!1),l(null),c(null),n(!0);try{await U0(),console.log("🚪 Backend logout API called successfully")}catch(T){console.error("🚪 Logout API error:",T),console.warn("🚪 Backend logout failed - httpOnly cookies may not be cleared")}const A=sessionStorage.getItem("__logout_in_progress__"),S=sessionStorage.getItem("__force_logout__"),k=sessionStorage.getItem("auth_provider");if(st.clearAll(),A&&sessionStorage.setItem("__logout_in_progress__",A),S&&sessionStorage.setItem("__force_logout__",S),v&&st.setIdToken(v),k&&sessionStorage.setItem("auth_provider",k),await new Promise(T=>setTimeout(T,100)),w==="tanflow"&&v){console.log("🚪 Initiating Tanflow logout...");try{z0(v);return}catch(T){console.error("🚪 Tanflow logout error:",T)}}console.log("🚪 Using OKTA logout flow or fallback"),sessionStorage.removeItem("auth_provider"),v&&st.clearAll();const F=`${window.location.origin}/?okta_logged_out=true&logout=${Date.now()}`;window.location.replace(F)}catch(v){console.error("🚪 Logout error:",v);try{localStorage.clear(),sessionStorage.clear(),sessionStorage.setItem("__logout_in_progress__","true");const w=`${window.location.origin}/?okta_logged_out=true&logout=${Date.now()}`;window.location.replace(w)}catch{window.location.replace("/?logout="+Date.now())}}},y=async()=>{{if(s)return"cookie-based-auth";try{return await f(),s?"cookie-based-auth":null}catch{return null}}const v=st.getAccessToken();if(v&&!Ji(v))return v;try{return await f(),st.getAccessToken()}catch{return null}},f=async()=>{try{const w=await $0();return}catch(w){throw st.clearAll(),a(!1),l(null),w}},b={isAuthenticated:s,isLoading:r,user:i,error:o,login:g,logout:p,getAccessTokenSilently:y,refreshTokenSilently:f};return e.jsx(Gu.Provider,{value:b,children:t})}function W0({children:t}){return e.jsx(H0,{children:t})}function Zt(){const t=x.useContext(Gu);if(t===void 0)throw new Error("useAuth must be used within an AuthProvider");return t}function rr(t){return(t==null?void 0:t.role)==="ADMIN"}function sn(t){return(t==null?void 0:t.role)==="MANAGEMENT"}function Ii(t){return(t==null?void 0:t.role)==="MANAGEMENT"||(t==null?void 0:t.role)==="ADMIN"}const bd=t=>typeof t=="boolean"?`${t}`:t===0?"0":t,jd=yu,Ku=(t,s)=>a=>{var r;if((s==null?void 0:s.variants)==null)return jd(t,a==null?void 0:a.class,a==null?void 0:a.className);const{variants:n,defaultVariants:i}=s,l=Object.keys(n).map(d=>{const m=a==null?void 0:a[d],u=i==null?void 0:i[d];if(m===null)return null;const h=bd(m)||bd(u);return n[d][h]}),o=a&&Object.entries(a).reduce((d,m)=>{let[u,h]=m;return h===void 0||(d[u]=h),d},{}),c=s==null||(r=s.compoundVariants)===null||r===void 0?void 0:r.reduce((d,m)=>{let{class:u,className:h,...g}=m;return Object.entries(g).every(p=>{let[y,f]=p;return Array.isArray(f)?f.includes({...i,...o}[y]):{...i,...o}[y]===f})?[...d,u,h]:d},[]);return jd(t,l,c,a==null?void 0:a.class,a==null?void 0:a.className)},So="-",G0=t=>{const s=Y0(t),{conflictingClassGroups:a,conflictingClassGroupModifiers:r}=t;return{getClassGroupId:l=>{const o=l.split(So);return o[0]===""&&o.length!==1&&o.shift(),Yu(o,s)||K0(l)},getConflictingClassGroupIds:(l,o)=>{const c=a[l]||[];return o&&r[l]?[...c,...r[l]]:c}}},Yu=(t,s)=>{var l;if(t.length===0)return s.classGroupId;const a=t[0],r=s.nextPart.get(a),n=r?Yu(t.slice(1),r):void 0;if(n)return n;if(s.validators.length===0)return;const i=t.join(So);return(l=s.validators.find(({validator:o})=>o(i)))==null?void 0:l.classGroupId},Nd=/^\[(.+)\]$/,K0=t=>{if(Nd.test(t)){const s=Nd.exec(t)[1],a=s==null?void 0:s.substring(0,s.indexOf(":"));if(a)return"arbitrary.."+a}},Y0=t=>{const{theme:s,prefix:a}=t,r={nextPart:new Map,validators:[]};return X0(Object.entries(t.classGroups),a).forEach(([i,l])=>{$l(l,r,i,s)}),r},$l=(t,s,a,r)=>{t.forEach(n=>{if(typeof n=="string"){const i=n===""?s:wd(s,n);i.classGroupId=a;return}if(typeof n=="function"){if(Z0(n)){$l(n(r),s,a,r);return}s.validators.push({validator:n,classGroupId:a});return}Object.entries(n).forEach(([i,l])=>{$l(l,wd(s,i),a,r)})})},wd=(t,s)=>{let a=t;return s.split(So).forEach(r=>{a.nextPart.has(r)||a.nextPart.set(r,{nextPart:new Map,validators:[]}),a=a.nextPart.get(r)}),a},Z0=t=>t.isThemeGetter,X0=(t,s)=>s?t.map(([a,r])=>{const n=r.map(i=>typeof i=="string"?s+i:typeof i=="object"?Object.fromEntries(Object.entries(i).map(([l,o])=>[s+l,o])):i);return[a,n]}):t,Q0=t=>{if(t<1)return{get:()=>{},set:()=>{}};let s=0,a=new Map,r=new Map;const n=(i,l)=>{a.set(i,l),s++,s>t&&(s=0,r=a,a=new Map)};return{get(i){let l=a.get(i);if(l!==void 0)return l;if((l=r.get(i))!==void 0)return n(i,l),l},set(i,l){a.has(i)?a.set(i,l):n(i,l)}}},Zu="!",J0=t=>{const{separator:s,experimentalParseClassName:a}=t,r=s.length===1,n=s[0],i=s.length,l=o=>{const c=[];let d=0,m=0,u;for(let f=0;f<o.length;f++){let b=o[f];if(d===0){if(b===n&&(r||o.slice(f,f+i)===s)){c.push(o.slice(m,f)),m=f+i;continue}if(b==="/"){u=f;continue}}b==="["?d++:b==="]"&&d--}const h=c.length===0?o:o.substring(m),g=h.startsWith(Zu),p=g?h.substring(1):h,y=u&&u>m?u-m:void 0;return{modifiers:c,hasImportantModifier:g,baseClassName:p,maybePostfixModifierPosition:y}};return a?o=>a({className:o,parseClassName:l}):l},q0=t=>{if(t.length<=1)return t;const s=[];let a=[];return t.forEach(r=>{r[0]==="["?(s.push(...a.sort(),r),a=[]):a.push(r)}),s.push(...a.sort()),s},ey=t=>({cache:Q0(t.cacheSize),parseClassName:J0(t),...G0(t)}),ty=/\s+/,sy=(t,s)=>{const{parseClassName:a,getClassGroupId:r,getConflictingClassGroupIds:n}=s,i=[],l=t.trim().split(ty);let o="";for(let c=l.length-1;c>=0;c-=1){const d=l[c],{modifiers:m,hasImportantModifier:u,baseClassName:h,maybePostfixModifierPosition:g}=a(d);let p=!!g,y=r(p?h.substring(0,g):h);if(!y){if(!p){o=d+(o.length>0?" "+o:o);continue}if(y=r(h),!y){o=d+(o.length>0?" "+o:o);continue}p=!1}const f=q0(m).join(":"),b=u?f+Zu:f,v=b+y;if(i.includes(v))continue;i.push(v);const w=n(y,p);for(let A=0;A<w.length;++A){const S=w[A];i.push(b+S)}o=d+(o.length>0?" "+o:o)}return o};function ay(){let t=0,s,a,r="";for(;t<arguments.length;)(s=arguments[t++])&&(a=Xu(s))&&(r&&(r+=" "),r+=a);return r}const Xu=t=>{if(typeof t=="string")return t;let s,a="";for(let r=0;r<t.length;r++)t[r]&&(s=Xu(t[r]))&&(a&&(a+=" "),a+=s);return a};function ry(t,...s){let a,r,n,i=l;function l(c){const d=s.reduce((m,u)=>u(m),t());return a=ey(d),r=a.cache.get,n=a.cache.set,i=o,o(c)}function o(c){const d=r(c);if(d)return d;const m=sy(c,a);return n(c,m),m}return function(){return i(ay.apply(null,arguments))}}const Tt=t=>{const s=a=>a[t]||[];return s.isThemeGetter=!0,s},Qu=/^\[(?:([a-z-]+):)?(.+)\]$/i,ny=/^\d+\/\d+$/,iy=new Set(["px","full","screen"]),ly=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,oy=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,cy=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,dy=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,my=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,wa=t=>kr(t)||iy.has(t)||ny.test(t),Fa=t=>Lr(t,"length",vy),kr=t=>!!t&&!Number.isNaN(Number(t)),qi=t=>Lr(t,"number",kr),an=t=>!!t&&Number.isInteger(Number(t)),uy=t=>t.endsWith("%")&&kr(t.slice(0,-1)),rt=t=>Qu.test(t),_a=t=>ly.test(t),hy=new Set(["length","size","percentage"]),xy=t=>Lr(t,hy,Ju),py=t=>Lr(t,"position",Ju),gy=new Set(["image","url"]),fy=t=>Lr(t,gy,jy),yy=t=>Lr(t,"",by),rn=()=>!0,Lr=(t,s,a)=>{const r=Qu.exec(t);return r?r[1]?typeof s=="string"?r[1]===s:s.has(r[1]):a(r[2]):!1},vy=t=>oy.test(t)&&!cy.test(t),Ju=()=>!1,by=t=>dy.test(t),jy=t=>my.test(t),Ny=()=>{const t=Tt("colors"),s=Tt("spacing"),a=Tt("blur"),r=Tt("brightness"),n=Tt("borderColor"),i=Tt("borderRadius"),l=Tt("borderSpacing"),o=Tt("borderWidth"),c=Tt("contrast"),d=Tt("grayscale"),m=Tt("hueRotate"),u=Tt("invert"),h=Tt("gap"),g=Tt("gradientColorStops"),p=Tt("gradientColorStopPositions"),y=Tt("inset"),f=Tt("margin"),b=Tt("opacity"),v=Tt("padding"),w=Tt("saturate"),A=Tt("scale"),S=Tt("sepia"),k=Tt("skew"),F=Tt("space"),T=Tt("translate"),D=()=>["auto","contain","none"],C=()=>["auto","hidden","clip","visible","scroll"],P=()=>["auto",rt,s],R=()=>[rt,s],V=()=>["",wa,Fa],I=()=>["auto",kr,rt],$=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],_=()=>["solid","dashed","dotted","double","none"],N=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],j=()=>["start","end","center","between","around","evenly","stretch"],U=()=>["","0",rt],z=()=>["auto","avoid","all","avoid-page","page","left","right","column"],B=()=>[kr,rt];return{cacheSize:500,separator:":",theme:{colors:[rn],spacing:[wa,Fa],blur:["none","",_a,rt],brightness:B(),borderColor:[t],borderRadius:["none","","full",_a,rt],borderSpacing:R(),borderWidth:V(),contrast:B(),grayscale:U(),hueRotate:B(),invert:U(),gap:R(),gradientColorStops:[t],gradientColorStopPositions:[uy,Fa],inset:P(),margin:P(),opacity:B(),padding:R(),saturate:B(),scale:B(),sepia:U(),skew:B(),space:R(),translate:R()},classGroups:{aspect:[{aspect:["auto","square","video",rt]}],container:["container"],columns:[{columns:[_a]}],"break-after":[{"break-after":z()}],"break-before":[{"break-before":z()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...$(),rt]}],overflow:[{overflow:C()}],"overflow-x":[{"overflow-x":C()}],"overflow-y":[{"overflow-y":C()}],overscroll:[{overscroll:D()}],"overscroll-x":[{"overscroll-x":D()}],"overscroll-y":[{"overscroll-y":D()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[y]}],"inset-x":[{"inset-x":[y]}],"inset-y":[{"inset-y":[y]}],start:[{start:[y]}],end:[{end:[y]}],top:[{top:[y]}],right:[{right:[y]}],bottom:[{bottom:[y]}],left:[{left:[y]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",an,rt]}],basis:[{basis:P()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",rt]}],grow:[{grow:U()}],shrink:[{shrink:U()}],order:[{order:["first","last","none",an,rt]}],"grid-cols":[{"grid-cols":[rn]}],"col-start-end":[{col:["auto",{span:["full",an,rt]},rt]}],"col-start":[{"col-start":I()}],"col-end":[{"col-end":I()}],"grid-rows":[{"grid-rows":[rn]}],"row-start-end":[{row:["auto",{span:[an,rt]},rt]}],"row-start":[{"row-start":I()}],"row-end":[{"row-end":I()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",rt]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",rt]}],gap:[{gap:[h]}],"gap-x":[{"gap-x":[h]}],"gap-y":[{"gap-y":[h]}],"justify-content":[{justify:["normal",...j()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...j(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...j(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[v]}],px:[{px:[v]}],py:[{py:[v]}],ps:[{ps:[v]}],pe:[{pe:[v]}],pt:[{pt:[v]}],pr:[{pr:[v]}],pb:[{pb:[v]}],pl:[{pl:[v]}],m:[{m:[f]}],mx:[{mx:[f]}],my:[{my:[f]}],ms:[{ms:[f]}],me:[{me:[f]}],mt:[{mt:[f]}],mr:[{mr:[f]}],mb:[{mb:[f]}],ml:[{ml:[f]}],"space-x":[{"space-x":[F]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[F]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",rt,s]}],"min-w":[{"min-w":[rt,s,"min","max","fit"]}],"max-w":[{"max-w":[rt,s,"none","full","min","max","fit","prose",{screen:[_a]},_a]}],h:[{h:[rt,s,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[rt,s,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[rt,s,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[rt,s,"auto","min","max","fit"]}],"font-size":[{text:["base",_a,Fa]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",qi]}],"font-family":[{font:[rn]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",rt]}],"line-clamp":[{"line-clamp":["none",kr,qi]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",wa,rt]}],"list-image":[{"list-image":["none",rt]}],"list-style-type":[{list:["none","disc","decimal",rt]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[t]}],"placeholder-opacity":[{"placeholder-opacity":[b]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[t]}],"text-opacity":[{"text-opacity":[b]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[..._(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",wa,Fa]}],"underline-offset":[{"underline-offset":["auto",wa,rt]}],"text-decoration-color":[{decoration:[t]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:R()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",rt]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",rt]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[b]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...$(),py]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",xy]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},fy]}],"bg-color":[{bg:[t]}],"gradient-from-pos":[{from:[p]}],"gradient-via-pos":[{via:[p]}],"gradient-to-pos":[{to:[p]}],"gradient-from":[{from:[g]}],"gradient-via":[{via:[g]}],"gradient-to":[{to:[g]}],rounded:[{rounded:[i]}],"rounded-s":[{"rounded-s":[i]}],"rounded-e":[{"rounded-e":[i]}],"rounded-t":[{"rounded-t":[i]}],"rounded-r":[{"rounded-r":[i]}],"rounded-b":[{"rounded-b":[i]}],"rounded-l":[{"rounded-l":[i]}],"rounded-ss":[{"rounded-ss":[i]}],"rounded-se":[{"rounded-se":[i]}],"rounded-ee":[{"rounded-ee":[i]}],"rounded-es":[{"rounded-es":[i]}],"rounded-tl":[{"rounded-tl":[i]}],"rounded-tr":[{"rounded-tr":[i]}],"rounded-br":[{"rounded-br":[i]}],"rounded-bl":[{"rounded-bl":[i]}],"border-w":[{border:[o]}],"border-w-x":[{"border-x":[o]}],"border-w-y":[{"border-y":[o]}],"border-w-s":[{"border-s":[o]}],"border-w-e":[{"border-e":[o]}],"border-w-t":[{"border-t":[o]}],"border-w-r":[{"border-r":[o]}],"border-w-b":[{"border-b":[o]}],"border-w-l":[{"border-l":[o]}],"border-opacity":[{"border-opacity":[b]}],"border-style":[{border:[..._(),"hidden"]}],"divide-x":[{"divide-x":[o]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[o]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[b]}],"divide-style":[{divide:_()}],"border-color":[{border:[n]}],"border-color-x":[{"border-x":[n]}],"border-color-y":[{"border-y":[n]}],"border-color-s":[{"border-s":[n]}],"border-color-e":[{"border-e":[n]}],"border-color-t":[{"border-t":[n]}],"border-color-r":[{"border-r":[n]}],"border-color-b":[{"border-b":[n]}],"border-color-l":[{"border-l":[n]}],"divide-color":[{divide:[n]}],"outline-style":[{outline:["",..._()]}],"outline-offset":[{"outline-offset":[wa,rt]}],"outline-w":[{outline:[wa,Fa]}],"outline-color":[{outline:[t]}],"ring-w":[{ring:V()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[t]}],"ring-opacity":[{"ring-opacity":[b]}],"ring-offset-w":[{"ring-offset":[wa,Fa]}],"ring-offset-color":[{"ring-offset":[t]}],shadow:[{shadow:["","inner","none",_a,yy]}],"shadow-color":[{shadow:[rn]}],opacity:[{opacity:[b]}],"mix-blend":[{"mix-blend":[...N(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":N()}],filter:[{filter:["","none"]}],blur:[{blur:[a]}],brightness:[{brightness:[r]}],contrast:[{contrast:[c]}],"drop-shadow":[{"drop-shadow":["","none",_a,rt]}],grayscale:[{grayscale:[d]}],"hue-rotate":[{"hue-rotate":[m]}],invert:[{invert:[u]}],saturate:[{saturate:[w]}],sepia:[{sepia:[S]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[a]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[c]}],"backdrop-grayscale":[{"backdrop-grayscale":[d]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[m]}],"backdrop-invert":[{"backdrop-invert":[u]}],"backdrop-opacity":[{"backdrop-opacity":[b]}],"backdrop-saturate":[{"backdrop-saturate":[w]}],"backdrop-sepia":[{"backdrop-sepia":[S]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[l]}],"border-spacing-x":[{"border-spacing-x":[l]}],"border-spacing-y":[{"border-spacing-y":[l]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",rt]}],duration:[{duration:B()}],ease:[{ease:["linear","in","out","in-out",rt]}],delay:[{delay:B()}],animate:[{animate:["none","spin","ping","pulse","bounce",rt]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[A]}],"scale-x":[{"scale-x":[A]}],"scale-y":[{"scale-y":[A]}],rotate:[{rotate:[an,rt]}],"translate-x":[{"translate-x":[T]}],"translate-y":[{"translate-y":[T]}],"skew-x":[{"skew-x":[k]}],"skew-y":[{"skew-y":[k]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",rt]}],accent:[{accent:["auto",t]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",rt]}],"caret-color":[{caret:[t]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":R()}],"scroll-mx":[{"scroll-mx":R()}],"scroll-my":[{"scroll-my":R()}],"scroll-ms":[{"scroll-ms":R()}],"scroll-me":[{"scroll-me":R()}],"scroll-mt":[{"scroll-mt":R()}],"scroll-mr":[{"scroll-mr":R()}],"scroll-mb":[{"scroll-mb":R()}],"scroll-ml":[{"scroll-ml":R()}],"scroll-p":[{"scroll-p":R()}],"scroll-px":[{"scroll-px":R()}],"scroll-py":[{"scroll-py":R()}],"scroll-ps":[{"scroll-ps":R()}],"scroll-pe":[{"scroll-pe":R()}],"scroll-pt":[{"scroll-pt":R()}],"scroll-pr":[{"scroll-pr":R()}],"scroll-pb":[{"scroll-pb":R()}],"scroll-pl":[{"scroll-pl":R()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",rt]}],fill:[{fill:[t,"none"]}],"stroke-w":[{stroke:[wa,Fa,qi]}],stroke:[{stroke:[t,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},wy=ry(Ny);function we(...t){return wy(yu(t))}const jn=Ku("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background text-foreground hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9 rounded-md"}},defaultVariants:{variant:"default",size:"default"}}),M=x.forwardRef(({className:t,variant:s,size:a,asChild:r=!1,...n},i)=>{const l=r?ou:"button";return e.jsx(l,{"data-slot":"button",className:we(jn({variant:s,size:a,className:t})),ref:i,...n})});M.displayName="Button";function te({className:t,...s}){return e.jsx("div",{"data-slot":"card",className:we("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border",t),...s})}function ue({className:t,...s}){return e.jsx("div",{"data-slot":"card-header",className:we("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 pt-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",t),...s})}function he({className:t,...s}){return e.jsx("h4",{"data-slot":"card-title",className:we("leading-none",t),...s})}function Te({className:t,...s}){return e.jsx("p",{"data-slot":"card-description",className:we("text-muted-foreground",t),...s})}function se({className:t,...s}){return e.jsx("div",{"data-slot":"card-content",className:we("px-6 [&:last-child]:pb-6",t),...s})}const Ei="/assets/Re_Logo-By51taPS.png";function Cy(){const{login:t,isLoading:s,error:a}=Zt(),[r,n]=x.useState(!1),i=async()=>{localStorage.clear(),sessionStorage.clear();try{await t()}catch(o){console.error("========================================"),console.error("OKTA LOGIN ERROR"),console.error("Error details:",o),console.error("Error message:",o==null?void 0:o.message),console.error("Error stack:",o==null?void 0:o.stack),console.error("========================================")}},l=()=>{localStorage.clear(),sessionStorage.clear(),n(!0);try{B0()}catch(o){console.error("========================================"),console.error("TANFLOW LOGIN ERROR"),console.error("Error details:",o),n(!1)}};return a&&console.error("Auth Error in Auth Component:",{message:a.message,error:a}),e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-gradient-to-br from-slate-50 to-slate-100 p-4",children:e.jsxs(te,{className:"w-full max-w-md shadow-xl",children:[e.jsx(ue,{className:"space-y-1 text-center pb-6",children:e.jsxs("div",{className:"flex flex-col items-center justify-center mb-4",children:[e.jsx("img",{src:Ei,alt:"Royal Enfield Logo",className:"h-10 w-auto max-w-[168px] object-contain mb-2"}),e.jsx("p",{className:"text-xs text-gray-400 text-center truncate",children:"Approval Portal"})]})}),e.jsxs(se,{className:"space-y-4",children:[a&&e.jsxs("div",{className:"bg-red-50 border border-red-200 text-red-700 px-4 py-3 rounded-lg",children:[e.jsx("p",{className:"text-sm font-medium",children:"Authentication Error"}),e.jsx("p",{className:"text-sm",children:a.message})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(M,{onClick:i,disabled:s||r,className:"w-full h-12 text-base font-semibold bg-re-red hover:bg-re-red/90 text-white",size:"lg",children:s?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mr-2 h-4 w-4 animate-spin rounded-full border-2 border-white border-t-transparent"}),"Logging in..."]}):e.jsxs(e.Fragment,{children:[e.jsx(xf,{className:"mr-2 h-5 w-5"}),"RE Employee Login"]})}),e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute inset-0 flex items-center",children:e.jsx("span",{className:"w-full border-t border-gray-300"})}),e.jsx("div",{className:"relative flex justify-center text-xs uppercase",children:e.jsx("span",{className:"bg-white px-2 text-gray-500",children:"Or"})})]}),e.jsx(M,{onClick:l,disabled:s||r,className:"w-full h-12 text-base font-semibold bg-indigo-600 hover:bg-indigo-700 text-white",size:"lg",children:r?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mr-2 h-4 w-4 animate-spin rounded-full border-2 border-white border-t-transparent"}),"Redirecting..."]}):e.jsxs(e.Fragment,{children:[e.jsx(ss,{className:"mr-2 h-5 w-5"}),"Dealer Login"]})})]}),e.jsxs("div",{className:"text-center text-sm text-gray-500 mt-4",children:[e.jsx("p",{children:"Secure Single Sign-On"}),e.jsx("p",{className:"text-xs mt-1",children:"Choose your authentication provider"})]})]})]})})}function qu(){const{isAuthenticated:t,isLoading:s,error:a,user:r}=Zt(),[n,i]=x.useState("exchanging");x.useEffect(()=>{if(a){i("error");return}if(s){const c=new URLSearchParams(window.location.search).get("code");i(c&&!r?"exchanging":r&&!t?"fetching":"exchanging")}else r&&t&&i("complete")},[t,s,a,r]);const l=()=>{switch(n){case"exchanging":return"Exchanging authorization code...";case"fetching":return"Fetching your profile...";case"complete":return"Authentication successful!";case"error":return"Authentication failed";default:return"Completing authentication..."}};return e.jsxs("div",{className:"min-h-screen flex items-center justify-center bg-gradient-to-br from-slate-900 via-slate-800 to-slate-900",children:[e.jsx("div",{className:"absolute inset-0 bg-[url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAgMCA2MCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIGZpbGw9IiMxZTIxMmQiIGZpbGwtb3BhY2l0eT0iMC4wNSI+PGNpcmNsZSBjeD0iMzAiIGN5PSIzMCIgcj0iMzAiLz48L2c+PC9nPjwvc3ZnPg==')] opacity-20"}),e.jsxs("div",{className:"relative z-10 text-center px-4 max-w-md w-full",children:[e.jsx("div",{className:"mb-8",children:e.jsxs("div",{className:"flex flex-col items-center justify-center",children:[e.jsx("img",{src:Ei,alt:"Royal Enfield Logo",className:"h-10 w-auto max-w-[168px] object-contain mb-2"}),e.jsx("p",{className:"text-xs text-gray-400 text-center truncate",children:"Approval Portal"})]})}),e.jsxs("div",{className:"bg-white/10 backdrop-blur-xl rounded-2xl p-8 shadow-2xl border border-white/20",children:[e.jsx("div",{className:"mb-6 flex justify-center",children:n==="error"?e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute inset-0 animate-ping opacity-75",children:e.jsx(Ge,{className:"w-16 h-16 text-red-500"})}),e.jsx(Ge,{className:"w-16 h-16 text-red-500 relative"})]}):n==="complete"?e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute inset-0 animate-ping opacity-75",children:e.jsx(Os,{className:"w-16 h-16 text-green-500"})}),e.jsx(Os,{className:"w-16 h-16 text-green-500 relative"})]}):e.jsxs("div",{className:"relative",children:[e.jsx(Je,{className:"w-16 h-16 animate-spin text-re-red"}),e.jsx("div",{className:"absolute inset-0 border-4 rounded-full border-re-red/20"}),e.jsx("div",{className:"absolute inset-0 border-4 border-transparent border-t-re-red rounded-full animate-spin"})]})}),e.jsxs("div",{className:"mb-6",children:[e.jsx("h2",{className:"text-xl font-semibold text-white mb-2",children:n==="complete"?"Welcome Back!":n==="error"?"Authentication Error":"Authenticating"}),e.jsx("p",{className:"text-slate-300 text-sm",children:l()})]}),n!=="error"&&e.jsxs("div",{className:"space-y-3 mb-6",children:[e.jsxs("div",{className:`flex items-center gap-3 text-sm transition-all duration-500 ${n==="exchanging"?"text-white":"text-slate-400"}`,children:[e.jsx("div",{className:`w-2 h-2 rounded-full transition-all duration-500 ${n==="exchanging"?"bg-re-red animate-pulse":"bg-slate-600"}`}),e.jsx("span",{children:"Validating credentials"})]}),e.jsxs("div",{className:`flex items-center gap-3 text-sm transition-all duration-500 ${n==="fetching"?"text-white":"text-slate-400"}`,children:[e.jsx("div",{className:`w-2 h-2 rounded-full transition-all duration-500 ${n==="fetching"?"bg-re-red animate-pulse":"bg-slate-600"}`}),e.jsx("span",{children:"Loading your profile"})]}),n==="complete"&&e.jsxs("div",{className:"flex items-center gap-3 text-sm transition-all duration-500 text-white",children:[e.jsx("div",{className:"w-2 h-2 rounded-full transition-all duration-500 bg-green-500"}),e.jsx("span",{children:"Setting up your session"})]})]}),n==="error"&&a&&e.jsxs("div",{className:"mt-6 p-4 bg-red-500/10 border border-red-500/20 rounded-lg",children:[e.jsx("p",{className:"text-red-400 text-sm",children:a.message||"An error occurred during authentication"}),e.jsx("button",{onClick:()=>{window.location.href="/"},className:"mt-4 text-sm text-red-400 hover:text-red-300 underline",children:"Return to login"})]}),n!=="error"&&n!=="complete"&&e.jsxs("div",{className:"mt-6",children:[e.jsx("div",{className:"h-1.5 bg-slate-700/50 rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full bg-re-red rounded-full animate-pulse",style:{animation:"progress 2s ease-in-out infinite"}})}),e.jsx("style",{children:`
|
||
@keyframes progress {
|
||
0%, 100% { width: 20%; }
|
||
50% { width: 80%; }
|
||
}
|
||
`})]})]}),e.jsx("p",{className:"mt-6 text-slate-500 text-xs",children:n==="complete"?"Loading dashboard...":"Please wait while we secure your session"})]}),e.jsxs("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[e.jsx("div",{className:"absolute top-1/4 left-1/4 w-96 h-96 bg-re-red/5 rounded-full blur-3xl animate-pulse"}),e.jsx("div",{className:"absolute bottom-1/4 right-1/4 w-96 h-96 bg-re-red/5 rounded-full blur-3xl animate-pulse delay-1000"})]})]})}function Ay(){const{isAuthenticated:t,isLoading:s,error:a,user:r}=Zt(),[n,i]=x.useState("exchanging"),[l,o]=x.useState(""),c=x.useRef(!1);x.useEffect(()=>{if(a){i("error");return}if(s){const u=new URLSearchParams(window.location.search).get("code");i(u&&!r?"exchanging":r&&!t?"fetching":"exchanging")}else r&&t&&(i("complete"),setTimeout(()=>{window.location.href="/"},1e3))},[t,s,a,r]),x.useEffect(()=>{if(c.current||window.location.pathname!=="/login/callback")return;const m=new URLSearchParams(window.location.search),u=m.get("code"),h=m.get("error");if(!u&&!h){console.log("🚪 Logout redirect detected: no code, no error - redirecting to home immediately"),c.current=!0;const y=new URLSearchParams;y.set("tanflow_logged_out","true"),y.set("logout",Date.now().toString());const f=`/?${y.toString()}`;console.log("🚪 Redirecting to:",f),window.location.replace(f);return}if(sessionStorage.getItem("auth_provider")!=="tanflow")return;(async()=>{c.current=!0;const y=new URLSearchParams(window.location.search),f=y.get("code"),b=y.get("state"),v=y.get("error");if(window.history.replaceState({},document.title,"/login/callback"),v){i("error"),sessionStorage.removeItem("auth_provider"),sessionStorage.removeItem("tanflow_auth_state");return}const w=sessionStorage.getItem("tanflow_auth_state");if(b&&b!==w){i("error"),sessionStorage.removeItem("auth_provider"),sessionStorage.removeItem("tanflow_auth_state");return}if(!f){i("error"),sessionStorage.removeItem("auth_provider"),sessionStorage.removeItem("tanflow_auth_state");return}try{i("exchanging");const A=await V0(f,b||"");sessionStorage.removeItem("tanflow_auth_state"),i("fetching");const S=A.user||await cn();if(S)st.setUserData(S),i("complete"),setTimeout(()=>{window.history.replaceState({},document.title,"/"),window.location.href="/"},1e3);else throw new Error("User data not received")}catch(A){console.error("Tanflow callback error:",A),i("error"),o(A.message||"Authentication failed"),sessionStorage.removeItem("auth_provider"),sessionStorage.removeItem("tanflow_auth_state")}})()},[]);const d=()=>{switch(n){case"exchanging":return"Exchanging authorization code...";case"fetching":return"Fetching your profile...";case"complete":return"Authentication successful!";case"error":return"Authentication failed";default:return"Completing authentication..."}};return e.jsxs("div",{className:"min-h-screen flex items-center justify-center bg-gradient-to-br from-slate-900 via-slate-800 to-slate-900",children:[e.jsx("div",{className:"absolute inset-0 bg-[url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAgMCA2MCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIGZpbGw9IiMxZTIxMmQiIGZpbGwtb3BhY2l0eT0iMC4wNSI+PGNpcmNsZSBjeD0iMzAiIGN5PSIzMCIgcj0iMzAiLz48L2c+PC9nPjwvc3ZnPg==')] opacity-20"}),e.jsxs("div",{className:"relative z-10 text-center px-4 max-w-md w-full",children:[e.jsx("div",{className:"mb-8",children:e.jsxs("div",{className:"flex flex-col items-center justify-center",children:[e.jsx("img",{src:Ei,alt:"Royal Enfield Logo",className:"h-10 w-auto max-w-[168px] object-contain mb-2"}),e.jsx("p",{className:"text-xs text-gray-400 text-center truncate",children:"Approval Portal"})]})}),e.jsxs("div",{className:"bg-white/10 backdrop-blur-xl rounded-2xl p-8 shadow-2xl border border-white/20",children:[e.jsx("div",{className:"mb-6 flex justify-center",children:n==="error"?e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute inset-0 animate-ping opacity-75",children:e.jsx(Ge,{className:"w-16 h-16 text-red-500"})}),e.jsx(Ge,{className:"w-16 h-16 text-red-500 relative"})]}):n==="complete"?e.jsxs("div",{className:"relative",children:[e.jsx("div",{className:"absolute inset-0 animate-ping opacity-75",children:e.jsx(Os,{className:"w-16 h-16 text-green-500"})}),e.jsx(Os,{className:"w-16 h-16 text-green-500 relative"})]}):e.jsxs("div",{className:"relative",children:[e.jsx(Je,{className:"w-16 h-16 animate-spin text-re-red"}),e.jsx("div",{className:"absolute inset-0 border-4 rounded-full border-re-red/20"}),e.jsx("div",{className:"absolute inset-0 border-4 border-transparent border-t-re-red rounded-full animate-spin"})]})}),e.jsxs("div",{className:"mb-6",children:[e.jsx("h2",{className:"text-xl font-semibold text-white mb-2",children:n==="complete"?"Welcome Back!":n==="error"?"Authentication Error":"Authenticating"}),e.jsx("p",{className:"text-slate-300 text-sm",children:d()})]}),n!=="error"&&e.jsxs("div",{className:"space-y-3 mb-6",children:[e.jsxs("div",{className:`flex items-center gap-3 text-sm transition-all duration-500 ${n==="exchanging"?"text-white":"text-slate-400"}`,children:[e.jsx("div",{className:`w-2 h-2 rounded-full transition-all duration-500 ${n==="exchanging"?"bg-re-red animate-pulse":"bg-slate-600"}`}),e.jsx("span",{children:"Validating credentials"})]}),e.jsxs("div",{className:`flex items-center gap-3 text-sm transition-all duration-500 ${n==="fetching"?"text-white":"text-slate-400"}`,children:[e.jsx("div",{className:`w-2 h-2 rounded-full transition-all duration-500 ${n==="fetching"?"bg-re-red animate-pulse":"bg-slate-600"}`}),e.jsx("span",{children:"Loading your profile"})]}),n==="complete"&&e.jsxs("div",{className:"flex items-center gap-3 text-sm transition-all duration-500 text-white",children:[e.jsx("div",{className:"w-2 h-2 rounded-full transition-all duration-500 bg-green-500"}),e.jsx("span",{children:"Setting up your session"})]})]}),n==="error"&&l&&e.jsxs("div",{className:"mt-6 p-4 bg-red-500/10 border border-red-500/20 rounded-lg",children:[e.jsx("p",{className:"text-red-400 text-sm",children:l}),e.jsx("button",{onClick:()=>{window.location.href="/"},className:"mt-4 text-sm text-red-400 hover:text-red-300 underline",children:"Return to login"})]}),n!=="error"&&n!=="complete"&&e.jsxs("div",{className:"mt-6",children:[e.jsx("div",{className:"h-1.5 bg-slate-700/50 rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full bg-re-red rounded-full animate-pulse",style:{animation:"progress 2s ease-in-out infinite"}})}),e.jsx("style",{children:`
|
||
@keyframes progress {
|
||
0%, 100% { width: 20%; }
|
||
50% { width: 80%; }
|
||
}
|
||
`})]})]}),e.jsx("p",{className:"mt-6 text-slate-500 text-xs",children:n==="complete"?"Loading dashboard...":"Please wait while we secure your session"})]}),e.jsxs("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[e.jsx("div",{className:"absolute top-1/4 left-1/4 w-96 h-96 bg-re-red/5 rounded-full blur-3xl animate-pulse"}),e.jsx("div",{className:"absolute bottom-1/4 right-1/4 w-96 h-96 bg-re-red/5 rounded-full blur-3xl animate-pulse delay-1000"})]})]})}const Sy=Ku("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});function le({className:t,variant:s,asChild:a=!1,...r}){const n=a?ou:"span";return e.jsx(n,{"data-slot":"badge",className:we(Sy({variant:s}),t),...r})}function Ty({isOpen:t,onClose:s}){const{user:a,isAuthenticated:r,isLoading:n,error:i}=_0();return x.useEffect(()=>{},[a,r,n,i]),t?e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4",children:e.jsxs(te,{className:"w-full max-w-2xl max-h-[90vh] overflow-auto",children:[e.jsx(ue,{children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(he,{children:"Authentication Debug Information"}),e.jsx(M,{variant:"ghost",size:"icon",onClick:s,children:e.jsx(ht,{className:"h-4 w-4"})})]})}),e.jsxs(se,{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-semibold",children:"Status:"}),e.jsx(le,{variant:r?"default":"destructive",children:n?"Loading...":r?"Authenticated":"Not Authenticated"})]}),i&&e.jsxs("div",{className:"bg-red-50 border border-red-200 rounded p-3",children:[e.jsx("p",{className:"text-sm text-red-700 font-semibold",children:"Error:"}),e.jsx("p",{className:"text-sm text-red-600",children:i.message})]}),a&&e.jsxs("div",{className:"space-y-2",children:[e.jsx("h4",{className:"font-semibold",children:"User Information:"}),e.jsx("pre",{className:"bg-gray-50 p-3 rounded text-xs overflow-auto",children:JSON.stringify(a,null,2)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("h4",{className:"font-semibold",children:"All Auth Claims:"}),e.jsx("pre",{className:"bg-gray-50 p-3 rounded text-xs overflow-auto",children:JSON.stringify({isAuthenticated:r,isLoading:n,error:(i==null?void 0:i.message)||null,hasUser:!!a},null,2)})]})]})]})}):null}const ky="modulepreload",Ry=function(t){return"/"+t},Cd={},Zn=function(s,a,r){let n=Promise.resolve();if(a&&a.length>0){document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),o=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));n=Promise.allSettled(a.map(c=>{if(c=Ry(c),c in Cd)return;Cd[c]=!0;const d=c.endsWith(".css"),m=d?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${m}`))return;const u=document.createElement("link");if(u.rel=d?"stylesheet":ky,d||(u.as="script"),u.crossOrigin="",u.href=c,o&&u.setAttribute("nonce",o),document.head.appendChild(u),d)return new Promise((h,g)=>{u.addEventListener("load",h),u.addEventListener("error",()=>g(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(l){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=l,window.dispatchEvent(o),!o.defaultPrevented)throw l}return n.then(l=>{for(const o of l||[])o.status==="rejected"&&i(o.reason);return s().catch(i)})},as=x.forwardRef(({className:t,...s},a)=>e.jsx(cu,{ref:a,"data-slot":"avatar",className:we("relative flex size-10 shrink-0 overflow-hidden rounded-full",t),...s}));as.displayName=cu.displayName;const Mi=x.forwardRef(({className:t,...s},a)=>e.jsx(du,{ref:a,"data-slot":"avatar-image",className:we("aspect-square size-full",t),...s}));Mi.displayName=du.displayName;const rs=x.forwardRef(({className:t,...s},a)=>e.jsx(mu,{ref:a,"data-slot":"avatar-fallback",className:we("bg-muted flex size-full items-center justify-center rounded-full",t),...s}));rs.displayName=mu.displayName;function Ad({...t}){return e.jsx(Xp,{"data-slot":"dropdown-menu",...t})}function Sd({...t}){return e.jsx(Qp,{"data-slot":"dropdown-menu-trigger",...t})}function Td({className:t,sideOffset:s=4,...a}){return e.jsx(Jp,{children:e.jsx(qp,{"data-slot":"dropdown-menu-content",sideOffset:s,className:we("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",t),...a})})}function el({className:t,inset:s,variant:a="default",...r}){return e.jsx(eg,{"data-slot":"dropdown-menu-item","data-inset":s,"data-variant":a,className:we("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...r})}function Dy({...t}){return e.jsx(sg,{"data-slot":"alert-dialog",...t})}function Py({...t}){return e.jsx(tg,{"data-slot":"alert-dialog-portal",...t})}const eh=x.forwardRef(({className:t,...s},a)=>e.jsx(uu,{"data-slot":"alert-dialog-overlay",className:we("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t),...s,ref:a}));eh.displayName=uu.displayName;const th=x.forwardRef(({className:t,...s},a)=>e.jsxs(Py,{children:[e.jsx(eh,{}),e.jsx(hu,{"data-slot":"alert-dialog-content",ref:a,className:we("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",t),...s})]}));th.displayName=hu.displayName;function Iy({className:t,...s}){return e.jsx("div",{"data-slot":"alert-dialog-header",className:we("flex flex-col gap-2 text-center sm:text-left",t),...s})}function Ey({className:t,...s}){return e.jsx("div",{"data-slot":"alert-dialog-footer",className:we("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",t),...s})}function My({className:t,...s}){return e.jsx(ag,{"data-slot":"alert-dialog-title",className:we("text-lg font-semibold",t),...s})}function Fy({className:t,...s}){return e.jsx(rg,{"data-slot":"alert-dialog-description",className:we("text-muted-foreground text-sm",t),...s})}function _y({className:t,...s}){return e.jsx(ig,{className:we(jn(),t),...s})}function Ly({className:t,...s}){return e.jsx(ng,{className:we(jn({variant:"outline"}),t),...s})}const Oa={async list(t){return(await be.get("/notifications",{params:t})).data},async getUnreadCount(){return(await be.get("/notifications/unread-count")).data},async markAsRead(t){return(await be.patch(`/notifications/${t}/read`)).data},async markAllAsRead(){return(await be.post("/notifications/mark-all-read")).data},async delete(t){return(await be.delete(`/notifications/${t}`)).data}},Oy=async()=>(await be.get("/notifications/subscriptions")).data.data.subscriptions;let tr=null;function $y(){return"https://reflow-uat.royalenfield.com"}function Pr(t){const s=$y();return tr||(tr=t0(s,{withCredentials:!0,transports:["websocket","polling"],path:"/socket.io",reconnection:!0,reconnectionDelay:1e3,reconnectionAttempts:5}),tr.on("connect",()=>{}),tr.on("connect_error",a=>{console.error("[Socket] Connection error:",a.message)}),tr.on("disconnect",a=>{}),tr)}function Ul(t,s,a){a?t.emit("join:request",{requestId:s,userId:a}):t.emit("join:request",s)}function sh(t,s){t.emit("leave:request",s)}function ah(t,s){t.emit("join:user",{userId:s})}function fs({children:t,currentPage:s="dashboard",onNavigate:a,onNewRequest:r,onLogout:n}){const[i,l]=x.useState(!1),[o,c]=x.useState(!1),[d,m]=x.useState([]),[u,h]=x.useState(0),[g,p]=x.useState(!1),{user:y}=Zt(),f=x.useMemo(()=>{try{const k=st.getUserData();return(k==null?void 0:k.jobTitle)==="Dealer"}catch(k){return console.error("[PageLayout] Error checking dealer status:",k),!1}},[]),b=()=>{var k,F;try{if(y!=null&&y.displayName&&typeof y.displayName=="string"){const T=y.displayName.split(" ").filter(Boolean);return T.length>=2?`${((k=T[0])==null?void 0:k[0])||""}${((F=T[T.length-1])==null?void 0:F[0])||""}`.toUpperCase():y.displayName.substring(0,2).toUpperCase()}return y!=null&&y.email&&typeof y.email=="string"?y.email.substring(0,2).toUpperCase():"U"}catch(T){return console.error("[PageLayout] Error getting user initials:",T),"U"}},v=x.useMemo(()=>{const k=[{id:"dashboard",label:"Dashboard",icon:pf},{id:"requests",label:"All Requests",icon:Tu}];return f||k.push({id:"my-requests",label:"My Requests",icon:kt}),k.push({id:"open-requests",label:"Open Requests",icon:_e},{id:"closed-requests",label:"Closed Requests",icon:Ce},{id:"shared-summaries",label:"Shared Summary",icon:Mr}),k},[f]),w=()=>{l(!i)},A=async k=>{var F;try{if(k.isRead||(await Oa.markAsRead(k.notificationId),m(T=>T.map(D=>D.notificationId===k.notificationId?{...D,isRead:!0}:D)),h(T=>Math.max(0,T-1))),k.actionUrl&&a){const T=(F=k.metadata)==null?void 0:F.requestNumber;if(T){let D=`request/${T}`;(k.notificationType==="mention"||k.notificationType==="comment"||k.notificationType==="worknote")&&(D+="?tab=worknotes"),a(D)}}p(!1)}catch(T){console.error("[PageLayout] Error handling notification click:",T)}},S=async()=>{try{await Oa.markAllAsRead(),m(k=>k.map(F=>({...F,isRead:!0}))),h(0)}catch(k){console.error("[PageLayout] Error marking all as read:",k)}};return x.useEffect(()=>{const k=y==null?void 0:y.userId;if(!k)return;let F=!0;(async()=>{var C,P;try{const R=await Oa.list({page:1,limit:4,unreadOnly:!1});if(!F)return;const V=((C=R.data)==null?void 0:C.notifications)||[];m(V),h(((P=R.data)==null?void 0:P.unreadCount)||0)}catch(R){console.error("[PageLayout] Failed to fetch notifications:",R)}})();const D=Pr();if(D){ah(D,k);const C=P=>{F&&(m(R=>[P.notification,...R].slice(0,4)),h(R=>R+1))};return D.on("notification:new",C),()=>{F=!1,D.off("notification:new",C)}}return()=>{F=!1}},[y]),x.useEffect(()=>{const k=()=>{window.innerWidth>=768?l(!0):l(!1)};return k(),window.addEventListener("resize",k),()=>window.removeEventListener("resize",k)},[]),e.jsxs("div",{className:"min-h-screen flex w-full bg-background",children:[i&&e.jsx("div",{className:"fixed inset-0 bg-black/50 z-40 md:hidden",onClick:()=>l(!1)}),e.jsx("aside",{className:`
|
||
fixed md:relative
|
||
inset-y-0 left-0
|
||
w-64
|
||
transform transition-transform duration-300 ease-in-out
|
||
${i?"translate-x-0":"-translate-x-full"}
|
||
md:translate-x-0
|
||
${i?"md:w-64":"md:w-0"}
|
||
z-50 md:z-auto
|
||
flex-shrink-0
|
||
border-r border-gray-800 bg-black
|
||
flex flex-col
|
||
overflow-hidden
|
||
`,children:e.jsxs("div",{className:`w-64 h-full flex flex-col overflow-hidden ${i?"":"md:hidden"}`,children:[e.jsx("div",{className:"p-4 border-b border-gray-800 flex-shrink-0",children:e.jsxs("div",{className:"flex flex-col items-center justify-center",children:[e.jsx("img",{src:Ei,alt:"Royal Enfield Logo",className:"h-10 w-auto max-w-[168px] object-contain"}),e.jsx("p",{className:"text-xs text-gray-400 text-center mt-1 truncate",children:"RE Flow"})]})}),e.jsxs("div",{className:"p-3 flex-1 overflow-y-auto",children:[e.jsx("div",{className:"space-y-2",children:v.map(k=>e.jsxs("button",{onClick:()=>{a==null||a(k.id),window.innerWidth<768&&l(!1)},className:`w-full flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-colors ${s===k.id?"bg-re-green text-white font-medium":"text-gray-300 hover:bg-gray-900 hover:text-white"}`,children:[e.jsx(k.icon,{className:"w-4 h-4 shrink-0"}),e.jsx("span",{className:"truncate",children:k.label})]},k.id))}),!f&&e.jsx("div",{className:"mt-6 pt-6 border-t border-gray-800 px-3",children:e.jsxs(M,{onClick:r,className:"w-full bg-re-green hover:bg-re-green/90 text-white text-sm font-medium",size:"sm",children:[e.jsx(Us,{className:"w-4 h-4 mr-2"}),"Raise New Request"]})})]})]})}),e.jsxs("div",{className:"flex-1 flex flex-col min-w-0",children:[e.jsxs("header",{className:"h-16 border-b border-gray-200 bg-white flex items-center justify-between px-6 shrink-0",children:[e.jsx("div",{className:"flex items-center gap-4 min-w-0 flex-1",children:e.jsx(M,{variant:"ghost",size:"icon",onClick:w,className:"shrink-0 h-10 w-10 sidebar-toggle",children:i?e.jsx(gf,{className:"w-5 h-5 text-gray-600"}):e.jsx(ff,{className:"w-5 h-5 text-gray-600"})})}),e.jsxs("div",{className:"flex items-center gap-4 shrink-0",children:[!f&&e.jsxs(M,{onClick:r,className:"bg-re-green hover:bg-re-green/90 text-white gap-2 hidden md:flex text-sm",size:"sm",children:[e.jsx(Us,{className:"w-4 h-4"}),"New Request"]}),e.jsxs(Ad,{open:g,onOpenChange:p,children:[e.jsx(Sd,{asChild:!0,children:e.jsxs(M,{variant:"ghost",size:"icon",className:"relative shrink-0 h-10 w-10",children:[e.jsx(js,{className:"w-5 h-5"}),u>0&&e.jsx(le,{className:"absolute -top-1 -right-1 w-5 h-5 rounded-full bg-destructive text-destructive-foreground text-xs flex items-center justify-center p-0",children:u>9?"9+":u})]})}),e.jsxs(Td,{align:"end",className:"w-96 max-h-[500px]",children:[e.jsxs("div",{className:"p-3 border-b flex items-center justify-between sticky top-0 bg-white z-10",children:[e.jsx("h4",{className:"font-semibold text-base",children:"Notifications"}),u>0&&e.jsx(M,{variant:"ghost",size:"sm",className:"text-xs text-blue-600 hover:text-blue-700 h-auto p-1",onClick:k=>{k.stopPropagation(),S()},children:"Mark all as read"})]}),e.jsx("div",{className:"max-h-[400px] overflow-y-auto",children:d.length===0?e.jsxs("div",{className:"p-6 text-center",children:[e.jsx(js,{className:"w-12 h-12 text-gray-300 mx-auto mb-2"}),e.jsx("p",{className:"text-sm text-gray-500",children:"No notifications yet"})]}):e.jsx("div",{className:"divide-y",children:d.map(k=>e.jsx("div",{className:`p-3 hover:bg-gray-50 cursor-pointer transition-colors ${k.isRead?"":"bg-blue-50"}`,onClick:()=>A(k),children:e.jsxs("div",{className:"flex gap-2",children:[!k.isRead&&e.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-600 mt-1.5 shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:`text-sm ${k.isRead?"font-medium":"font-semibold"}`,children:k.title}),e.jsx("p",{className:"text-xs text-muted-foreground mt-0.5 line-clamp-2",children:k.message}),e.jsx("p",{className:"text-xs text-gray-400 mt-1",children:Nu(new Date(k.createdAt),{addSuffix:!0})})]})]})},k.notificationId))})}),d.length>0&&e.jsx("div",{className:"p-2 border-t",children:e.jsx(M,{variant:"ghost",className:"w-full text-sm text-blue-600 hover:text-blue-700",onClick:()=>{p(!1),a==null||a("notifications")},children:"View all notifications"})})]})]}),e.jsxs(Ad,{children:[e.jsx(Sd,{asChild:!0,children:e.jsxs(as,{className:"cursor-pointer shrink-0 h-10 w-10",children:[e.jsx(Mi,{src:(y==null?void 0:y.picture)||""}),e.jsx(rs,{className:"bg-re-green text-white text-sm",children:b()})]})}),e.jsxs(Td,{align:"end",children:[e.jsxs(el,{onClick:()=>a==null?void 0:a("profile"),children:[e.jsx(kt,{className:"w-4 h-4 mr-2"}),"Profile"]}),e.jsxs(el,{onClick:()=>a==null?void 0:a("settings"),children:[e.jsx($a,{className:"w-4 h-4 mr-2"}),"Settings"]}),e.jsxs(el,{onClick:()=>c(!0),className:"text-red-600 focus:text-red-600",children:[e.jsx(Ki,{className:"w-4 h-4 mr-2"}),"Logout"]})]})]})]})]}),e.jsx("main",{className:"flex-1 p-2 sm:p-4 lg:p-6 overflow-auto min-w-0",children:t})]}),e.jsx(Dy,{open:o,onOpenChange:c,children:e.jsxs(th,{children:[e.jsxs(Iy,{children:[e.jsxs(My,{className:"flex items-center gap-2",children:[e.jsx(Ki,{className:"w-5 h-5 text-red-600"}),"Confirm Logout"]}),e.jsx(Fy,{className:"pt-2",children:"Are you sure you want to logout? You will need to sign in again to access your account."})]}),e.jsxs(Ey,{children:[e.jsx(Ly,{onClick:()=>c(!1),children:"Cancel"}),e.jsxs(_y,{onClick:async()=>{if(c(!1),n)try{await n()}catch(k){console.error("🔴 Error calling onLogout:",k)}else console.error("🔴 ERROR: onLogout is undefined!")},className:"bg-red-600 hover:bg-red-700 text-white focus:ring-red-600",children:[e.jsx(Ki,{className:"w-4 h-4 mr-2"}),"Logout"]})]})]})})]})}const Dn=()=>T0(),Or=D0,Uy=()=>{try{const t=localStorage.getItem("dashboard_viewAsUser");return t?JSON.parse(t):!1}catch{return!1}},By={viewAsUser:Uy()},rh=_r({name:"dashboard",initialState:By,reducers:{setViewAsUser:(t,s)=>{t.viewAsUser=s.payload,localStorage.setItem("dashboard_viewAsUser",JSON.stringify(s.payload))}}}),{setViewAsUser:Vy}=rh.actions;function zy(){const[t,s]=x.useState("all"),[a,r]=x.useState(void 0),[n,i]=x.useState(void 0),[l,o]=x.useState(!1),c=x.useCallback(u=>{const h=u;s(h),h!=="custom"?(r(void 0),i(void 0),o(!1)):o(!0)},[]),d=x.useCallback(u=>{if(a&&n){if(a>n){const h=a;r(n),i(h),u(n,h)}else u(a,n);o(!1)}},[a,n]),m=x.useCallback(()=>{r(void 0),i(void 0),o(!1),s("all")},[]);return{dateRange:t,customStartDate:a,customEndDate:n,showCustomDatePicker:l,setDateRange:s,setCustomStartDate:r,setCustomEndDate:i,setShowCustomDatePicker:o,handleDateRangeChange:c,handleApplyCustomDate:d,resetCustomDates:m}}function Hy(){const[t,s]=x.useState({page:1,totalPages:1,totalRecords:0}),[a,r]=x.useState({page:1,totalPages:1,totalRecords:0}),[n,i]=x.useState({page:1,totalPages:1,totalRecords:0}),[l,o]=x.useState({page:1,totalPages:1,totalRecords:0}),c=x.useCallback((f,b,v)=>{s({page:f,totalPages:b,totalRecords:v})},[]),d=x.useCallback((f,b,v)=>{r({page:f,totalPages:b,totalRecords:v})},[]),m=x.useCallback((f,b,v)=>{i({page:f,totalPages:b,totalRecords:v})},[]),u=x.useCallback((f,b,v)=>{o({page:f,totalPages:b,totalRecords:v})},[]),h=x.useCallback((f,b)=>{f>=1&&f<=t.totalPages&&(s(v=>({...v,page:f})),b(f))},[t.totalPages]),g=x.useCallback((f,b)=>{f>=1&&f<=a.totalPages&&(r(v=>({...v,page:f})),b(f))},[a.totalPages]),p=x.useCallback((f,b)=>{f>=1&&f<=n.totalPages&&(i(v=>({...v,page:f})),b(f))},[n.totalPages]),y=x.useCallback((f,b)=>{f>=1&&f<=l.totalPages&&(o(v=>({...v,page:f})),b(f))},[l.totalPages]);return{activity:t,critical:a,deadlines:n,approver:l,updateActivityPagination:c,updateCriticalPagination:d,updateDeadlinesPagination:m,updateApproverPagination:u,handleActivityPageChange:h,handleCriticalPageChange:g,handleDeadlinesPageChange:p,handleApproverPageChange:y}}class Wy{async getKPIs(s,a,r,n){try{const i={dateRange:s};return s==="custom"&&a&&r&&(i.startDate=a.toISOString(),i.endDate=r.toISOString()),n&&(i.viewAsUser="true"),(await be.get("/dashboard/kpis",{params:i})).data.data}catch(i){throw console.error("Failed to fetch KPIs:",i),i}}async getRequestStats(s,a,r,n,i,l,o,c,d,m,u,h,g){try{const p={dateRange:s};return s==="custom"&&a&&r&&(p.startDate=a,p.endDate=r),n&&n!=="all"&&(p.status=n),i&&i!=="all"&&(p.priority=i),l&&l!=="all"&&(p.templateType=l),o&&o!=="all"&&(p.department=o),c&&c!=="all"&&(p.initiator=c),d&&d!=="all"&&(p.approver=d),m&&(p.approverType=m),u&&(p.search=u),h&&h!=="all"&&(p.slaCompliance=h),g&&(p.viewAsUser="true"),(await be.get("/dashboard/stats/requests",{params:p})).data.data}catch(p){throw console.error("Failed to fetch request stats:",p),p}}async getTATEfficiency(s){try{return(await be.get("/dashboard/stats/tat-efficiency",{params:{dateRange:s}})).data.data}catch(a){throw console.error("Failed to fetch TAT efficiency:",a),a}}async getApproverLoad(s){try{return(await be.get("/dashboard/stats/approver-load",{params:{dateRange:s}})).data.data}catch(a){throw console.error("Failed to fetch approver load:",a),a}}async getEngagementStats(s){try{return(await be.get("/dashboard/stats/engagement",{params:{dateRange:s}})).data.data}catch(a){throw console.error("Failed to fetch engagement stats:",a),a}}async getAIInsights(s){try{return(await be.get("/dashboard/stats/ai-insights",{params:{dateRange:s}})).data.data}catch(a){throw console.error("Failed to fetch AI insights:",a),a}}async getRecentActivity(s=1,a=10,r){try{const n={page:s,limit:a};r&&(n.viewAsUser="true");const i=await be.get("/dashboard/activity/recent",{params:n});return{activities:i.data.data,pagination:i.data.pagination}}catch(n){throw console.error("Failed to fetch recent activity:",n),n}}async getCriticalRequests(s=1,a=10,r){try{const n={page:s,limit:a};r&&(n.viewAsUser="true");const i=await be.get("/dashboard/requests/critical",{params:n});return{criticalRequests:i.data.data,pagination:i.data.pagination}}catch(n){throw console.error("Failed to fetch critical requests:",n),n}}async getUpcomingDeadlines(s=1,a=10,r){try{const n={page:s,limit:a};r&&(n.viewAsUser="true");const i=await be.get("/dashboard/deadlines/upcoming",{params:n});return{deadlines:i.data.data,pagination:i.data.pagination}}catch(n){throw console.error("Failed to fetch upcoming deadlines:",n),n}}async getDepartmentStats(s,a,r){try{const n={dateRange:s};return s==="custom"&&a&&r&&(n.startDate=a.toISOString(),n.endDate=r.toISOString()),(await be.get("/dashboard/stats/by-department",{params:n})).data.data}catch(n){throw console.error("Failed to fetch department stats:",n),n}}async getPriorityDistribution(s,a,r){try{const n={dateRange:s};return s==="custom"&&a&&r&&(n.startDate=a.toISOString(),n.endDate=r.toISOString()),(await be.get("/dashboard/stats/priority-distribution",{params:n})).data.data}catch(n){throw console.error("Failed to fetch priority distribution:",n),n}}async getAIRemarkUtilization(s,a,r){try{const n={dateRange:s};return s==="custom"&&a&&r&&(n.startDate=a.toISOString(),n.endDate=r.toISOString()),(await be.get("/dashboard/stats/ai-remark-utilization",{params:n})).data.data}catch(n){throw console.error("Failed to fetch AI remark utilization:",n),n}}async getApproverPerformance(s,a=1,r=10,n,i,l,o){try{const c={dateRange:s,page:a,limit:r||10};s==="custom"&&n&&i&&(c.startDate=n.toISOString(),c.endDate=i.toISOString()),l&&l!=="all"&&(c.priority=l),o&&o!=="all"&&(c.slaCompliance=o),console.log("[Dashboard Service] Fetching approver performance with params:",c);const d=await be.get("/dashboard/stats/approver-performance",{params:c});return{performance:d.data.data,pagination:d.data.pagination}}catch(c){throw console.error("Failed to fetch approver performance:",c),c}}async getLifecycleReport(s=1,a=50,r,n,i){try{const l={page:s,limit:a};r&&(l.dateRange=r),r==="custom"&&n&&i&&(l.startDate=n.toISOString(),l.endDate=i.toISOString());const o=await be.get("/dashboard/reports/lifecycle",{params:l});return{lifecycleData:o.data.data,pagination:o.data.pagination}}catch(l){throw console.error("Failed to fetch lifecycle report:",l),l}}async getActivityLogReport(s=1,a=50,r,n,i,l,o,c,d){try{const m={page:s,limit:a,filterUserId:n,filterType:i,filterCategory:l,filterSeverity:o};r&&(m.dateRange=r),r==="custom"&&c&&d&&(m.startDate=c.toISOString(),m.endDate=d.toISOString());const u=await be.get("/dashboard/reports/activity-log",{params:m});return{activities:u.data.data,pagination:u.data.pagination}}catch(m){throw console.error("Failed to fetch activity log report:",m),m}}async getDepartments(){try{return(await be.get("/dashboard/metadata/departments")).data.data.departments||[]}catch(s){throw console.error("Failed to fetch departments:",s),s}}async getWorkflowAgingReport(s=7,a=1,r=50,n,i,l){try{const o={threshold:s,page:a,limit:r};n&&(o.dateRange=n),n==="custom"&&i&&l&&(o.startDate=i.toISOString(),o.endDate=l.toISOString());const c=await be.get("/dashboard/reports/workflow-aging",{params:o});return{agingData:c.data.data,pagination:c.data.pagination}}catch(o){throw console.error("Failed to fetch workflow aging report:",o),o}}async getSingleApproverStats(s,a,r,n,i,l){try{const o={approverId:s};return a&&(o.dateRange=a),a==="custom"&&r&&n&&(o.startDate=r.toISOString(),o.endDate=n.toISOString()),i&&i!=="all"&&(o.priority=i),l&&l!=="all"&&(o.slaCompliance=l),(await be.get("/dashboard/stats/single-approver",{params:o})).data.data}catch(o){throw console.error("Failed to fetch single approver stats:",o),o}}async getRequestsByApprover(s,a=1,r=50,n,i,l,o,c,d,m){try{const u={approverId:s,page:a,limit:r};n&&(u.dateRange=n),n==="custom"&&i&&l&&(u.startDate=i.toISOString(),u.endDate=l.toISOString()),o&&(u.status=o),c&&(u.priority=c),d&&(u.slaCompliance=d),m&&(u.search=m);const h=await be.get("/dashboard/requests/by-approver",{params:u});return{requests:h.data.data,pagination:h.data.pagination}}catch(u){throw console.error("Failed to fetch requests by approver:",u),u}}}const Nt=new Wy;function Gy({isAdmin:t,viewAsUser:s=!1,userId:a,dateRange:r,customStartDate:n,customEndDate:i,onPaginationUpdate:l}){const[o,c]=x.useState(null),[d,m]=x.useState([]),[u,h]=x.useState([]),[g,p]=x.useState([]),[y,f]=x.useState([]),[b,v]=x.useState([]),[w,A]=x.useState(null),[S,k]=x.useState([]),[F,T]=x.useState(!0),[D,C]=x.useState(!1),P=x.useRef(l);P.current=l;const R=x.useCallback(async(N=!1)=>{try{N?C(!0):T(!0);const j=[Nt.getKPIs(r,n,i,s),Nt.getRecentActivity(1,10,s),Nt.getCriticalRequests(1,10,s),Nt.getUpcomingDeadlines(1,10,s)],U=!t&&a?Nt.getRequestStats(r,n==null?void 0:n.toISOString(),i==null?void 0:i.toISOString(),void 0,void 0,void 0,void 0,a,void 0,void 0,void 0,void 0,s):null,z=t?[Nt.getDepartmentStats(r,n,i),Nt.getPriorityDistribution(r,n,i),Nt.getAIRemarkUtilization(r,n,i),Nt.getApproverPerformance(r,1,10,n,i)]:[],[B,X,H]=await Promise.all([Promise.all(j),U,Promise.all(z)]),oe=B[0],Y=B[1],E=B[2],O=B[3];if(!t&&X&&(oe.requestVolume=X),c(oe),m(Y.activities),P.current.activity(Y.pagination.currentPage,Y.pagination.totalPages,Y.pagination.totalRecords),h(E.criticalRequests),P.current.critical(E.pagination.currentPage,E.pagination.totalPages,E.pagination.totalRecords),v(O.deadlines),P.current.deadlines(O.pagination.currentPage,O.pagination.totalPages,O.pagination.totalRecords),t&&H.length>=4){const L=H[0],W=H[1],G=H[2],ee=H[3];p(L),f(W),A(G),k(ee.performance),P.current.approver(ee.pagination.currentPage,ee.pagination.totalPages,ee.pagination.totalRecords)}else t||(p([]),f([]),A(null),k([]))}catch(j){console.error("Failed to fetch dashboard data:",j)}finally{T(!1),C(!1)}},[t,s,a,r,n,i]),V=x.useCallback(async(N=1)=>{try{const j=await Nt.getRecentActivity(N,10,s);m(j.activities),P.current.activity(j.pagination.currentPage,j.pagination.totalPages,j.pagination.totalRecords)}catch(j){console.error("Failed to fetch recent activities:",j)}},[s]),I=x.useCallback(async(N=1)=>{try{const j=await Nt.getCriticalRequests(N,10,s);h(j.criticalRequests),P.current.critical(j.pagination.currentPage,j.pagination.totalPages,j.pagination.totalRecords)}catch(j){console.error("Failed to fetch critical requests:",j)}},[s]),$=x.useCallback(async(N=1)=>{try{const j=await Nt.getUpcomingDeadlines(N,10,s);v(j.deadlines),P.current.deadlines(j.pagination.currentPage,j.pagination.totalPages,j.pagination.totalRecords)}catch(j){console.error("Failed to fetch upcoming deadlines:",j)}},[s]),_=x.useCallback(async(N=1)=>{try{const j=await Nt.getApproverPerformance(r,N,10,n,i);k(j.performance),P.current.approver(j.pagination.currentPage,j.pagination.totalPages,j.pagination.totalRecords)}catch(j){console.error("Failed to fetch approver performance:",j)}},[r,n,i]);return{kpis:o,recentActivity:d,criticalRequests:u,departmentStats:g,priorityDistribution:y,upcomingDeadlines:b,aiRemarkUtilization:w,approverPerformance:S,loading:F,refreshing:D,fetchDashboardData:R,fetchRecentActivities:V,fetchCriticalRequests:I,fetchUpcomingDeadlines:$,fetchApproverPerformance:_}}const Ca={appName:"Royal Enfield Workflow Management",appVersion:"1.2.0",workingHours:{START_HOUR:9,END_HOUR:18,START_DAY:1,END_DAY:5,TIMEZONE:"Asia/Kolkata"},tat:{thresholds:{warning:50,critical:75,breach:100},testMode:!1},upload:{maxFileSizeMB:10,allowedFileTypes:["pdf","doc","docx","xls","xlsx","ppt","pptx","jpg","jpeg","png","gif"],maxFilesPerRequest:10},workflow:{maxApprovalLevels:10,maxParticipants:50,maxSpectators:20},workNotes:{maxMessageLength:2e3,maxAttachmentsPerNote:5,enableReactions:!0,enableMentions:!0},features:{ENABLE_AI_CONCLUSION:!0,ENABLE_TEMPLATES:!1,ENABLE_ANALYTICS:!0,ENABLE_EXPORT:!0},ui:{DEFAULT_THEME:"light",DEFAULT_LANGUAGE:"en",DATE_FORMAT:"DD/MM/YYYY",TIME_FORMAT:"12h",CURRENCY:"INR",CURRENCY_SYMBOL:"₹"}};class Ky{constructor(){Hi(this,"config",null);Hi(this,"loading",null)}async getConfig(){return this.config?this.config:this.loading?this.loading:(this.loading=this.fetchConfig(),this.config=await this.loading,this.loading=null,this.config)}async fetchConfig(){var s;try{const a=await be.get("/config"),r=((s=a.data)==null?void 0:s.data)||a.data;return{...Ca,...r,workingHours:{...Ca.workingHours,...r.workingHours},tat:{...Ca.tat,...r.tat},upload:{...Ca.upload,...r.upload},workflow:{...Ca.workflow,...r.workflow},workNotes:{...Ca.workNotes,...r.workNotes},features:{...Ca.features,...r.features},ui:{...Ca.ui,...r.ui}}}catch(a){return console.error("[ConfigService] ⚠️ Failed to fetch config from server, using defaults:",a),Ca}}async refreshConfig(){return this.config=null,this.loading=null,this.getConfig()}getCachedConfig(){return this.config}isLoaded(){return this.config!==null}}const Yy=new Ky;let Zy=9,Xy=18,Qy=1,Jy=5,kd=!1;async function qy(){if(!kd)try{const t=await Yy.getConfig();Zy=t.workingHours.START_HOUR,Xy=t.workingHours.END_HOUR,Qy=t.workingHours.START_DAY,Jy=t.workingHours.END_DAY,kd=!0}catch{console.warn("[SLA Tracker] ⚠️ Using default working hours (9 AM - 6 PM)")}}qy().catch(()=>{});function Rt(t){if(t==null||t<0||t===0)return"0 hours";const s=8;if(t<1){const o=Math.round(t*60);return o>0?`${o}m`:"0 hours"}const a=Math.floor(t/s),r=Math.floor(t%s),n=Math.round(t%1*60);if(a>0){const o=a===1?"day":"days",c=r===1?"hour":"hours",d=n===1?"min":"m";return n>0?`${a} ${o} ${r} ${c} ${n}${d}`:`${a} ${o} ${r} ${c}`}const i=r===1?"hour":"hours",l=n===1?"min":"m";return n>0?`${r} ${i} ${n}${l}`:`${r} ${i}`}async function ev(t,s,a){const r=[];let n=1,i=!0;const l=100;for(;i&&n<=l;){const h=await Nt.getApproverPerformance(t,n,100,s,a);h.performance&&h.performance.length>0?(r.push(...h.performance),n++,i=n<=h.pagination.totalPages):i=!1}const o=[["Approver Name","Total Approved","TAT Compliance (%)","Avg Response Time","Pending Count"].join(",")];r.forEach(h=>{const g=[`"${(h.approverName||"Unknown").replace(/"/g,'""')}"`,h.totalApproved||0,h.tatCompliancePercent||0,Rt(h.avgResponseHours),h.pendingCount||0];o.push(g.join(","))});const c=o.join(`
|
||
`),d=new Blob([c],{type:"text/csv;charset=utf-8;"}),m=document.createElement("a"),u=URL.createObjectURL(d);m.setAttribute("href",u),m.setAttribute("download",`approver-performance-report-${new Date().toISOString().split("T")[0]}.csv`),m.style.visibility="hidden",document.body.appendChild(m),m.click(),document.body.removeChild(m),URL.revokeObjectURL(u)}async function tv(t,s,a){const r=await Nt.getDepartmentStats(t,s,a),n=[["Department","Total Requests","Approved","Rejected","In Progress","Approval Rate (%)"].join(",")];r.forEach(d=>{const m=[`"${(d.department||"Unknown").replace(/"/g,'""')}"`,d.totalRequests||0,d.approved||0,d.rejected||0,d.inProgress||0,d.approvalRate||0];n.push(m.join(","))});const i=n.join(`
|
||
`),l=new Blob([i],{type:"text/csv;charset=utf-8;"}),o=document.createElement("a"),c=URL.createObjectURL(l);o.setAttribute("href",c),o.setAttribute("download",`department-workflow-summary-${new Date().toISOString().split("T")[0]}.csv`),o.style.visibility="hidden",document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(c)}function sv(){const[t,s]=x.useState(!1),[a,r]=x.useState(!1),n=x.useCallback(async(l,o,c)=>{try{s(!0),await tv(l,o,c)}catch(d){console.error("Failed to export department stats:",d),alert("Failed to export department statistics. Please try again.")}finally{s(!1)}},[]),i=x.useCallback(async(l,o,c)=>{try{r(!0),await ev(l,o,c)}catch(d){console.error("Failed to export approver performance:",d),alert("Failed to export approver performance data. Please try again.")}finally{r(!1)}},[]);return{exportingDeptStats:t,exportingApproverPerformance:a,handleExportDepartmentStats:n,handleExportApproverPerformance:i}}function ws({className:t,...s}){return e.jsx(lg,{"data-slot":"switch",className:we("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-switch-background focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",t),...s,children:e.jsx(og,{"data-slot":"switch-thumb",className:we("bg-card dark:data-[state=unchecked]:bg-card-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")})})}function re({className:t,...s}){return e.jsx(cg,{"data-slot":"label",className:we("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",t),...s})}function av({isAdmin:t,effectiveIsAdmin:s,viewAsUser:a,onToggleView:r,quickActions:n,userDisplayName:i,userEmail:l}){const o=i||(l==null?void 0:l.split("@")[0])||"User";return e.jsxs(te,{className:"relative overflow-hidden shadow-xl border-0","data-testid":"dashboard-hero",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-slate-900 via-slate-800 to-slate-900"}),e.jsxs(se,{className:"relative z-10 p-4 sm:p-6 lg:p-12",children:[t&&e.jsx("div",{className:"absolute top-4 right-4 sm:top-6 sm:right-6 z-20","data-testid":"view-toggle",children:e.jsxs("div",{className:"flex items-center gap-1.5 sm:gap-2 p-1.5 sm:p-2 bg-white/10 backdrop-blur-sm rounded-lg border border-white/20 shadow-lg",children:[e.jsxs("div",{className:`flex items-center gap-1 sm:gap-1.5 px-1.5 sm:px-2 py-0.5 sm:py-1 rounded transition-all cursor-pointer ${a?"opacity-60 hover:opacity-80":"bg-red-600/20 border border-red-600/50"}`,onClick:()=>r(!1),children:[e.jsx(go,{className:`w-3 h-3 sm:w-3.5 sm:h-3.5 ${a?"text-gray-300":"text-red-600"}`}),e.jsx(re,{htmlFor:"view-toggle-switch",className:`text-[10px] sm:text-xs font-medium cursor-pointer whitespace-nowrap ${a?"text-gray-300":"text-red-600"}`,children:"Org"})]}),e.jsx(ws,{id:"view-toggle-switch",checked:a,onCheckedChange:r,className:"data-[state=checked]:bg-red-600 data-[state=unchecked]:bg-gray-600 shrink-0 scale-90 sm:scale-100","data-testid":"view-toggle-switch"}),e.jsxs("div",{className:`flex items-center gap-1 sm:gap-1.5 px-1.5 sm:px-2 py-0.5 sm:py-1 rounded transition-all cursor-pointer ${a?"bg-red-600/20 border border-red-600/50":"opacity-60 hover:opacity-80"}`,onClick:()=>r(!0),children:[e.jsx(kt,{className:`w-3 h-3 sm:w-3.5 sm:h-3.5 ${a?"text-red-600":"text-gray-300"}`}),e.jsx(re,{htmlFor:"view-toggle-switch",className:`text-[10px] sm:text-xs font-medium cursor-pointer whitespace-nowrap ${a?"text-red-600":"text-gray-300"}`,children:"Personal"})]})]})}),e.jsx("div",{className:"flex flex-col lg:flex-row items-start lg:items-center justify-between gap-4 sm:gap-6",children:e.jsxs("div",{className:`text-white w-full lg:w-auto ${t?"pt-12 sm:pt-0":""}`,children:[e.jsx("div",{className:"flex items-center gap-3 sm:gap-4 mb-4 sm:mb-6",children:e.jsxs("div",{className:"pr-2 sm:pr-0",children:[e.jsxs("h1",{className:"text-2xl sm:text-3xl lg:text-4xl font-bold mb-1 sm:mb-2 text-white","data-testid":"hero-title",children:["Welcome, ",o,"!"]}),e.jsx("p",{className:"text-sm sm:text-lg lg:text-xl text-gray-200","data-testid":"hero-subtitle",children:s?"Organization-wide analytics and insights":"Track your requests and approvals"})]})}),e.jsx("div",{className:"flex flex-wrap gap-2 sm:gap-4 mt-4 sm:mt-8","data-testid":"quick-actions",children:n.map((c,d)=>e.jsxs(M,{onClick:c.action,className:`${c.color} text-white border-0 shadow-lg hover:shadow-xl transition-all duration-200`,size:window.innerWidth<640?"sm":"lg","data-testid":`quick-action-${c.label.toLowerCase().replace(/\s+/g,"-")}`,children:[e.jsx(c.icon,{className:"w-4 h-4 sm:w-5 sm:h-5 mr-1 sm:mr-2"}),c.label]},d))})]})})]})]})}function Be({...t}){return e.jsx(dg,{"data-slot":"select",...t})}function Ve({...t}){return e.jsx(hg,{"data-slot":"select-value",...t})}function ze({className:t,size:s="default",children:a,...r}){return e.jsxs(mg,{"data-slot":"select-trigger","data-size":s,className:we("border-gray-400 data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground bg-white text-gray-900 flex w-full items-center justify-between gap-2 rounded-md border px-3 py-2 text-sm whitespace-nowrap transition-all outline-none disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","hover:border-gray-500","focus-visible:border-re-light-green focus-visible:ring-0 focus-visible:outline-none","aria-invalid:ring-destructive/20 aria-invalid:border-destructive",t),...r,children:[a,e.jsx(ug,{asChild:!0,children:e.jsx(ku,{className:"size-4 opacity-50"})})]})}function He({className:t,children:s,position:a="popper",...r}){return e.jsx(xg,{children:e.jsxs(pg,{"data-slot":"select-content",className:we("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",a==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:a,...r,children:[e.jsx(rv,{}),e.jsx(gg,{className:we("p-1",a==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:s}),e.jsx(nv,{})]})})}function K({className:t,children:s,...a}){return e.jsxs(fg,{"data-slot":"select-item",className:we("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",t),...a,children:[e.jsx("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:e.jsx(yg,{children:e.jsx(Fr,{className:"size-4"})})}),e.jsx(vg,{children:s})]})}function rv({className:t,...s}){return e.jsx(bg,{"data-slot":"select-scroll-up-button",className:we("flex cursor-default items-center justify-center py-1",t),...s,children:e.jsx(yf,{className:"size-4"})})}function nv({className:t,...s}){return e.jsx(jg,{"data-slot":"select-scroll-down-button",className:we("flex cursor-default items-center justify-center py-1",t),...s,children:e.jsx(ku,{className:"size-4"})})}function Vt({className:t,orientation:s="horizontal",decorative:a=!0,...r}){return e.jsx(Ng,{"data-slot":"separator-root",decorative:a,orientation:s,className:we("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",t),...r})}function oa({...t}){return e.jsx(wg,{"data-slot":"popover",...t})}function ca({...t}){return e.jsx(Cg,{"data-slot":"popover-trigger",...t})}function da({className:t,align:s="center",sideOffset:a=4,...r}){return e.jsx(Ag,{children:e.jsx(Sg,{"data-slot":"popover-content",align:s,sideOffset:a,className:we("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",t),...r})})}function Se({className:t,type:s,...a}){return e.jsx("input",{type:s,"data-slot":"input",className:we("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground flex h-9 w-full min-w-0 rounded-md border border-gray-400 bg-white px-3 py-1 text-base text-gray-900 transition-all outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-re-light-green focus-visible:ring-0 focus-visible:outline-none","hover:border-gray-500","aria-invalid:ring-destructive/20 aria-invalid:border-destructive",t),...a})}function iv({isAdmin:t,dateRange:s,customStartDate:a,customEndDate:r,showCustomDatePicker:n,refreshing:i,onDateRangeChange:l,onCustomStartDateChange:o,onCustomEndDateChange:c,onShowCustomDatePickerChange:d,onApplyCustomDate:m,onResetCustomDates:u,onRefresh:h}){return e.jsx(te,{className:"shadow-md","data-testid":"dashboard-filters-bar",children:e.jsx(se,{className:"p-4",children:e.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ha,{className:"w-5 h-5 text-muted-foreground"}),e.jsx("h3",{className:"font-semibold text-gray-900",children:"Filters"}),t&&e.jsx(le,{variant:"outline",className:"bg-purple-50 text-purple-700 border-purple-200","data-testid":"management-badge",children:"Management View"})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-3 w-full sm:w-auto",children:[t?e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ut,{className:"w-4 h-4 text-muted-foreground"}),e.jsxs(Be,{value:s,onValueChange:l,"data-testid":"date-range-select",children:[e.jsx(ze,{className:"w-[140px]",children:e.jsx(Ve,{placeholder:"Select period"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Time"}),e.jsx(K,{value:"today",children:"Today"}),e.jsx(K,{value:"week",children:"This Week"}),e.jsx(K,{value:"month",children:"This Month"}),e.jsx(K,{value:"last7days",children:"Last 7 Days"}),e.jsx(K,{value:"last30days",children:"Last 30 Days"}),e.jsx(K,{value:"custom",children:"Custom Range"})]})]}),s==="custom"&&e.jsxs(oa,{open:n,onOpenChange:d,children:[e.jsx(ca,{asChild:!0,children:e.jsxs(M,{variant:"outline",size:"sm",className:"gap-2","data-testid":"custom-date-trigger",children:[e.jsx(ut,{className:"w-4 h-4"}),a&&r?`${De(a,"MMM d, yyyy")} - ${De(r,"MMM d, yyyy")}`:"Select dates"]})}),e.jsx(da,{className:"w-auto p-4",align:"start",sideOffset:8,"data-testid":"custom-date-picker",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"start-date",className:"text-sm font-medium",children:"Start Date"}),e.jsx(Se,{id:"start-date",type:"date",value:a?De(a,"yyyy-MM-dd"):"",onChange:g=>{const p=g.target.value?new Date(g.target.value):void 0;p?(o(p),r&&p>r&&c(p)):o(void 0)},max:De(new Date,"yyyy-MM-dd"),className:"w-full","data-testid":"start-date-input"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"end-date",className:"text-sm font-medium",children:"End Date"}),e.jsx(Se,{id:"end-date",type:"date",value:r?De(r,"yyyy-MM-dd"):"",onChange:g=>{const p=g.target.value?new Date(g.target.value):void 0;p?(c(p),a&&p<a&&o(p)):c(void 0)},min:a?De(a,"yyyy-MM-dd"):void 0,max:De(new Date,"yyyy-MM-dd"),className:"w-full","data-testid":"end-date-input"})]})]}),e.jsxs("div",{className:"flex gap-2 pt-2 border-t",children:[e.jsx(M,{size:"sm",onClick:m,disabled:!a||!r,className:"flex-1 bg-re-green hover:bg-re-green/90","data-testid":"apply-custom-date",children:"Apply"}),e.jsx(M,{size:"sm",variant:"outline",onClick:u,"data-testid":"cancel-custom-date",children:"Cancel"})]})]})})]})]}):e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ut,{className:"w-4 h-4 text-muted-foreground"}),e.jsxs(Be,{value:s,onValueChange:g=>l(g),"data-testid":"date-range-select-user",children:[e.jsx(ze,{className:"w-[140px]",children:e.jsx(Ve,{placeholder:"Select period"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Time"}),e.jsx(K,{value:"today",children:"Today"}),e.jsx(K,{value:"week",children:"This Week"}),e.jsx(K,{value:"month",children:"This Month"}),e.jsx(K,{value:"last7days",children:"Last 7 Days"}),e.jsx(K,{value:"last30days",children:"Last 30 Days"}),e.jsx(K,{value:"custom",children:"Custom Range"})]})]})]}),e.jsx(Vt,{orientation:"vertical",className:"h-6 hidden sm:block"}),e.jsxs(M,{variant:"outline",size:"sm",onClick:h,disabled:i,className:"gap-2 min-w-[110px]","data-testid":"refresh-button",children:[e.jsx(Bt,{className:`w-4 h-4 ${i?"animate-spin":""}`}),e.jsx("span",{className:"inline-block w-[60px] text-center",children:i?"Refreshing...":"Refresh"})]})]})]})})})}function cr({title:t,value:s,icon:a,iconBgColor:r,iconColor:n,subtitle:i,children:l,testId:o="kpi-card",onClick:c,onJustifyClick:d,showJustifyButton:m=!1}){const u=h=>{h.stopPropagation(),d==null||d()};return e.jsxs(te,{className:"hover:shadow-lg transition-all duration-200 shadow-md cursor-pointer h-full flex flex-col",onClick:c,"data-testid":o,children:[e.jsxs(ue,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(he,{className:"text-sm font-medium text-muted-foreground","data-testid":`${o}-title`,children:t}),e.jsxs("div",{className:"flex items-center gap-2",children:[m&&d&&e.jsx("button",{type:"button",onClick:u,className:"p-1.5 rounded-md text-gray-500 hover:text-gray-700 hover:bg-gray-100 transition-colors","data-testid":`${o}-justify-button`,title:"View detailed breakdown of numbers","aria-label":"View detailed breakdown",children:e.jsx(kn,{className:"h-4 w-4"})}),e.jsx("div",{className:`p-1.5 sm:p-2 rounded-lg ${r}`,"data-testid":`${o}-icon-wrapper`,children:e.jsx(a,{className:`h-4 w-4 sm:h-4 sm:w-4 ${n}`,"data-testid":`${o}-icon`})})]})]}),e.jsxs(se,{className:"flex flex-col flex-1 py-3",children:[e.jsx("div",{className:"text-xl sm:text-2xl font-bold text-gray-900 mb-2","data-testid":`${o}-value`,children:s}),i&&e.jsx("div",{className:"text-xs text-muted-foreground mb-2","data-testid":`${o}-subtitle`,children:i}),l&&e.jsx("div",{className:"flex-1 flex flex-col","data-testid":`${o}-children`,children:l})]})]})}function ds({label:t,value:s,bgColor:a,textColor:r,testId:n="stat-card",children:i,onClick:l}){return e.jsxs("div",{className:`${a} rounded-lg p-2 sm:p-3 ${l?"cursor-pointer hover:shadow-md transition-shadow":""}`,"data-testid":n,onClick:l,children:[e.jsx("p",{className:"text-xs text-gray-600 mb-1 leading-tight","data-testid":`${n}-label`,children:t}),e.jsx("p",{className:`text-lg sm:text-xl font-bold ${r}`,"data-testid":`${n}-value`,children:s}),i]})}function ea({className:t,value:s,indicatorClassName:a,...r}){return e.jsx(Tg,{"data-slot":"progress",className:we("bg-primary/20 relative h-2 w-full overflow-hidden rounded-full",t),...r,children:e.jsx(kg,{"data-slot":"progress-indicator",className:we("bg-primary h-full w-full flex-1 transition-all",a),style:{transform:`translateX(-${100-(s||0)}%)`}})})}function lv({kpis:t,priorityDistribution:s,dateRange:a,customStartDate:r,customEndDate:n,onKPIClick:i}){const l=()=>({dateRange:a,startDate:r,endDate:n});return e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 sm:gap-6","data-testid":"admin-kpi-cards",children:[e.jsxs(cr,{title:"Total Requests",value:(t==null?void 0:t.requestVolume.totalRequests)||0,icon:_e,iconBgColor:"bg-blue-50",iconColor:"text-blue-600",testId:"kpi-total-requests",onClick:()=>i(l()),children:[e.jsxs("div",{className:"grid grid-cols-2 gap-2 mb-2",children:[e.jsx(ds,{label:"Approved",value:(t==null?void 0:t.requestVolume.approvedRequests)||0,bgColor:"bg-green-50",textColor:"text-green-600",testId:"stat-approved",onClick:o=>{o.stopPropagation(),i({...l(),status:"approved"})}}),e.jsx(ds,{label:"Rejected",value:(t==null?void 0:t.requestVolume.rejectedRequests)||0,bgColor:"bg-red-50",textColor:"text-red-600",testId:"stat-rejected",onClick:o=>{o.stopPropagation(),i({...l(),status:"rejected"})}})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 mb-2",children:[e.jsx(ds,{label:"Pending",value:(t==null?void 0:t.requestVolume.openRequests)||0,bgColor:"bg-orange-50",textColor:"text-orange-600",testId:"stat-pending",onClick:o=>{o.stopPropagation(),i({...l(),status:"pending"})}}),e.jsx(ds,{label:"Closed",value:(t==null?void 0:t.requestVolume.closedRequests)||0,bgColor:"bg-gray-50",textColor:"text-gray-600",testId:"stat-closed",onClick:o=>{o.stopPropagation(),i({...l(),status:"closed"})}})]}),(t==null?void 0:t.requestVolume.pausedRequests)!==void 0&&e.jsx("div",{className:"grid grid-cols-2 gap-2",children:e.jsx(ds,{label:"Paused",value:t.requestVolume.pausedRequests||0,bgColor:"bg-orange-100",textColor:"text-orange-700",testId:"stat-paused",onClick:o=>{o.stopPropagation(),i({...l(),status:"paused"})}})})]}),e.jsx(cr,{title:"SLA Compliance",value:`${(t==null?void 0:t.tatEfficiency.avgTATCompliance)||0}%`,icon:_t,iconBgColor:"bg-green-50",iconColor:"text-green-600",testId:"kpi-sla-compliance",onClick:()=>i(l()),children:e.jsxs("div",{className:"flex flex-col flex-1",children:[e.jsx(ea,{value:(t==null?void 0:t.tatEfficiency.avgTATCompliance)||0,className:"h-2 mb-2","data-testid":"sla-progress-bar"}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 mt-auto",children:[e.jsx(ds,{label:"Compliant",value:(t==null?void 0:t.tatEfficiency.compliantWorkflows)||0,bgColor:"bg-green-50",textColor:"text-green-600",testId:"stat-compliant",onClick:o=>{o.stopPropagation(),i({...l(),slaCompliance:"compliant"})}}),e.jsx(ds,{label:"Breached",value:(t==null?void 0:t.tatEfficiency.delayedWorkflows)||0,bgColor:"bg-red-50",textColor:"text-red-600",testId:"stat-breached",onClick:o=>{o.stopPropagation(),i({...l(),slaCompliance:"breached"})}})]})]})}),e.jsx(cr,{title:"Avg Cycle Time",value:t!=null&&t.tatEfficiency.avgCycleTimeHours?Rt(t.tatEfficiency.avgCycleTimeHours):"0 hours",icon:Ye,iconBgColor:"bg-purple-50",iconColor:"text-purple-600",subtitle:`≈ ${(t==null?void 0:t.tatEfficiency.avgCycleTimeDays.toFixed(1))||0} working days`,testId:"kpi-avg-cycle-time",onClick:()=>i(l()),children:e.jsx("div",{className:"flex flex-col flex-1",children:e.jsxs("div",{className:"grid grid-cols-2 gap-2 mt-auto",children:[e.jsx(ds,{label:"Express",value:(()=>{const o=s.find(d=>d.priority==="express"),c=o?Number(o.avgCycleTimeHours):0;return c>0?Rt(c):"N/A"})(),bgColor:"bg-orange-50",textColor:"text-orange-600",testId:"stat-express-time",onClick:o=>{o.stopPropagation(),i({...l(),priority:"express"})}}),e.jsx(ds,{label:"Standard",value:(()=>{const o=s.find(d=>d.priority==="standard"),c=o?Number(o.avgCycleTimeHours):0;return c>0?Rt(c):"N/A"})(),bgColor:"bg-blue-50",textColor:"text-blue-600",testId:"stat-standard-time",onClick:o=>{o.stopPropagation(),i({...l(),priority:"standard"})}})]})})})]})}function ov({kpis:t,criticalRequests:s,dateRange:a,customStartDate:r,customEndDate:n,onKPIClick:i,onNavigate:l,userId:o,userDisplayName:c}){const d=()=>({dateRange:a,startDate:r,endDate:n}),m=()=>{if(!o)return;const h=new URLSearchParams;h.set("approverId",o),h.set("approverName",c||"My Performance"),h.set("dateRange",a),a==="custom"&&r&&n&&(h.set("startDate",r.toISOString()),h.set("endDate",n.toISOString())),l==null||l(`/approver-performance?${h.toString()}`)},u=t&&t.requestVolume.totalRequests>0?t.requestVolume.approvedRequests/t.requestVolume.totalRequests*100:0;return e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-3 sm:gap-4 items-stretch","data-testid":"user-kpi-cards",children:[e.jsx(cr,{title:"My Requests (Submitted)",value:(t==null?void 0:t.requestVolume.totalRequests)||0,icon:_e,iconBgColor:"bg-blue-50",iconColor:"text-blue-600",testId:"kpi-my-requests",onClick:()=>i(d()),children:e.jsxs("div",{className:"grid grid-cols-3 gap-1.5 sm:gap-2",children:[e.jsx(ds,{label:"Approved",value:(t==null?void 0:t.requestVolume.approvedRequests)||0,bgColor:"bg-green-50",textColor:"text-green-600",testId:"stat-user-approved",onClick:h=>{h.stopPropagation(),i({...d(),status:"approved"})}}),e.jsx(ds,{label:"Pending",value:(t==null?void 0:t.requestVolume.openRequests)||0,bgColor:"bg-orange-50",textColor:"text-orange-600",testId:"stat-user-pending",onClick:h=>{h.stopPropagation(),i({...d(),status:"pending"})}}),e.jsx(ds,{label:"Paused",value:(t==null?void 0:t.requestVolume.pausedRequests)||0,bgColor:"bg-amber-50",textColor:"text-amber-600",testId:"stat-user-paused",onClick:h=>{h.stopPropagation(),i({...d(),status:"paused"})}}),e.jsx(ds,{label:"Rejected",value:(t==null?void 0:t.requestVolume.rejectedRequests)||0,bgColor:"bg-red-50",textColor:"text-red-600",testId:"stat-user-rejected",onClick:h=>{h.stopPropagation(),i({...d(),status:"rejected"})}}),e.jsx(ds,{label:"Closed",value:(t==null?void 0:t.requestVolume.closedRequests)||0,bgColor:"bg-blue-50",textColor:"text-blue-600",testId:"stat-user-closed",onClick:h=>{h.stopPropagation(),i({...d(),status:"closed"})}})]})}),e.jsx(cr,{title:"Awaiting My Approval",value:(t==null?void 0:t.approverLoad.pendingActions)||0,icon:Ye,iconBgColor:"bg-orange-50",iconColor:"text-orange-600",subtitle:"at current level",testId:"kpi-pending-actions",onClick:()=>i({...d(),targetPage:"open-requests",status:"pending"}),onJustifyClick:m,showJustifyButton:!!o,children:e.jsxs("div",{className:"grid grid-cols-2 gap-2 mt-auto",children:[e.jsx(ds,{label:"Approved Today",value:(t==null?void 0:t.approverLoad.completedToday)||0,bgColor:"bg-blue-50",textColor:"text-blue-600",testId:"stat-today",onClick:h=>{h.stopPropagation(),i({...d(),targetPage:"open-requests",status:"pending"})}}),e.jsx(ds,{label:"This Week",value:(t==null?void 0:t.approverLoad.completedThisWeek)||0,bgColor:"bg-green-50",textColor:"text-green-600",testId:"stat-week",onClick:h=>{h.stopPropagation(),i({...d(),targetPage:"open-requests",status:"pending"})}})]})}),e.jsx(cr,{title:"Critical Alerts",value:s.length,icon:ha,iconBgColor:"bg-red-50",iconColor:"text-red-600",testId:"kpi-user-critical",onClick:()=>i({...d(),targetPage:"open-requests"}),onJustifyClick:m,showJustifyButton:!!o,children:e.jsxs("div",{className:"grid grid-cols-2 gap-2 mt-auto",children:[e.jsx(ds,{label:"Breached",value:s.filter(h=>h.breachCount>0).length,bgColor:"bg-orange-50",textColor:"text-red-600",testId:"stat-user-breached",onClick:h=>{h.stopPropagation(),i({...d(),targetPage:"open-requests"})}}),e.jsx(ds,{label:"Warning",value:s.filter(h=>h.breachCount===0).length,bgColor:"bg-yellow-50",textColor:"text-orange-600",testId:"stat-user-warning",onClick:h=>{h.stopPropagation(),i({...d(),targetPage:"open-requests"})}})]})}),e.jsx(cr,{title:"Success Rate",value:`${u.toFixed(0)}%`,icon:Ce,iconBgColor:"bg-green-50",iconColor:"text-green-600",subtitle:`of ${(t==null?void 0:t.requestVolume.totalRequests)||0} requests approved`,testId:"kpi-success-rate",children:e.jsxs("div",{className:"space-y-4 mt-3 flex flex-col flex-1",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsx(ea,{value:u,className:"h-4 bg-gray-200 [&>div]:bg-green-600","data-testid":"success-rate-progress"}),e.jsxs("div",{className:"flex justify-between items-center text-xs",children:[e.jsx("span",{className:"text-muted-foreground",children:"Rejected"}),e.jsx("span",{className:"font-semibold text-red-600",children:(t==null?void 0:t.requestVolume.rejectedRequests)||0})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 mt-auto",children:[e.jsxs("div",{className:"bg-green-50 rounded-lg p-2 text-center",children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"Approved"}),e.jsx("div",{className:"text-lg font-semibold text-green-600",children:(t==null?void 0:t.requestVolume.approvedRequests)||0})]}),e.jsxs("div",{className:"bg-red-50 rounded-lg p-2 text-center",children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"Rejected"}),e.jsx("div",{className:"text-lg font-semibold text-red-600",children:(t==null?void 0:t.requestVolume.rejectedRequests)||0})]})]})]})})]})}const cv=t=>{if(!t.originalTATHours||t.originalTATHours===0)return 0;const s=t.originalTATHours,a=t.totalTATHours;if(a<=0)return 100;const n=(s-a)/s*100;return Math.min(100,Math.max(0,Math.round(n)))},dv=t=>{if(t.totalTATHours===void 0||t.totalTATHours===null)return"N/A";const s=t.totalTATHours;if(s<=0){const a=Math.abs(s);return a<1?"Breached":a<24?`${Math.round(a)}h overdue`:`${Math.round(a/24)}d overdue`}return s<1?`${Math.round(s*60)}min left`:s<24?`${Math.round(s)}h left`:`${Math.round(s/24)}d left`};function mv({alert:t,onNavigate:s,testId:a="critical-alert-card"}){const r=cv(t);return e.jsxs("div",{className:"p-3 sm:p-4 bg-red-50 rounded-lg sm:rounded-xl border border-red-100 hover:shadow-md transition-all duration-200 cursor-pointer",onClick:()=>s==null?void 0:s(t.requestNumber),"data-testid":`${a}-${t.requestId}`,children:[e.jsxs("div",{className:"flex items-start justify-between gap-2 mb-2 sm:mb-3",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-1 sm:gap-2 mb-1 flex-wrap",children:[e.jsx("p",{className:"font-semibold text-xs sm:text-sm text-gray-900","data-testid":`${a}-request-number`,children:t.requestNumber}),t.priority==="express"&&e.jsx(vf,{className:"h-3 w-3 text-red-500 flex-shrink-0","data-testid":`${a}-priority-icon`}),t.breachCount>0&&e.jsx(le,{variant:"destructive",className:"text-xs","data-testid":`${a}-breach-count`,children:t.breachCount})]}),e.jsx("p",{className:"text-xs sm:text-sm text-gray-700 line-clamp-2","data-testid":`${a}-title`,children:t.title})]}),e.jsx(le,{variant:"outline",className:"text-xs bg-white border-red-200 text-red-700 font-medium whitespace-nowrap","data-testid":`${a}-remaining-time`,children:dv(t)})]}),e.jsxs("div",{className:"space-y-1 sm:space-y-2",children:[e.jsxs("div",{className:"flex justify-between text-xs text-gray-600",children:[e.jsx("span",{children:"TAT Used"}),e.jsxs("span",{className:"font-medium","data-testid":`${a}-progress-percentage`,children:[r,"%"]})]}),e.jsx(ea,{value:r,className:`h-1.5 sm:h-2 ${r>=80?"[&>div]:bg-red-600":r>=50?"[&>div]:bg-orange-500":"[&>div]:bg-green-600"}`,"data-testid":`${a}-progress-bar`})]})]})}function uv(t){return t.filter(s=>{const a=(s.breachCount||0)>0,r=s.isCritical===!0,n=s.status;return n?(a||r)&&(n==="pending"||n==="in-progress"||n==="PENDING"||n==="IN_PROGRESS"):a||r})}function hv(t){return t.filter(s=>{const a=Number(s.tatPercentageUsed)||0;return(Number(s.remainingHours)||0)>0&&a<100})}function xv(t){if(t<=0)return"Just breached";if(t<1)return`${Math.round(t*60)} min`;const s=8;if(t<s){const n=Math.floor(t),i=Math.round((t-n)*60);return i>0?`${n}h ${i}m`:`${n}h`}const a=Math.floor(t/s),r=t%s;if(r>0){const n=Math.floor(r),i=Math.round((r-n)*60);return i>0?`${a}d ${n}h ${i}m`:`${a}d ${n}h`}return`${a}d`}function pv(t){return t>=95?"bg-green-100 text-green-700":t>=90?"bg-blue-100 text-blue-700":t>=85?"bg-orange-100 text-orange-700":"bg-red-100 text-red-700"}function nh(t,s,a=3){const r=[];let n=Math.max(1,t-Math.floor(a/2)),i=Math.min(s,n+a-1);i-n<a-1&&(n=Math.max(1,i-a+1));for(let l=n;l<=i;l++)r.push(l);return r}function gv({isAdmin:t,breachedRequests:s,pagination:a,onPageChange:r,onNavigate:n}){return e.jsxs(te,{className:"lg:col-span-2 shadow-md hover:shadow-lg transition-shadow flex flex-col overflow-hidden",style:{height:"100%"},"data-testid":"critical-alerts-section",children:[e.jsx(ue,{className:"pb-3 sm:pb-4 flex-shrink-0",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2 sm:gap-3",children:[e.jsx("div",{className:"p-2 sm:p-3 bg-red-100 rounded-lg",children:e.jsx(ha,{className:"h-4 w-4 sm:h-5 sm:w-5 text-red-600"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-base sm:text-lg text-gray-900",children:"Critical Alerts"}),e.jsx(Te,{className:"text-xs sm:text-sm text-gray-600",children:t?"Organization-wide":"My requests"})]})]}),e.jsx(le,{variant:"destructive",className:`font-semibold text-xs sm:text-sm ${a.totalRecords>0?"animate-pulse":""}`,"data-testid":"critical-count-badge",children:a.totalRecords})]})}),e.jsx(se,{className:"overflow-y-auto flex-1 p-4",style:{maxHeight:a.totalPages>1?"calc(100% - 140px)":"calc(100% - 80px)"},children:e.jsx("div",{className:"space-y-3 sm:space-y-4",children:s.length===0?e.jsxs("div",{className:"text-center py-6 sm:py-8 text-muted-foreground","data-testid":"no-critical-alerts",children:[e.jsx(Ce,{className:"w-10 h-10 sm:w-12 sm:h-12 mx-auto mb-2 text-green-500"}),e.jsx("p",{className:"text-sm",children:"No critical alerts"}),e.jsx("p",{className:"text-xs",children:"All requests are within TAT"})]}):s.map(i=>e.jsx(mv,{alert:i,onNavigate:l=>n==null?void 0:n(`request/${l}`),testId:"dashboard-critical-alert"},i.requestId))})}),a.totalPages>1&&s.length>0&&e.jsx("div",{className:"border-t bg-gray-50 px-4 py-2 flex-shrink-0",children:e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsxs("div",{className:"text-xs text-muted-foreground text-center",children:["Page ",a.page," of ",a.totalPages," (",a.totalRecords," total)"]}),e.jsxs("div",{className:"flex items-center justify-center gap-1 flex-wrap",children:[e.jsx(M,{variant:"outline",size:"sm",onClick:()=>r(a.page-1),disabled:a.page===1,className:"h-7 w-7 p-0","data-testid":"critical-pagination-prev",children:e.jsx(ls,{className:"h-3 w-3 rotate-180"})}),nh(a.page,a.totalPages,3).map(i=>e.jsx(M,{variant:i===a.page?"default":"outline",size:"sm",onClick:()=>r(i),className:`h-7 w-7 p-0 text-xs ${i===a.page?"bg-red-600 text-white hover:bg-red-700":""}`,"data-testid":`critical-pagination-page-${i}`,children:i},i)),e.jsx(M,{variant:"outline",size:"sm",onClick:()=>r(a.page+1),disabled:a.page===a.totalPages,className:"h-7 w-7 p-0","data-testid":"critical-pagination-next",children:e.jsx(ls,{className:"h-3 w-3"})})]})]})})]})}const fv=t=>{switch(t.toLowerCase()){case"express":return"bg-orange-100 text-orange-800 border-orange-200";case"standard":return"bg-blue-100 text-blue-800 border-blue-200";case"high":return"bg-red-100 text-red-800 border-red-200";case"medium":return"bg-orange-100 text-orange-800 border-orange-200";case"low":return"bg-green-100 text-green-800 border-green-200";default:return"bg-gray-100 text-gray-800 border-gray-200"}},yv=t=>{const s=new Date,a=new Date(t),r=ef(s,a);if(r<1)return"just now";if(r<60)return`${r} minute${r>1?"s":""} ago`;const n=tf(s,a);if(n<24)return`${n} hour${n>1?"s":""} ago`;const i=sf(s,a);return`${i} day${i>1?"s":""} ago`},vv=t=>{if(!t)return t;let s=t.replace(/\s*\([^)]*@[^)]*\)/g,"");return s=s.replace(/\s+by\s+.+$/i,""),s=s.replace(/has been added as approver/gi,"added as approver"),s=s.replace(/has been added as spectator/gi,"added as spectator"),s=s.replace(/has been/gi,""),s=s.replace(/with TAT of (\d+) hours?/gi,"(TAT: $1h)"),s=s.replace(/with TAT of (\d+) days?/gi,"(TAT: $1d)"),s=s.replace(/\s+/g," "),s.trim()},bv=t=>{const s=t.toLowerCase();return s.includes("approv")?e.jsx(Ce,{className:"w-2.5 h-2.5 sm:w-3 sm:h-3 text-green-600"}):s.includes("reject")?e.jsx(os,{className:"w-2.5 h-2.5 sm:w-3 sm:h-3 text-red-600"}):s.includes("comment")?e.jsx(Hs,{className:"w-2.5 h-2.5 sm:w-3 sm:h-3 text-blue-600"}):s.includes("escalat")?e.jsx(ha,{className:"w-2.5 h-2.5 sm:w-3 sm:h-3 text-orange-600"}):s.includes("submit")?e.jsx(_e,{className:"w-2.5 h-2.5 sm:w-3 sm:h-3 text-purple-600"}):s.includes("document")?e.jsx(bi,{className:"w-2.5 h-2.5 sm:w-3 sm:h-3 text-indigo-600"}):e.jsx(Gt,{className:"w-2.5 h-2.5 sm:w-3 sm:h-3 text-gray-600"})};function jv({activity:t,currentUserId:s,currentUserDisplayName:a,currentUserEmail:r,onNavigate:n,testId:i="activity-feed-item"}){const l=t.userId===s,o=l?"You":t.userName||"System",c=l?(a||r||"ME").split(" ").map(d=>d[0]).join("").toUpperCase().substring(0,2):t.userName?t.userName.split(" ").map(d=>d[0]).join("").toUpperCase().substring(0,2):"SY";return e.jsxs("div",{className:"flex items-start gap-2 sm:gap-3 p-3 sm:p-4 rounded-lg hover:bg-gray-50 transition-all duration-200 cursor-pointer border border-gray-100 hover:border-gray-300",onClick:()=>n==null?void 0:n(t.requestNumber),"data-testid":`${i}-${t.activityId}`,children:[e.jsxs("div",{className:"relative flex-shrink-0 mt-0.5",children:[e.jsxs(as,{className:`h-8 w-8 sm:h-10 sm:w-10 ring-2 shadow-sm ${l?"ring-blue-200":"ring-white"}`,"data-testid":`${i}-avatar`,children:[e.jsx(Mi,{src:""}),e.jsx(rs,{className:`text-white font-semibold text-xs sm:text-sm ${l?"bg-blue-600":"bg-slate-700"}`,children:c})]}),e.jsx("div",{className:"absolute -bottom-0.5 -right-0.5 sm:-bottom-1 sm:-right-1 w-4 h-4 sm:w-5 sm:h-5 bg-white rounded-full flex items-center justify-center shadow-sm border border-gray-200",children:bv(t.action)})]}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"flex items-center justify-between gap-2 mb-1",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-semibold text-xs sm:text-sm text-gray-900","data-testid":`${i}-request-number`,children:t.requestNumber}),e.jsx(le,{variant:"outline",className:`text-xs ${fv(t.priority)} font-medium flex-shrink-0`,"data-testid":`${i}-priority`,children:t.priority})]})}),e.jsx("p",{className:"text-xs text-muted-foreground mb-1 line-clamp-2",children:e.jsx("span",{className:`font-medium ${t.action.toLowerCase().includes("approv")?"text-green-600":t.action.toLowerCase().includes("reject")?"text-red-600":t.action.toLowerCase().includes("submit")?"text-blue-600":t.action.toLowerCase().includes("add")?"text-indigo-600":"text-gray-700"}`,"data-testid":`${i}-action`,children:vv(t.action)})}),e.jsx("p",{className:"text-xs sm:text-sm text-gray-700 line-clamp-1 mb-1","data-testid":`${i}-request-title`,children:t.requestTitle}),e.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[e.jsx("span",{className:`font-medium truncate max-w-[150px] sm:max-w-[200px] ${l?"text-blue-600":"text-gray-900"}`,"data-testid":`${i}-user-name`,children:o}),e.jsx("span",{children:"•"}),e.jsx("span",{className:"whitespace-nowrap","data-testid":`${i}-timestamp`,children:yv(t.timestamp)})]})]}),e.jsx(ls,{className:"h-4 w-4 text-gray-400 hover:text-blue-600 transition-colors flex-shrink-0 hidden sm:block mt-1","data-testid":`${i}-arrow`})]})}function Nv({isAdmin:t,recentActivity:s,pagination:a,refreshing:r,onPageChange:n,onRefresh:i,onNavigate:l,currentUserId:o,currentUserDisplayName:c,currentUserEmail:d}){return e.jsxs(te,{className:"lg:col-span-1 shadow-md hover:shadow-lg transition-shadow flex flex-col overflow-hidden",style:{height:"100%"},"data-testid":"recent-activity-section",children:[e.jsx(ue,{className:"pb-3 sm:pb-4 flex-shrink-0",children:e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 sm:gap-3 flex-1 min-w-0",children:[e.jsx("div",{className:"p-2 sm:p-3 bg-blue-100 rounded-lg",children:e.jsx(Gt,{className:"h-4 w-4 sm:h-5 sm:w-5 text-blue-600"})}),e.jsxs("div",{className:"min-w-0",children:[e.jsx(he,{className:"text-base sm:text-lg text-gray-900",children:"Recent Activity"}),e.jsx(Te,{className:"text-xs sm:text-sm text-gray-600 truncate",children:t?"All workflow updates":"My workflow updates"})]})]}),e.jsxs(M,{variant:"ghost",size:"sm",className:"text-blue-600 hover:bg-blue-50 font-medium flex-shrink-0 h-8 sm:h-9 px-2 sm:px-3 sm:min-w-[100px]",onClick:i,disabled:r,"data-testid":"activity-refresh-button",children:[e.jsx(Bt,{className:`w-3 h-3 sm:w-4 sm:h-4 ${r?"animate-spin":""}`}),e.jsx("span",{className:"hidden sm:inline ml-2 sm:w-[60px] sm:text-center",children:r?"Refreshing...":"Refresh"})]})]})}),e.jsx(se,{className:"overflow-y-auto flex-1 p-4",style:{maxHeight:a.totalPages>1?"calc(100% - 140px)":"calc(100% - 80px)"},children:e.jsx("div",{className:"space-y-2 sm:space-y-3",children:s.length===0?e.jsxs("div",{className:"text-center py-6 sm:py-8 text-muted-foreground","data-testid":"no-recent-activity",children:[e.jsx(Gt,{className:"w-10 h-10 sm:w-12 sm:h-12 mx-auto mb-2 text-gray-400"}),e.jsx("p",{className:"text-sm",children:"No recent activity"}),e.jsx("p",{className:"text-xs",children:"Activity will appear here once requests are processed"})]}):s.map(m=>e.jsx(jv,{activity:m,currentUserId:o,currentUserDisplayName:c,currentUserEmail:d,onNavigate:u=>l==null?void 0:l(`request/${u}`),testId:"dashboard-activity"},m.activityId))})}),a.totalPages>1&&s.length>0&&e.jsx("div",{className:"border-t bg-gray-50 px-4 py-2 flex-shrink-0",children:e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsxs("div",{className:"text-xs text-muted-foreground text-center",children:["Page ",a.page," of ",a.totalPages," (",a.totalRecords," total)"]}),e.jsxs("div",{className:"flex items-center justify-center gap-1 flex-wrap",children:[e.jsx(M,{variant:"outline",size:"sm",onClick:()=>n(a.page-1),disabled:a.page===1,className:"h-7 w-7 p-0","data-testid":"activity-pagination-prev",children:e.jsx(ls,{className:"h-3 w-3 rotate-180"})}),nh(a.page,a.totalPages,3).map(m=>e.jsx(M,{variant:m===a.page?"default":"outline",size:"sm",onClick:()=>n(m),className:`h-7 w-7 p-0 text-xs ${m===a.page?"bg-re-green text-white hover:bg-re-green/90":""}`,"data-testid":`activity-pagination-page-${m}`,children:m},m)),e.jsx(M,{variant:"outline",size:"sm",onClick:()=>n(a.page+1),disabled:a.page===a.totalPages,className:"h-7 w-7 p-0","data-testid":"activity-pagination-next",children:e.jsx(ls,{className:"h-3 w-3"})})]})]})})]})}function wv({kpis:t,upcomingDeadlines:s,criticalRequests:a,departmentStats:r,dateRange:n,customStartDate:i,customEndDate:l,exportingDeptStats:o,onKPIClick:c,onExportDepartmentStats:d}){if(!t)return null;const m=()=>({dateRange:n,startDate:i,endDate:l});return e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4 sm:gap-6","data-testid":"admin-analytics-section",children:[e.jsxs("div",{className:"flex flex-col gap-4 sm:gap-6 lg:col-span-1",children:[e.jsxs(te,{className:"shadow-md hover:shadow-lg transition-shadow flex-1","data-testid":"active-levels-card",children:[e.jsx(ue,{className:"pb-3",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"p-2 bg-blue-100 rounded-lg",children:e.jsx(Gt,{className:"h-4 w-4 text-blue-600"})}),e.jsx(he,{className:"text-sm",children:"Active Levels"})]})}),e.jsx(se,{children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-baseline gap-2",children:[e.jsx("span",{className:"text-2xl sm:text-3xl font-bold text-blue-600",children:s.length}),e.jsx("span",{className:"text-xs text-muted-foreground",children:"levels"})]}),e.jsx(Vt,{}),e.jsxs("div",{className:"space-y-1 text-xs",children:[e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("span",{className:"text-muted-foreground",children:"Avg Time/Level"}),e.jsxs("span",{className:"font-semibold",children:[s.length>0?(t.tatEfficiency.avgCycleTimeHours/s.length).toFixed(1):"0","h"]})]}),e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("span",{className:"text-muted-foreground",children:"At Risk"}),e.jsx("span",{className:"font-semibold text-red-600",children:a.filter(u=>u.breachCount>0).length})]})]})]})})]}),e.jsxs(te,{className:"shadow-md hover:shadow-lg transition-shadow flex-1","data-testid":"collaboration-card",children:[e.jsx(ue,{className:"pb-3",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"p-2 bg-indigo-100 rounded-lg",children:e.jsx(Hs,{className:"h-4 w-4 text-indigo-600"})}),e.jsx(he,{className:"text-sm",children:"Collaboration"})]})}),e.jsx(se,{children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[e.jsxs("div",{className:"text-center p-2 bg-indigo-50 rounded",children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:"Notes"}),e.jsx("p",{className:"text-lg sm:text-xl font-bold text-indigo-600",children:t.engagement.workNotesAdded})]}),e.jsxs("div",{className:"text-center p-2 bg-purple-50 rounded",children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:"Files"}),e.jsx("p",{className:"text-lg sm:text-xl font-bold text-purple-600",children:t.engagement.attachmentsUploaded})]})]}),e.jsx(Vt,{}),e.jsxs("div",{className:"text-xs text-muted-foreground text-center",children:[t.requestVolume.totalRequests>0?(t.engagement.workNotesAdded/t.requestVolume.totalRequests).toFixed(1):"0"," ","avg notes per request"]})]})})]})]}),r.length>0&&e.jsxs(te,{className:"shadow-md hover:shadow-lg transition-shadow lg:col-span-2","data-testid":"department-stats-card",children:[e.jsx(ue,{children:e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-3",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"bg-blue-50 p-2 sm:p-3 rounded-lg",children:e.jsx(Ml,{className:"h-5 w-5 sm:h-6 sm:w-6 text-blue-600"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-base sm:text-lg lg:text-xl",children:"Department-wise Workflow Summary"}),e.jsx(Te,{className:"text-xs sm:text-sm",children:"Workflow distribution across departments"})]})]}),e.jsxs(M,{variant:"outline",size:"sm",className:"gap-2 self-start sm:self-auto",onClick:()=>d(n,i,l),disabled:o,"data-testid":"export-dept-stats-button",children:[e.jsx(wt,{className:`w-3 h-3 sm:w-4 sm:h-4 ${o?"animate-pulse":""}`}),e.jsx("span",{className:"text-xs sm:text-sm",children:o?"Exporting...":"Export"})]})]})}),e.jsx(se,{children:e.jsx(Sr,{width:"100%",height:400,children:e.jsxs(Pl,{data:r,children:[e.jsx(ai,{strokeDasharray:"3 3",stroke:"#f0f0f0"}),e.jsx(ri,{dataKey:"department",stroke:"#999",tick:u=>{const{x:h,y:g,payload:p}=u;return e.jsx("g",{transform:`translate(${h},${g})`,children:e.jsx("text",{x:0,y:0,dy:16,textAnchor:"middle",fill:"#999",fontSize:11,className:"cursor-pointer hover:text-blue-600 hover:underline",onClick:()=>{c({...m(),department:p.value})},children:p.value})})}}),e.jsx(ni,{stroke:"#999",tick:{fontSize:11}}),e.jsx(Tr,{contentStyle:{backgroundColor:"#ffffff",border:"1px solid #e5e7eb",borderRadius:"6px",fontSize:"12px"}}),e.jsx(ii,{verticalAlign:"bottom",height:36,iconType:"square",wrapperStyle:{fontSize:"12px",paddingTop:"10px"}}),e.jsx(pa,{dataKey:"approved",fill:"#10b981",name:"Approved"}),e.jsx(pa,{dataKey:"inProgress",fill:"#f59e0b",name:"Pending"}),e.jsx(pa,{dataKey:"rejected",fill:"#ef4444",name:"Rejected"})]})})})]})]})}function Cv({kpis:t}){return t?e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4 sm:gap-6","data-testid":"user-metrics-section",children:[e.jsxs(te,{className:"shadow-md hover:shadow-lg transition-shadow","data-testid":"user-activity-card",children:[e.jsx(ue,{className:"pb-3",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"p-2 bg-indigo-100 rounded-lg",children:e.jsx(Hs,{className:"h-4 w-4 text-indigo-600"})}),e.jsx(he,{className:"text-sm",children:"My Activity"})]})}),e.jsx(se,{children:e.jsx("div",{className:"space-y-3",children:e.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[e.jsxs("div",{className:"text-center p-3 bg-indigo-50 rounded",children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-1",children:"Work Notes"}),e.jsx("p",{className:"text-xl sm:text-2xl font-bold text-indigo-600",children:t.engagement.workNotesAdded})]}),e.jsxs("div",{className:"text-center p-3 bg-purple-50 rounded",children:[e.jsx("p",{className:"text-xs text-muted-foreground mb-1",children:"Attachments"}),e.jsx("p",{className:"text-xl sm:text-2xl font-bold text-purple-600",children:t.engagement.attachmentsUploaded})]})]})})})]}),e.jsxs(te,{className:"shadow-md hover:shadow-lg transition-shadow","data-testid":"user-response-time-card",children:[e.jsx(ue,{className:"pb-3",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"p-2 bg-purple-100 rounded-lg",children:e.jsx(Ye,{className:"h-4 w-4 text-purple-600"})}),e.jsx(he,{className:"text-sm",children:"Avg Response Time"})]})}),e.jsx(se,{children:e.jsxs("div",{className:"space-y-3",children:[e.jsx("div",{className:"flex items-baseline gap-2",children:e.jsx("span",{className:"text-2xl sm:text-3xl font-bold text-purple-600",children:Rt(t.tatEfficiency.avgCycleTimeHours)})}),e.jsx(Vt,{}),e.jsxs("div",{className:"text-xs text-muted-foreground text-center",children:["≈ ",t.tatEfficiency.avgCycleTimeDays.toFixed(1)," working days"]})]})})]})]}):null}function Av({priorityDistribution:t,onNavigate:s}){return t.length===0?null:e.jsxs(te,{className:"shadow-md hover:shadow-lg transition-shadow","data-testid":"priority-distribution-report",children:[e.jsx(ue,{className:"pb-3",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"bg-green-50 p-2 sm:p-3 rounded-lg",children:e.jsx(_t,{className:"h-5 w-5 sm:h-6 sm:w-6 text-green-600"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-base sm:text-lg lg:text-xl",children:"Priority Distribution Report"}),e.jsx(Te,{className:"text-xs sm:text-sm",children:"Express vs Standard workflow analysis"})]})]})}),e.jsxs(se,{children:[e.jsx("div",{className:"grid grid-cols-2 gap-4 mb-6",children:t.map((a,r)=>{const n=Number(a.avgCycleTimeHours)||0,i=a.priority==="express",l=i?"bg-red-50":"bg-blue-50",o=i?"bg-red-500":"bg-blue-500";return e.jsxs("div",{className:`${l} p-4 rounded-lg`,"data-testid":`priority-card-${a.priority}`,children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx("div",{className:`w-3 h-3 ${o} rounded-full`}),e.jsx("span",{className:"text-sm text-gray-600 capitalize",children:a.priority})]}),e.jsx("div",{className:"text-2xl sm:text-3xl font-bold text-gray-900 mb-1",children:a.totalCount}),e.jsxs("div",{className:"text-xs text-gray-500",children:["Avg: ",Rt(n)," cycle"]})]},r)})}),e.jsx("div",{className:"flex justify-center",children:e.jsx(Sr,{width:"100%",height:300,children:e.jsxs(vu,{children:[e.jsx(bu,{data:t.map(a=>({name:a.priority.charAt(0).toUpperCase()+a.priority.slice(1),value:a.totalCount,priority:a.priority,percentage:Math.round(a.totalCount/t.reduce((r,n)=>r+n.totalCount,0)*100)})),cx:"50%",cy:"50%",labelLine:!0,label:({cx:a,cy:r,midAngle:n,outerRadius:i,name:l,percentage:o})=>{const c=Math.PI/180,d=i+35,m=a+d*Math.cos(-n*c),u=r+d*Math.sin(-n*c);return e.jsx("text",{x:m,y:u,fill:"#1f2937",textAnchor:m>a?"start":"end",dominantBaseline:"central",style:{fontSize:"14px",fontWeight:"600",pointerEvents:"none"},children:`${l}: ${o}%`})},outerRadius:90,fill:"#8884d8",dataKey:"value",onClick:a=>{a&&a.priority&&s&&s(`requests?priority=${a.priority}`)},style:{cursor:"pointer"},children:t.map((a,r)=>e.jsx(ju,{fill:a.priority==="express"?"#ef4444":"#3b82f6",style:{cursor:"pointer"}},`cell-${r}`))}),e.jsx(Tr,{contentStyle:{backgroundColor:"#ffffff",border:"1px solid #e5e7eb",borderRadius:"6px",fontSize:"12px"},formatter:(a,r,n)=>{var l;const i=((l=n.payload)==null?void 0:l.priority)||"";return[`${a} requests`,`Click for ${i}`]}})]})})})]})]})}function fr({currentPage:t,totalPages:s,itemsPerPage:a,totalRecords:r,onPageChange:n,loading:i=!1,itemLabel:l="items",testIdPrefix:o="pagination"}){const c=()=>{const u=[];let g=Math.max(1,t-Math.floor(2.5)),p=Math.min(s,g+5-1);p-g<4&&(g=Math.max(1,p-5+1));for(let y=g;y<=p;y++)u.push(y);return u},d=r>0?(t-1)*a+1:0,m=Math.min(t*a,r);return s<=1?e.jsx(te,{className:"shadow-md border-gray-200","data-testid":`${o}-container`,children:e.jsx(se,{className:"p-4",children:e.jsx("div",{className:"flex items-center justify-center",children:e.jsx("div",{className:"text-sm sm:text-base font-medium text-gray-700","data-testid":`${o}-info`,children:i?`Loading ${l}...`:r===0?`No ${l} found`:r===1?`Showing 1 ${l.slice(0,-1)}`:d===m?`Showing ${d} of ${r} ${l}`:`Showing ${d} to ${m} of ${r} ${l}`})})})}):e.jsx(te,{className:"shadow-md border-gray-200","data-testid":`${o}-container`,children:e.jsx(se,{className:"p-4",children:e.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-3",children:[e.jsxs("div",{className:"text-sm sm:text-base font-medium text-gray-700","data-testid":`${o}-info`,children:["Showing ",d," to ",m," of ",r," ",l]}),e.jsxs("div",{className:"flex items-center gap-2","data-testid":`${o}-controls`,children:[e.jsx(M,{variant:"outline",size:"sm",onClick:()=>n(t-1),disabled:t===1,className:"h-8 w-8 p-0","data-testid":`${o}-prev-btn`,"aria-label":"Previous page",children:e.jsx(ls,{className:"h-4 w-4 rotate-180"})}),t>3&&s>5&&e.jsxs(e.Fragment,{children:[e.jsx(M,{variant:"outline",size:"sm",onClick:()=>n(1),className:"h-8 w-8 p-0","data-testid":`${o}-page-1`,children:"1"}),e.jsx("span",{className:"text-muted-foreground","data-testid":`${o}-ellipsis-start`,children:"..."})]}),c().map(u=>e.jsx(M,{variant:u===t?"default":"outline",size:"sm",onClick:()=>n(u),className:`h-8 w-8 p-0 ${u===t?"bg-re-green text-white hover:bg-re-green/90":""}`,"data-testid":`${o}-page-${u}`,"aria-current":u===t?"page":void 0,children:u},u)),t<s-2&&s>5&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-muted-foreground","data-testid":`${o}-ellipsis-end`,children:"..."}),e.jsx(M,{variant:"outline",size:"sm",onClick:()=>n(s),className:"h-8 w-8 p-0","data-testid":`${o}-page-${s}`,children:s})]}),e.jsx(M,{variant:"outline",size:"sm",onClick:()=>n(t+1),disabled:t===s,className:"h-8 w-8 p-0","data-testid":`${o}-next-btn`,"aria-label":"Next page",children:e.jsx(ls,{className:"h-4 w-4"})})]})]})})})}function Sv(t,s,a,r="for"){return t==="custom"&&s&&a?`${r} ${De(s,"MMM d, yyyy")} - ${De(a,"MMM d, yyyy")}`:{all:"(All Time)",today:`${r} Today`,week:`${r} This Week`,month:`${r} This Month`,quarter:`${r} This Quarter`,year:`${r} This Year`,last30days:`${r} Last 30 Days`,custom:`${r} Custom Range`}[t]||`${r} Selected Period`}function Tv(t,s,a){return t==="all"?"All historical data":t==="custom"&&s&&a?`Data from ${De(s,"MMM d, yyyy")} to ${De(a,"MMM d, yyyy")}`:{all:"All historical data",today:"Today's data",week:"This week data",month:"This month data",quarter:"This quarter data",year:"This year data",last30days:"Last 30 days data",custom:"Custom date range"}[t]||"Filtered data"}function kv({breachedRequests:t,pagination:s,dateRange:a,customStartDate:r,customEndDate:n,onPageChange:i,onKPIClick:l,onNavigate:o}){if(t.length===0)return null;const c=()=>({dateRange:a,startDate:r,endDate:n});return e.jsxs(te,{className:"shadow-md hover:shadow-lg transition-shadow","data-testid":"tat-breach-report",children:[e.jsx(ue,{children:e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-3",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"bg-red-50 p-2 sm:p-3 rounded-lg",children:e.jsx(os,{className:"h-5 w-5 sm:h-6 sm:w-6 text-red-600"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-base sm:text-lg lg:text-xl",children:"TAT Breach Report"}),e.jsxs(Te,{className:"text-xs sm:text-sm",children:["Requests that breached TAT - ",Tv(a,r,n)]})]})]}),e.jsxs(le,{variant:"destructive",className:"text-sm font-medium self-start sm:self-auto",children:[t.length," ",t.length===1?"Breach":"Breaches"]})]})}),e.jsxs(se,{children:[e.jsx("div",{className:"overflow-x-auto -mx-4 sm:mx-0",children:e.jsxs("table",{className:"w-full min-w-[1000px]",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-gray-200 bg-gray-50",children:[e.jsx("th",{className:"text-left py-3 px-4 text-sm font-medium text-gray-700",children:"Request ID"}),e.jsx("th",{className:"text-left py-3 px-4 text-sm font-medium text-gray-700 w-[250px]",children:"Title"}),e.jsx("th",{className:"text-left py-3 px-4 text-sm font-medium text-gray-700",children:"Department"}),e.jsx("th",{className:"text-left py-3 px-4 text-sm font-medium text-gray-700",children:"Approver"}),e.jsx("th",{className:"text-left py-3 px-4 text-sm font-medium text-gray-700",children:"Level"}),e.jsx("th",{className:"text-left py-3 px-4 text-sm font-medium text-gray-700 w-[140px]",children:"Breach Time"}),e.jsx("th",{className:"text-left py-3 px-4 text-sm font-medium text-gray-700 w-[300px]",children:"Reason"}),e.jsx("th",{className:"text-left py-3 px-4 text-sm font-medium text-gray-700",children:"Priority"})]})}),e.jsx("tbody",{children:t.map((d,m)=>{const u=d.breachTime||0;return e.jsxs("tr",{className:"border-b border-gray-100 hover:bg-gray-50 transition-colors",children:[e.jsx("td",{className:"py-3 px-4 text-sm font-medium text-blue-600 cursor-pointer hover:underline",onClick:()=>o==null?void 0:o(`request/${d.requestNumber}`),"data-testid":`breach-request-${d.requestNumber}`,children:d.requestNumber}),e.jsx("td",{className:"py-3 px-4 text-sm text-gray-900 w-[250px]",children:e.jsx("p",{className:"break-words leading-relaxed",children:d.title})}),e.jsx("td",{className:"py-3 px-4 text-sm text-gray-700 cursor-pointer hover:text-blue-600 hover:underline",onClick:()=>{d.department&&d.department!=="Unknown"&&l({...c(),department:d.department})},children:d.department||"Unknown"}),e.jsx("td",{className:"py-3 px-4 text-sm text-gray-700",children:d.approverId?e.jsx("span",{className:"cursor-pointer hover:text-blue-600 hover:underline",onClick:()=>{if(o){const h=new URLSearchParams;h.set("approver",d.approverId),h.set("approverType","current"),h.set("slaCompliance","breached"),o(`requests?${h.toString()}`)}},title:"Click to view all requests for this approver",children:d.approver||"N/A"}):d.approver||"N/A"}),e.jsx("td",{className:"py-3 px-4 text-sm text-gray-700",children:d.currentLevel&&d.totalLevels?e.jsxs("span",{className:"font-medium",children:[d.currentLevel,"/",d.totalLevels]}):d.currentLevel?e.jsxs("span",{className:"font-medium",children:[d.currentLevel,"/—"]}):e.jsx("span",{className:"text-gray-400",children:"—"})}),e.jsx("td",{className:"py-3 px-4 w-[140px]",children:e.jsx("span",{className:"bg-red-500 text-white px-2 py-1 rounded text-xs font-medium whitespace-nowrap",children:xv(u)})}),e.jsx("td",{className:"py-3 px-4 text-sm text-gray-700 w-[300px]",children:e.jsx("div",{className:"max-h-32 overflow-y-auto",children:e.jsx("p",{className:"whitespace-pre-line break-words leading-relaxed",children:d.breachReason||"TAT Exceeded"})})}),e.jsx("td",{className:"py-3 px-4",children:e.jsx(le,{variant:"outline",className:`text-xs font-medium ${d.priority==="express"?"bg-orange-100 text-orange-800 border-orange-200":"bg-blue-100 text-blue-800 border-blue-200"}`,children:d.priority})})]},m)})})]})}),e.jsx("div",{className:"mt-4",children:e.jsx(fr,{currentPage:s.page,totalPages:s.totalPages,totalRecords:s.totalRecords,itemsPerPage:10,onPageChange:i,itemLabel:"critical requests",testIdPrefix:"dashboard-critical-pagination"})})]})]})}function Rv({isAdmin:t,upcomingDeadlines:s,pagination:a,onPageChange:r,onNavigate:n}){return s.length===0?null:e.jsxs(te,{className:"shadow-md hover:shadow-lg transition-shadow","data-testid":"upcoming-deadlines-section",children:[e.jsx(ue,{children:e.jsx("div",{className:"flex items-center justify-between gap-2",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ut,{className:"h-4 w-4 sm:h-5 sm:w-5 text-orange-600"}),e.jsxs("div",{children:[e.jsx(he,{className:"text-base sm:text-lg",children:"Upcoming Deadlines"}),e.jsx(Te,{className:"text-xs sm:text-sm",children:t?"Current active levels organization-wide":"Requests awaiting your approval"})]})]})})}),e.jsxs(se,{children:[e.jsx("div",{className:"space-y-2 sm:space-y-3",children:s.map((i,l)=>{const o=Number(i.tatPercentageUsed)||0,c=Number(i.elapsedHours)||0,d=Number(i.remainingHours)||0;return e.jsxs("div",{className:"p-3 sm:p-4 border rounded-lg hover:shadow-md transition-all cursor-pointer",onClick:()=>n==null?void 0:n(`request/${i.requestNumber}`),"data-testid":`deadline-item-${i.requestNumber}`,children:[e.jsxs("div",{className:"flex items-start justify-between gap-2 mb-2",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-1 sm:gap-2 mb-1 flex-wrap",children:[e.jsx("span",{className:"font-semibold text-xs sm:text-sm",children:i.requestNumber}),e.jsx(le,{variant:"outline",className:`text-xs ${i.priority==="express"?"bg-orange-50 text-orange-700":"bg-blue-50 text-blue-700"}`,children:i.priority})]}),e.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground truncate",children:i.requestTitle}),e.jsxs("div",{className:"flex items-center gap-2 mt-1 text-xs text-muted-foreground flex-wrap",children:[e.jsxs(le,{variant:"outline",className:"text-xs bg-blue-50 text-blue-700 border-blue-200",children:["Level ",i.levelNumber||"?","/",i.totalLevels||"?"]}),e.jsx("span",{className:"truncate",children:i.approverName})]})]}),e.jsxs("div",{className:"text-right flex-shrink-0",children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:"TAT Used"}),e.jsxs("p",{className:`text-base sm:text-lg font-bold ${o>=80?"text-red-600":o>=50?"text-orange-600":"text-green-600"}`,children:[o.toFixed(0),"%"]})]})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx(ea,{value:o,className:`h-1.5 sm:h-2 ${o>=80?"bg-red-100":o>=50?"bg-orange-100":"bg-green-100"}`}),e.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[e.jsxs("span",{children:[Rt(c)," elapsed"]}),e.jsxs("span",{children:[Rt(d)," left"]})]})]})]},l)})}),e.jsx("div",{className:"mt-4",children:e.jsx(fr,{currentPage:a.page,totalPages:a.totalPages,totalRecords:a.totalRecords,itemsPerPage:10,onPageChange:r,itemLabel:"deadlines",testIdPrefix:"dashboard-deadlines-pagination"})})]})]})}function Dv({aiRemarkUtilization:t}){return t?e.jsxs(te,{className:"shadow-md hover:shadow-lg transition-shadow","data-testid":"ai-remark-utilization-report",children:[e.jsx(ue,{className:"pb-3",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"bg-purple-50 p-2 sm:p-3 rounded-lg",children:e.jsx(ji,{className:"h-5 w-5 sm:h-6 sm:w-6 text-purple-600"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-base sm:text-lg lg:text-xl",children:"AI Remark Utilization Report"}),e.jsx(Te,{className:"text-xs sm:text-sm",children:"AI-generated remarks usage and edits"})]})]})}),e.jsxs(se,{children:[e.jsxs("div",{className:"grid grid-cols-3 gap-4 mb-6",children:[e.jsxs("div",{className:"bg-purple-50 p-4 rounded-lg text-center","data-testid":"ai-total-usage",children:[e.jsx("div",{className:"text-sm text-gray-600 mb-1",children:"Total Usage"}),e.jsx("div",{className:"text-2xl font-bold text-gray-900",children:t.totalUsage})]}),e.jsxs("div",{className:"bg-pink-50 p-4 rounded-lg text-center","data-testid":"ai-total-edits",children:[e.jsx("div",{className:"text-sm text-gray-600 mb-1",children:"Total Edits"}),e.jsx("div",{className:"text-2xl font-bold text-gray-900",children:t.totalEdits})]}),e.jsxs("div",{className:"bg-purple-50 p-4 rounded-lg text-center","data-testid":"ai-edit-rate",children:[e.jsx("div",{className:"text-sm text-gray-600 mb-1",children:"Edit Rate"}),e.jsxs("div",{className:"text-2xl font-bold text-gray-900",children:[t.editRate,"%"]})]})]}),t.monthlyTrends&&t.monthlyTrends.length>0&&e.jsx(Sr,{width:"100%",height:250,children:e.jsxs(Jg,{data:t.monthlyTrends,children:[e.jsx(ai,{strokeDasharray:"3 3",stroke:"#f0f0f0"}),e.jsx(ri,{dataKey:"month",stroke:"#999",tick:{fontSize:11}}),e.jsx(ni,{stroke:"#999",tick:{fontSize:11}}),e.jsx(Tr,{contentStyle:{backgroundColor:"#ffffff",border:"1px solid #e5e7eb",borderRadius:"6px",fontSize:"12px"}}),e.jsx(ii,{verticalAlign:"bottom",height:36,iconType:"circle",wrapperStyle:{fontSize:"12px",paddingTop:"10px"}}),e.jsx(dd,{type:"monotone",dataKey:"aiUsage",stroke:"#8b5cf6",strokeWidth:2,name:"AI Usage",dot:{fill:"#8b5cf6",r:4}}),e.jsx(dd,{type:"monotone",dataKey:"manualEdits",stroke:"#ec4899",strokeWidth:2,name:"Manual Edits",dot:{fill:"#ec4899",r:4}})]})})]})]}):null}function Pv({approverPerformance:t,pagination:s,dateRange:a,customStartDate:r,customEndDate:n,loading:i,exportingApproverPerformance:l,onPageChange:o,onExport:c,onNavigate:d}){return t.length===0?null:e.jsxs(te,{className:"shadow-md hover:shadow-lg transition-shadow","data-testid":"approver-performance-report",children:[e.jsx(ue,{className:"pb-3",children:e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"bg-yellow-50 p-2 sm:p-3 rounded-lg",children:e.jsx(Mt,{className:"h-5 w-5 sm:h-6 sm:w-6 text-yellow-600"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-base sm:text-lg lg:text-xl",children:"Approver Performance Report"}),e.jsx(Te,{className:"text-xs sm:text-sm",children:"Response time & TAT compliance tracking"})]})]}),e.jsx(M,{onClick:()=>c(a,r,n),disabled:l||i,className:"bg-re-green hover:bg-re-green/90 text-white shrink-0",size:"sm","data-testid":"export-approver-performance-button",children:l?e.jsxs(e.Fragment,{children:[e.jsx(Bt,{className:"w-4 h-4 mr-2 animate-spin"}),"Exporting..."]}):e.jsxs(e.Fragment,{children:[e.jsx(wt,{className:"w-4 h-4 mr-2"}),"Export"]})})]})}),e.jsxs(se,{children:[e.jsx("div",{className:"space-y-3",children:t.map((m,u)=>{const h=m.tatCompliancePercent;return e.jsxs("div",{className:"border border-gray-200 rounded-lg p-4 hover:shadow-md transition-shadow cursor-pointer",onClick:()=>{const g=new URLSearchParams;g.set("approverId",m.approverId),g.set("approverName",m.approverName),g.set("dateRange",a),a==="custom"&&r&&n&&(g.set("startDate",r.toISOString()),g.set("endDate",n.toISOString())),d==null||d(`/approver-performance?${g.toString()}`)},"data-testid":`approver-item-${m.approverId}`,children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-8 h-8 bg-orange-500 rounded-full flex items-center justify-center text-white font-semibold text-sm flex-shrink-0",children:u+1}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"font-medium text-gray-900 truncate",children:m.approverName}),e.jsxs("div",{className:"text-xs text-gray-500",children:[m.totalApproved," requests approved"]})]})]}),e.jsxs("span",{className:`px-2 py-1 rounded text-xs font-medium ${pv(h)} flex-shrink-0`,children:[h,"% TAT"]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4 mt-3",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-gray-500",children:"Avg Response"}),e.jsx("div",{className:"text-sm font-medium text-gray-900",children:Rt(m.avgResponseHours)})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-gray-500",children:"Pending"}),e.jsx("div",{className:"text-sm font-medium text-gray-900",children:e.jsx("span",{className:"bg-gray-500 text-white px-2 py-1 rounded text-xs",children:m.pendingCount})})]})]})]},u)})}),e.jsx("div",{className:"mt-4",children:e.jsx(fr,{currentPage:s.page,totalPages:s.totalPages,totalRecords:s.totalRecords,itemsPerPage:10,onPageChange:o,itemLabel:"approvers",testIdPrefix:"dashboard-approver-pagination"})})]})]})}function Iv(t){const s=new URLSearchParams;t.status&&s.set("status",t.status),t.priority&&s.set("priority",t.priority),t.slaCompliance&&s.set("slaCompliance",t.slaCompliance),t.department&&s.set("department",t.department),t.dateRange&&s.set("dateRange",t.dateRange),t.startDate&&s.set("startDate",t.startDate.toISOString()),t.endDate&&s.set("endDate",t.endDate.toISOString());const a=s.toString(),r=t.targetPage||"requests",n=r==="open-requests"?"/open-requests":r==="my-requests"?"/my-requests":"/requests";return a?`${n}?${a}`:n}function Ev(t,s,a,r){const n=[];return r||n.push({label:"New Request",icon:_e,action:()=>s==null?void 0:s(),color:"bg-emerald-600 hover:bg-emerald-700"}),n.push({label:"View Pending",icon:Ye,action:()=>a==null?void 0:a("open-requests"),color:"bg-blue-600 hover:bg-blue-700"},{label:"Settings",icon:$a,action:()=>a==null?void 0:a("settings"),color:"bg-slate-600 hover:bg-slate-700"}),t&&n.splice(n.length-1,0,{label:"Reports",icon:Gt,action:()=>a==null?void 0:a("detailed-reports"),color:"bg-purple-600 hover:bg-purple-700"}),n}function Mv({onNavigate:t,onNewRequest:s}){const{user:a}=Zt(),r=Dn(),n=Or(it=>it.dashboard.viewAsUser),i=x.useMemo(()=>Ii(a),[a]),l=i&&!n,o=x.useCallback(it=>{r(Vy(it))},[r]),c=zy(),{dateRange:d,customStartDate:m,customEndDate:u,showCustomDatePicker:h,handleDateRangeChange:g,handleApplyCustomDate:p,resetCustomDates:y,setCustomStartDate:f,setCustomEndDate:b,setShowCustomDatePicker:v}=c,w=Hy(),{activity:A,critical:S,deadlines:k,approver:F,updateActivityPagination:T,updateCriticalPagination:D,updateDeadlinesPagination:C,updateApproverPagination:P,handleActivityPageChange:R,handleCriticalPageChange:V,handleDeadlinesPageChange:I,handleApproverPageChange:$}=w,_=Gy({isAdmin:l,viewAsUser:i&&n,userId:a==null?void 0:a.userId,dateRange:d,customStartDate:m,customEndDate:u,onPaginationUpdate:{activity:T,critical:D,deadlines:C,approver:P}}),{kpis:N,recentActivity:j,criticalRequests:U,departmentStats:z,priorityDistribution:B,upcomingDeadlines:X,aiRemarkUtilization:H,approverPerformance:oe,loading:Y,refreshing:E,fetchDashboardData:O,fetchRecentActivities:L,fetchCriticalRequests:W,fetchUpcomingDeadlines:G,fetchApproverPerformance:ee}=_,ce=sv(),{exportingDeptStats:Pe,exportingApproverPerformance:Oe,handleExportDepartmentStats:ie,handleExportApproverPerformance:de}=ce,je=x.useMemo(()=>uv(U),[U]),Me=x.useMemo(()=>hv(X),[X]),ye=x.useCallback(()=>{O(!0)},[d,m,u,O]),ae=x.useCallback(()=>{p(()=>{m&&u&&O(!1)})},[m,u,p,O]),ne=x.useCallback(it=>{R(it,L)},[R,L]),xt=x.useCallback(it=>{V(it,W)},[V,W]),ve=x.useCallback(it=>{I(it,G)},[I,G]),Fe=x.useCallback(it=>{$(it,()=>ee(it))},[$,ee]);x.useEffect(()=>{d==="custom"?m&&u&&O(!1):O(!1)},[d,m,u,n]);const mt=x.useMemo(()=>{try{const it=st.getUserData();return(it==null?void 0:it.jobTitle)==="Dealer"}catch(it){return console.error("[Dashboard] Error checking dealer status:",it),!1}},[]),Ot=x.useMemo(()=>Ev(i,s,t,mt),[i,s,t,mt]),zt=x.useCallback(it=>{const Is=Iv(it);t==null||t(Is)},[t]);return Y?e.jsx("div",{className:"flex items-center justify-center h-screen",children:e.jsxs("div",{className:"flex flex-col items-center gap-4",children:[e.jsx(Bt,{className:"w-8 h-8 animate-spin text-blue-600"}),e.jsx("p",{className:"text-muted-foreground",children:"Loading dashboard..."})]})}):e.jsxs("div",{className:"space-y-4 sm:space-y-6 max-w-7xl mx-auto p-3 sm:p-4","data-testid":"dashboard",children:[e.jsx(av,{isAdmin:i,effectiveIsAdmin:l,viewAsUser:n,onToggleView:o,quickActions:Ot,userDisplayName:a==null?void 0:a.displayName,userEmail:a==null?void 0:a.email}),e.jsx(iv,{isAdmin:l,dateRange:d,customStartDate:m,customEndDate:u,showCustomDatePicker:h,refreshing:E,onDateRangeChange:g,onCustomStartDateChange:f,onCustomEndDateChange:b,onShowCustomDatePickerChange:v,onApplyCustomDate:ae,onResetCustomDates:y,onRefresh:ye}),l?e.jsx(lv,{kpis:N,priorityDistribution:B,dateRange:d,customStartDate:m,customEndDate:u,onKPIClick:zt}):e.jsx(ov,{kpis:N,criticalRequests:U,dateRange:d,customStartDate:m,customEndDate:u,onKPIClick:zt,onNavigate:t,userId:a==null?void 0:a.userId,userDisplayName:(a==null?void 0:a.displayName)||(a==null?void 0:a.email)}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4 sm:gap-6 h-[90vh] min-h-[720px] lg:h-[60vh] lg:min-h-[480px]","data-testid":"dashboard-alerts-activity",children:[e.jsx(gv,{isAdmin:l,breachedRequests:je,pagination:S,onPageChange:xt,onNavigate:t}),e.jsx(Nv,{isAdmin:l,recentActivity:j,pagination:A,refreshing:E,onPageChange:ne,onRefresh:ye,onNavigate:t,currentUserId:a==null?void 0:a.userId,currentUserDisplayName:a==null?void 0:a.displayName,currentUserEmail:a==null?void 0:a.email})]}),l&&N&&e.jsx(wv,{kpis:N,upcomingDeadlines:X,criticalRequests:U,departmentStats:z,dateRange:d,customStartDate:m,customEndDate:u,exportingDeptStats:Pe,onKPIClick:zt,onExportDepartmentStats:ie}),!l&&N&&e.jsx(Cv,{kpis:N}),l&&B.length>0&&e.jsx(Av,{priorityDistribution:B,onNavigate:t}),l&&je.length>0&&e.jsx(kv,{breachedRequests:je,pagination:S,dateRange:d,customStartDate:m,customEndDate:u,onPageChange:xt,onKPIClick:zt,onNavigate:t}),Me.length>0&&e.jsx(Rv,{isAdmin:l,upcomingDeadlines:Me,pagination:k,onPageChange:ve,onNavigate:t}),l&&H&&e.jsx(Dv,{aiRemarkUtilization:H}),l&&oe.length>0&&e.jsx(Pv,{approverPerformance:oe,pagination:F,dateRange:d,customStartDate:m,customEndDate:u,loading:Y,exportingApproverPerformance:Oe,onPageChange:Fe,onExport:de,onNavigate:t})]})}const Fv={searchTerm:"",statusFilter:"all",priorityFilter:"all",templateTypeFilter:"all",sortBy:"created",sortOrder:"desc",currentPage:1},ih=_r({name:"openRequests",initialState:Fv,reducers:{setSearchTerm:(t,s)=>{t.searchTerm=s.payload},setStatusFilter:(t,s)=>{t.statusFilter=s.payload},setPriorityFilter:(t,s)=>{t.priorityFilter=s.payload},setTemplateTypeFilter:(t,s)=>{t.templateTypeFilter=s.payload},setSortBy:(t,s)=>{t.sortBy=s.payload},setSortOrder:(t,s)=>{t.sortOrder=s.payload},setCurrentPage:(t,s)=>{t.currentPage=s.payload},clearFilters:t=>{t.searchTerm="",t.statusFilter="all",t.priorityFilter="all",t.templateTypeFilter="all",t.currentPage=1}}}),{setSearchTerm:_v,setStatusFilter:Lv,setPriorityFilter:Ov,setTemplateTypeFilter:$v,setSortBy:Uv,setSortOrder:Bv,setCurrentPage:Vv,clearFilters:zv}=ih.actions;function Hv(){const t=Dn(),{searchTerm:s,statusFilter:a,priorityFilter:r,templateTypeFilter:n,sortBy:i,sortOrder:l,currentPage:o}=Or(b=>b.openRequests),c=x.useCallback(b=>t(_v(b)),[t]),d=x.useCallback(b=>t(Lv(b)),[t]),m=x.useCallback(b=>t(Ov(b)),[t]),u=x.useCallback(b=>t($v(b)),[t]),h=x.useCallback(b=>t(Uv(b)),[t]),g=x.useCallback(b=>t(Bv(b)),[t]),p=x.useCallback(b=>t(Vv(b)),[t]),y=x.useCallback(()=>t(zv()),[t]),f=[s,r!=="all"?r:null,a!=="all"?a:null,n!=="all"?n:null].filter(Boolean).length;return{searchTerm:s,statusFilter:a,priorityFilter:r,templateTypeFilter:n,sortBy:i,sortOrder:l,currentPage:o,setSearchTerm:c,setStatusFilter:d,setPriorityFilter:m,setTemplateTypeFilter:u,setSortBy:h,setSortOrder:g,setCurrentPage:p,clearFilters:y,activeFiltersCount:f}}function tl(){return typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,t=>{const s=Math.random()*16|0;return(t==="x"?s:s&3|8).toString(16)})}async function Wv(t){var o;const s=t.priorityUi.toUpperCase()==="EXPRESS"?"EXPRESS":"STANDARD",a=Array.from({length:t.approverCount||1},(c,d)=>{const m=d,u=t.approvers[m]||{},h=m+1,g=u.tat??"";let p=0;typeof g=="number"&&(p=u.tatType==="days"?g*24:g);const y=u.email||"",f=u.name&&u.name.trim()||y.split("@")[0]||`Approver ${h}`;return{levelNumber:h,levelName:`Level ${h}`,approverId:tl(),approverEmail:y,approverName:f,tatHours:p>0?p:24,isFinalApprover:h===(t.approverCount||1)}}),r=[...(t.spectators||[]).map(c=>({userId:tl(),userEmail:c.email,userName:c.name||c.email.split("@")[0]||"Spectator",participantType:"SPECTATOR",canComment:!0,canViewDocuments:!0,canDownloadDocuments:!1,notificationEnabled:!0})),...(t.ccList||[]).map(c=>({userId:tl(),userEmail:c.email,userName:c.name||c.email.split("@")[0]||"CC",participantType:"CONSULTATION",canComment:!1,canViewDocuments:!0,canDownloadDocuments:!1,notificationEnabled:!0}))],n={templateType:t.templateType,title:t.title,description:t.description,priority:s,approvalLevels:a,participants:r.length?r:void 0},i=await be.post("/workflows",n),l=((o=i.data)==null?void 0:o.data)||i.data;return{id:l.id||l.workflowId||""}}async function lh(t,s,a="SUPPORTING"){var o;const r={templateType:t.templateType,title:t.title,description:t.description,priority:t.priorityUi.toUpperCase()==="EXPRESS"?"EXPRESS":"STANDARD",approvers:Array.from({length:t.approverCount||1},(c,d)=>{const m=t.approvers[d]||{},u=typeof m.tat=="number"?m.tat:0;if(!m.email||!m.email.trim())throw new Error(`Email is required for approver at level ${d+1}.`);return{email:m.email,tat:u,tatType:m.tatType||"hours"}})};t.spectators&&t.spectators.length>0&&(r.spectators=t.spectators.filter(c=>c==null?void 0:c.email).map(c=>({email:c.email})));const n=new FormData;n.append("payload",JSON.stringify(r)),n.append("category",a),s.forEach(c=>n.append("files",c));const i=await be.post("/workflows/multipart",n,{headers:{"Content-Type":"multipart/form-data"}}),l=((o=i.data)==null?void 0:o.data)||i.data;return{id:l==null?void 0:l.requestId}}async function Gv(t={}){var y;const{page:s=1,limit:a=20,search:r,status:n,priority:i,templateType:l,department:o,initiator:c,approver:d,slaCompliance:m,dateRange:u,startDate:h,endDate:g}=t,p=await be.get("/workflows",{params:{page:s,limit:a,search:r,status:n,priority:i,templateType:l,department:o,initiator:c,approver:d,slaCompliance:m,dateRange:u,startDate:h,endDate:g}});return((y=p.data)==null?void 0:y.data)||p.data}async function Kv(t={}){var f,b,v,w,A;const{page:s=1,limit:a=20,search:r,status:n,priority:i,templateType:l,department:o,initiator:c,approver:d,approverType:m,slaCompliance:u,dateRange:h,startDate:g,endDate:p}=t,y=await be.get("/workflows/participant-requests",{params:{page:s,limit:a,search:r,status:n,priority:i,templateType:l,department:o,initiator:c,approver:d,approverType:m,slaCompliance:u,dateRange:h,startDate:g,endDate:p}});return{data:((b=(f=y.data)==null?void 0:f.data)==null?void 0:b.data)||((v=y.data)==null?void 0:v.data)||[],pagination:((A=(w=y.data)==null?void 0:w.data)==null?void 0:A.pagination)||{page:s,limit:a,total:0,totalPages:1}}}async function Yv(t={}){var p,y,f,b,v;const{page:s=1,limit:a=20,search:r,status:n,priority:i,department:l,initiator:o,approver:c,slaCompliance:d,dateRange:m,startDate:u,endDate:h}=t,g=await be.get("/workflows/my",{params:{page:s,limit:a,search:r,status:n,priority:i,department:l,initiator:o,approver:c,slaCompliance:d,dateRange:m,startDate:u,endDate:h}});return{data:((y=(p=g.data)==null?void 0:p.data)==null?void 0:y.data)||((f=g.data)==null?void 0:f.data)||[],pagination:((v=(b=g.data)==null?void 0:b.data)==null?void 0:v.pagination)||{page:s,limit:a,total:0,totalPages:1}}}async function Zv(t={}){var g,p,y,f,b;const{page:s=1,limit:a=20,search:r,status:n,priority:i,templateType:l,department:o,slaCompliance:c,dateRange:d,startDate:m,endDate:u}=t,h=await be.get("/workflows/my-initiated",{params:{page:s,limit:a,search:r,status:n,priority:i,templateType:l,department:o,slaCompliance:c,dateRange:d,startDate:m,endDate:u}});return{data:((p=(g=h.data)==null?void 0:g.data)==null?void 0:p.data)||((y=h.data)==null?void 0:y.data)||[],pagination:((b=(f=h.data)==null?void 0:f.data)==null?void 0:b.pagination)||{page:s,limit:a,total:0,totalPages:1}}}async function Xv(t={}){var m,u,h,g,p;const{page:s=1,limit:a=20,search:r,status:n,priority:i,templateType:l,sortBy:o,sortOrder:c}=t,d=await be.get("/workflows/open-for-me",{params:{page:s,limit:a,search:r,status:n,priority:i,templateType:l,sortBy:o,sortOrder:c}});return{data:((u=(m=d.data)==null?void 0:m.data)==null?void 0:u.data)||((h=d.data)==null?void 0:h.data)||[],pagination:((p=(g=d.data)==null?void 0:g.data)==null?void 0:p.pagination)||{page:s,limit:a,total:0,totalPages:1}}}async function Qv(t={}){var m,u,h,g,p;const{page:s=1,limit:a=20,search:r,status:n,priority:i,templateType:l,sortBy:o,sortOrder:c}=t,d=await be.get("/workflows/closed-by-me",{params:{page:s,limit:a,search:r,status:n,priority:i,templateType:l,sortBy:o,sortOrder:c}});return{data:((u=(m=d.data)==null?void 0:m.data)==null?void 0:u.data)||((h=d.data)==null?void 0:h.data)||[],pagination:((p=(g=d.data)==null?void 0:g.data)==null?void 0:p.pagination)||{page:s,limit:a,total:0,totalPages:1}}}async function ks(t,s){var r;const a=await be.get(`/workflows/${t}/details`);return((r=a.data)==null?void 0:r.data)||a.data}async function Rr(t){var a;const s=await be.get(`/workflows/${t}/work-notes`);return((a=s.data)==null?void 0:a.data)||s.data}async function oh(t,s,a=[]){var i;const r=new FormData;r.append("payload",JSON.stringify(s||{})),a.forEach(l=>r.append("files",l));const n=await be.post(`/workflows/${t}/work-notes`,r,{headers:{"Content-Type":"multipart/form-data"}});return((i=n.data)==null?void 0:i.data)||n.data}async function ch(t,s,a,r){var i;const n=await be.post(`/workflows/${t}/approvers/at-level`,{email:s,tatHours:a,level:r});return((i=n.data)==null?void 0:i.data)||n.data}async function Jv(t,s,a){var n;const r=await be.post(`/workflows/${t}/approvals/${s}/skip`,{reason:a});return((n=r.data)==null?void 0:n.data)||r.data}async function dh(t,s){var r;const a=await be.post(`/workflows/${t}/participants/spectator`,{email:s});return((r=a.data)==null?void 0:r.data)||a.data}async function qv(t,s,a,r){var i;const n=await be.post(`/workflows/${t}/pause`,{levelId:s,reason:a,resumeDate:r.toISOString()});return((i=n.data)==null?void 0:i.data)||n.data}async function eb(t,s){var r;const a=await be.post(`/workflows/${t}/resume`,{notes:s});return((r=a.data)==null?void 0:r.data)||a.data}async function tb(t){var a;const s=await be.post(`/workflows/${t}/pause/retrigger`);return((a=s.data)==null?void 0:a.data)||s.data}async function Rd(t){var a;const s=await be.get(`/workflows/${t}/pause`);return((a=s.data)==null?void 0:a.data)||s.data}function sb(t){return`https://reflow-uat.royalenfield.com/api/v1/workflows/work-notes/attachments/${t}/preview`}function To(t){return`https://reflow-uat.royalenfield.com/api/v1/workflows/documents/${t}/preview`}function mh(t){var r;if(!t)return"download";const s=t.match(/filename\*=UTF-8''([^;]+)/);if(s&&s[1])try{return decodeURIComponent(s[1])}catch{}const a=t.match(/filename="?([^";]+)"?/);return a&&a.length>1&&a[1]&&((r=a[1].replace(/^"|"$/g,"").split(";")[0])==null?void 0:r.trim())||"download"}async function pr(t){const a=`https://reflow-uat.royalenfield.com/api/v1/workflows/documents/${t}/download`,r=!0;try{const i=await fetch(a,{credentials:"include"});if(!i.ok){const u=await i.text();throw new Error(`Download failed: ${i.status} - ${u}`)}const l=await i.blob(),o=window.URL.createObjectURL(l),c=i.headers.get("Content-Disposition"),d=mh(c),m=document.createElement("a");m.href=o,m.download=d,document.body.appendChild(m),m.click(),document.body.removeChild(m),window.URL.revokeObjectURL(o)}catch(n){throw console.error("[Download] Failed:",n),n}}async function Dd(t){const a=`https://reflow-uat.royalenfield.com/api/v1/workflows/work-notes/attachments/${t}/download`,r=!0;try{const i=await fetch(a,{credentials:"include"});if(!i.ok){const u=await i.text();throw new Error(`Download failed: ${i.status} - ${u}`)}const l=await i.blob(),o=window.URL.createObjectURL(l),c=i.headers.get("Content-Disposition"),d=mh(c),m=document.createElement("a");m.href=o,m.download=d,document.body.appendChild(m),m.click(),document.body.removeChild(m),window.URL.revokeObjectURL(o)}catch(n){throw console.error("[Download] Failed:",n),n}}const Cs={createWorkflowFromForm:Wv,createWorkflowMultipart:lh,listWorkflows:Gv,listParticipantRequests:Kv,listMyWorkflows:Yv,listMyInitiatedWorkflows:Zv,listOpenForMe:Xv,listClosedByMe:Qv,submitWorkflow:uh,getWorkflowDetails:ks,getWorkNotes:Rr,createWorkNoteMultipart:oh};async function uh(t){var a;const s=await be.patch(`/workflows/${t}/submit`);return((a=s.data)==null?void 0:a.data)||s.data}async function ab(t,s){var r;const a=await be.put(`/workflows/${t}`,s);return((r=a.data)==null?void 0:r.data)||a.data}async function rb(t,s,a,r){var o;const n={...s,deleteDocumentIds:r||[]},i=new FormData;i.append("payload",JSON.stringify(n)),i.append("category","SUPPORTING"),a&&a.length>0&&a.forEach(c=>i.append("files",c));const l=await be.put(`/workflows/${t}/multipart`,i,{headers:{"Content-Type":"multipart/form-data"}});return((o=l.data)==null?void 0:o.data)||l.data}async function dn(t,s,a){var n;const r=await be.patch(`/workflows/${t}/approvals/${s}/approve`,{action:"APPROVE",comments:a||""});return((n=r.data)==null?void 0:n.data)||r.data}async function mn(t,s,a,r){var i;const n=await be.patch(`/workflows/${t}/approvals/${s}/reject`,{action:"REJECT",rejectionReason:a||"",comments:r||""});return((i=n.data)==null?void 0:i.data)||n.data}async function nb(t,s){const a=await be.put(`/tat/breach-reason/${t}`,{breachReason:s});if(!a.data.success)throw new Error(a.data.error||"Failed to update breach reason")}function ns(t,s){if(!t)return"N/A";try{const a=typeof t=="string"?new Date(t):t;if(isNaN(a.getTime()))return"Invalid Date";const{includeTime:r=!0,includeSeconds:n=!1,format:i="medium"}=s||{};return r?a.toLocaleString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"2-digit",...n&&{second:"2-digit"},hour12:!0}):a.toLocaleDateString("en-US",{year:"numeric",month:i==="short"?"short":"long",day:"numeric"})}catch(a){return console.error("Error formatting date:",a),String(t)}}function hh(t){return ns(t,{includeTime:!1,format:"short"})}function ma(t,s=!1){if(!t)return"N/A";try{const a=typeof t=="string"?new Date(t):t;if(isNaN(a.getTime()))return"Invalid Date";const r=String(a.getDate()).padStart(2,"0"),i=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][a.getMonth()],l=a.getFullYear();if(s){const o=a.getHours(),c=o%12||12,d=String(a.getMinutes()).padStart(2,"0"),m=String(a.getSeconds()).padStart(2,"0"),u=o>=12?"PM":"AM";return`${r} ${i} ${l}, ${c}:${d}:${m} ${u}`}return`${r} ${i} ${l}`}catch(a){return console.error("Error formatting date:",a),String(t)}}function ib(t){return t?t.jobTitle==="Dealer"||t.jobTitle==="DEALER":!1}function ko(t){return ib(t)?"DEALER":"STANDARD"}const Un=[{name:"No Color",value:"transparent",class:"bg-gray-200 border-2 border-gray-400",icon:"×"},{name:"Yellow",value:"#FFEB3B",class:"bg-yellow-400"},{name:"Green",value:"#4CAF50",class:"bg-green-400"},{name:"Blue",value:"#2196F3",class:"bg-blue-400"},{name:"Red",value:"#F44336",class:"bg-red-400"},{name:"Orange",value:"#FF9800",class:"bg-orange-400"},{name:"Purple",value:"#9C27B0",class:"bg-purple-400"},{name:"Pink",value:"#E91E63",class:"bg-pink-400"},{name:"Cyan",value:"#00BCD4",class:"bg-cyan-400"},{name:"Teal",value:"#009688",class:"bg-teal-400"},{name:"Amber",value:"#FFC107",class:"bg-amber-400"},{name:"Indigo",value:"#3F51B5",class:"bg-indigo-400"}];function Fi({value:t,onChange:s,placeholder:a="Enter text...",className:r,minHeight:n="120px",...i}){const l=x.useRef(null),[o,c]=x.useState(!1),[d,m]=x.useState(new Set),[u,h]=x.useState(!1),[g,p]=x.useState(null),[y,f]=x.useState("#FFEB3B"),[b,v]=x.useState(!1),[w,A]=x.useState(null),[S,k]=x.useState("#000000");x.useEffect(()=>{l.current&&l.current.innerHTML!==t&&l.current.innerHTML!==t&&(l.current.innerHTML=t||"")},[t]);const F=x.useCallback(N=>(N=N.replace(/<!--[\s\S]*?-->/g,""),N=N.replace(/<style[^>]*>[\s\S]*?<\/style>/gi,""),N=N.replace(/<script[^>]*>[\s\S]*?<\/script>/gi,""),N=N.replace(/<meta[^>]*>/gi,""),N=N.replace(/\s*class="Mso[^"]*"/gi,""),N=N.replace(/\s*class="mso[^"]*"/gi,""),N=N.replace(/\s*style="[^"]*mso-[^"]*"/gi,""),N=N.replace(/\s*style="[^"]*font-family:[^"]*"/gi,""),N=N.replace(/\s*xmlns[^=]*="[^"]*"/gi,""),N=N.replace(/<\/?o:p[^>]*>/gi,""),N=N.replace(/<v:[^>]*>[\s\S]*?<\/v:[^>]*>/gi,""),N=N.replace(/<v:[^>]*\/>/gi,""),N=N.replace(/<p[^>]*>\s*<\/p>/gi,""),N=N.replace(/<div[^>]*>\s*<\/div>/gi,""),N=N.replace(/\s+/g," "),N=N.trim(),N),[]),T=x.useCallback(N=>{N.preventDefault();const j=N.clipboardData;let U=j.getData("text/html")||j.getData("text/plain");if((U.includes("<!--")||U.includes("<style")||U.includes("MsoNormal"))&&(U=F(U)),!l.current)return;const z=window.getSelection();if(!z||z.rangeCount===0)return;const B=z.getRangeAt(0);B.deleteContents();const X=document.createElement("div");X.innerHTML=U;const H=document.createDocumentFragment();Array.from(X.childNodes).forEach(oe=>{if(oe.nodeType===Node.ELEMENT_NODE){const Y=oe;if(Y.tagName==="UL"||Y.tagName==="OL"){const E=Y.cloneNode(!0);E.removeAttribute("style"),E.removeAttribute("class"),E.querySelectorAll("li").forEach(O=>{O.removeAttribute("style"),O.removeAttribute("class");const L=O.textContent||"";L.trim()&&(O.textContent=L.trim())}),H.appendChild(E)}else if(Y.tagName==="TABLE"){const E=Y.cloneNode(!0);E.removeAttribute("style"),E.removeAttribute("class"),E.querySelectorAll("td, th").forEach(L=>{L.removeAttribute("style"),L.removeAttribute("class")});const O=document.createElement("div");O.className="table-wrapper",O.style.overflowX="auto",O.style.maxWidth="100%",O.style.margin="8px 0",O.appendChild(E),H.appendChild(O)}else if(Y.tagName==="P"||Y.tagName==="DIV"){const E=document.createElement("p"),L=Y.innerHTML.replace(/<style[^>]*>[\s\S]*?<\/style>/gi,"").replace(/<!--[\s\S]*?-->/g,"");E.innerHTML=L,E.removeAttribute("style"),E.removeAttribute("class"),H.appendChild(E)}else if(Y.tagName==="BR")H.appendChild(Y.cloneNode(!0));else{const E=Y.textContent||"";if(E.trim()){const O=document.createElement("p");O.textContent=E.trim(),H.appendChild(O)}}}else if(oe.nodeType===Node.TEXT_NODE){const Y=oe.textContent||"";if(Y.trim()){const E=document.createElement("p");E.textContent=Y.trim(),H.appendChild(E)}}}),H.childNodes.length===0&&j.getData("text/plain").split(`
|
||
`).forEach(E=>{if(E.trim()){const O=document.createElement("p");O.textContent=E.trim(),H.appendChild(O)}else H.appendChild(document.createElement("br"))}),B.insertNode(H),B.collapse(!1),z.removeAllRanges(),z.addRange(B),l.current&&s(l.current.innerHTML)},[s,F]),D=x.useCallback(()=>{if(!l.current||!o)return;const N=new Set,j=window.getSelection();if(j&&j.rangeCount>0){const z=j.getRangeAt(0).commonAncestorContainer;let B=null;for(z.nodeType===Node.TEXT_NODE?B=z.parentElement:B=z;B&&B!==l.current;){const X=B.tagName.toLowerCase();(X==="strong"||X==="b")&&N.add("bold"),(X==="em"||X==="i")&&N.add("italic"),X==="u"&&N.add("underline"),X==="h1"&&N.add("h1"),X==="h2"&&N.add("h2"),X==="h3"&&N.add("h3"),X==="ul"&&N.add("ul"),X==="ol"&&N.add("ol");const H=window.getComputedStyle(B);H.textAlign==="center"&&N.add("center"),H.textAlign==="right"&&N.add("right"),H.textAlign==="left"&&N.add("left");const oe=L=>{if(L.startsWith("#"))return L.toUpperCase();const W=L.match(/\d+/g);if(!W||W.length<3)return null;const G=W[0],ee=W[1],ce=W[2];if(!G||!ee||!ce)return null;const Pe=parseInt(G).toString(16).padStart(2,"0"),Oe=parseInt(ee).toString(16).padStart(2,"0"),ie=parseInt(ce).toString(16).padStart(2,"0");return`#${Pe}${Oe}${ie}`.toUpperCase()},Y=H.backgroundColor;if(Y&&Y!=="rgba(0, 0, 0, 0)"&&Y!=="transparent"&&Y!=="rgb(255, 255, 255)"&&Y!=="#ffffff"&&Y!=="#FFFFFF"){N.add("highlight");const L=oe(Y);if(L){const W=Un.find(G=>G.value==="transparent"?!1:G.value.toUpperCase()===L);p(W?W.value:L)}}else N.has("highlight")||p(null);const E=H.color,O=oe(E);if(E&&O&&E!=="rgba(0, 0, 0, 0)"&&O!=="#000000"){N.add("textColor");const L=Un.find(W=>W.value==="transparent"?!1:W.value.toUpperCase()===O);A(L?L.value:O)}else N.has("textColor")||A(O==="#000000"||!O?"#000000":null);B=B.parentElement}}m(N)},[o]),C=x.useCallback((N,j)=>{if(!l.current)return;o||l.current.focus();const U=window.getSelection();if(!U||U.rangeCount===0){l.current.focus();return}document.execCommand(N,!1,j),l.current&&s(l.current.innerHTML),setTimeout(D,10)},[o,s,D]),P=x.useCallback(N=>{if(!l.current)return;o||l.current.focus();const j=window.getSelection();if(!j||j.rangeCount===0){l.current.focus();return}let U=!1;if(j.rangeCount>0){const X=j.getRangeAt(0).commonAncestorContainer;let H=null;for(X.nodeType===Node.TEXT_NODE?H=X.parentElement:H=X;H&&H!==l.current;){const Y=window.getComputedStyle(H).backgroundColor;if(Y&&Y!=="rgba(0, 0, 0, 0)"&&Y!=="transparent"&&Y!=="rgb(255, 255, 255)"&&Y!=="#ffffff"&&Y!=="#FFFFFF"){const O=(L=>{if(L.startsWith("#"))return L.toUpperCase();const W=L.match(/\d+/g);if(!W||W.length<3)return null;const G=W[0],ee=W[1],ce=W[2];if(!G||!ee||!ce)return null;const Pe=parseInt(G).toString(16).padStart(2,"0"),Oe=parseInt(ee).toString(16).padStart(2,"0"),ie=parseInt(ce).toString(16).padStart(2,"0");return`#${Pe}${Oe}${ie}`.toUpperCase()})(Y);if(O&&O===N.toUpperCase()){U=!0;break}}H=H.parentElement}}if(N==="transparent"||U){const B=j.getRangeAt(0);if(B.collapsed)document.execCommand("removeFormat",!1);else{const X=B.extractContents(),H=document.createDocumentFragment(),oe=Y=>{if(Y.nodeType===Node.TEXT_NODE)return Y.cloneNode(!0);if(Y.nodeType===Node.ELEMENT_NODE){const E=Y,O=document.createElement(E.tagName.toLowerCase());return Array.from(E.attributes).forEach(L=>{L.name!=="style"&&L.name!=="class"&&O.setAttribute(L.name,L.value)}),Array.from(E.childNodes).forEach(L=>{const W=oe(L);W&&O.appendChild(W)}),E.style.backgroundColor&&(O.style.backgroundColor=""),O}return null};Array.from(X.childNodes).forEach(Y=>{const E=oe(Y);E&&H.appendChild(E)}),B.insertNode(H),document.execCommand("removeFormat",!1)}p(null),f("#FFEB3B")}else if(j.rangeCount>0&&!j.getRangeAt(0).collapsed)document.execCommand("backColor",!1,N),p(N),N!=="transparent"&&/^#[0-9A-Fa-f]{6}$/i.test(N)&&f(N);else return;const z=window.getSelection();z&&z.removeAllRanges(),l.current&&s(l.current.innerHTML),h(!1),setTimeout(()=>{l.current&&l.current.focus(),D()},50)},[o,s,D]),R=x.useCallback(N=>{if(!l.current)return;o||l.current.focus();const j=window.getSelection();if(!j||j.rangeCount===0){l.current.focus();return}let U=!1;if(j.rangeCount>0){const B=j.getRangeAt(0).commonAncestorContainer;let X=null;for(B.nodeType===Node.TEXT_NODE?X=B.parentElement:X=B;X&&X!==l.current;){const oe=window.getComputedStyle(X).color;if(oe){const E=(O=>{if(O.startsWith("#"))return O.toUpperCase();const L=O.match(/\d+/g);if(!L||L.length<3)return null;const W=L[0],G=L[1],ee=L[2];if(!W||!G||!ee)return null;const ce=parseInt(W).toString(16).padStart(2,"0"),Pe=parseInt(G).toString(16).padStart(2,"0"),Oe=parseInt(ee).toString(16).padStart(2,"0");return`#${ce}${Pe}${Oe}`.toUpperCase()})(oe);if(N==="#000000"){if(E==="#000000"||!E){U=!0;break}}else if(E&&E===N.toUpperCase()){U=!0;break}}X=X.parentElement}}if(N==="transparent"||N==="default"||U){if(N==="#000000"&&U){v(!1);return}document.execCommand("removeFormat",!1),A(null),k("#000000")}else document.execCommand("foreColor",!1,N),A(N),N!=="transparent"&&/^#[0-9A-Fa-f]{6}$/i.test(N)&&k(N);l.current&&s(l.current.innerHTML),v(!1),setTimeout(D,10)},[o,s,D]),V=x.useCallback(()=>{l.current&&s(l.current.innerHTML),D()},[s,D]),I=x.useCallback(N=>{if(N.ctrlKey&&N.key==="b"){N.preventDefault(),C("bold");return}if(N.ctrlKey&&N.key==="i"){N.preventDefault(),C("italic");return}if(N.ctrlKey&&N.key==="u"){N.preventDefault(),C("underline");return}},[C]),$=x.useCallback(()=>{c(!0)},[]),_=x.useCallback(()=>{c(!1),l.current&&s(l.current.innerHTML)},[s]);return x.useEffect(()=>{if(!o)return;const N=()=>{D()};return document.addEventListener("selectionchange",N),()=>{document.removeEventListener("selectionchange",N)}},[o,D]),e.jsxs("div",{className:"relative border border-gray-300 rounded-md bg-white",children:[e.jsxs("div",{className:"flex items-center gap-1 p-2 border-b border-gray-200 bg-gray-50 rounded-t-md flex-wrap",children:[e.jsxs("div",{className:"flex items-center gap-1 border-r border-gray-300 pr-2",children:[e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:we("h-7 w-7 p-0",d.has("bold")&&"bg-blue-100 text-blue-700"),onClick:()=>C("bold"),title:"Bold (Ctrl+B)",children:e.jsx(bf,{className:"h-4 w-4"})}),e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:we("h-7 w-7 p-0",d.has("italic")&&"bg-blue-100 text-blue-700"),onClick:()=>C("italic"),title:"Italic (Ctrl+I)",children:e.jsx(jf,{className:"h-4 w-4"})}),e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:we("h-7 w-7 p-0",d.has("underline")&&"bg-blue-100 text-blue-700"),onClick:()=>C("underline"),title:"Underline (Ctrl+U)",children:e.jsx(Nf,{className:"h-4 w-4"})}),e.jsxs(oa,{open:u,onOpenChange:h,children:[e.jsx(ca,{asChild:!0,children:e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:we("h-7 w-7 p-0",d.has("highlight")&&"bg-blue-100 text-blue-700"),title:"Text Highlight",children:e.jsx(wf,{className:"h-4 w-4"})})}),e.jsx(da,{className:"w-auto p-2",align:"start",onPointerDownOutside:N=>{N.target.closest("[data-popover-content]")&&N.preventDefault()},children:e.jsxs("div",{className:"space-y-2 relative",onClick:N=>N.stopPropagation(),children:[e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:"absolute top-0 right-0 h-6 w-6 p-0 hover:bg-gray-100",onClick:N=>{N.stopPropagation(),h(!1)},title:"Close",children:e.jsx(ht,{className:"h-4 w-4 text-gray-500"})}),e.jsx("div",{className:"text-xs font-semibold text-gray-700 mb-2 pr-6",children:"Highlight Color"}),e.jsx("div",{className:"grid grid-cols-6 gap-1.5 pr-1 mb-2",children:Un.map(N=>{const j=g===N.value,U=N.value==="transparent";return e.jsxs("button",{type:"button",onClick:z=>{z.preventDefault(),z.stopPropagation(),P(j&&!U?"transparent":N.value)},className:we("w-6 h-6 rounded border-2 transition-all hover:scale-110 hover:shadow-md relative",N.class,j&&"ring-2 ring-blue-600 ring-offset-1 border-blue-600",U&&"border-gray-400 bg-white",!U&&!j&&"border-gray-300"),title:j&&!U?`${N.name} (Click to remove)`:N.name,style:U?{}:{backgroundColor:N.value},children:[U&&e.jsx("span",{className:"text-[10px] text-gray-600 font-bold",children:"×"}),j&&!U&&e.jsx("span",{className:"absolute inset-0 flex items-center justify-center",children:e.jsx("span",{className:"w-2 h-2 bg-white rounded-full shadow-sm"})})]},N.value)})}),g&&g!=="transparent"&&e.jsx("div",{className:"mb-2",children:e.jsx(M,{type:"button",variant:"outline",size:"sm",className:"w-full h-7 text-xs",onClick:N=>{N.stopPropagation(),P("transparent")},title:"Remove highlight color",children:"Remove Highlight"})}),e.jsxs("div",{className:"border-t border-gray-200 pt-2 mt-2",children:[e.jsx("div",{className:"text-xs font-semibold text-gray-700 mb-1.5",children:"Custom Color"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("input",{type:"color",value:g&&g!=="transparent"?g:y,onChange:N=>{const j=N.target.value;f(j);const U=window.getSelection();U&&U.rangeCount>0&&!U.getRangeAt(0).collapsed&&P(j)},className:"w-8 h-8 rounded border border-gray-300 cursor-pointer",title:"Pick a custom color"}),e.jsx("input",{type:"text",value:g&&g!=="transparent"?g:y,onChange:N=>{N.stopPropagation();const j=N.target.value;f(j)},onKeyDown:N=>{if(N.stopPropagation(),N.key==="Enter"){N.preventDefault();const j=N.currentTarget.value.trim();/^#[0-9A-Fa-f]{6}$/i.test(j)&&P(j)}},onPaste:N=>{N.stopPropagation();const j=N.clipboardData.getData("text").trim();N.preventDefault(),setTimeout(()=>{if(/^#[0-9A-Fa-f]{6}$/i.test(j)){f(j);const U=window.getSelection();U&&U.rangeCount>0&&!U.getRangeAt(0).collapsed&&P(j)}else{const U=j.match(/^([0-9A-Fa-f]{6})$/);if(U){const z=`#${U[1]}`;f(z);const B=window.getSelection();B&&B.rangeCount>0&&!B.getRangeAt(0).collapsed&&P(z)}}},0)},onClick:N=>{N.stopPropagation()},onFocus:N=>{N.stopPropagation(),N.target.select()},onBlur:N=>{const j=N.target.value.trim();if(/^#[0-9A-Fa-f]{6}$/i.test(j)){const U=window.getSelection();U&&U.rangeCount>0&&!U.getRangeAt(0).collapsed&&P(j)}else f(j===""?g||"#FFEB3B":j)},placeholder:"#FFEB3B",className:"flex-1 h-7 px-2 text-xs border border-gray-300 rounded focus:outline-none focus:ring-1 focus:ring-blue-500",title:"Enter hex color code (Press Enter or click Apply). Supports copy-paste.",autoComplete:"off",spellCheck:"false"}),e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:"h-7 px-2 text-xs",onClick:()=>{const N=y.trim();/^#[0-9A-Fa-f]{6}$/i.test(N)?P(N):f(g||"#FFEB3B")},title:"Apply custom color",children:"Apply"})]})]})]})})]}),e.jsxs(oa,{open:b,onOpenChange:v,children:[e.jsx(ca,{asChild:!0,children:e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:we("h-7 w-7 p-0",d.has("textColor")&&"bg-blue-100 text-blue-700"),title:"Text Color",children:e.jsx(Cf,{className:"h-4 w-4"})})}),e.jsx(da,{className:"w-auto p-2",align:"start",onPointerDownOutside:N=>{N.target.closest("[data-popover-content]")&&N.preventDefault()},children:e.jsxs("div",{className:"space-y-2 relative",onClick:N=>N.stopPropagation(),children:[e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:"absolute top-0 right-0 h-6 w-6 p-0 hover:bg-gray-100",onClick:N=>{N.stopPropagation(),v(!1)},title:"Close",children:e.jsx(ht,{className:"h-4 w-4 text-gray-500"})}),e.jsx("div",{className:"text-xs font-semibold text-gray-700 mb-2 pr-6",children:"Text Color"}),e.jsxs("div",{className:"grid grid-cols-6 gap-1.5 pr-1 mb-2",children:[e.jsxs("button",{type:"button",onClick:N=>{N.preventDefault(),N.stopPropagation(),w==="#000000"||!w&&!d.has("textColor")||R("#000000")},className:we("w-6 h-6 rounded border-2 transition-all hover:scale-110 hover:shadow-md flex items-center justify-center bg-black",(w==="#000000"||!w&&!d.has("textColor"))&&"ring-2 ring-blue-600 ring-offset-1 border-blue-600",w!=="#000000"&&(w||d.has("textColor"))&&"border-gray-300"),title:"Default (Black)",children:[e.jsx("span",{className:"text-[10px] text-white font-bold",children:"A"}),(w==="#000000"||!w&&!d.has("textColor"))&&e.jsx("span",{className:"absolute inset-0 flex items-center justify-center",children:e.jsx("span",{className:"w-2 h-2 bg-white rounded-full shadow-sm"})})]}),Un.filter(N=>N.value!=="transparent").map(N=>{const j=w===N.value;return e.jsxs("button",{type:"button",onClick:U=>{U.preventDefault(),U.stopPropagation(),R(j?"#000000":N.value)},className:we("w-6 h-6 rounded border-2 transition-all hover:scale-110 hover:shadow-md flex items-center justify-center relative",j&&"ring-2 ring-blue-600 ring-offset-1 border-blue-600",!j&&"border-gray-300"),title:j?`${N.name} (Click to reset to default)`:N.name,style:{color:N.value,borderColor:j?"#2563eb":N.value},children:[e.jsx("span",{className:"text-xs font-bold",children:"A"}),j&&e.jsx("span",{className:"absolute inset-0 flex items-center justify-center",children:e.jsx("span",{className:"w-2 h-2 bg-white rounded-full shadow-sm"})})]},`text-${N.value}`)})]}),w&&w!=="#000000"&&e.jsx("div",{className:"mb-2",children:e.jsx(M,{type:"button",variant:"outline",size:"sm",className:"w-full h-7 text-xs",onClick:N=>{N.stopPropagation(),R("#000000")},title:"Reset to default black",children:"Reset to Default"})}),e.jsxs("div",{className:"border-t border-gray-200 pt-2 mt-2",children:[e.jsx("div",{className:"text-xs font-semibold text-gray-700 mb-1.5",children:"Custom Color"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("input",{type:"color",value:w||S,onChange:N=>{const j=N.target.value;k(j),R(j)},className:"w-8 h-8 rounded border border-gray-300 cursor-pointer",title:"Pick a custom text color"}),e.jsx("input",{type:"text",value:w||S,onChange:N=>{const j=N.target.value;k(j)},onKeyDown:N=>{if(N.key==="Enter"){N.preventDefault();const j=N.currentTarget.value;/^#[0-9A-Fa-f]{6}$/.test(j)&&R(j)}},onBlur:N=>{const j=N.target.value;/^#[0-9A-Fa-f]{6}$/.test(j)?R(j):j===""&&k(w||"#000000")},placeholder:"#000000",className:"flex-1 h-7 px-2 text-xs border border-gray-300 rounded focus:outline-none focus:ring-1 focus:ring-blue-500",title:"Enter hex color code (Press Enter or click Apply)"}),e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:"h-7 px-2 text-xs",onClick:()=>R(S),title:"Apply custom text color",children:"Apply"})]})]})]})})]})]}),e.jsxs("div",{className:"flex items-center gap-1 border-r border-gray-300 pr-2",children:[e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:we("h-7 w-7 p-0",d.has("h1")&&"bg-blue-100 text-blue-700"),onClick:()=>C("formatBlock","<h1>"),title:"Heading 1",children:e.jsx(Af,{className:"h-4 w-4"})}),e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:we("h-7 w-7 p-0",d.has("h2")&&"bg-blue-100 text-blue-700"),onClick:()=>C("formatBlock","<h2>"),title:"Heading 2",children:e.jsx(Sf,{className:"h-4 w-4"})}),e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:we("h-7 w-7 p-0",d.has("h3")&&"bg-blue-100 text-blue-700"),onClick:()=>C("formatBlock","<h3>"),title:"Heading 3",children:e.jsx(Tf,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"flex items-center gap-1 border-r border-gray-300 pr-2",children:[e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:we("h-7 w-7 p-0",d.has("ul")&&"bg-blue-100 text-blue-700"),onClick:()=>C("insertUnorderedList"),title:"Bullet List",children:e.jsx(Tu,{className:"h-4 w-4"})}),e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:we("h-7 w-7 p-0",d.has("ol")&&"bg-blue-100 text-blue-700"),onClick:()=>C("insertOrderedList"),title:"Numbered List",children:e.jsx(kf,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:we("h-7 w-7 p-0",d.has("left")&&"bg-blue-100 text-blue-700"),onClick:()=>C("justifyLeft"),title:"Align Left",children:e.jsx(Rf,{className:"h-4 w-4"})}),e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:we("h-7 w-7 p-0",d.has("center")&&"bg-blue-100 text-blue-700"),onClick:()=>C("justifyCenter"),title:"Align Center",children:e.jsx(Df,{className:"h-4 w-4"})}),e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:we("h-7 w-7 p-0",d.has("right")&&"bg-blue-100 text-blue-700"),onClick:()=>C("justifyRight"),title:"Align Right",children:e.jsx(Pf,{className:"h-4 w-4"})})]})]}),e.jsx("div",{ref:l,contentEditable:!0,onPaste:T,onInput:V,onFocus:$,onBlur:_,onKeyDown:I,onMouseUp:D,onKeyUp:D,"data-placeholder":a,className:we("w-full rounded-b-md border-0 px-3 py-2 text-base transition-all outline-none","bg-white text-gray-900","min-h-[120px]","overflow-y-auto","overflow-x-auto","md:overflow-x-visible","md:text-sm","empty:before:content-[attr(data-placeholder)] empty:before:text-muted-foreground empty:before:pointer-events-none","focus-visible:outline-none","[&_ul]:list-disc [&_ul]:ml-6 [&_ul]:my-2 [&_ul]:list-outside","[&_ol]:list-decimal [&_ol]:ml-6 [&_ol]:my-2 [&_ol]:list-outside","[&_li]:my-1 [&_li]:pl-2","[&_.table-wrapper]:overflow-x-auto [&_.table-wrapper]:max-w-full [&_.table-wrapper]:my-2","[&_.table-wrapper_table]:border-collapse [&_.table-wrapper_table]:border [&_.table-wrapper_table]:border-gray-300 [&_.table-wrapper_table]:min-w-full","[&_.table-wrapper_table_td]:border [&_.table-wrapper_table_td]:border-gray-300 [&_.table-wrapper_table_td]:px-3 [&_.table-wrapper_table_td]:py-2 [&_.table-wrapper_table_td]:text-sm [&_.table-wrapper_table_td]:whitespace-nowrap","[&_.table-wrapper_table_th]:border [&_.table-wrapper_table_th]:border-gray-300 [&_.table-wrapper_table_th]:px-3 [&_.table-wrapper_table_th]:py-2 [&_.table-wrapper_table_th]:bg-gray-50 [&_.table-wrapper_table_th]:font-semibold [&_.table-wrapper_table_th]:text-sm [&_.table-wrapper_table_th]:text-left [&_.table-wrapper_table_th]:whitespace-nowrap","[&_.table-wrapper_table_tr:nth-child(even)]:bg-gray-50","[&_table]:border-collapse [&_table]:my-2 [&_table]:border [&_table]:border-gray-300 [&_table]:w-full","[&_table_td]:border [&_table_td]:border-gray-300 [&_table_td]:px-3 [&_table_td]:py-2 [&_table_td]:text-sm","[&_table_th]:border [&_table_th]:border-gray-300 [&_table_th]:px-3 [&_table_th]:py-2 [&_table_th]:bg-gray-50 [&_table_th]:font-semibold [&_table_th]:text-sm [&_table_th]:text-left","[&_table_tr:nth-child(even)]:bg-gray-50","[&_p]:my-1 [&_p]:leading-relaxed","[&_strong]:font-bold","[&_em]:italic","[&_u]:underline","[&_span[style*='background']]:px-0.5 [&_span[style*='background']]:rounded","[&_h1]:text-xl [&_h1]:font-bold [&_h1]:my-2","[&_h2]:text-lg [&_h2]:font-semibold [&_h2]:my-2","[&_h3]:text-base [&_h3]:font-semibold [&_h3]:my-1",r),style:{minHeight:n},...i})]})}function Qs({content:t,className:s}){const a=x.useMemo(()=>{if(!t)return"";let r=t;const n=/<table[^>]*>[\s\S]*?<\/table>/gi;return r=r.replace(n,i=>i.includes("table-wrapper")?i:`<div class="table-wrapper" style="overflow-x: auto; max-width: 100%; margin: 8px 0;">${i}</div>`),r},[t]);return t?e.jsx("div",{className:we("text-sm text-gray-700 max-w-none","overflow-x-auto","md:overflow-x-visible","[&_ul]:list-disc [&_ul]:ml-6 [&_ul]:my-2 [&_ul]:list-outside","[&_ol]:list-decimal [&_ol]:ml-6 [&_ol]:my-2 [&_ol]:list-outside","[&_li]:my-1 [&_li]:pl-2","[&_.table-wrapper]:overflow-x-auto [&_.table-wrapper]:max-w-full [&_.table-wrapper]:my-2 [&_.table-wrapper]:-mx-2 [&_.table-wrapper]:px-2","[&_.table-wrapper_table]:border-collapse [&_.table-wrapper_table]:border [&_.table-wrapper_table]:border-gray-300 [&_.table-wrapper_table]:min-w-full","[&_.table-wrapper_table_td]:border [&_.table-wrapper_table_td]:border-gray-300 [&_.table-wrapper_table_td]:px-3 [&_.table-wrapper_table_td]:py-2 [&_.table-wrapper_table_td]:text-sm [&_.table-wrapper_table_td]:whitespace-nowrap","[&_.table-wrapper_table_th]:border [&_.table-wrapper_table_th]:border-gray-300 [&_.table-wrapper_table_th]:px-3 [&_.table-wrapper_table_th]:py-2 [&_.table-wrapper_table_th]:bg-gray-50 [&_.table-wrapper_table_th]:font-semibold [&_.table-wrapper_table_th]:text-sm [&_.table-wrapper_table_th]:text-left [&_.table-wrapper_table_th]:whitespace-nowrap","[&_.table-wrapper_table_tr:nth-child(even)]:bg-gray-50","[&_table]:border-collapse [&_table]:my-2 [&_table]:border [&_table]:border-gray-300","[&_table_td]:border [&_table_td]:border-gray-300 [&_table_td]:px-3 [&_table_td]:py-2 [&_table_td]:text-sm","[&_table_th]:border [&_table_th]:border-gray-300 [&_table_th]:px-3 [&_table_th]:py-2 [&_table_th]:bg-gray-50 [&_table_th]:font-semibold [&_table_th]:text-sm [&_table_th]:text-left","[&_table_tr:nth-child(even)]:bg-gray-50","[&_p]:my-1 [&_p]:leading-relaxed","[&_strong]:font-bold","[&_em]:italic","[&_u]:underline","[&_h1]:text-xl [&_h1]:font-bold [&_h1]:my-2","[&_h2]:text-lg [&_h2]:font-semibold [&_h2]:my-2","[&_h3]:text-base [&_h3]:font-semibold [&_h3]:my-1",s),dangerouslySetInnerHTML:{__html:a}}):null}var xh={exports:{}};(function(t,s){(function(a,r){t.exports=r()})(yi,function(){var a=1e3,r=6e4,n=36e5,i="millisecond",l="second",o="minute",c="hour",d="day",m="week",u="month",h="quarter",g="year",p="date",y="Invalid Date",f=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,b=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,v={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(I){var $=["th","st","nd","rd"],_=I%100;return"["+I+($[(_-20)%10]||$[_]||$[0])+"]"}},w=function(I,$,_){var N=String(I);return!N||N.length>=$?I:""+Array($+1-N.length).join(_)+I},A={s:w,z:function(I){var $=-I.utcOffset(),_=Math.abs($),N=Math.floor(_/60),j=_%60;return($<=0?"+":"-")+w(N,2,"0")+":"+w(j,2,"0")},m:function I($,_){if($.date()<_.date())return-I(_,$);var N=12*(_.year()-$.year())+(_.month()-$.month()),j=$.clone().add(N,u),U=_-j<0,z=$.clone().add(N+(U?-1:1),u);return+(-(N+(_-j)/(U?j-z:z-j))||0)},a:function(I){return I<0?Math.ceil(I)||0:Math.floor(I)},p:function(I){return{M:u,y:g,w:m,d,D:p,h:c,m:o,s:l,ms:i,Q:h}[I]||String(I||"").toLowerCase().replace(/s$/,"")},u:function(I){return I===void 0}},S="en",k={};k[S]=v;var F="$isDayjsObject",T=function(I){return I instanceof R||!(!I||!I[F])},D=function I($,_,N){var j;if(!$)return S;if(typeof $=="string"){var U=$.toLowerCase();k[U]&&(j=U),_&&(k[U]=_,j=U);var z=$.split("-");if(!j&&z.length>1)return I(z[0])}else{var B=$.name;k[B]=$,j=B}return!N&&j&&(S=j),j||!N&&S},C=function(I,$){if(T(I))return I.clone();var _=typeof $=="object"?$:{};return _.date=I,_.args=arguments,new R(_)},P=A;P.l=D,P.i=T,P.w=function(I,$){return C(I,{locale:$.$L,utc:$.$u,x:$.$x,$offset:$.$offset})};var R=function(){function I(_){this.$L=D(_.locale,null,!0),this.parse(_),this.$x=this.$x||_.x||{},this[F]=!0}var $=I.prototype;return $.parse=function(_){this.$d=function(N){var j=N.date,U=N.utc;if(j===null)return new Date(NaN);if(P.u(j))return new Date;if(j instanceof Date)return new Date(j);if(typeof j=="string"&&!/Z$/i.test(j)){var z=j.match(f);if(z){var B=z[2]-1||0,X=(z[7]||"0").substring(0,3);return U?new Date(Date.UTC(z[1],B,z[3]||1,z[4]||0,z[5]||0,z[6]||0,X)):new Date(z[1],B,z[3]||1,z[4]||0,z[5]||0,z[6]||0,X)}}return new Date(j)}(_),this.init()},$.init=function(){var _=this.$d;this.$y=_.getFullYear(),this.$M=_.getMonth(),this.$D=_.getDate(),this.$W=_.getDay(),this.$H=_.getHours(),this.$m=_.getMinutes(),this.$s=_.getSeconds(),this.$ms=_.getMilliseconds()},$.$utils=function(){return P},$.isValid=function(){return this.$d.toString()!==y},$.isSame=function(_,N){var j=C(_);return this.startOf(N)<=j&&j<=this.endOf(N)},$.isAfter=function(_,N){return C(_)<this.startOf(N)},$.isBefore=function(_,N){return this.endOf(N)<C(_)},$.$g=function(_,N,j){return P.u(_)?this[N]:this.set(j,_)},$.unix=function(){return Math.floor(this.valueOf()/1e3)},$.valueOf=function(){return this.$d.getTime()},$.startOf=function(_,N){var j=this,U=!!P.u(N)||N,z=P.p(_),B=function(W,G){var ee=P.w(j.$u?Date.UTC(j.$y,G,W):new Date(j.$y,G,W),j);return U?ee:ee.endOf(d)},X=function(W,G){return P.w(j.toDate()[W].apply(j.toDate("s"),(U?[0,0,0,0]:[23,59,59,999]).slice(G)),j)},H=this.$W,oe=this.$M,Y=this.$D,E="set"+(this.$u?"UTC":"");switch(z){case g:return U?B(1,0):B(31,11);case u:return U?B(1,oe):B(0,oe+1);case m:var O=this.$locale().weekStart||0,L=(H<O?H+7:H)-O;return B(U?Y-L:Y+(6-L),oe);case d:case p:return X(E+"Hours",0);case c:return X(E+"Minutes",1);case o:return X(E+"Seconds",2);case l:return X(E+"Milliseconds",3);default:return this.clone()}},$.endOf=function(_){return this.startOf(_,!1)},$.$set=function(_,N){var j,U=P.p(_),z="set"+(this.$u?"UTC":""),B=(j={},j[d]=z+"Date",j[p]=z+"Date",j[u]=z+"Month",j[g]=z+"FullYear",j[c]=z+"Hours",j[o]=z+"Minutes",j[l]=z+"Seconds",j[i]=z+"Milliseconds",j)[U],X=U===d?this.$D+(N-this.$W):N;if(U===u||U===g){var H=this.clone().set(p,1);H.$d[B](X),H.init(),this.$d=H.set(p,Math.min(this.$D,H.daysInMonth())).$d}else B&&this.$d[B](X);return this.init(),this},$.set=function(_,N){return this.clone().$set(_,N)},$.get=function(_){return this[P.p(_)]()},$.add=function(_,N){var j,U=this;_=Number(_);var z=P.p(N),B=function(oe){var Y=C(U);return P.w(Y.date(Y.date()+Math.round(oe*_)),U)};if(z===u)return this.set(u,this.$M+_);if(z===g)return this.set(g,this.$y+_);if(z===d)return B(1);if(z===m)return B(7);var X=(j={},j[o]=r,j[c]=n,j[l]=a,j)[z]||1,H=this.$d.getTime()+_*X;return P.w(H,this)},$.subtract=function(_,N){return this.add(-1*_,N)},$.format=function(_){var N=this,j=this.$locale();if(!this.isValid())return j.invalidDate||y;var U=_||"YYYY-MM-DDTHH:mm:ssZ",z=P.z(this),B=this.$H,X=this.$m,H=this.$M,oe=j.weekdays,Y=j.months,E=j.meridiem,O=function(G,ee,ce,Pe){return G&&(G[ee]||G(N,U))||ce[ee].slice(0,Pe)},L=function(G){return P.s(B%12||12,G,"0")},W=E||function(G,ee,ce){var Pe=G<12?"AM":"PM";return ce?Pe.toLowerCase():Pe};return U.replace(b,function(G,ee){return ee||function(ce){switch(ce){case"YY":return String(N.$y).slice(-2);case"YYYY":return P.s(N.$y,4,"0");case"M":return H+1;case"MM":return P.s(H+1,2,"0");case"MMM":return O(j.monthsShort,H,Y,3);case"MMMM":return O(Y,H);case"D":return N.$D;case"DD":return P.s(N.$D,2,"0");case"d":return String(N.$W);case"dd":return O(j.weekdaysMin,N.$W,oe,2);case"ddd":return O(j.weekdaysShort,N.$W,oe,3);case"dddd":return oe[N.$W];case"H":return String(B);case"HH":return P.s(B,2,"0");case"h":return L(1);case"hh":return L(2);case"a":return W(B,X,!0);case"A":return W(B,X,!1);case"m":return String(X);case"mm":return P.s(X,2,"0");case"s":return String(N.$s);case"ss":return P.s(N.$s,2,"0");case"SSS":return P.s(N.$ms,3,"0");case"Z":return z}return null}(G)||z.replace(":","")})},$.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},$.diff=function(_,N,j){var U,z=this,B=P.p(N),X=C(_),H=(X.utcOffset()-this.utcOffset())*r,oe=this-X,Y=function(){return P.m(z,X)};switch(B){case g:U=Y()/12;break;case u:U=Y();break;case h:U=Y()/3;break;case m:U=(oe-H)/6048e5;break;case d:U=(oe-H)/864e5;break;case c:U=oe/n;break;case o:U=oe/r;break;case l:U=oe/a;break;default:U=oe}return j?U:P.a(U)},$.daysInMonth=function(){return this.endOf(u).$D},$.$locale=function(){return k[this.$L]},$.locale=function(_,N){if(!_)return this.$L;var j=this.clone(),U=D(_,N,!0);return U&&(j.$L=U),j},$.clone=function(){return P.w(this.$d,this)},$.toDate=function(){return new Date(this.valueOf())},$.toJSON=function(){return this.isValid()?this.toISOString():null},$.toISOString=function(){return this.$d.toISOString()},$.toString=function(){return this.$d.toUTCString()},I}(),V=R.prototype;return C.prototype=V,[["$ms",i],["$s",l],["$m",o],["$H",c],["$W",d],["$M",u],["$y",g],["$D",p]].forEach(function(I){V[I[1]]=function($){return this.$g($,I[0],I[1])}}),C.extend=function(I,$){return I.$i||(I($,R,C),I.$i=!0),C},C.locale=D,C.isDayjs=T,C.unix=function(I){return C(1e3*I)},C.en=k[S],C.Ls=k,C.p={},C})})(xh);var lb=xh.exports;const $t=vi(lb);var ph={exports:{}};(function(t,s){(function(a,r){t.exports=r()})(yi,function(){return function(a,r,n){a=a||{};var i=r.prototype,l={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function o(d,m,u,h){return i.fromToBase(d,m,u,h)}n.en.relativeTime=l,i.fromToBase=function(d,m,u,h,g){for(var p,y,f,b=u.$locale().relativeTime||l,v=a.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],w=v.length,A=0;A<w;A+=1){var S=v[A];S.d&&(p=h?n(d).diff(u,S.d,!0):u.diff(d,S.d,!0));var k=(a.rounding||Math.round)(Math.abs(p));if(f=p>0,k<=S.r||!S.r){k<=1&&A>0&&(S=v[A-1]);var F=b[S.l];g&&(k=g(""+k)),y=typeof F=="string"?F.replace("%d",k):F(k,m,S.l,f);break}}if(m)return y;var T=f?b.future:b.past;return typeof T=="function"?T(y):T.replace("%s",y)},i.to=function(d,m){return o(d,m,this,!0)},i.from=function(d,m){return o(d,m,this)};var c=function(d){return d.$u?n.utc():n()};i.toNow=function(d){return this.to(c(this),d)},i.fromNow=function(d){return this.from(c(this),d)}}})})(ph);var ob=ph.exports;const cb=vi(ob);$t.extend(cb);function db({request:t,isInitiator:s,needsClosure:a,conclusionRemark:r,setConclusionRemark:n,conclusionLoading:i,conclusionSubmitting:l,aiGenerated:o,handleGenerateConclusion:c,handleFinalizeConclusion:d,onPause:m,onResume:u,onRetrigger:h,currentUserIsApprover:g=!1,pausedByUserId:p,currentUserId:y}){var F,T,D,C,P,R,V,I;const{user:f}=Zt(),b=t==null?void 0:t.pauseInfo,v=(b==null?void 0:b.isPaused)||!1,w=(F=b==null?void 0:b.pausedBy)==null?void 0:F.userId,A=(f==null?void 0:f.userId)||"",S=v&&u&&(g||s),k=v&&s&&w&&w!==A&&h;return e.jsxs("div",{className:"space-y-4 sm:space-y-6","data-testid":"overview-tab-content",children:[e.jsxs(te,{"data-testid":"initiator-card",children:[e.jsx(ue,{className:"pb-3 sm:pb-4",children:e.jsxs(he,{className:"flex items-center gap-2 text-sm sm:text-base",children:[e.jsx(kt,{className:"w-4 h-4 sm:w-5 sm:h-5 text-blue-600"}),"Request Initiator"]})}),e.jsx(se,{children:e.jsxs("div",{className:"flex items-start gap-3 sm:gap-4",children:[e.jsx(as,{className:"h-10 w-10 sm:h-12 sm:w-12 ring-2 ring-white shadow-sm flex-shrink-0",children:e.jsx(rs,{className:"bg-gray-700 text-white font-semibold text-sm",children:((T=t.initiator)==null?void 0:T.avatar)||"U"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:"font-semibold text-gray-900 text-sm sm:text-base truncate",children:((D=t.initiator)==null?void 0:D.name)||"N/A"}),e.jsx("p",{className:"text-xs sm:text-sm text-gray-600 truncate",children:((C=t.initiator)==null?void 0:C.role)||"N/A"}),e.jsx("p",{className:"text-xs sm:text-sm text-gray-500 truncate",children:((P=t.initiator)==null?void 0:P.department)||"N/A"}),e.jsxs("div",{className:"mt-2 sm:mt-3 space-y-1.5 sm:space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-xs sm:text-sm text-gray-600 min-w-0",children:[e.jsx(Ta,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 flex-shrink-0"}),e.jsx("span",{className:"truncate",children:((R=t.initiator)==null?void 0:R.email)||"N/A"})]}),e.jsxs("div",{className:"flex items-center gap-2 text-xs sm:text-sm text-gray-600",children:[e.jsx(Ni,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 flex-shrink-0"}),e.jsx("span",{children:((V=t.initiator)==null?void 0:V.phone)||"N/A"})]})]})]})]})})]}),e.jsxs(te,{"data-testid":"request-details-card",children:[e.jsx(ue,{className:"pb-3 sm:pb-4",children:e.jsxs(he,{className:"flex items-center gap-2 text-sm sm:text-base",children:[e.jsx(_e,{className:"w-4 h-4 sm:w-5 sm:h-5 text-blue-600"}),"Request Details"]})}),e.jsxs(se,{className:"space-y-3 sm:space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"text-xs sm:text-sm font-medium text-gray-700 block mb-2",children:"Description"}),e.jsx("div",{className:"bg-gray-50 rounded-lg p-3 sm:p-4 border border-gray-300",children:e.jsx(Qs,{content:t.description||"",className:"text-xs sm:text-sm"})})]}),(t.category||t.subcategory)&&e.jsxs("div",{className:"grid grid-cols-2 gap-4 pt-4 border-t border-gray-300",children:[t.category&&e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Category"}),e.jsx("p",{className:"text-sm text-gray-900 font-medium mt-1",children:t.category})]}),t.subcategory&&e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Subcategory"}),e.jsx("p",{className:"text-sm text-gray-900 font-medium mt-1",children:t.subcategory})]})]}),t.amount&&e.jsxs("div",{className:"pt-4 border-t border-gray-300",children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Amount"}),e.jsx("p",{className:"text-lg font-bold text-gray-900 mt-1",children:t.amount})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4 pt-4 border-t border-gray-300",children:[e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Created"}),e.jsx("p",{className:"text-sm text-gray-900 font-medium mt-1",children:ns(t.createdAt)})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Last Updated"}),e.jsx("p",{className:"text-sm text-gray-900 font-medium mt-1",children:ns(t.updatedAt)})]})]})]})]}),v&&b&&e.jsxs(te,{className:"border-orange-300 bg-orange-50/50","data-testid":"pause-status-card",children:[e.jsx(ue,{className:"pb-3 sm:pb-4",children:e.jsxs(he,{className:"flex items-center gap-2 text-sm sm:text-base text-orange-800",children:[e.jsx(Ua,{className:"w-4 h-4 sm:w-5 sm:h-5 text-orange-600"}),"Workflow Paused"]})}),e.jsxs(se,{className:"space-y-3 sm:space-y-4",children:[e.jsx("div",{className:"bg-white rounded-lg p-3 sm:p-4 border border-orange-200",children:e.jsxs("div",{className:"space-y-2 sm:space-y-3",children:[b.pauseReason&&e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-700 uppercase tracking-wide",children:"Reason"}),e.jsx("p",{className:"text-sm text-gray-900 mt-1",children:b.pauseReason})]}),b.pausedBy&&e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-700 uppercase tracking-wide",children:"Paused By"}),e.jsx("p",{className:"text-sm text-gray-900 mt-1",children:b.pausedBy.name||b.pausedBy.email})]}),b.pauseResumeDate&&e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-700 uppercase tracking-wide",children:"Auto-Resume Date"}),e.jsxs("p",{className:"text-sm text-gray-900 mt-1",children:[ns(b.pauseResumeDate),$t(b.pauseResumeDate).isAfter($t())&&e.jsxs("span",{className:"ml-2 text-xs text-gray-500",children:["(",$t(b.pauseResumeDate).fromNow(),")"]})]})]}),b.pausedAt&&e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-700 uppercase tracking-wide",children:"Paused At"}),e.jsx("p",{className:"text-sm text-gray-900 mt-1",children:ns(b.pausedAt)})]})]})}),e.jsxs("div",{className:"flex flex-wrap gap-2 pt-2 border-t border-orange-200",children:[S&&u&&e.jsxs(M,{onClick:u,className:"bg-green-600 hover:bg-green-700 text-white text-xs sm:text-sm h-8 sm:h-9",size:"sm",children:[e.jsx(li,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 mr-1.5"}),"Resume Now"]}),k&&h&&e.jsxs(M,{onClick:h,variant:"outline",className:"border-orange-300 text-orange-700 hover:bg-orange-50 text-xs sm:text-sm h-8 sm:h-9",size:"sm",children:[e.jsx(Ge,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 mr-1.5"}),"Request Resume"]})]})]})]}),t.claimDetails&&e.jsxs(te,{children:[e.jsx(ue,{className:"pb-4",children:e.jsxs(he,{className:"flex items-center gap-2 text-base",children:[e.jsx(_e,{className:"w-5 h-5 text-purple-600"}),"Claim Management Details"]})}),e.jsxs(se,{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Activity Name"}),e.jsx("p",{className:"text-sm text-gray-900 font-medium mt-1",children:t.claimDetails.activityName||"N/A"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Activity Type"}),e.jsx("p",{className:"text-sm text-gray-900 font-medium mt-1",children:t.claimDetails.activityType||"N/A"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Location"}),e.jsx("p",{className:"text-sm text-gray-900 font-medium mt-1",children:t.claimDetails.location||"N/A"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Activity Date"}),e.jsx("p",{className:"text-sm text-gray-900 font-medium mt-1",children:t.claimDetails.activityDate?hh(t.claimDetails.activityDate):"N/A"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Dealer Code"}),e.jsx("p",{className:"text-sm text-gray-900 font-medium mt-1",children:t.claimDetails.dealerCode||"N/A"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Dealer Name"}),e.jsx("p",{className:"text-sm text-gray-900 font-medium mt-1",children:t.claimDetails.dealerName||"N/A"})]})]}),t.claimDetails.requestDescription&&e.jsxs("div",{className:"pt-4 border-t border-gray-300",children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Request Description"}),e.jsx("div",{className:"mt-2 bg-gray-50 p-3 rounded-lg",children:e.jsx(Qs,{content:t.claimDetails.requestDescription,className:"text-sm"})})]})]})]}),t.status==="closed"&&t.conclusionRemark&&e.jsxs(te,{children:[e.jsxs(ue,{className:"bg-gradient-to-r from-gray-50 to-slate-50 border-b border-gray-200",children:[e.jsxs(he,{className:"flex items-center gap-2 text-base",children:[e.jsx(Ce,{className:"w-5 h-5 text-gray-600"}),"Conclusion Remark"]}),e.jsx(Te,{className:"mt-1 text-xs sm:text-sm",children:"Final summary of this closed request"})]}),e.jsxs(se,{className:"pt-4",children:[e.jsx("div",{className:"bg-gray-50 border border-gray-200 rounded-lg p-4",children:e.jsx(Qs,{content:t.conclusionRemark||"",className:"text-sm"})}),t.closureDate&&e.jsxs("div",{className:"mt-3 flex items-center justify-between text-xs text-gray-500 border-t border-gray-200 pt-3",children:[e.jsxs("span",{children:["Request closed on ",ns(t.closureDate)]}),e.jsxs("span",{children:["By ",((I=t.initiator)==null?void 0:I.name)||"Initiator"]})]})]})]}),a&&e.jsxs(te,{"data-testid":"conclusion-remark-card",children:[e.jsx(ue,{className:`bg-gradient-to-r border-b ${t.status==="rejected"?"from-red-50 to-rose-50 border-red-200":"from-green-50 to-emerald-50 border-green-200"}`,children:e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3",children:[e.jsxs("div",{children:[e.jsxs(he,{className:`flex items-center gap-2 text-base sm:text-lg ${t.status==="rejected"?"text-red-700":"text-green-700"}`,children:[e.jsx(Ce,{className:`w-5 h-5 ${t.status==="rejected"?"text-red-600":"text-green-600"}`}),"Conclusion Remark - Final Step"]}),e.jsx(Te,{className:"mt-1 text-xs sm:text-sm",children:t.status==="rejected"?"This request was rejected. Please review the AI-generated closure remark and finalize it to close this request.":"All approvals are complete. Please review and finalize the conclusion to close this request."})]}),e.jsxs(M,{variant:"outline",size:"sm",onClick:c,disabled:i,className:"gap-2 shrink-0","data-testid":"generate-ai-conclusion-button",children:[e.jsx(Bt,{className:`w-3.5 h-3.5 ${i?"animate-spin":""}`}),o?"Regenerate":"Generate with AI"]})]})}),e.jsx(se,{className:"pt-4",children:i?e.jsx("div",{className:"flex items-center justify-center py-8","data-testid":"conclusion-loading",children:e.jsxs("div",{className:"text-center",children:[e.jsx(Je,{className:"w-8 h-8 text-blue-600 animate-spin mx-auto mb-2"}),e.jsx("p",{className:"text-sm text-gray-600",children:"Preparing conclusion remark..."})]})}):e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx("label",{className:"text-sm font-medium text-gray-700",children:"Conclusion Remark"}),o&&e.jsx("span",{className:"text-xs text-blue-600","data-testid":"ai-generated-label",children:"✓ System-generated suggestion (editable)"})]}),e.jsx(Fi,{value:r,onChange:$=>n($),placeholder:"Enter a professional conclusion remark summarizing the request outcome, key decisions, and approvals...",className:"text-sm",minHeight:"160px","data-testid":"conclusion-remark-textarea"}),e.jsx("p",{className:"text-xs text-blue-600 mt-1",children:"💡 Tip: You can paste formatted content (lists, tables) and the formatting will be preserved."}),e.jsxs("div",{className:"flex items-center justify-between mt-2",children:[e.jsx("p",{className:"text-xs text-gray-500",children:"This will be the final summary for this request"}),e.jsxs("p",{className:"text-xs text-gray-500","data-testid":"character-count",children:[r?r.replace(/<[^>]*>/g,"").length:0," / 2000 characters"]})]})]}),e.jsxs("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-3",children:[e.jsx("p",{className:"text-xs sm:text-sm font-semibold text-blue-900 mb-1.5",children:"Finalizing this request will:"}),e.jsxs("ul",{className:"text-xs sm:text-sm text-blue-800 space-y-0.5 pl-4",children:[e.jsx("li",{className:"list-disc",children:'Change request status to "CLOSED"'}),e.jsx("li",{className:"list-disc",children:"Notify all participants of closure"}),e.jsx("li",{className:"list-disc",children:"Move request to Closed Requests"}),e.jsx("li",{className:"list-disc",children:"Save conclusion remark permanently"})]})]}),e.jsx("div",{className:"flex gap-3 justify-end pt-3 border-t",children:e.jsx(M,{onClick:d,disabled:l||!r.trim(),className:"bg-green-600 hover:bg-green-700 text-white","data-testid":"finalize-close-button",children:l?e.jsxs(e.Fragment,{children:[e.jsx(Je,{className:"w-4 h-4 mr-2 animate-spin"}),"Finalizing..."]}):e.jsxs(e.Fragment,{children:[e.jsx(Ce,{className:"w-4 h-4 mr-2"}),"Finalize & Close Request"]})})})]})})]})]})}function Xn({delayDuration:t=0,...s}){return e.jsx(Rg,{"data-slot":"tooltip-provider",delayDuration:t,...s})}function sl({...t}){return e.jsx(Xn,{children:e.jsx(Dg,{"data-slot":"tooltip",...t})})}function al({...t}){return e.jsx(Pg,{"data-slot":"tooltip-trigger",...t})}function rl({className:t,sideOffset:s=0,children:a,...r}){return e.jsx(Ig,{children:e.jsxs(Eg,{"data-slot":"tooltip-content",sideOffset:s,className:we("bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",t),...r,children:[a,e.jsx(Mg,{className:"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}function ct({...t}){return e.jsx(Lg,{"data-slot":"dialog",...t})}function mb({...t}){return e.jsx(_g,{"data-slot":"dialog-portal",...t})}const gh=x.forwardRef(({className:t,...s},a)=>e.jsx(xu,{ref:a,"data-slot":"dialog-overlay",className:we("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t),...s}));gh.displayName=xu.displayName;const lt=x.forwardRef(({className:t,children:s,...a},r)=>e.jsxs(mb,{"data-slot":"dialog-portal",children:[e.jsx(gh,{}),e.jsxs(pu,{ref:r,"data-slot":"dialog-content",className:we("bg-white data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg",t),...a,children:[s,e.jsxs(Fg,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[e.jsx(ht,{}),e.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));lt.displayName=pu.displayName;const dt=x.forwardRef(({className:t,...s},a)=>e.jsx("div",{ref:a,"data-slot":"dialog-header",className:we("flex flex-col gap-2 text-center sm:text-left",t),...s}));dt.displayName="DialogHeader";const Ct=x.forwardRef(({className:t,...s},a)=>e.jsx("div",{ref:a,"data-slot":"dialog-footer",className:we("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",t),...s}));Ct.displayName="DialogFooter";const ot=x.forwardRef(({className:t,...s},a)=>e.jsx(gu,{ref:a,"data-slot":"dialog-title",className:we("text-lg leading-none font-semibold",t),...s}));ot.displayName=gu.displayName;const Lt=x.forwardRef(({className:t,...s},a)=>e.jsx(fu,{ref:a,"data-slot":"dialog-description",className:we("text-muted-foreground text-sm",t),...s}));Lt.displayName=fu.displayName;function ps({className:t,...s}){return e.jsx("textarea",{"data-slot":"textarea",className:we("resize-none border-gray-400 placeholder:text-muted-foreground bg-white text-gray-900 flex field-sizing-content min-h-16 w-full rounded-md border px-3 py-2 text-base transition-all outline-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","hover:border-gray-500","focus-visible:border-re-light-green focus-visible:ring-0 focus-visible:outline-none","aria-invalid:ring-destructive/20 aria-invalid:border-destructive",t),...s})}const Pd=t=>{if(t<8)return Rt(t);const a=Math.floor(t/8),r=t%8;return r>0?`${a}d ${Rt(r)}`:`${a}d`},ub=(t,s)=>{if(s)return e.jsx(Ge,{className:"w-4 h-4 sm:w-5 sm:h-5 text-orange-600"});switch(t){case"approved":return e.jsx(Ce,{className:"w-4 h-4 sm:w-5 sm:w-5 text-green-600"});case"rejected":return e.jsx(gt,{className:"w-4 h-4 sm:w-5 sm:h-5 text-red-600"});case"paused":return e.jsx(Ru,{className:"w-4 h-4 sm:w-5 sm:h-5 text-yellow-600"});case"pending":case"in-review":return e.jsx(Ye,{className:"w-4 h-4 sm:w-5 sm:h-5 text-blue-600"});case"waiting":return e.jsx(Ye,{className:"w-4 h-4 sm:w-5 sm:h-5 text-gray-400"});default:return e.jsx(Ye,{className:"w-4 h-4 sm:w-5 sm:h-5 text-gray-400"})}};function hb({step:t,index:s,approval:a,isCurrentUser:r=!1,isInitiator:n=!1,isCurrentLevel:i=!1,onSkipApprover:l,onRefresh:o,testId:c="approval-step"}){const{user:d}=Zt(),[m,u]=x.useState(!1),[h,g]=x.useState(""),[p,y]=x.useState(!1),f=(a==null?void 0:a.breachReason)||(t==null?void 0:t.breachReason)||"";x.useEffect(()=>{m||g("")},[m]);const b=t.status==="pending"||t.status==="in-review",v=t.status==="approved",w=t.status==="rejected",A=t.status==="waiting",S=t.status==="paused",k=Number(t.tatHours||0),F=t.actualHours??0,T=v&&F?Math.max(0,k-F):0,D=k>0?F/k*100:0,C=D>=100,P=(d==null?void 0:d.role)==="ADMIN",R=Ii(d),V=t.approverId===(d==null?void 0:d.userId),I=P||R||V,$=async()=>{var _,N;if(!h.trim()){q.error("Breach Reason Required",{description:"Please enter a reason for the breach."});return}y(!0);try{await nb(t.levelId,h.trim()),u(!1),g(""),q.success("Breach Reason Updated",{description:"The breach reason has been saved and will appear in the TAT Breach Report.",duration:5e3}),o?await o():setTimeout(()=>{window.location.reload()},1e3)}catch(j){console.error("Error updating breach reason:",j);const U=((N=(_=j==null?void 0:j.response)==null?void 0:_.data)==null?void 0:N.error)||(j==null?void 0:j.message)||"Failed to update breach reason. Please try again.";q.error("Failed to Update Breach Reason",{description:U,duration:5e3})}finally{y(!1)}};return e.jsxs("div",{className:`relative p-3 sm:p-4 md:p-5 rounded-lg border-2 transition-all ${t.isSkipped?"border-orange-500 bg-orange-50":b?"border-blue-500 bg-blue-50 shadow-md":v?"border-green-500 bg-green-50":w?"border-red-500 bg-red-50":A?"border-gray-300 bg-gray-50":"border-gray-200 bg-white"}`,"data-testid":`${c}-${t.step}`,children:[e.jsxs("div",{className:"flex items-start gap-2 sm:gap-3 md:gap-4",children:[e.jsx("div",{className:`p-2 sm:p-2.5 md:p-3 rounded-xl flex-shrink-0 ${t.isSkipped?"bg-orange-100":S?"bg-yellow-100":b?"bg-blue-100":v?"bg-green-100":w?"bg-red-100":A?"bg-gray-200":"bg-gray-100"}`,children:ub(t.status,t.isSkipped)}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-2 sm:gap-4 mb-3",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 sm:gap-2 mb-2",children:[e.jsxs("h4",{className:"font-semibold text-gray-900 text-base sm:text-lg","data-testid":`${c}-approver-label`,children:["Approver ",s+1]}),e.jsx(le,{variant:"outline",className:`text-xs shrink-0 capitalize ${t.isSkipped?"bg-orange-100 text-orange-800 border-orange-200":b?"bg-yellow-100 text-yellow-800 border-yellow-200":v?"bg-green-100 text-green-800 border-green-200":w?"bg-red-100 text-red-800 border-red-200":A?"bg-gray-200 text-gray-600 border-gray-300":"bg-gray-100 text-gray-800 border-gray-200"}`,"data-testid":`${c}-status-badge`,children:t.isSkipped?"skipped":t.status}),t.isSkipped&&t.skipReason&&e.jsx(Xn,{delayDuration:200,children:e.jsxs(sl,{children:[e.jsx(al,{asChild:!0,children:e.jsx("button",{type:"button",className:"inline-flex items-center justify-center cursor-pointer hover:opacity-80 transition-opacity",onClick:_=>_.stopPropagation(),children:e.jsx(Ge,{className:"w-4 h-4 text-orange-600"})})}),e.jsxs(rl,{side:"top",className:"max-w-xs bg-orange-50 border-orange-200",children:[e.jsxs("p",{className:"text-xs font-semibold text-orange-900 mb-1 flex items-center gap-1",children:[e.jsx(hd,{className:"w-3 h-3"}),"Skip Reason:"]}),e.jsx("p",{className:"text-xs text-gray-700",children:t.skipReason})]})]})}),v&&F&&e.jsx(le,{className:"bg-green-600 text-white text-xs","data-testid":`${c}-completion-time`,children:Pd(F)})]}),e.jsx("p",{className:"text-sm font-semibold text-gray-900","data-testid":`${c}-approver-name`,children:r?e.jsx("span",{className:"text-blue-600",children:"You"}):t.approver}),e.jsx("p",{className:"text-xs text-gray-600","data-testid":`${c}-role`,children:t.role})]}),e.jsxs("div",{className:"text-left sm:text-right flex-shrink-0",children:[e.jsx("p",{className:"text-xs text-gray-500 font-medium",children:"Turnaround Time (TAT)"}),e.jsxs("p",{className:"text-lg font-bold text-gray-900","data-testid":`${c}-tat-hours`,children:[k," hours"]})]})]}),v&&F!==void 0&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsx("span",{className:"text-gray-600",children:"Completed:"}),e.jsx("span",{className:"font-medium text-gray-900",children:t.timestamp?ns(t.timestamp):"N/A"})]}),e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsx("span",{className:"text-gray-600",children:"Completed in:"}),e.jsx("span",{className:"font-medium text-gray-900",children:Pd(F)})]}),e.jsx("div",{className:"space-y-2",children:(()=>{const _=Math.min(100,D),N=()=>C?"bg-red-600":D>=75?"bg-orange-500":D>=50?"bg-amber-500":"bg-green-600",j=()=>C?"text-red-600":D>=75?"text-orange-600":D>=50?"text-amber-600":"text-green-600";return e.jsxs(e.Fragment,{children:[e.jsx(ea,{value:_,className:"h-2 bg-gray-200",indicatorClassName:N(),"data-testid":`${c}-progress-bar`}),e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:`font-semibold ${j()}`,children:[Math.round(_),"% of TAT used"]}),C&&I&&e.jsx(Xn,{children:e.jsxs(sl,{children:[e.jsx(al,{asChild:!0,children:e.jsx(M,{variant:"ghost",size:"sm",className:"h-5 w-5 p-0 text-red-600 hover:text-red-700 hover:bg-red-50",onClick:()=>{g(f),u(!0)},children:e.jsx($n,{className:"w-3 h-3"})})}),e.jsx(rl,{children:e.jsx("p",{children:f?"Edit breach reason":"Add breach reason"})})]})})]}),T>0&&e.jsxs("span",{className:"text-green-600 font-semibold",children:["Saved ",Rt(T)]})]})]})})()}),C&&f&&e.jsxs("div",{className:"mt-4 p-3 sm:p-4 bg-red-50 border-l-4 border-red-500 rounded-r-lg",children:[e.jsxs("p",{className:"text-xs font-semibold text-red-700 mb-2 flex items-center gap-1.5",children:[e.jsx($n,{className:"w-3.5 h-3.5"}),"Breach Reason:"]}),e.jsx("p",{className:"text-sm text-gray-700 leading-relaxed whitespace-pre-line",children:f})]}),t.comment&&e.jsxs("div",{className:"mt-4 p-3 sm:p-4 bg-blue-50 border-l-4 border-blue-500 rounded-r-lg",children:[e.jsxs("p",{className:"text-xs font-semibold text-gray-700 mb-2 flex items-center gap-1.5",children:[e.jsx(Hs,{className:"w-3.5 h-3.5 text-blue-600"}),"Conclusion Remark:"]}),e.jsx("p",{className:"text-sm text-gray-700 italic leading-relaxed",children:t.comment})]})]}),i&&(b||S)&&(a==null?void 0:a.sla)&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsx("span",{className:"text-gray-600",children:"Due by:"}),e.jsx("span",{className:"font-medium text-gray-900",children:a.sla.deadline?ma(a.sla.deadline,!0):"Not set"})]}),e.jsxs("div",{className:`border rounded-lg p-3 ${S?"bg-gray-100 border-gray-300":(a.sla.percentageUsed||0)>=100?"bg-red-50 border-red-200":(a.sla.percentageUsed||0)>=75?"bg-orange-50 border-orange-200":(a.sla.percentageUsed||0)>=50?"bg-amber-50 border-amber-200":"bg-green-50 border-green-200"}`,children:[e.jsxs("p",{className:"text-xs font-semibold text-gray-900 mb-3 flex items-center gap-2",children:[e.jsx(Ye,{className:"w-4 h-4"}),"Current Approver - Time Tracking ",S&&"(Paused)"]}),e.jsxs("div",{className:"space-y-2 text-xs mb-3",children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-gray-600",children:"Time elapsed since assigned:"}),e.jsx("span",{className:"font-medium text-gray-900",children:a.sla.elapsedText})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-gray-600",children:"Time used:"}),e.jsxs("span",{className:"font-medium text-gray-900",children:[a.sla.elapsedText," / ",Rt(k)," allocated"]})]})]}),e.jsxs("div",{className:"space-y-2",children:[(()=>{const _=a.sla.percentageUsed||0,N=()=>S?"bg-gray-500":_>=100?"bg-red-600":_>=75?"bg-orange-500":_>=50?"bg-amber-500":"bg-green-600",j=()=>S?"text-gray-600":_>=100?"text-red-600":_>=75?"text-orange-600":_>=50?"text-amber-600":"text-green-600";return e.jsxs(e.Fragment,{children:[e.jsx(ea,{value:a.sla.percentageUsed,className:"h-3",indicatorClassName:N(),"data-testid":`${c}-sla-progress`}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:`text-xs font-semibold ${j()}`,children:["Progress: ",Math.min(100,a.sla.percentageUsed),"% of TAT used"]}),a.sla.status==="breached"&&I&&e.jsx(Xn,{children:e.jsxs(sl,{children:[e.jsx(al,{asChild:!0,children:e.jsx(M,{variant:"ghost",size:"sm",className:"h-5 w-5 p-0 text-red-600 hover:text-red-700 hover:bg-red-50",onClick:()=>{g(f),u(!0)},children:e.jsx($n,{className:"w-3 h-3"})})}),e.jsx(rl,{children:e.jsx("p",{children:f?"Edit breach reason":"Add breach reason"})})]})})]}),e.jsxs("span",{className:"text-xs font-medium text-gray-700",children:[a.sla.remainingText," remaining"]})]})]})})(),a.sla.status==="breached"&&e.jsxs(e.Fragment,{children:[e.jsxs("p",{className:"text-xs font-semibold text-center text-red-600 flex items-center justify-center gap-1.5",children:[e.jsx(oi,{className:"w-4 h-4"}),"Deadline Breached"]}),f&&e.jsxs("div",{className:"mt-3 p-3 bg-red-50 border-l-4 border-red-500 rounded-r-lg",children:[e.jsxs("p",{className:"text-xs font-semibold text-red-700 mb-2 flex items-center gap-1.5",children:[e.jsx($n,{className:"w-3.5 h-3.5"}),"Breach Reason:"]}),e.jsx("p",{className:"text-sm text-gray-700 leading-relaxed whitespace-pre-line",children:f})]})]}),a.sla.status==="critical"&&e.jsxs("p",{className:"text-xs font-semibold text-center text-orange-600 flex items-center justify-center gap-1.5",children:[e.jsx(os,{className:"w-4 h-4"}),"Approaching Deadline"]})]})]})]}),A&&e.jsx("div",{className:"space-y-2",children:e.jsxs("div",{className:"bg-gray-100 border border-gray-300 rounded-lg p-3",children:[e.jsxs("p",{className:"text-xs text-gray-600 mb-1 flex items-center gap-1.5",children:[e.jsx(Ru,{className:"w-3.5 h-3.5 text-gray-500"}),"Awaiting Previous Approval"]}),e.jsx("p",{className:"text-sm font-medium text-gray-700",children:"Will be assigned after previous step"}),e.jsxs("p",{className:"text-xs text-gray-500 mt-2",children:["Allocated ",k," hours for approval"]})]})}),w&&t.comment&&e.jsxs("div",{className:"mt-3 p-3 sm:p-4 bg-red-50 border-l-4 border-red-500 rounded-r-lg",children:[e.jsxs("p",{className:"text-xs font-semibold text-red-700 mb-2 flex items-center gap-1.5",children:[e.jsx(gt,{className:"w-3.5 h-3.5"}),"Rejection Reason:"]}),e.jsx("p",{className:"text-sm text-gray-700 leading-relaxed",children:t.comment})]}),t.isSkipped&&t.skipReason&&e.jsxs("div",{className:"mt-3 p-3 sm:p-4 bg-orange-50 border-l-4 border-orange-500 rounded-r-lg",children:[e.jsxs("p",{className:"text-xs font-semibold text-orange-700 mb-2 flex items-center gap-1.5",children:[e.jsx(hd,{className:"w-3.5 h-3.5"}),"Skip Reason:"]}),e.jsx("p",{className:"text-sm text-gray-700 leading-relaxed",children:t.skipReason}),t.timestamp&&e.jsxs("p",{className:"text-xs text-gray-500 mt-2",children:["Skipped on ",ns(t.timestamp)]})]}),t.tatAlerts&&t.tatAlerts.length>0&&e.jsx("div",{className:"mt-2 sm:mt-3 space-y-2",children:t.tatAlerts.map((_,N)=>{var j,U,z,B,X,H;return e.jsx("div",{className:`p-2 sm:p-3 rounded-lg border ${_.isBreached?"bg-red-50 border-red-200":(_.thresholdPercentage||0)===75?"bg-orange-50 border-orange-200":"bg-yellow-50 border-yellow-200"}`,"data-testid":`${c}-tat-alert-${N}`,children:e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsxs("div",{className:"flex-shrink-0 mt-0.5",children:[(_.thresholdPercentage||0)===50&&e.jsx(If,{className:"w-5 h-5 text-yellow-600"}),(_.thresholdPercentage||0)===75&&e.jsx(os,{className:"w-5 h-5 text-orange-600"}),(_.thresholdPercentage||0)===100&&e.jsx(oi,{className:"w-5 h-5 text-red-600"})]}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-1 sm:gap-2 mb-1",children:[e.jsxs("p",{className:"text-xs sm:text-sm font-semibold text-gray-900",children:["Reminder ",N+1," - ",_.thresholdPercentage||0,"% TAT"]}),e.jsx(le,{variant:"outline",className:`text-[10px] sm:text-xs shrink-0 ${_.isBreached?"bg-red-100 text-red-800 border-red-300":"bg-amber-100 text-amber-800 border-amber-300"}`,children:_.isBreached?"BREACHED":"WARNING"})]}),e.jsxs("p",{className:"text-[10px] sm:text-xs md:text-sm text-gray-700 mt-1",children:[_.thresholdPercentage||0,"% of SLA breach reminder have been sent"]}),e.jsxs("div",{className:"mt-2 grid grid-cols-2 gap-1.5 sm:gap-2 text-[10px] sm:text-xs",children:[e.jsxs("div",{className:"bg-white/50 rounded px-2 py-1",children:[e.jsx("span",{className:"text-gray-500",children:"Allocated:"}),e.jsx("span",{className:"ml-1 font-medium text-gray-900",children:Rt(Number(_.tatHoursAllocated||0))})]}),e.jsxs("div",{className:"bg-white/50 rounded px-2 py-1",children:[e.jsx("span",{className:"text-gray-500",children:"Elapsed:"}),e.jsxs("span",{className:"ml-1 font-medium text-gray-900",children:[Rt(Number(_.tatHoursElapsed||0)),((j=_.metadata)==null?void 0:j.tatTestMode)&&e.jsxs("span",{className:"text-purple-600 ml-1",children:["(",(Number(_.tatHoursElapsed||0)*60).toFixed(0),"m)"]})]})]}),e.jsxs("div",{className:"bg-white/50 rounded px-2 py-1",children:[e.jsx("span",{className:"text-gray-500",children:"Remaining:"}),e.jsxs("span",{className:`ml-1 font-medium ${(_.tatHoursRemaining||0)<2?"text-red-600":"text-gray-900"}`,children:[Rt(Number(_.tatHoursRemaining||0)),((U=_.metadata)==null?void 0:U.tatTestMode)&&e.jsxs("span",{className:"text-purple-600 ml-1",children:["(",(Number(_.tatHoursRemaining||0)*60).toFixed(0),"m)"]})]})]}),e.jsxs("div",{className:"bg-white/50 rounded px-2 py-1",children:[e.jsx("span",{className:"text-gray-500",children:"Due by:"}),e.jsx("span",{className:"ml-1 font-medium text-gray-900",children:_.expectedCompletionTime?ma(_.expectedCompletionTime,!0):"N/A"})]})]}),e.jsxs("div",{className:"mt-2 pt-2 border-t border-gray-200",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-1",children:[e.jsx("p",{className:"text-[10px] sm:text-xs text-gray-500",children:"Reminder sent by system automatically"}),(((z=_.metadata)==null?void 0:z.testMode)||((B=_.metadata)==null?void 0:B.tatTestMode))&&e.jsx(le,{variant:"outline",className:"bg-purple-50 text-purple-700 border-purple-300 text-[10px] px-1.5 py-0 shrink-0",children:"TEST MODE"})]}),e.jsxs("p",{className:"text-[10px] sm:text-xs text-gray-600 font-medium mt-0.5",children:["Sent at: ",_.alertSentAt?ns(_.alertSentAt):"N/A"]}),(((X=_.metadata)==null?void 0:X.testMode)||((H=_.metadata)==null?void 0:H.tatTestMode))&&e.jsx("p",{className:"text-[10px] text-purple-600 mt-1 italic",children:"Note: Test mode active (1 hour = 1 minute)"})]})]})]})},N)})}),t.timestamp&&e.jsxs("p",{className:"text-xs text-gray-500 mt-2",children:[v?"Approved":w?"Rejected":"Actioned"," on ",ns(t.timestamp)]}),n&&!S&&(b||t.status==="pending")&&!v&&!w&&t.levelId&&l&&e.jsxs("div",{className:"mt-2 sm:mt-3 pt-2 sm:pt-3 border-t border-gray-200",children:[e.jsxs(M,{variant:"outline",size:"sm",className:"w-full border-orange-300 text-orange-700 hover:bg-orange-50 h-9 sm:h-10 text-xs sm:text-sm",onClick:()=>l({levelId:t.levelId,approverName:t.approver,levelNumber:t.step}),"data-testid":`${c}-skip-button`,children:[e.jsx(Ge,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 mr-2"}),"Skip This Approver"]}),e.jsx("p",{className:"text-[10px] sm:text-xs text-gray-500 mt-1 text-center",children:S?"Skip this approver to resume the workflow and move to next level":"Skip if approver is unavailable and move to next level"})]})]})]}),e.jsx(ct,{open:m,onOpenChange:u,children:e.jsxs(lt,{className:"sm:max-w-[500px]",children:[e.jsxs(dt,{children:[e.jsx(ot,{children:f?"Edit Breach Reason":"Add Breach Reason"}),e.jsx(Lt,{children:f?"Update the reason for the TAT breach. This will be reflected in the TAT Breach Report.":"Please provide a reason for the TAT breach. This will be reflected in the TAT Breach Report."})]}),e.jsxs("div",{className:"py-4",children:[e.jsx(ps,{placeholder:"Enter the reason for the breach...",value:h,onChange:_=>g(_.target.value),className:"min-h-[100px]",maxLength:500}),e.jsxs("p",{className:"text-xs text-gray-500 mt-2",children:[h.length,"/500 characters"]})]}),e.jsxs(Ct,{children:[e.jsx(M,{variant:"outline",onClick:()=>{u(!1),g("")},disabled:p,children:"Cancel"}),e.jsx(M,{onClick:$,disabled:!h.trim()||p,className:"bg-red-600 hover:bg-red-700",children:p?"Saving...":"Save Reason"})]})]})})]})}function xb({request:t,user:s,isInitiator:a,onSkipApprover:r,onRefresh:n}){return e.jsxs(te,{children:[e.jsx(ue,{children:e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3 sm:gap-4",children:[e.jsxs("div",{children:[e.jsxs(he,{className:"flex items-center gap-2 text-sm sm:text-base",children:[e.jsx(Bs,{className:"w-4 h-4 sm:w-5 sm:h-5 text-blue-600"}),"Approval Workflow"]}),e.jsx(Te,{className:"mt-1 sm:mt-2 text-xs sm:text-sm",children:"Track the approval progress through each step"})]}),t.totalSteps&&(()=>{var g;const i=t.totalSteps||1,l=t.currentStepRaw!==void 0?t.currentStepRaw:t.currentStep||1,o=((g=t.approvalFlow)==null?void 0:g.filter(p=>{const y=(p.status||"").toLowerCase();return y==="approved"||y==="rejected"}).length)||0,c=o>=i,d=(t.status||"").toLowerCase(),m=d==="approved"||d==="rejected"||d==="closed",u=l>i,h=Math.min(Math.max(1,l),i);return u?e.jsxs(le,{variant:"outline",className:"font-medium text-xs sm:text-sm shrink-0 bg-blue-50 text-blue-700 border-blue-200",children:["Closure Step - ",o," of ",i," steps completed"]}):m||c?e.jsxs(le,{variant:"outline",className:"font-medium text-xs sm:text-sm shrink-0 bg-green-50 text-green-700 border-green-200",children:["Completed - ",o," of ",i," steps"]}):e.jsxs(le,{variant:"outline",className:"font-medium text-xs sm:text-sm shrink-0",children:["Step ",h," of ",i," - ",o," completed"]})})()]})}),e.jsx(se,{children:t.approvalFlow&&t.approvalFlow.length>0?e.jsx("div",{className:"space-y-4 sm:space-y-6",children:t.approvalFlow.map((i,l)=>{var g,p,y;const o=(g=t.approvals)==null?void 0:g.find(f=>f.levelId===i.levelId),c=(p=s==null?void 0:s.email)==null?void 0:p.toLowerCase(),d=(y=i.approverEmail)==null?void 0:y.toLowerCase(),m=c&&d&&c===d,u=t.currentStepRaw!==void 0?t.currentStepRaw:t.currentStep||1,h=i.step===u;return e.jsx(hb,{step:i,index:l,approval:o,isCurrentUser:m,isInitiator:a,isCurrentLevel:h,onSkipApprover:r,onRefresh:n,testId:"workflow-step"},l)})}):e.jsx("p",{className:"text-sm text-gray-500 text-center py-8","data-testid":"no-workflow-steps",children:"No workflow steps defined"})})]})}const Ro=x.createContext({});function Do(t){const s=x.useRef(null);return s.current===null&&(s.current=t()),s.current}const Po=typeof window<"u",fh=Po?x.useLayoutEffect:x.useEffect,_i=x.createContext(null);function Io(t,s){t.indexOf(s)===-1&&t.push(s)}function Eo(t,s){const a=t.indexOf(s);a>-1&&t.splice(a,1)}const Ra=(t,s,a)=>a>s?s:a<t?t:a;let Mo=()=>{};const Da={},yh=t=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(t);function vh(t){return typeof t=="object"&&t!==null}const bh=t=>/^0[^.\s]+$/u.test(t);function Fo(t){let s;return()=>(s===void 0&&(s=t()),s)}const Js=t=>t,pb=(t,s)=>a=>s(t(a)),Pn=(...t)=>t.reduce(pb),Nn=(t,s,a)=>{const r=s-t;return r===0?1:(a-t)/r};class _o{constructor(){this.subscriptions=[]}add(s){return Io(this.subscriptions,s),()=>Eo(this.subscriptions,s)}notify(s,a,r){const n=this.subscriptions.length;if(n)if(n===1)this.subscriptions[0](s,a,r);else for(let i=0;i<n;i++){const l=this.subscriptions[i];l&&l(s,a,r)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}const ga=t=>t*1e3,Xs=t=>t/1e3;function jh(t,s){return s?t*(1e3/s):0}const Nh=(t,s,a)=>(((1-3*a+3*s)*t+(3*a-6*s))*t+3*s)*t,gb=1e-7,fb=12;function yb(t,s,a,r,n){let i,l,o=0;do l=s+(a-s)/2,i=Nh(l,r,n)-t,i>0?a=l:s=l;while(Math.abs(i)>gb&&++o<fb);return l}function In(t,s,a,r){if(t===s&&a===r)return Js;const n=i=>yb(i,0,1,t,a);return i=>i===0||i===1?i:Nh(n(i),s,r)}const wh=t=>s=>s<=.5?t(2*s)/2:(2-t(2*(1-s)))/2,Ch=t=>s=>1-t(1-s),Ah=In(.33,1.53,.69,.99),Lo=Ch(Ah),Sh=wh(Lo),Th=t=>(t*=2)<1?.5*Lo(t):.5*(2-Math.pow(2,-10*(t-1))),Oo=t=>1-Math.sin(Math.acos(t)),kh=Ch(Oo),Rh=wh(Oo),vb=In(.42,0,1,1),bb=In(0,0,.58,1),Dh=In(.42,0,.58,1),jb=t=>Array.isArray(t)&&typeof t[0]!="number",Ph=t=>Array.isArray(t)&&typeof t[0]=="number",Nb={linear:Js,easeIn:vb,easeInOut:Dh,easeOut:bb,circIn:Oo,circInOut:Rh,circOut:kh,backIn:Lo,backInOut:Sh,backOut:Ah,anticipate:Th},wb=t=>typeof t=="string",Id=t=>{if(Ph(t)){Mo(t.length===4);const[s,a,r,n]=t;return In(s,a,r,n)}else if(wb(t))return Nb[t];return t},Bn=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function Cb(t,s){let a=new Set,r=new Set,n=!1,i=!1;const l=new WeakSet;let o={delta:0,timestamp:0,isProcessing:!1};function c(m){l.has(m)&&(d.schedule(m),t()),m(o)}const d={schedule:(m,u=!1,h=!1)=>{const p=h&&n?a:r;return u&&l.add(m),p.has(m)||p.add(m),m},cancel:m=>{r.delete(m),l.delete(m)},process:m=>{if(o=m,n){i=!0;return}n=!0,[a,r]=[r,a],a.forEach(c),a.clear(),n=!1,i&&(i=!1,d.process(m))}};return d}const Ab=40;function Ih(t,s){let a=!1,r=!0;const n={delta:0,timestamp:0,isProcessing:!1},i=()=>a=!0,l=Bn.reduce((w,A)=>(w[A]=Cb(i),w),{}),{setup:o,read:c,resolveKeyframes:d,preUpdate:m,update:u,preRender:h,render:g,postRender:p}=l,y=()=>{const w=Da.useManualTiming?n.timestamp:performance.now();a=!1,Da.useManualTiming||(n.delta=r?1e3/60:Math.max(Math.min(w-n.timestamp,Ab),1)),n.timestamp=w,n.isProcessing=!0,o.process(n),c.process(n),d.process(n),m.process(n),u.process(n),h.process(n),g.process(n),p.process(n),n.isProcessing=!1,a&&s&&(r=!1,t(y))},f=()=>{a=!0,r=!0,n.isProcessing||t(y)};return{schedule:Bn.reduce((w,A)=>{const S=l[A];return w[A]=(k,F=!1,T=!1)=>(a||f(),S.schedule(k,F,T)),w},{}),cancel:w=>{for(let A=0;A<Bn.length;A++)l[Bn[A]].cancel(w)},state:n,steps:l}}const{schedule:Ft,cancel:Va,state:hs,steps:nl}=Ih(typeof requestAnimationFrame<"u"?requestAnimationFrame:Js,!0);let Qn;function Sb(){Qn=void 0}const Ds={now:()=>(Qn===void 0&&Ds.set(hs.isProcessing||Da.useManualTiming?hs.timestamp:performance.now()),Qn),set:t=>{Qn=t,queueMicrotask(Sb)}},Eh=t=>s=>typeof s=="string"&&s.startsWith(t),$o=Eh("--"),Tb=Eh("var(--"),Uo=t=>Tb(t)?kb.test(t.split("/*")[0].trim()):!1,kb=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,$r={test:t=>typeof t=="number",parse:parseFloat,transform:t=>t},wn={...$r,transform:t=>Ra(0,1,t)},Vn={...$r,default:1},xn=t=>Math.round(t*1e5)/1e5,Bo=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function Rb(t){return t==null}const Db=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,Vo=(t,s)=>a=>!!(typeof a=="string"&&Db.test(a)&&a.startsWith(t)||s&&!Rb(a)&&Object.prototype.hasOwnProperty.call(a,s)),Mh=(t,s,a)=>r=>{if(typeof r!="string")return r;const[n,i,l,o]=r.match(Bo);return{[t]:parseFloat(n),[s]:parseFloat(i),[a]:parseFloat(l),alpha:o!==void 0?parseFloat(o):1}},Pb=t=>Ra(0,255,t),il={...$r,transform:t=>Math.round(Pb(t))},dr={test:Vo("rgb","red"),parse:Mh("red","green","blue"),transform:({red:t,green:s,blue:a,alpha:r=1})=>"rgba("+il.transform(t)+", "+il.transform(s)+", "+il.transform(a)+", "+xn(wn.transform(r))+")"};function Ib(t){let s="",a="",r="",n="";return t.length>5?(s=t.substring(1,3),a=t.substring(3,5),r=t.substring(5,7),n=t.substring(7,9)):(s=t.substring(1,2),a=t.substring(2,3),r=t.substring(3,4),n=t.substring(4,5),s+=s,a+=a,r+=r,n+=n),{red:parseInt(s,16),green:parseInt(a,16),blue:parseInt(r,16),alpha:n?parseInt(n,16)/255:1}}const Bl={test:Vo("#"),parse:Ib,transform:dr.transform},En=t=>({test:s=>typeof s=="string"&&s.endsWith(t)&&s.split(" ").length===1,parse:parseFloat,transform:s=>`${s}${t}`}),La=En("deg"),fa=En("%"),Ze=En("px"),Eb=En("vh"),Mb=En("vw"),Ed={...fa,parse:t=>fa.parse(t)/100,transform:t=>fa.transform(t*100)},jr={test:Vo("hsl","hue"),parse:Mh("hue","saturation","lightness"),transform:({hue:t,saturation:s,lightness:a,alpha:r=1})=>"hsla("+Math.round(t)+", "+fa.transform(xn(s))+", "+fa.transform(xn(a))+", "+xn(wn.transform(r))+")"},es={test:t=>dr.test(t)||Bl.test(t)||jr.test(t),parse:t=>dr.test(t)?dr.parse(t):jr.test(t)?jr.parse(t):Bl.parse(t),transform:t=>typeof t=="string"?t:t.hasOwnProperty("red")?dr.transform(t):jr.transform(t),getAnimatableNone:t=>{const s=es.parse(t);return s.alpha=0,es.transform(s)}},Fb=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function _b(t){var s,a;return isNaN(t)&&typeof t=="string"&&(((s=t.match(Bo))==null?void 0:s.length)||0)+(((a=t.match(Fb))==null?void 0:a.length)||0)>0}const Fh="number",_h="color",Lb="var",Ob="var(",Md="${}",$b=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function Cn(t){const s=t.toString(),a=[],r={color:[],number:[],var:[]},n=[];let i=0;const o=s.replace($b,c=>(es.test(c)?(r.color.push(i),n.push(_h),a.push(es.parse(c))):c.startsWith(Ob)?(r.var.push(i),n.push(Lb),a.push(c)):(r.number.push(i),n.push(Fh),a.push(parseFloat(c))),++i,Md)).split(Md);return{values:a,split:o,indexes:r,types:n}}function Lh(t){return Cn(t).values}function Oh(t){const{split:s,types:a}=Cn(t),r=s.length;return n=>{let i="";for(let l=0;l<r;l++)if(i+=s[l],n[l]!==void 0){const o=a[l];o===Fh?i+=xn(n[l]):o===_h?i+=es.transform(n[l]):i+=n[l]}return i}}const Ub=t=>typeof t=="number"?0:es.test(t)?es.getAnimatableNone(t):t;function Bb(t){const s=Lh(t);return Oh(t)(s.map(Ub))}const za={test:_b,parse:Lh,createTransformer:Oh,getAnimatableNone:Bb};function ll(t,s,a){return a<0&&(a+=1),a>1&&(a-=1),a<1/6?t+(s-t)*6*a:a<1/2?s:a<2/3?t+(s-t)*(2/3-a)*6:t}function Vb({hue:t,saturation:s,lightness:a,alpha:r}){t/=360,s/=100,a/=100;let n=0,i=0,l=0;if(!s)n=i=l=a;else{const o=a<.5?a*(1+s):a+s-a*s,c=2*a-o;n=ll(c,o,t+1/3),i=ll(c,o,t),l=ll(c,o,t-1/3)}return{red:Math.round(n*255),green:Math.round(i*255),blue:Math.round(l*255),alpha:r}}function mi(t,s){return a=>a>0?s:t}const Ut=(t,s,a)=>t+(s-t)*a,ol=(t,s,a)=>{const r=t*t,n=a*(s*s-r)+r;return n<0?0:Math.sqrt(n)},zb=[Bl,dr,jr],Hb=t=>zb.find(s=>s.test(t));function Fd(t){const s=Hb(t);if(!s)return!1;let a=s.parse(t);return s===jr&&(a=Vb(a)),a}const _d=(t,s)=>{const a=Fd(t),r=Fd(s);if(!a||!r)return mi(t,s);const n={...a};return i=>(n.red=ol(a.red,r.red,i),n.green=ol(a.green,r.green,i),n.blue=ol(a.blue,r.blue,i),n.alpha=Ut(a.alpha,r.alpha,i),dr.transform(n))},Vl=new Set(["none","hidden"]);function Wb(t,s){return Vl.has(t)?a=>a<=0?t:s:a=>a>=1?s:t}function Gb(t,s){return a=>Ut(t,s,a)}function zo(t){return typeof t=="number"?Gb:typeof t=="string"?Uo(t)?mi:es.test(t)?_d:Zb:Array.isArray(t)?$h:typeof t=="object"?es.test(t)?_d:Kb:mi}function $h(t,s){const a=[...t],r=a.length,n=t.map((i,l)=>zo(i)(i,s[l]));return i=>{for(let l=0;l<r;l++)a[l]=n[l](i);return a}}function Kb(t,s){const a={...t,...s},r={};for(const n in a)t[n]!==void 0&&s[n]!==void 0&&(r[n]=zo(t[n])(t[n],s[n]));return n=>{for(const i in r)a[i]=r[i](n);return a}}function Yb(t,s){const a=[],r={color:0,var:0,number:0};for(let n=0;n<s.values.length;n++){const i=s.types[n],l=t.indexes[i][r[i]],o=t.values[l]??0;a[n]=o,r[i]++}return a}const Zb=(t,s)=>{const a=za.createTransformer(s),r=Cn(t),n=Cn(s);return r.indexes.var.length===n.indexes.var.length&&r.indexes.color.length===n.indexes.color.length&&r.indexes.number.length>=n.indexes.number.length?Vl.has(t)&&!n.values.length||Vl.has(s)&&!r.values.length?Wb(t,s):Pn($h(Yb(r,n),n.values),a):mi(t,s)};function Uh(t,s,a){return typeof t=="number"&&typeof s=="number"&&typeof a=="number"?Ut(t,s,a):zo(t)(t,s)}const Xb=t=>{const s=({timestamp:a})=>t(a);return{start:(a=!0)=>Ft.update(s,a),stop:()=>Va(s),now:()=>hs.isProcessing?hs.timestamp:Ds.now()}},Bh=(t,s,a=10)=>{let r="";const n=Math.max(Math.round(s/a),2);for(let i=0;i<n;i++)r+=Math.round(t(i/(n-1))*1e4)/1e4+", ";return`linear(${r.substring(0,r.length-2)})`},ui=2e4;function Ho(t){let s=0;const a=50;let r=t.next(s);for(;!r.done&&s<ui;)s+=a,r=t.next(s);return s>=ui?1/0:s}function Qb(t,s=100,a){const r=a({...t,keyframes:[0,s]}),n=Math.min(Ho(r),ui);return{type:"keyframes",ease:i=>r.next(n*i).value/s,duration:Xs(n)}}const Jb=5;function Vh(t,s,a){const r=Math.max(s-Jb,0);return jh(a-t(r),s-r)}const Wt={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},cl=.001;function qb({duration:t=Wt.duration,bounce:s=Wt.bounce,velocity:a=Wt.velocity,mass:r=Wt.mass}){let n,i,l=1-s;l=Ra(Wt.minDamping,Wt.maxDamping,l),t=Ra(Wt.minDuration,Wt.maxDuration,Xs(t)),l<1?(n=d=>{const m=d*l,u=m*t,h=m-a,g=zl(d,l),p=Math.exp(-u);return cl-h/g*p},i=d=>{const u=d*l*t,h=u*a+a,g=Math.pow(l,2)*Math.pow(d,2)*t,p=Math.exp(-u),y=zl(Math.pow(d,2),l);return(-n(d)+cl>0?-1:1)*((h-g)*p)/y}):(n=d=>{const m=Math.exp(-d*t),u=(d-a)*t+1;return-cl+m*u},i=d=>{const m=Math.exp(-d*t),u=(a-d)*(t*t);return m*u});const o=5/t,c=tj(n,i,o);if(t=ga(t),isNaN(c))return{stiffness:Wt.stiffness,damping:Wt.damping,duration:t};{const d=Math.pow(c,2)*r;return{stiffness:d,damping:l*2*Math.sqrt(r*d),duration:t}}}const ej=12;function tj(t,s,a){let r=a;for(let n=1;n<ej;n++)r=r-t(r)/s(r);return r}function zl(t,s){return t*Math.sqrt(1-s*s)}const sj=["duration","bounce"],aj=["stiffness","damping","mass"];function Ld(t,s){return s.some(a=>t[a]!==void 0)}function rj(t){let s={velocity:Wt.velocity,stiffness:Wt.stiffness,damping:Wt.damping,mass:Wt.mass,isResolvedFromDuration:!1,...t};if(!Ld(t,aj)&&Ld(t,sj))if(t.visualDuration){const a=t.visualDuration,r=2*Math.PI/(a*1.2),n=r*r,i=2*Ra(.05,1,1-(t.bounce||0))*Math.sqrt(n);s={...s,mass:Wt.mass,stiffness:n,damping:i}}else{const a=qb(t);s={...s,...a,mass:Wt.mass},s.isResolvedFromDuration=!0}return s}function hi(t=Wt.visualDuration,s=Wt.bounce){const a=typeof t!="object"?{visualDuration:t,keyframes:[0,1],bounce:s}:t;let{restSpeed:r,restDelta:n}=a;const i=a.keyframes[0],l=a.keyframes[a.keyframes.length-1],o={done:!1,value:i},{stiffness:c,damping:d,mass:m,duration:u,velocity:h,isResolvedFromDuration:g}=rj({...a,velocity:-Xs(a.velocity||0)}),p=h||0,y=d/(2*Math.sqrt(c*m)),f=l-i,b=Xs(Math.sqrt(c/m)),v=Math.abs(f)<5;r||(r=v?Wt.restSpeed.granular:Wt.restSpeed.default),n||(n=v?Wt.restDelta.granular:Wt.restDelta.default);let w;if(y<1){const S=zl(b,y);w=k=>{const F=Math.exp(-y*b*k);return l-F*((p+y*b*f)/S*Math.sin(S*k)+f*Math.cos(S*k))}}else if(y===1)w=S=>l-Math.exp(-b*S)*(f+(p+b*f)*S);else{const S=b*Math.sqrt(y*y-1);w=k=>{const F=Math.exp(-y*b*k),T=Math.min(S*k,300);return l-F*((p+y*b*f)*Math.sinh(T)+S*f*Math.cosh(T))/S}}const A={calculatedDuration:g&&u||null,next:S=>{const k=w(S);if(g)o.done=S>=u;else{let F=S===0?p:0;y<1&&(F=S===0?ga(p):Vh(w,S,k));const T=Math.abs(F)<=r,D=Math.abs(l-k)<=n;o.done=T&&D}return o.value=o.done?l:k,o},toString:()=>{const S=Math.min(Ho(A),ui),k=Bh(F=>A.next(S*F).value,S,30);return S+"ms "+k},toTransition:()=>{}};return A}hi.applyToOptions=t=>{const s=Qb(t,100,hi);return t.ease=s.ease,t.duration=ga(s.duration),t.type="keyframes",t};function Hl({keyframes:t,velocity:s=0,power:a=.8,timeConstant:r=325,bounceDamping:n=10,bounceStiffness:i=500,modifyTarget:l,min:o,max:c,restDelta:d=.5,restSpeed:m}){const u=t[0],h={done:!1,value:u},g=T=>o!==void 0&&T<o||c!==void 0&&T>c,p=T=>o===void 0?c:c===void 0||Math.abs(o-T)<Math.abs(c-T)?o:c;let y=a*s;const f=u+y,b=l===void 0?f:l(f);b!==f&&(y=b-u);const v=T=>-y*Math.exp(-T/r),w=T=>b+v(T),A=T=>{const D=v(T),C=w(T);h.done=Math.abs(D)<=d,h.value=h.done?b:C};let S,k;const F=T=>{g(h.value)&&(S=T,k=hi({keyframes:[h.value,p(h.value)],velocity:Vh(w,T,h.value),damping:n,stiffness:i,restDelta:d,restSpeed:m}))};return F(0),{calculatedDuration:null,next:T=>{let D=!1;return!k&&S===void 0&&(D=!0,A(T),F(T)),S!==void 0&&T>=S?k.next(T-S):(!D&&A(T),h)}}}function nj(t,s,a){const r=[],n=a||Da.mix||Uh,i=t.length-1;for(let l=0;l<i;l++){let o=n(t[l],t[l+1]);if(s){const c=Array.isArray(s)?s[l]||Js:s;o=Pn(c,o)}r.push(o)}return r}function ij(t,s,{clamp:a=!0,ease:r,mixer:n}={}){const i=t.length;if(Mo(i===s.length),i===1)return()=>s[0];if(i===2&&s[0]===s[1])return()=>s[1];const l=t[0]===t[1];t[0]>t[i-1]&&(t=[...t].reverse(),s=[...s].reverse());const o=nj(s,r,n),c=o.length,d=m=>{if(l&&m<t[0])return s[0];let u=0;if(c>1)for(;u<t.length-2&&!(m<t[u+1]);u++);const h=Nn(t[u],t[u+1],m);return o[u](h)};return a?m=>d(Ra(t[0],t[i-1],m)):d}function lj(t,s){const a=t[t.length-1];for(let r=1;r<=s;r++){const n=Nn(0,s,r);t.push(Ut(a,1,n))}}function oj(t){const s=[0];return lj(s,t.length-1),s}function cj(t,s){return t.map(a=>a*s)}function dj(t,s){return t.map(()=>s||Dh).splice(0,t.length-1)}function pn({duration:t=300,keyframes:s,times:a,ease:r="easeInOut"}){const n=jb(r)?r.map(Id):Id(r),i={done:!1,value:s[0]},l=cj(a&&a.length===s.length?a:oj(s),t),o=ij(l,s,{ease:Array.isArray(n)?n:dj(s,n)});return{calculatedDuration:t,next:c=>(i.value=o(c),i.done=c>=t,i)}}const mj=t=>t!==null;function Wo(t,{repeat:s,repeatType:a="loop"},r,n=1){const i=t.filter(mj),o=n<0||s&&a!=="loop"&&s%2===1?0:i.length-1;return!o||r===void 0?i[o]:r}const uj={decay:Hl,inertia:Hl,tween:pn,keyframes:pn,spring:hi};function zh(t){typeof t.type=="string"&&(t.type=uj[t.type])}class Go{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(s=>{this.resolve=s})}notifyFinished(){this.resolve()}then(s,a){return this.finished.then(s,a)}}const hj=t=>t/100;class Ko extends Go{constructor(s){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.stop=()=>{var r,n;const{motionValue:a}=this.options;a&&a.updatedAt!==Ds.now()&&this.tick(Ds.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),(n=(r=this.options).onStop)==null||n.call(r))},this.options=s,this.initAnimation(),this.play(),s.autoplay===!1&&this.pause()}initAnimation(){const{options:s}=this;zh(s);const{type:a=pn,repeat:r=0,repeatDelay:n=0,repeatType:i,velocity:l=0}=s;let{keyframes:o}=s;const c=a||pn;c!==pn&&typeof o[0]!="number"&&(this.mixKeyframes=Pn(hj,Uh(o[0],o[1])),o=[0,100]);const d=c({...s,keyframes:o});i==="mirror"&&(this.mirroredGenerator=c({...s,keyframes:[...o].reverse(),velocity:-l})),d.calculatedDuration===null&&(d.calculatedDuration=Ho(d));const{calculatedDuration:m}=d;this.calculatedDuration=m,this.resolvedDuration=m+n,this.totalDuration=this.resolvedDuration*(r+1)-n,this.generator=d}updateTime(s){const a=Math.round(s-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=a}tick(s,a=!1){const{generator:r,totalDuration:n,mixKeyframes:i,mirroredGenerator:l,resolvedDuration:o,calculatedDuration:c}=this;if(this.startTime===null)return r.next(0);const{delay:d=0,keyframes:m,repeat:u,repeatType:h,repeatDelay:g,type:p,onUpdate:y,finalKeyframe:f}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,s):this.speed<0&&(this.startTime=Math.min(s-n/this.speed,this.startTime)),a?this.currentTime=s:this.updateTime(s);const b=this.currentTime-d*(this.playbackSpeed>=0?1:-1),v=this.playbackSpeed>=0?b<0:b>n;this.currentTime=Math.max(b,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=n);let w=this.currentTime,A=r;if(u){const T=Math.min(this.currentTime,n)/o;let D=Math.floor(T),C=T%1;!C&&T>=1&&(C=1),C===1&&D--,D=Math.min(D,u+1),!!(D%2)&&(h==="reverse"?(C=1-C,g&&(C-=g/o)):h==="mirror"&&(A=l)),w=Ra(0,1,C)*o}const S=v?{done:!1,value:m[0]}:A.next(w);i&&(S.value=i(S.value));let{done:k}=S;!v&&c!==null&&(k=this.playbackSpeed>=0?this.currentTime>=n:this.currentTime<=0);const F=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&k);return F&&p!==Hl&&(S.value=Wo(m,this.options,f,this.speed)),y&&y(S.value),F&&this.finish(),S}then(s,a){return this.finished.then(s,a)}get duration(){return Xs(this.calculatedDuration)}get iterationDuration(){const{delay:s=0}=this.options||{};return this.duration+Xs(s)}get time(){return Xs(this.currentTime)}set time(s){var a;s=ga(s),this.currentTime=s,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=s:this.driver&&(this.startTime=this.driver.now()-s/this.playbackSpeed),(a=this.driver)==null||a.start(!1)}get speed(){return this.playbackSpeed}set speed(s){this.updateTime(Ds.now());const a=this.playbackSpeed!==s;this.playbackSpeed=s,a&&(this.time=Xs(this.currentTime))}play(){var n,i;if(this.isStopped)return;const{driver:s=Xb,startTime:a}=this.options;this.driver||(this.driver=s(l=>this.tick(l))),(i=(n=this.options).onPlay)==null||i.call(n);const r=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=r):this.holdTime!==null?this.startTime=r-this.holdTime:this.startTime||(this.startTime=a??r),this.state==="finished"&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(Ds.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){var s,a;this.notifyFinished(),this.teardown(),this.state="finished",(a=(s=this.options).onComplete)==null||a.call(s)}cancel(){var s,a;this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),(a=(s=this.options).onCancel)==null||a.call(s)}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(s){return this.startTime=0,this.tick(s,!0)}attachTimeline(s){var a;return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),(a=this.driver)==null||a.stop(),s.observe(this)}}function xj(t){for(let s=1;s<t.length;s++)t[s]??(t[s]=t[s-1])}const mr=t=>t*180/Math.PI,Wl=t=>{const s=mr(Math.atan2(t[1],t[0]));return Gl(s)},pj={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:t=>(Math.abs(t[0])+Math.abs(t[3]))/2,rotate:Wl,rotateZ:Wl,skewX:t=>mr(Math.atan(t[1])),skewY:t=>mr(Math.atan(t[2])),skew:t=>(Math.abs(t[1])+Math.abs(t[2]))/2},Gl=t=>(t=t%360,t<0&&(t+=360),t),Od=Wl,$d=t=>Math.sqrt(t[0]*t[0]+t[1]*t[1]),Ud=t=>Math.sqrt(t[4]*t[4]+t[5]*t[5]),gj={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:$d,scaleY:Ud,scale:t=>($d(t)+Ud(t))/2,rotateX:t=>Gl(mr(Math.atan2(t[6],t[5]))),rotateY:t=>Gl(mr(Math.atan2(-t[2],t[0]))),rotateZ:Od,rotate:Od,skewX:t=>mr(Math.atan(t[4])),skewY:t=>mr(Math.atan(t[1])),skew:t=>(Math.abs(t[1])+Math.abs(t[4]))/2};function Kl(t){return t.includes("scale")?1:0}function Yl(t,s){if(!t||t==="none")return Kl(s);const a=t.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let r,n;if(a)r=gj,n=a;else{const o=t.match(/^matrix\(([-\d.e\s,]+)\)$/u);r=pj,n=o}if(!n)return Kl(s);const i=r[s],l=n[1].split(",").map(yj);return typeof i=="function"?i(l):l[i]}const fj=(t,s)=>{const{transform:a="none"}=getComputedStyle(t);return Yl(a,s)};function yj(t){return parseFloat(t.trim())}const Ur=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],Br=new Set(Ur),Bd=t=>t===$r||t===Ze,vj=new Set(["x","y","z"]),bj=Ur.filter(t=>!vj.has(t));function jj(t){const s=[];return bj.forEach(a=>{const r=t.getValue(a);r!==void 0&&(s.push([a,r.get()]),r.set(a.startsWith("scale")?1:0))}),s}const ur={width:({x:t},{paddingLeft:s="0",paddingRight:a="0"})=>t.max-t.min-parseFloat(s)-parseFloat(a),height:({y:t},{paddingTop:s="0",paddingBottom:a="0"})=>t.max-t.min-parseFloat(s)-parseFloat(a),top:(t,{top:s})=>parseFloat(s),left:(t,{left:s})=>parseFloat(s),bottom:({y:t},{top:s})=>parseFloat(s)+(t.max-t.min),right:({x:t},{left:s})=>parseFloat(s)+(t.max-t.min),x:(t,{transform:s})=>Yl(s,"x"),y:(t,{transform:s})=>Yl(s,"y")};ur.translateX=ur.x;ur.translateY=ur.y;const hr=new Set;let Zl=!1,Xl=!1,Ql=!1;function Hh(){if(Xl){const t=Array.from(hr).filter(r=>r.needsMeasurement),s=new Set(t.map(r=>r.element)),a=new Map;s.forEach(r=>{const n=jj(r);n.length&&(a.set(r,n),r.render())}),t.forEach(r=>r.measureInitialState()),s.forEach(r=>{r.render();const n=a.get(r);n&&n.forEach(([i,l])=>{var o;(o=r.getValue(i))==null||o.set(l)})}),t.forEach(r=>r.measureEndState()),t.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}Xl=!1,Zl=!1,hr.forEach(t=>t.complete(Ql)),hr.clear()}function Wh(){hr.forEach(t=>{t.readKeyframes(),t.needsMeasurement&&(Xl=!0)})}function Nj(){Ql=!0,Wh(),Hh(),Ql=!1}class Yo{constructor(s,a,r,n,i,l=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...s],this.onComplete=a,this.name=r,this.motionValue=n,this.element=i,this.isAsync=l}scheduleResolve(){this.state="scheduled",this.isAsync?(hr.add(this),Zl||(Zl=!0,Ft.read(Wh),Ft.resolveKeyframes(Hh))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:s,name:a,element:r,motionValue:n}=this;if(s[0]===null){const i=n==null?void 0:n.get(),l=s[s.length-1];if(i!==void 0)s[0]=i;else if(r&&a){const o=r.readValue(a,l);o!=null&&(s[0]=o)}s[0]===void 0&&(s[0]=l),n&&i===void 0&&n.set(s[0])}xj(s)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(s=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,s),hr.delete(this)}cancel(){this.state==="scheduled"&&(hr.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const wj=t=>t.startsWith("--");function Cj(t,s,a){wj(s)?t.style.setProperty(s,a):t.style[s]=a}const Aj=Fo(()=>window.ScrollTimeline!==void 0),Sj={};function Tj(t,s){const a=Fo(t);return()=>Sj[s]??a()}const Gh=Tj(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),un=([t,s,a,r])=>`cubic-bezier(${t}, ${s}, ${a}, ${r})`,Vd={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:un([0,.65,.55,1]),circOut:un([.55,0,1,.45]),backIn:un([.31,.01,.66,-.59]),backOut:un([.33,1.53,.69,.99])};function Kh(t,s){if(t)return typeof t=="function"?Gh()?Bh(t,s):"ease-out":Ph(t)?un(t):Array.isArray(t)?t.map(a=>Kh(a,s)||Vd.easeOut):Vd[t]}function kj(t,s,a,{delay:r=0,duration:n=300,repeat:i=0,repeatType:l="loop",ease:o="easeOut",times:c}={},d=void 0){const m={[s]:a};c&&(m.offset=c);const u=Kh(o,n);Array.isArray(u)&&(m.easing=u);const h={delay:r,duration:n,easing:Array.isArray(u)?"linear":u,fill:"both",iterations:i+1,direction:l==="reverse"?"alternate":"normal"};return d&&(h.pseudoElement=d),t.animate(m,h)}function Yh(t){return typeof t=="function"&&"applyToOptions"in t}function Rj({type:t,...s}){return Yh(t)&&Gh()?t.applyToOptions(s):(s.duration??(s.duration=300),s.ease??(s.ease="easeOut"),s)}class Dj extends Go{constructor(s){if(super(),this.finishedTime=null,this.isStopped=!1,!s)return;const{element:a,name:r,keyframes:n,pseudoElement:i,allowFlatten:l=!1,finalKeyframe:o,onComplete:c}=s;this.isPseudoElement=!!i,this.allowFlatten=l,this.options=s,Mo(typeof s.type!="string");const d=Rj(s);this.animation=kj(a,r,n,d,i),d.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!i){const m=Wo(n,this.options,o,this.speed);this.updateMotionValue?this.updateMotionValue(m):Cj(a,r,m),this.animation.cancel()}c==null||c(),this.notifyFinished()}}play(){this.isStopped||(this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){var s,a;(a=(s=this.animation).finish)==null||a.call(s)}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:s}=this;s==="idle"||s==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){var s,a;this.isPseudoElement||(a=(s=this.animation).commitStyles)==null||a.call(s)}get duration(){var a,r;const s=((r=(a=this.animation.effect)==null?void 0:a.getComputedTiming)==null?void 0:r.call(a).duration)||0;return Xs(Number(s))}get iterationDuration(){const{delay:s=0}=this.options||{};return this.duration+Xs(s)}get time(){return Xs(Number(this.animation.currentTime)||0)}set time(s){this.finishedTime=null,this.animation.currentTime=ga(s)}get speed(){return this.animation.playbackRate}set speed(s){s<0&&(this.finishedTime=null),this.animation.playbackRate=s}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return Number(this.animation.startTime)}set startTime(s){this.animation.startTime=s}attachTimeline({timeline:s,observe:a}){var r;return this.allowFlatten&&((r=this.animation.effect)==null||r.updateTiming({easing:"linear"})),this.animation.onfinish=null,s&&Aj()?(this.animation.timeline=s,Js):a(this)}}const Zh={anticipate:Th,backInOut:Sh,circInOut:Rh};function Pj(t){return t in Zh}function Ij(t){typeof t.ease=="string"&&Pj(t.ease)&&(t.ease=Zh[t.ease])}const zd=10;class Ej extends Dj{constructor(s){Ij(s),zh(s),super(s),s.startTime&&(this.startTime=s.startTime),this.options=s}updateMotionValue(s){const{motionValue:a,onUpdate:r,onComplete:n,element:i,...l}=this.options;if(!a)return;if(s!==void 0){a.set(s);return}const o=new Ko({...l,autoplay:!1}),c=ga(this.finishedTime??this.time);a.setWithVelocity(o.sample(c-zd).value,o.sample(c).value,zd),o.stop()}}const Hd=(t,s)=>s==="zIndex"?!1:!!(typeof t=="number"||Array.isArray(t)||typeof t=="string"&&(za.test(t)||t==="0")&&!t.startsWith("url("));function Mj(t){const s=t[0];if(t.length===1)return!0;for(let a=0;a<t.length;a++)if(t[a]!==s)return!0}function Fj(t,s,a,r){const n=t[0];if(n===null)return!1;if(s==="display"||s==="visibility")return!0;const i=t[t.length-1],l=Hd(n,s),o=Hd(i,s);return!l||!o?!1:Mj(t)||(a==="spring"||Yh(a))&&r}function Jl(t){t.duration=0,t.type="keyframes"}const _j=new Set(["opacity","clipPath","filter","transform"]),Lj=Fo(()=>Object.hasOwnProperty.call(Element.prototype,"animate"));function Oj(t){var m;const{motionValue:s,name:a,repeatDelay:r,repeatType:n,damping:i,type:l}=t;if(!(((m=s==null?void 0:s.owner)==null?void 0:m.current)instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:d}=s.owner.getProps();return Lj()&&a&&_j.has(a)&&(a!=="transform"||!d)&&!c&&!r&&n!=="mirror"&&i!==0&&l!=="inertia"}const $j=40;class Uj extends Go{constructor({autoplay:s=!0,delay:a=0,type:r="keyframes",repeat:n=0,repeatDelay:i=0,repeatType:l="loop",keyframes:o,name:c,motionValue:d,element:m,...u}){var p;super(),this.stop=()=>{var y,f;this._animation&&(this._animation.stop(),(y=this.stopTimeline)==null||y.call(this)),(f=this.keyframeResolver)==null||f.cancel()},this.createdAt=Ds.now();const h={autoplay:s,delay:a,type:r,repeat:n,repeatDelay:i,repeatType:l,name:c,motionValue:d,element:m,...u},g=(m==null?void 0:m.KeyframeResolver)||Yo;this.keyframeResolver=new g(o,(y,f,b)=>this.onKeyframesResolved(y,f,h,!b),c,d,m),(p=this.keyframeResolver)==null||p.scheduleResolve()}onKeyframesResolved(s,a,r,n){this.keyframeResolver=void 0;const{name:i,type:l,velocity:o,delay:c,isHandoff:d,onUpdate:m}=r;this.resolvedAt=Ds.now(),Fj(s,i,l,o)||((Da.instantAnimations||!c)&&(m==null||m(Wo(s,r,a))),s[0]=s[s.length-1],Jl(r),r.repeat=0);const h={startTime:n?this.resolvedAt?this.resolvedAt-this.createdAt>$j?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:a,...r,keyframes:s},g=!d&&Oj(h)?new Ej({...h,element:h.motionValue.owner.current}):new Ko(h);g.finished.then(()=>this.notifyFinished()).catch(Js),this.pendingTimeline&&(this.stopTimeline=g.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=g}get finished(){return this._animation?this.animation.finished:this._finished}then(s,a){return this.finished.finally(s).then(()=>{})}get animation(){var s;return this._animation||((s=this.keyframeResolver)==null||s.resume(),Nj()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(s){this.animation.time=s}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(s){this.animation.speed=s}get startTime(){return this.animation.startTime}attachTimeline(s){return this._animation?this.stopTimeline=this.animation.attachTimeline(s):this.pendingTimeline=s,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){var s;this._animation&&this.animation.cancel(),(s=this.keyframeResolver)==null||s.cancel()}}const Bj=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function Vj(t){const s=Bj.exec(t);if(!s)return[,];const[,a,r,n]=s;return[`--${a??r}`,n]}function Xh(t,s,a=1){const[r,n]=Vj(t);if(!r)return;const i=window.getComputedStyle(s).getPropertyValue(r);if(i){const l=i.trim();return yh(l)?parseFloat(l):l}return Uo(n)?Xh(n,s,a+1):n}function Zo(t,s){return(t==null?void 0:t[s])??(t==null?void 0:t.default)??t}const Qh=new Set(["width","height","top","left","right","bottom",...Ur]),zj={test:t=>t==="auto",parse:t=>t},Jh=t=>s=>s.test(t),qh=[$r,Ze,fa,La,Mb,Eb,zj],Wd=t=>qh.find(Jh(t));function Hj(t){return typeof t=="number"?t===0:t!==null?t==="none"||t==="0"||bh(t):!0}const Wj=new Set(["brightness","contrast","saturate","opacity"]);function Gj(t){const[s,a]=t.slice(0,-1).split("(");if(s==="drop-shadow")return t;const[r]=a.match(Bo)||[];if(!r)return t;const n=a.replace(r,"");let i=Wj.has(s)?1:0;return r!==a&&(i*=100),s+"("+i+n+")"}const Kj=/\b([a-z-]*)\(.*?\)/gu,ql={...za,getAnimatableNone:t=>{const s=t.match(Kj);return s?s.map(Gj).join(" "):t}},Gd={...$r,transform:Math.round},Yj={rotate:La,rotateX:La,rotateY:La,rotateZ:La,scale:Vn,scaleX:Vn,scaleY:Vn,scaleZ:Vn,skew:La,skewX:La,skewY:La,distance:Ze,translateX:Ze,translateY:Ze,translateZ:Ze,x:Ze,y:Ze,z:Ze,perspective:Ze,transformPerspective:Ze,opacity:wn,originX:Ed,originY:Ed,originZ:Ze},Xo={borderWidth:Ze,borderTopWidth:Ze,borderRightWidth:Ze,borderBottomWidth:Ze,borderLeftWidth:Ze,borderRadius:Ze,radius:Ze,borderTopLeftRadius:Ze,borderTopRightRadius:Ze,borderBottomRightRadius:Ze,borderBottomLeftRadius:Ze,width:Ze,maxWidth:Ze,height:Ze,maxHeight:Ze,top:Ze,right:Ze,bottom:Ze,left:Ze,padding:Ze,paddingTop:Ze,paddingRight:Ze,paddingBottom:Ze,paddingLeft:Ze,margin:Ze,marginTop:Ze,marginRight:Ze,marginBottom:Ze,marginLeft:Ze,backgroundPositionX:Ze,backgroundPositionY:Ze,...Yj,zIndex:Gd,fillOpacity:wn,strokeOpacity:wn,numOctaves:Gd},Zj={...Xo,color:es,backgroundColor:es,outlineColor:es,fill:es,stroke:es,borderColor:es,borderTopColor:es,borderRightColor:es,borderBottomColor:es,borderLeftColor:es,filter:ql,WebkitFilter:ql},ex=t=>Zj[t];function tx(t,s){let a=ex(t);return a!==ql&&(a=za),a.getAnimatableNone?a.getAnimatableNone(s):void 0}const Xj=new Set(["auto","none","0"]);function Qj(t,s,a){let r=0,n;for(;r<t.length&&!n;){const i=t[r];typeof i=="string"&&!Xj.has(i)&&Cn(i).values.length&&(n=t[r]),r++}if(n&&a)for(const i of s)t[i]=tx(a,n)}class Jj extends Yo{constructor(s,a,r,n,i){super(s,a,r,n,i,!0)}readKeyframes(){const{unresolvedKeyframes:s,element:a,name:r}=this;if(!a||!a.current)return;super.readKeyframes();for(let c=0;c<s.length;c++){let d=s[c];if(typeof d=="string"&&(d=d.trim(),Uo(d))){const m=Xh(d,a.current);m!==void 0&&(s[c]=m),c===s.length-1&&(this.finalKeyframe=d)}}if(this.resolveNoneKeyframes(),!Qh.has(r)||s.length!==2)return;const[n,i]=s,l=Wd(n),o=Wd(i);if(l!==o)if(Bd(l)&&Bd(o))for(let c=0;c<s.length;c++){const d=s[c];typeof d=="string"&&(s[c]=parseFloat(d))}else ur[r]&&(this.needsMeasurement=!0)}resolveNoneKeyframes(){const{unresolvedKeyframes:s,name:a}=this,r=[];for(let n=0;n<s.length;n++)(s[n]===null||Hj(s[n]))&&r.push(n);r.length&&Qj(s,r,a)}measureInitialState(){const{element:s,unresolvedKeyframes:a,name:r}=this;if(!s||!s.current)return;r==="height"&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=ur[r](s.measureViewportBox(),window.getComputedStyle(s.current)),a[0]=this.measuredOrigin;const n=a[a.length-1];n!==void 0&&s.getValue(r,n).jump(n,!1)}measureEndState(){var o;const{element:s,name:a,unresolvedKeyframes:r}=this;if(!s||!s.current)return;const n=s.getValue(a);n&&n.jump(this.measuredOrigin,!1);const i=r.length-1,l=r[i];r[i]=ur[a](s.measureViewportBox(),window.getComputedStyle(s.current)),l!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=l),(o=this.removedTransforms)!=null&&o.length&&this.removedTransforms.forEach(([c,d])=>{s.getValue(c).set(d)}),this.resolveNoneKeyframes()}}function qj(t,s,a){if(t instanceof EventTarget)return[t];if(typeof t=="string"){let r=document;const n=(a==null?void 0:a[t])??r.querySelectorAll(t);return n?Array.from(n):[]}return Array.from(t)}const sx=(t,s)=>s&&typeof t=="number"?s.transform(t):t;function ax(t){return vh(t)&&"offsetHeight"in t}const Kd=30,eN=t=>!isNaN(parseFloat(t));class tN{constructor(s,a={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=r=>{var i;const n=Ds.now();if(this.updatedAt!==n&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&((i=this.events.change)==null||i.notify(this.current),this.dependents))for(const l of this.dependents)l.dirty()},this.hasAnimated=!1,this.setCurrent(s),this.owner=a.owner}setCurrent(s){this.current=s,this.updatedAt=Ds.now(),this.canTrackVelocity===null&&s!==void 0&&(this.canTrackVelocity=eN(this.current))}setPrevFrameValue(s=this.current){this.prevFrameValue=s,this.prevUpdatedAt=this.updatedAt}onChange(s){return this.on("change",s)}on(s,a){this.events[s]||(this.events[s]=new _o);const r=this.events[s].add(a);return s==="change"?()=>{r(),Ft.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const s in this.events)this.events[s].clear()}attach(s,a){this.passiveEffect=s,this.stopPassiveEffect=a}set(s){this.passiveEffect?this.passiveEffect(s,this.updateAndNotify):this.updateAndNotify(s)}setWithVelocity(s,a,r){this.set(a),this.prev=void 0,this.prevFrameValue=s,this.prevUpdatedAt=this.updatedAt-r}jump(s,a=!0){this.updateAndNotify(s),this.prev=s,this.prevUpdatedAt=this.prevFrameValue=void 0,a&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){var s;(s=this.events.change)==null||s.notify(this.current)}addDependent(s){this.dependents||(this.dependents=new Set),this.dependents.add(s)}removeDependent(s){this.dependents&&this.dependents.delete(s)}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const s=Ds.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||s-this.updatedAt>Kd)return 0;const a=Math.min(this.updatedAt-this.prevUpdatedAt,Kd);return jh(parseFloat(this.current)-parseFloat(this.prevFrameValue),a)}start(s){return this.stop(),new Promise(a=>{this.hasAnimated=!0,this.animation=s(a),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){var s,a;(s=this.dependents)==null||s.clear(),(a=this.events.destroy)==null||a.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function Ir(t,s){return new tN(t,s)}const{schedule:Qo}=Ih(queueMicrotask,!1),la={x:!1,y:!1};function rx(){return la.x||la.y}function sN(t){return t==="x"||t==="y"?la[t]?null:(la[t]=!0,()=>{la[t]=!1}):la.x||la.y?null:(la.x=la.y=!0,()=>{la.x=la.y=!1})}function nx(t,s){const a=qj(t),r=new AbortController,n={passive:!0,...s,signal:r.signal};return[a,n,()=>r.abort()]}function Yd(t){return!(t.pointerType==="touch"||rx())}function aN(t,s,a={}){const[r,n,i]=nx(t,a),l=o=>{if(!Yd(o))return;const{target:c}=o,d=s(c,o);if(typeof d!="function"||!c)return;const m=u=>{Yd(u)&&(d(u),c.removeEventListener("pointerleave",m))};c.addEventListener("pointerleave",m,n)};return r.forEach(o=>{o.addEventListener("pointerenter",l,n)}),i}const ix=(t,s)=>s?t===s?!0:ix(t,s.parentElement):!1,Jo=t=>t.pointerType==="mouse"?typeof t.button!="number"||t.button<=0:t.isPrimary!==!1,rN=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function nN(t){return rN.has(t.tagName)||t.tabIndex!==-1}const Jn=new WeakSet;function Zd(t){return s=>{s.key==="Enter"&&t(s)}}function dl(t,s){t.dispatchEvent(new PointerEvent("pointer"+s,{isPrimary:!0,bubbles:!0}))}const iN=(t,s)=>{const a=t.currentTarget;if(!a)return;const r=Zd(()=>{if(Jn.has(a))return;dl(a,"down");const n=Zd(()=>{dl(a,"up")}),i=()=>dl(a,"cancel");a.addEventListener("keyup",n,s),a.addEventListener("blur",i,s)});a.addEventListener("keydown",r,s),a.addEventListener("blur",()=>a.removeEventListener("keydown",r),s)};function Xd(t){return Jo(t)&&!rx()}function lN(t,s,a={}){const[r,n,i]=nx(t,a),l=o=>{const c=o.currentTarget;if(!Xd(o))return;Jn.add(c);const d=s(c,o),m=(g,p)=>{window.removeEventListener("pointerup",u),window.removeEventListener("pointercancel",h),Jn.has(c)&&Jn.delete(c),Xd(g)&&typeof d=="function"&&d(g,{success:p})},u=g=>{m(g,c===window||c===document||a.useGlobalTarget||ix(c,g.target))},h=g=>{m(g,!1)};window.addEventListener("pointerup",u,n),window.addEventListener("pointercancel",h,n)};return r.forEach(o=>{(a.useGlobalTarget?window:o).addEventListener("pointerdown",l,n),ax(o)&&(o.addEventListener("focus",d=>iN(d,n)),!nN(o)&&!o.hasAttribute("tabindex")&&(o.tabIndex=0))}),i}function lx(t){return vh(t)&&"ownerSVGElement"in t}function oN(t){return lx(t)&&t.tagName==="svg"}const ys=t=>!!(t&&t.getVelocity),cN=[...qh,es,za],dN=t=>cN.find(Jh(t)),qo=x.createContext({transformPagePoint:t=>t,isStatic:!1,reducedMotion:"never"});function Qd(t,s){if(typeof t=="function")return t(s);t!=null&&(t.current=s)}function mN(...t){return s=>{let a=!1;const r=t.map(n=>{const i=Qd(n,s);return!a&&typeof i=="function"&&(a=!0),i});if(a)return()=>{for(let n=0;n<r.length;n++){const i=r[n];typeof i=="function"?i():Qd(t[n],null)}}}}function uN(...t){return x.useCallback(mN(...t),t)}class hN extends x.Component{getSnapshotBeforeUpdate(s){const a=this.props.childRef.current;if(a&&s.isPresent&&!this.props.isPresent){const r=a.offsetParent,n=ax(r)&&r.offsetWidth||0,i=this.props.sizeRef.current;i.height=a.offsetHeight||0,i.width=a.offsetWidth||0,i.top=a.offsetTop,i.left=a.offsetLeft,i.right=n-i.width-i.left}return null}componentDidUpdate(){}render(){return this.props.children}}function xN({children:t,isPresent:s,anchorX:a,root:r}){const n=x.useId(),i=x.useRef(null),l=x.useRef({width:0,height:0,top:0,left:0,right:0}),{nonce:o}=x.useContext(qo),c=uN(i,t==null?void 0:t.ref);return x.useInsertionEffect(()=>{const{width:d,height:m,top:u,left:h,right:g}=l.current;if(s||!i.current||!d||!m)return;const p=a==="left"?`left: ${h}`:`right: ${g}`;i.current.dataset.motionPopId=n;const y=document.createElement("style");o&&(y.nonce=o);const f=r??document.head;return f.appendChild(y),y.sheet&&y.sheet.insertRule(`
|
||
[data-motion-pop-id="${n}"] {
|
||
position: absolute !important;
|
||
width: ${d}px !important;
|
||
height: ${m}px !important;
|
||
${p}px !important;
|
||
top: ${u}px !important;
|
||
}
|
||
`),()=>{f.contains(y)&&f.removeChild(y)}},[s]),e.jsx(hN,{isPresent:s,childRef:i,sizeRef:l,children:x.cloneElement(t,{ref:c})})}const pN=({children:t,initial:s,isPresent:a,onExitComplete:r,custom:n,presenceAffectsLayout:i,mode:l,anchorX:o,root:c})=>{const d=Do(gN),m=x.useId();let u=!0,h=x.useMemo(()=>(u=!1,{id:m,initial:s,isPresent:a,custom:n,onExitComplete:g=>{d.set(g,!0);for(const p of d.values())if(!p)return;r&&r()},register:g=>(d.set(g,!1),()=>d.delete(g))}),[a,d,r]);return i&&u&&(h={...h}),x.useMemo(()=>{d.forEach((g,p)=>d.set(p,!1))},[a]),x.useEffect(()=>{!a&&!d.size&&r&&r()},[a]),l==="popLayout"&&(t=e.jsx(xN,{isPresent:a,anchorX:o,root:c,children:t})),e.jsx(_i.Provider,{value:h,children:t})};function gN(){return new Map}function ox(t=!0){const s=x.useContext(_i);if(s===null)return[!0,null];const{isPresent:a,onExitComplete:r,register:n}=s,i=x.useId();x.useEffect(()=>{if(t)return n(i)},[t]);const l=x.useCallback(()=>t&&r&&r(i),[i,r,t]);return!a&&r?[!1,l]:[!0]}const zn=t=>t.key||"";function Jd(t){const s=[];return x.Children.forEach(t,a=>{x.isValidElement(a)&&s.push(a)}),s}const ec=({children:t,custom:s,initial:a=!0,onExitComplete:r,presenceAffectsLayout:n=!0,mode:i="sync",propagate:l=!1,anchorX:o="left",root:c})=>{const[d,m]=ox(l),u=x.useMemo(()=>Jd(t),[t]),h=l&&!d?[]:u.map(zn),g=x.useRef(!0),p=x.useRef(u),y=Do(()=>new Map),[f,b]=x.useState(u),[v,w]=x.useState(u);fh(()=>{g.current=!1,p.current=u;for(let k=0;k<v.length;k++){const F=zn(v[k]);h.includes(F)?y.delete(F):y.get(F)!==!0&&y.set(F,!1)}},[v,h.length,h.join("-")]);const A=[];if(u!==f){let k=[...u];for(let F=0;F<v.length;F++){const T=v[F],D=zn(T);h.includes(D)||(k.splice(F,0,T),A.push(T))}return i==="wait"&&A.length&&(k=A),w(Jd(k)),b(u),null}const{forceRender:S}=x.useContext(Ro);return e.jsx(e.Fragment,{children:v.map(k=>{const F=zn(k),T=l&&!d?!1:u===v||h.includes(F),D=()=>{if(y.has(F))y.set(F,!0);else return;let C=!0;y.forEach(P=>{P||(C=!1)}),C&&(S==null||S(),w(p.current),l&&(m==null||m()),r&&r())};return e.jsx(pN,{isPresent:T,initial:!g.current||a?void 0:!1,custom:s,presenceAffectsLayout:n,mode:i,root:c,onExitComplete:T?void 0:D,anchorX:o,children:k},F)})})},cx=x.createContext({strict:!1}),qd={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},Er={};for(const t in qd)Er[t]={isEnabled:s=>qd[t].some(a=>!!s[a])};function fN(t){for(const s in t)Er[s]={...Er[s],...t[s]}}const yN=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function xi(t){return t.startsWith("while")||t.startsWith("drag")&&t!=="draggable"||t.startsWith("layout")||t.startsWith("onTap")||t.startsWith("onPan")||t.startsWith("onLayout")||yN.has(t)}let dx=t=>!xi(t);function vN(t){typeof t=="function"&&(dx=s=>s.startsWith("on")?!xi(s):t(s))}try{vN(require("@emotion/is-prop-valid").default)}catch{}function bN(t,s,a){const r={};for(const n in t)n==="values"&&typeof t.values=="object"||(dx(n)||a===!0&&xi(n)||!s&&!xi(n)||t.draggable&&n.startsWith("onDrag"))&&(r[n]=t[n]);return r}const Li=x.createContext({});function Oi(t){return t!==null&&typeof t=="object"&&typeof t.start=="function"}function An(t){return typeof t=="string"||Array.isArray(t)}const tc=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],sc=["initial",...tc];function $i(t){return Oi(t.animate)||sc.some(s=>An(t[s]))}function mx(t){return!!($i(t)||t.variants)}function jN(t,s){if($i(t)){const{initial:a,animate:r}=t;return{initial:a===!1||An(a)?a:void 0,animate:An(r)?r:void 0}}return t.inherit!==!1?s:{}}function NN(t){const{initial:s,animate:a}=jN(t,x.useContext(Li));return x.useMemo(()=>({initial:s,animate:a}),[em(s),em(a)])}function em(t){return Array.isArray(t)?t.join(" "):t}const Sn={};function wN(t){for(const s in t)Sn[s]=t[s],$o(s)&&(Sn[s].isCSSVariable=!0)}function ux(t,{layout:s,layoutId:a}){return Br.has(t)||t.startsWith("origin")||(s||a!==void 0)&&(!!Sn[t]||t==="opacity")}const CN={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},AN=Ur.length;function SN(t,s,a){let r="",n=!0;for(let i=0;i<AN;i++){const l=Ur[i],o=t[l];if(o===void 0)continue;let c=!0;if(typeof o=="number"?c=o===(l.startsWith("scale")?1:0):c=parseFloat(o)===0,!c||a){const d=sx(o,Xo[l]);if(!c){n=!1;const m=CN[l]||l;r+=`${m}(${d}) `}a&&(s[l]=d)}}return r=r.trim(),a?r=a(s,n?"":r):n&&(r="none"),r}function ac(t,s,a){const{style:r,vars:n,transformOrigin:i}=t;let l=!1,o=!1;for(const c in s){const d=s[c];if(Br.has(c)){l=!0;continue}else if($o(c)){n[c]=d;continue}else{const m=sx(d,Xo[c]);c.startsWith("origin")?(o=!0,i[c]=m):r[c]=m}}if(s.transform||(l||a?r.transform=SN(s,t.transform,a):r.transform&&(r.transform="none")),o){const{originX:c="50%",originY:d="50%",originZ:m=0}=i;r.transformOrigin=`${c} ${d} ${m}`}}const rc=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function hx(t,s,a){for(const r in s)!ys(s[r])&&!ux(r,a)&&(t[r]=s[r])}function TN({transformTemplate:t},s){return x.useMemo(()=>{const a=rc();return ac(a,s,t),Object.assign({},a.vars,a.style)},[s])}function kN(t,s){const a=t.style||{},r={};return hx(r,a,t),Object.assign(r,TN(t,s)),r}function RN(t,s){const a={},r=kN(t,s);return t.drag&&t.dragListener!==!1&&(a.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=t.drag===!0?"none":`pan-${t.drag==="x"?"y":"x"}`),t.tabIndex===void 0&&(t.onTap||t.onTapStart||t.whileTap)&&(a.tabIndex=0),a.style=r,a}const DN={offset:"stroke-dashoffset",array:"stroke-dasharray"},PN={offset:"strokeDashoffset",array:"strokeDasharray"};function IN(t,s,a=1,r=0,n=!0){t.pathLength=1;const i=n?DN:PN;t[i.offset]=Ze.transform(-r);const l=Ze.transform(s),o=Ze.transform(a);t[i.array]=`${l} ${o}`}function xx(t,{attrX:s,attrY:a,attrScale:r,pathLength:n,pathSpacing:i=1,pathOffset:l=0,...o},c,d,m){if(ac(t,o,d),c){t.style.viewBox&&(t.attrs.viewBox=t.style.viewBox);return}t.attrs=t.style,t.style={};const{attrs:u,style:h}=t;u.transform&&(h.transform=u.transform,delete u.transform),(h.transform||u.transformOrigin)&&(h.transformOrigin=u.transformOrigin??"50% 50%",delete u.transformOrigin),h.transform&&(h.transformBox=(m==null?void 0:m.transformBox)??"fill-box",delete u.transformBox),s!==void 0&&(u.x=s),a!==void 0&&(u.y=a),r!==void 0&&(u.scale=r),n!==void 0&&IN(u,n,i,l,!1)}const px=()=>({...rc(),attrs:{}}),gx=t=>typeof t=="string"&&t.toLowerCase()==="svg";function EN(t,s,a,r){const n=x.useMemo(()=>{const i=px();return xx(i,s,gx(r),t.transformTemplate,t.style),{...i.attrs,style:{...i.style}}},[s]);if(t.style){const i={};hx(i,t.style,t),n.style={...i,...n.style}}return n}const MN=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function nc(t){return typeof t!="string"||t.includes("-")?!1:!!(MN.indexOf(t)>-1||/[A-Z]/u.test(t))}function FN(t,s,a,{latestValues:r},n,i=!1){const o=(nc(t)?EN:RN)(s,r,n,t),c=bN(s,typeof t=="string",i),d=t!==x.Fragment?{...c,...o,ref:a}:{},{children:m}=s,u=x.useMemo(()=>ys(m)?m.get():m,[m]);return x.createElement(t,{...d,children:u})}function tm(t){const s=[{},{}];return t==null||t.values.forEach((a,r)=>{s[0][r]=a.get(),s[1][r]=a.getVelocity()}),s}function ic(t,s,a,r){if(typeof s=="function"){const[n,i]=tm(r);s=s(a!==void 0?a:t.custom,n,i)}if(typeof s=="string"&&(s=t.variants&&t.variants[s]),typeof s=="function"){const[n,i]=tm(r);s=s(a!==void 0?a:t.custom,n,i)}return s}function qn(t){return ys(t)?t.get():t}function _N({scrapeMotionValuesFromProps:t,createRenderState:s},a,r,n){return{latestValues:LN(a,r,n,t),renderState:s()}}function LN(t,s,a,r){const n={},i=r(t,{});for(const h in i)n[h]=qn(i[h]);let{initial:l,animate:o}=t;const c=$i(t),d=mx(t);s&&d&&!c&&t.inherit!==!1&&(l===void 0&&(l=s.initial),o===void 0&&(o=s.animate));let m=a?a.initial===!1:!1;m=m||l===!1;const u=m?o:l;if(u&&typeof u!="boolean"&&!Oi(u)){const h=Array.isArray(u)?u:[u];for(let g=0;g<h.length;g++){const p=ic(t,h[g]);if(p){const{transitionEnd:y,transition:f,...b}=p;for(const v in b){let w=b[v];if(Array.isArray(w)){const A=m?w.length-1:0;w=w[A]}w!==null&&(n[v]=w)}for(const v in y)n[v]=y[v]}}}return n}const fx=t=>(s,a)=>{const r=x.useContext(Li),n=x.useContext(_i),i=()=>_N(t,s,r,n);return a?i():Do(i)};function lc(t,s,a){var i;const{style:r}=t,n={};for(const l in r)(ys(r[l])||s.style&&ys(s.style[l])||ux(l,t)||((i=a==null?void 0:a.getValue(l))==null?void 0:i.liveStyle)!==void 0)&&(n[l]=r[l]);return n}const ON=fx({scrapeMotionValuesFromProps:lc,createRenderState:rc});function yx(t,s,a){const r=lc(t,s,a);for(const n in t)if(ys(t[n])||ys(s[n])){const i=Ur.indexOf(n)!==-1?"attr"+n.charAt(0).toUpperCase()+n.substring(1):n;r[i]=t[n]}return r}const $N=fx({scrapeMotionValuesFromProps:yx,createRenderState:px}),UN=Symbol.for("motionComponentSymbol");function Nr(t){return t&&typeof t=="object"&&Object.prototype.hasOwnProperty.call(t,"current")}function BN(t,s,a){return x.useCallback(r=>{r&&t.onMount&&t.onMount(r),s&&(r?s.mount(r):s.unmount()),a&&(typeof a=="function"?a(r):Nr(a)&&(a.current=r))},[s])}const oc=t=>t.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),VN="framerAppearId",vx="data-"+oc(VN),bx=x.createContext({});function zN(t,s,a,r,n){var y,f;const{visualElement:i}=x.useContext(Li),l=x.useContext(cx),o=x.useContext(_i),c=x.useContext(qo).reducedMotion,d=x.useRef(null);r=r||l.renderer,!d.current&&r&&(d.current=r(t,{visualState:s,parent:i,props:a,presenceContext:o,blockInitialAnimation:o?o.initial===!1:!1,reducedMotionConfig:c}));const m=d.current,u=x.useContext(bx);m&&!m.projection&&n&&(m.type==="html"||m.type==="svg")&&HN(d.current,a,n,u);const h=x.useRef(!1);x.useInsertionEffect(()=>{m&&h.current&&m.update(a,o)});const g=a[vx],p=x.useRef(!!g&&!((y=window.MotionHandoffIsComplete)!=null&&y.call(window,g))&&((f=window.MotionHasOptimisedAnimation)==null?void 0:f.call(window,g)));return fh(()=>{m&&(h.current=!0,window.MotionIsMounted=!0,m.updateFeatures(),m.scheduleRenderMicrotask(),p.current&&m.animationState&&m.animationState.animateChanges())}),x.useEffect(()=>{m&&(!p.current&&m.animationState&&m.animationState.animateChanges(),p.current&&(queueMicrotask(()=>{var b;(b=window.MotionHandoffMarkAsComplete)==null||b.call(window,g)}),p.current=!1),m.enteringChildren=void 0)}),m}function HN(t,s,a,r){const{layoutId:n,layout:i,drag:l,dragConstraints:o,layoutScroll:c,layoutRoot:d,layoutCrossfade:m}=s;t.projection=new a(t.latestValues,s["data-framer-portal-id"]?void 0:jx(t.parent)),t.projection.setOptions({layoutId:n,layout:i,alwaysMeasureLayout:!!l||o&&Nr(o),visualElement:t,animationType:typeof i=="string"?i:"both",initialPromotionConfig:r,crossfade:m,layoutScroll:c,layoutRoot:d})}function jx(t){if(t)return t.options.allowProjection!==!1?t.projection:jx(t.parent)}function ml(t,{forwardMotionProps:s=!1}={},a,r){a&&fN(a);const n=nc(t)?$N:ON;function i(o,c){let d;const m={...x.useContext(qo),...o,layoutId:WN(o)},{isStatic:u}=m,h=NN(o),g=n(o,u);if(!u&&Po){GN();const p=KN(m);d=p.MeasureLayout,h.visualElement=zN(t,g,m,r,p.ProjectionNode)}return e.jsxs(Li.Provider,{value:h,children:[d&&h.visualElement?e.jsx(d,{visualElement:h.visualElement,...m}):null,FN(t,o,BN(g,h.visualElement,c),g,u,s)]})}i.displayName=`motion.${typeof t=="string"?t:`create(${t.displayName??t.name??""})`}`;const l=x.forwardRef(i);return l[UN]=t,l}function WN({layoutId:t}){const s=x.useContext(Ro).id;return s&&t!==void 0?s+"-"+t:t}function GN(t,s){x.useContext(cx).strict}function KN(t){const{drag:s,layout:a}=Er;if(!s&&!a)return{};const r={...s,...a};return{MeasureLayout:s!=null&&s.isEnabled(t)||a!=null&&a.isEnabled(t)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}function YN(t,s){if(typeof Proxy>"u")return ml;const a=new Map,r=(i,l)=>ml(i,l,t,s),n=(i,l)=>r(i,l);return new Proxy(n,{get:(i,l)=>l==="create"?r:(a.has(l)||a.set(l,ml(l,void 0,t,s)),a.get(l))})}function Nx({top:t,left:s,right:a,bottom:r}){return{x:{min:s,max:a},y:{min:t,max:r}}}function ZN({x:t,y:s}){return{top:s.min,right:t.max,bottom:s.max,left:t.min}}function XN(t,s){if(!s)return t;const a=s({x:t.left,y:t.top}),r=s({x:t.right,y:t.bottom});return{top:a.y,left:a.x,bottom:r.y,right:r.x}}function ul(t){return t===void 0||t===1}function eo({scale:t,scaleX:s,scaleY:a}){return!ul(t)||!ul(s)||!ul(a)}function nr(t){return eo(t)||wx(t)||t.z||t.rotate||t.rotateX||t.rotateY||t.skewX||t.skewY}function wx(t){return sm(t.x)||sm(t.y)}function sm(t){return t&&t!=="0%"}function pi(t,s,a){const r=t-a,n=s*r;return a+n}function am(t,s,a,r,n){return n!==void 0&&(t=pi(t,n,r)),pi(t,a,r)+s}function to(t,s=0,a=1,r,n){t.min=am(t.min,s,a,r,n),t.max=am(t.max,s,a,r,n)}function Cx(t,{x:s,y:a}){to(t.x,s.translate,s.scale,s.originPoint),to(t.y,a.translate,a.scale,a.originPoint)}const rm=.999999999999,nm=1.0000000000001;function QN(t,s,a,r=!1){const n=a.length;if(!n)return;s.x=s.y=1;let i,l;for(let o=0;o<n;o++){i=a[o],l=i.projectionDelta;const{visualElement:c}=i.options;c&&c.props.style&&c.props.style.display==="contents"||(r&&i.options.layoutScroll&&i.scroll&&i!==i.root&&Cr(t,{x:-i.scroll.offset.x,y:-i.scroll.offset.y}),l&&(s.x*=l.x.scale,s.y*=l.y.scale,Cx(t,l)),r&&nr(i.latestValues)&&Cr(t,i.latestValues))}s.x<nm&&s.x>rm&&(s.x=1),s.y<nm&&s.y>rm&&(s.y=1)}function wr(t,s){t.min=t.min+s,t.max=t.max+s}function im(t,s,a,r,n=.5){const i=Ut(t.min,t.max,n);to(t,s,a,i,r)}function Cr(t,s){im(t.x,s.x,s.scaleX,s.scale,s.originX),im(t.y,s.y,s.scaleY,s.scale,s.originY)}function Ax(t,s){return Nx(XN(t.getBoundingClientRect(),s))}function JN(t,s,a){const r=Ax(t,a),{scroll:n}=s;return n&&(wr(r.x,n.offset.x),wr(r.y,n.offset.y)),r}const lm=()=>({translate:0,scale:1,origin:0,originPoint:0}),Ar=()=>({x:lm(),y:lm()}),om=()=>({min:0,max:0}),Kt=()=>({x:om(),y:om()}),so={current:null},Sx={current:!1};function qN(){if(Sx.current=!0,!!Po)if(window.matchMedia){const t=window.matchMedia("(prefers-reduced-motion)"),s=()=>so.current=t.matches;t.addEventListener("change",s),s()}else so.current=!1}const ew=new WeakMap;function tw(t,s,a){for(const r in s){const n=s[r],i=a[r];if(ys(n))t.addValue(r,n);else if(ys(i))t.addValue(r,Ir(n,{owner:t}));else if(i!==n)if(t.hasValue(r)){const l=t.getValue(r);l.liveStyle===!0?l.jump(n):l.hasAnimated||l.set(n)}else{const l=t.getStaticValue(r);t.addValue(r,Ir(l!==void 0?l:n,{owner:t}))}}for(const r in a)s[r]===void 0&&t.removeValue(r);return s}const cm=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class sw{scrapeMotionValuesFromProps(s,a,r){return{}}constructor({parent:s,props:a,presenceContext:r,reducedMotionConfig:n,blockInitialAnimation:i,visualState:l},o={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Yo,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const h=Ds.now();this.renderScheduledAt<h&&(this.renderScheduledAt=h,Ft.render(this.render,!1,!0))};const{latestValues:c,renderState:d}=l;this.latestValues=c,this.baseTarget={...c},this.initialValues=a.initial?{...c}:{},this.renderState=d,this.parent=s,this.props=a,this.presenceContext=r,this.depth=s?s.depth+1:0,this.reducedMotionConfig=n,this.options=o,this.blockInitialAnimation=!!i,this.isControllingVariants=$i(a),this.isVariantNode=mx(a),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(s&&s.current);const{willChange:m,...u}=this.scrapeMotionValuesFromProps(a,{},this);for(const h in u){const g=u[h];c[h]!==void 0&&ys(g)&&g.set(c[h])}}mount(s){var a;this.current=s,ew.set(s,this),this.projection&&!this.projection.instance&&this.projection.mount(s),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((r,n)=>this.bindToMotionValue(n,r)),Sx.current||qN(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:so.current,(a=this.parent)==null||a.addChild(this),this.update(this.props,this.presenceContext)}unmount(){var s;this.projection&&this.projection.unmount(),Va(this.notifyUpdate),Va(this.render),this.valueSubscriptions.forEach(a=>a()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),(s=this.parent)==null||s.removeChild(this);for(const a in this.events)this.events[a].clear();for(const a in this.features){const r=this.features[a];r&&(r.unmount(),r.isMounted=!1)}this.current=null}addChild(s){this.children.add(s),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(s)}removeChild(s){this.children.delete(s),this.enteringChildren&&this.enteringChildren.delete(s)}bindToMotionValue(s,a){this.valueSubscriptions.has(s)&&this.valueSubscriptions.get(s)();const r=Br.has(s);r&&this.onBindTransform&&this.onBindTransform();const n=a.on("change",l=>{this.latestValues[s]=l,this.props.onUpdate&&Ft.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});let i;window.MotionCheckAppearSync&&(i=window.MotionCheckAppearSync(this,s,a)),this.valueSubscriptions.set(s,()=>{n(),i&&i(),a.owner&&a.stop()})}sortNodePosition(s){return!this.current||!this.sortInstanceNodePosition||this.type!==s.type?0:this.sortInstanceNodePosition(this.current,s.current)}updateFeatures(){let s="animation";for(s in Er){const a=Er[s];if(!a)continue;const{isEnabled:r,Feature:n}=a;if(!this.features[s]&&n&&r(this.props)&&(this.features[s]=new n(this)),this.features[s]){const i=this.features[s];i.isMounted?i.update():(i.mount(),i.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Kt()}getStaticValue(s){return this.latestValues[s]}setStaticValue(s,a){this.latestValues[s]=a}update(s,a){(s.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=s,this.prevPresenceContext=this.presenceContext,this.presenceContext=a;for(let r=0;r<cm.length;r++){const n=cm[r];this.propEventSubscriptions[n]&&(this.propEventSubscriptions[n](),delete this.propEventSubscriptions[n]);const i="on"+n,l=s[i];l&&(this.propEventSubscriptions[n]=this.on(n,l))}this.prevMotionValues=tw(this,this.scrapeMotionValuesFromProps(s,this.prevProps,this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(s){return this.props.variants?this.props.variants[s]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(s){const a=this.getClosestVariantNode();if(a)return a.variantChildren&&a.variantChildren.add(s),()=>a.variantChildren.delete(s)}addValue(s,a){const r=this.values.get(s);a!==r&&(r&&this.removeValue(s),this.bindToMotionValue(s,a),this.values.set(s,a),this.latestValues[s]=a.get())}removeValue(s){this.values.delete(s);const a=this.valueSubscriptions.get(s);a&&(a(),this.valueSubscriptions.delete(s)),delete this.latestValues[s],this.removeValueFromRenderState(s,this.renderState)}hasValue(s){return this.values.has(s)}getValue(s,a){if(this.props.values&&this.props.values[s])return this.props.values[s];let r=this.values.get(s);return r===void 0&&a!==void 0&&(r=Ir(a===null?void 0:a,{owner:this}),this.addValue(s,r)),r}readValue(s,a){let r=this.latestValues[s]!==void 0||!this.current?this.latestValues[s]:this.getBaseTargetFromProps(this.props,s)??this.readValueFromInstance(this.current,s,this.options);return r!=null&&(typeof r=="string"&&(yh(r)||bh(r))?r=parseFloat(r):!dN(r)&&za.test(a)&&(r=tx(s,a)),this.setBaseTarget(s,ys(r)?r.get():r)),ys(r)?r.get():r}setBaseTarget(s,a){this.baseTarget[s]=a}getBaseTarget(s){var i;const{initial:a}=this.props;let r;if(typeof a=="string"||typeof a=="object"){const l=ic(this.props,a,(i=this.presenceContext)==null?void 0:i.custom);l&&(r=l[s])}if(a&&r!==void 0)return r;const n=this.getBaseTargetFromProps(this.props,s);return n!==void 0&&!ys(n)?n:this.initialValues[s]!==void 0&&r===void 0?void 0:this.baseTarget[s]}on(s,a){return this.events[s]||(this.events[s]=new _o),this.events[s].add(a)}notify(s,...a){this.events[s]&&this.events[s].notify(...a)}scheduleRenderMicrotask(){Qo.render(this.render)}}class Tx extends sw{constructor(){super(...arguments),this.KeyframeResolver=Jj}sortInstanceNodePosition(s,a){return s.compareDocumentPosition(a)&2?1:-1}getBaseTargetFromProps(s,a){return s.style?s.style[a]:void 0}removeValueFromRenderState(s,{vars:a,style:r}){delete a[s],delete r[s]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:s}=this.props;ys(s)&&(this.childSubscription=s.on("change",a=>{this.current&&(this.current.textContent=`${a}`)}))}}function kx(t,{style:s,vars:a},r,n){const i=t.style;let l;for(l in s)i[l]=s[l];n==null||n.applyProjectionStyles(i,r);for(l in a)i.setProperty(l,a[l])}function aw(t){return window.getComputedStyle(t)}class rw extends Tx{constructor(){super(...arguments),this.type="html",this.renderInstance=kx}readValueFromInstance(s,a){var r;if(Br.has(a))return(r=this.projection)!=null&&r.isProjecting?Kl(a):fj(s,a);{const n=aw(s),i=($o(a)?n.getPropertyValue(a):n[a])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(s,{transformPagePoint:a}){return Ax(s,a)}build(s,a,r){ac(s,a,r.transformTemplate)}scrapeMotionValuesFromProps(s,a,r){return lc(s,a,r)}}const Rx=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function nw(t,s,a,r){kx(t,s,void 0,r);for(const n in s.attrs)t.setAttribute(Rx.has(n)?n:oc(n),s.attrs[n])}class iw extends Tx{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Kt}getBaseTargetFromProps(s,a){return s[a]}readValueFromInstance(s,a){if(Br.has(a)){const r=ex(a);return r&&r.default||0}return a=Rx.has(a)?a:oc(a),s.getAttribute(a)}scrapeMotionValuesFromProps(s,a,r){return yx(s,a,r)}build(s,a,r){xx(s,a,this.isSVGTag,r.transformTemplate,r.style)}renderInstance(s,a,r,n){nw(s,a,r,n)}mount(s){this.isSVGTag=gx(s.tagName),super.mount(s)}}const lw=(t,s)=>nc(t)?new iw(s):new rw(s,{allowProjection:t!==x.Fragment});function Dr(t,s,a){const r=t.getProps();return ic(r,s,a!==void 0?a:r.custom,t)}const ao=t=>Array.isArray(t);function ow(t,s,a){t.hasValue(s)?t.getValue(s).set(a):t.addValue(s,Ir(a))}function cw(t){return ao(t)?t[t.length-1]||0:t}function dw(t,s){const a=Dr(t,s);let{transitionEnd:r={},transition:n={},...i}=a||{};i={...i,...r};for(const l in i){const o=cw(i[l]);ow(t,l,o)}}function mw(t){return!!(ys(t)&&t.add)}function ro(t,s){const a=t.getValue("willChange");if(mw(a))return a.add(s);if(!a&&Da.WillChange){const r=new Da.WillChange("auto");t.addValue("willChange",r),r.add(s)}}function Dx(t){return t.props[vx]}const uw=t=>t!==null;function hw(t,{repeat:s,repeatType:a="loop"},r){const n=t.filter(uw),i=s&&a!=="loop"&&s%2===1?0:n.length-1;return n[i]}const xw={type:"spring",stiffness:500,damping:25,restSpeed:10},pw=t=>({type:"spring",stiffness:550,damping:t===0?2*Math.sqrt(550):30,restSpeed:10}),gw={type:"keyframes",duration:.8},fw={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},yw=(t,{keyframes:s})=>s.length>2?gw:Br.has(t)?t.startsWith("scale")?pw(s[1]):xw:fw;function vw({when:t,delay:s,delayChildren:a,staggerChildren:r,staggerDirection:n,repeat:i,repeatType:l,repeatDelay:o,from:c,elapsed:d,...m}){return!!Object.keys(m).length}const cc=(t,s,a,r={},n,i)=>l=>{const o=Zo(r,t)||{},c=o.delay||r.delay||0;let{elapsed:d=0}=r;d=d-ga(c);const m={keyframes:Array.isArray(a)?a:[null,a],ease:"easeOut",velocity:s.getVelocity(),...o,delay:-d,onUpdate:h=>{s.set(h),o.onUpdate&&o.onUpdate(h)},onComplete:()=>{l(),o.onComplete&&o.onComplete()},name:t,motionValue:s,element:i?void 0:n};vw(o)||Object.assign(m,yw(t,m)),m.duration&&(m.duration=ga(m.duration)),m.repeatDelay&&(m.repeatDelay=ga(m.repeatDelay)),m.from!==void 0&&(m.keyframes[0]=m.from);let u=!1;if((m.type===!1||m.duration===0&&!m.repeatDelay)&&(Jl(m),m.delay===0&&(u=!0)),(Da.instantAnimations||Da.skipAnimations)&&(u=!0,Jl(m),m.delay=0),m.allowFlatten=!o.type&&!o.ease,u&&!i&&s.get()!==void 0){const h=hw(m.keyframes,o);if(h!==void 0){Ft.update(()=>{m.onUpdate(h),m.onComplete()});return}}return o.isSync?new Ko(m):new Uj(m)};function bw({protectedKeys:t,needsAnimating:s},a){const r=t.hasOwnProperty(a)&&s[a]!==!0;return s[a]=!1,r}function Px(t,s,{delay:a=0,transitionOverride:r,type:n}={}){let{transition:i=t.getDefaultTransition(),transitionEnd:l,...o}=s;r&&(i=r);const c=[],d=n&&t.animationState&&t.animationState.getState()[n];for(const m in o){const u=t.getValue(m,t.latestValues[m]??null),h=o[m];if(h===void 0||d&&bw(d,m))continue;const g={delay:a,...Zo(i||{},m)},p=u.get();if(p!==void 0&&!u.isAnimating&&!Array.isArray(h)&&h===p&&!g.velocity)continue;let y=!1;if(window.MotionHandoffAnimation){const b=Dx(t);if(b){const v=window.MotionHandoffAnimation(b,m,Ft);v!==null&&(g.startTime=v,y=!0)}}ro(t,m),u.start(cc(m,u,h,t.shouldReduceMotion&&Qh.has(m)?{type:!1}:g,t,y));const f=u.animation;f&&c.push(f)}return l&&Promise.all(c).then(()=>{Ft.update(()=>{l&&dw(t,l)})}),c}function Ix(t,s,a,r=0,n=1){const i=Array.from(t).sort((d,m)=>d.sortNodePosition(m)).indexOf(s),l=t.size,o=(l-1)*r;return typeof a=="function"?a(i,l):n===1?i*r:o-i*r}function no(t,s,a={}){var c;const r=Dr(t,s,a.type==="exit"?(c=t.presenceContext)==null?void 0:c.custom:void 0);let{transition:n=t.getDefaultTransition()||{}}=r||{};a.transitionOverride&&(n=a.transitionOverride);const i=r?()=>Promise.all(Px(t,r,a)):()=>Promise.resolve(),l=t.variantChildren&&t.variantChildren.size?(d=0)=>{const{delayChildren:m=0,staggerChildren:u,staggerDirection:h}=n;return jw(t,s,d,m,u,h,a)}:()=>Promise.resolve(),{when:o}=n;if(o){const[d,m]=o==="beforeChildren"?[i,l]:[l,i];return d().then(()=>m())}else return Promise.all([i(),l(a.delay)])}function jw(t,s,a=0,r=0,n=0,i=1,l){const o=[];for(const c of t.variantChildren)c.notify("AnimationStart",s),o.push(no(c,s,{...l,delay:a+(typeof r=="function"?0:r)+Ix(t.variantChildren,c,r,n,i)}).then(()=>c.notify("AnimationComplete",s)));return Promise.all(o)}function Nw(t,s,a={}){t.notify("AnimationStart",s);let r;if(Array.isArray(s)){const n=s.map(i=>no(t,i,a));r=Promise.all(n)}else if(typeof s=="string")r=no(t,s,a);else{const n=typeof s=="function"?Dr(t,s,a.custom):s;r=Promise.all(Px(t,n,a))}return r.then(()=>{t.notify("AnimationComplete",s)})}function Ex(t,s){if(!Array.isArray(s))return!1;const a=s.length;if(a!==t.length)return!1;for(let r=0;r<a;r++)if(s[r]!==t[r])return!1;return!0}const ww=sc.length;function Mx(t){if(!t)return;if(!t.isControllingVariants){const a=t.parent?Mx(t.parent)||{}:{};return t.props.initial!==void 0&&(a.initial=t.props.initial),a}const s={};for(let a=0;a<ww;a++){const r=sc[a],n=t.props[r];(An(n)||n===!1)&&(s[r]=n)}return s}const Cw=[...tc].reverse(),Aw=tc.length;function Sw(t){return s=>Promise.all(s.map(({animation:a,options:r})=>Nw(t,a,r)))}function Tw(t){let s=Sw(t),a=dm(),r=!0;const n=c=>(d,m)=>{var h;const u=Dr(t,m,c==="exit"?(h=t.presenceContext)==null?void 0:h.custom:void 0);if(u){const{transition:g,transitionEnd:p,...y}=u;d={...d,...y,...p}}return d};function i(c){s=c(t)}function l(c){const{props:d}=t,m=Mx(t.parent)||{},u=[],h=new Set;let g={},p=1/0;for(let f=0;f<Aw;f++){const b=Cw[f],v=a[b],w=d[b]!==void 0?d[b]:m[b],A=An(w),S=b===c?v.isActive:null;S===!1&&(p=f);let k=w===m[b]&&w!==d[b]&&A;if(k&&r&&t.manuallyAnimateOnMount&&(k=!1),v.protectedKeys={...g},!v.isActive&&S===null||!w&&!v.prevProp||Oi(w)||typeof w=="boolean")continue;const F=kw(v.prevProp,w);let T=F||b===c&&v.isActive&&!k&&A||f>p&&A,D=!1;const C=Array.isArray(w)?w:[w];let P=C.reduce(n(b),{});S===!1&&(P={});const{prevResolvedValues:R={}}=v,V={...R,...P},I=N=>{T=!0,h.has(N)&&(D=!0,h.delete(N)),v.needsAnimating[N]=!0;const j=t.getValue(N);j&&(j.liveStyle=!1)};for(const N in V){const j=P[N],U=R[N];if(g.hasOwnProperty(N))continue;let z=!1;ao(j)&&ao(U)?z=!Ex(j,U):z=j!==U,z?j!=null?I(N):h.add(N):j!==void 0&&h.has(N)?I(N):v.protectedKeys[N]=!0}v.prevProp=w,v.prevResolvedValues=P,v.isActive&&(g={...g,...P}),r&&t.blockInitialAnimation&&(T=!1);const $=k&&F;T&&(!$||D)&&u.push(...C.map(N=>{const j={type:b};if(typeof N=="string"&&r&&!$&&t.manuallyAnimateOnMount&&t.parent){const{parent:U}=t,z=Dr(U,N);if(U.enteringChildren&&z){const{delayChildren:B}=z.transition||{};j.delay=Ix(U.enteringChildren,t,B)}}return{animation:N,options:j}}))}if(h.size){const f={};if(typeof d.initial!="boolean"){const b=Dr(t,Array.isArray(d.initial)?d.initial[0]:d.initial);b&&b.transition&&(f.transition=b.transition)}h.forEach(b=>{const v=t.getBaseTarget(b),w=t.getValue(b);w&&(w.liveStyle=!0),f[b]=v??null}),u.push({animation:f})}let y=!!u.length;return r&&(d.initial===!1||d.initial===d.animate)&&!t.manuallyAnimateOnMount&&(y=!1),r=!1,y?s(u):Promise.resolve()}function o(c,d){var u;if(a[c].isActive===d)return Promise.resolve();(u=t.variantChildren)==null||u.forEach(h=>{var g;return(g=h.animationState)==null?void 0:g.setActive(c,d)}),a[c].isActive=d;const m=l(c);for(const h in a)a[h].protectedKeys={};return m}return{animateChanges:l,setActive:o,setAnimateFunction:i,getState:()=>a,reset:()=>{a=dm()}}}function kw(t,s){return typeof s=="string"?s!==t:Array.isArray(s)?!Ex(s,t):!1}function sr(t=!1){return{isActive:t,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function dm(){return{animate:sr(!0),whileInView:sr(),whileHover:sr(),whileTap:sr(),whileDrag:sr(),whileFocus:sr(),exit:sr()}}class Ga{constructor(s){this.isMounted=!1,this.node=s}update(){}}class Rw extends Ga{constructor(s){super(s),s.animationState||(s.animationState=Tw(s))}updateAnimationControlsSubscription(){const{animate:s}=this.node.getProps();Oi(s)&&(this.unmountControls=s.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:s}=this.node.getProps(),{animate:a}=this.node.prevProps||{};s!==a&&this.updateAnimationControlsSubscription()}unmount(){var s;this.node.animationState.reset(),(s=this.unmountControls)==null||s.call(this)}}let Dw=0;class Pw extends Ga{constructor(){super(...arguments),this.id=Dw++}update(){if(!this.node.presenceContext)return;const{isPresent:s,onExitComplete:a}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||s===r)return;const n=this.node.animationState.setActive("exit",!s);a&&!s&&n.then(()=>{a(this.id)})}mount(){const{register:s,onExitComplete:a}=this.node.presenceContext||{};a&&a(this.id),s&&(this.unmount=s(this.id))}unmount(){}}const Iw={animation:{Feature:Rw},exit:{Feature:Pw}};function Tn(t,s,a,r={passive:!0}){return t.addEventListener(s,a,r),()=>t.removeEventListener(s,a)}function Mn(t){return{point:{x:t.pageX,y:t.pageY}}}const Ew=t=>s=>Jo(s)&&t(s,Mn(s));function gn(t,s,a,r){return Tn(t,s,Ew(a),r)}const Fx=1e-4,Mw=1-Fx,Fw=1+Fx,_x=.01,_w=0-_x,Lw=0+_x;function Ns(t){return t.max-t.min}function Ow(t,s,a){return Math.abs(t-s)<=a}function mm(t,s,a,r=.5){t.origin=r,t.originPoint=Ut(s.min,s.max,t.origin),t.scale=Ns(a)/Ns(s),t.translate=Ut(a.min,a.max,t.origin)-t.originPoint,(t.scale>=Mw&&t.scale<=Fw||isNaN(t.scale))&&(t.scale=1),(t.translate>=_w&&t.translate<=Lw||isNaN(t.translate))&&(t.translate=0)}function fn(t,s,a,r){mm(t.x,s.x,a.x,r?r.originX:void 0),mm(t.y,s.y,a.y,r?r.originY:void 0)}function um(t,s,a){t.min=a.min+s.min,t.max=t.min+Ns(s)}function $w(t,s,a){um(t.x,s.x,a.x),um(t.y,s.y,a.y)}function hm(t,s,a){t.min=s.min-a.min,t.max=t.min+Ns(s)}function yn(t,s,a){hm(t.x,s.x,a.x),hm(t.y,s.y,a.y)}function Zs(t){return[t("x"),t("y")]}const Lx=({current:t})=>t?t.ownerDocument.defaultView:null,xm=(t,s)=>Math.abs(t-s);function Uw(t,s){const a=xm(t.x,s.x),r=xm(t.y,s.y);return Math.sqrt(a**2+r**2)}class Ox{constructor(s,a,{transformPagePoint:r,contextWindow:n=window,dragSnapToOrigin:i=!1,distanceThreshold:l=3}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const h=xl(this.lastMoveEventInfo,this.history),g=this.startEvent!==null,p=Uw(h.offset,{x:0,y:0})>=this.distanceThreshold;if(!g&&!p)return;const{point:y}=h,{timestamp:f}=hs;this.history.push({...y,timestamp:f});const{onStart:b,onMove:v}=this.handlers;g||(b&&b(this.lastMoveEvent,h),this.startEvent=this.lastMoveEvent),v&&v(this.lastMoveEvent,h)},this.handlePointerMove=(h,g)=>{this.lastMoveEvent=h,this.lastMoveEventInfo=hl(g,this.transformPagePoint),Ft.update(this.updatePoint,!0)},this.handlePointerUp=(h,g)=>{this.end();const{onEnd:p,onSessionEnd:y,resumeAnimation:f}=this.handlers;if(this.dragSnapToOrigin&&f&&f(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const b=xl(h.type==="pointercancel"?this.lastMoveEventInfo:hl(g,this.transformPagePoint),this.history);this.startEvent&&p&&p(h,b),y&&y(h,b)},!Jo(s))return;this.dragSnapToOrigin=i,this.handlers=a,this.transformPagePoint=r,this.distanceThreshold=l,this.contextWindow=n||window;const o=Mn(s),c=hl(o,this.transformPagePoint),{point:d}=c,{timestamp:m}=hs;this.history=[{...d,timestamp:m}];const{onSessionStart:u}=a;u&&u(s,xl(c,this.history)),this.removeListeners=Pn(gn(this.contextWindow,"pointermove",this.handlePointerMove),gn(this.contextWindow,"pointerup",this.handlePointerUp),gn(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(s){this.handlers=s}end(){this.removeListeners&&this.removeListeners(),Va(this.updatePoint)}}function hl(t,s){return s?{point:s(t.point)}:t}function pm(t,s){return{x:t.x-s.x,y:t.y-s.y}}function xl({point:t},s){return{point:t,delta:pm(t,$x(s)),offset:pm(t,Bw(s)),velocity:Vw(s,.1)}}function Bw(t){return t[0]}function $x(t){return t[t.length-1]}function Vw(t,s){if(t.length<2)return{x:0,y:0};let a=t.length-1,r=null;const n=$x(t);for(;a>=0&&(r=t[a],!(n.timestamp-r.timestamp>ga(s)));)a--;if(!r)return{x:0,y:0};const i=Xs(n.timestamp-r.timestamp);if(i===0)return{x:0,y:0};const l={x:(n.x-r.x)/i,y:(n.y-r.y)/i};return l.x===1/0&&(l.x=0),l.y===1/0&&(l.y=0),l}function zw(t,{min:s,max:a},r){return s!==void 0&&t<s?t=r?Ut(s,t,r.min):Math.max(t,s):a!==void 0&&t>a&&(t=r?Ut(a,t,r.max):Math.min(t,a)),t}function gm(t,s,a){return{min:s!==void 0?t.min+s:void 0,max:a!==void 0?t.max+a-(t.max-t.min):void 0}}function Hw(t,{top:s,left:a,bottom:r,right:n}){return{x:gm(t.x,a,n),y:gm(t.y,s,r)}}function fm(t,s){let a=s.min-t.min,r=s.max-t.max;return s.max-s.min<t.max-t.min&&([a,r]=[r,a]),{min:a,max:r}}function Ww(t,s){return{x:fm(t.x,s.x),y:fm(t.y,s.y)}}function Gw(t,s){let a=.5;const r=Ns(t),n=Ns(s);return n>r?a=Nn(s.min,s.max-r,t.min):r>n&&(a=Nn(t.min,t.max-n,s.min)),Ra(0,1,a)}function Kw(t,s){const a={};return s.min!==void 0&&(a.min=s.min-t.min),s.max!==void 0&&(a.max=s.max-t.min),a}const io=.35;function Yw(t=io){return t===!1?t=0:t===!0&&(t=io),{x:ym(t,"left","right"),y:ym(t,"top","bottom")}}function ym(t,s,a){return{min:vm(t,s),max:vm(t,a)}}function vm(t,s){return typeof t=="number"?t:t[s]||0}const Zw=new WeakMap;class Xw{constructor(s){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Kt(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=s}start(s,{snapToCursor:a=!1,distanceThreshold:r}={}){const{presenceContext:n}=this.visualElement;if(n&&n.isPresent===!1)return;const i=u=>{const{dragSnapToOrigin:h}=this.getProps();h?this.pauseAnimation():this.stopAnimation(),a&&this.snapToCursor(Mn(u).point)},l=(u,h)=>{const{drag:g,dragPropagation:p,onDragStart:y}=this.getProps();if(g&&!p&&(this.openDragLock&&this.openDragLock(),this.openDragLock=sN(g),!this.openDragLock))return;this.latestPointerEvent=u,this.latestPanInfo=h,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Zs(b=>{let v=this.getAxisMotionValue(b).get()||0;if(fa.test(v)){const{projection:w}=this.visualElement;if(w&&w.layout){const A=w.layout.layoutBox[b];A&&(v=Ns(A)*(parseFloat(v)/100))}}this.originPoint[b]=v}),y&&Ft.postRender(()=>y(u,h)),ro(this.visualElement,"transform");const{animationState:f}=this.visualElement;f&&f.setActive("whileDrag",!0)},o=(u,h)=>{this.latestPointerEvent=u,this.latestPanInfo=h;const{dragPropagation:g,dragDirectionLock:p,onDirectionLock:y,onDrag:f}=this.getProps();if(!g&&!this.openDragLock)return;const{offset:b}=h;if(p&&this.currentDirection===null){this.currentDirection=Qw(b),this.currentDirection!==null&&y&&y(this.currentDirection);return}this.updateAxis("x",h.point,b),this.updateAxis("y",h.point,b),this.visualElement.render(),f&&f(u,h)},c=(u,h)=>{this.latestPointerEvent=u,this.latestPanInfo=h,this.stop(u,h),this.latestPointerEvent=null,this.latestPanInfo=null},d=()=>Zs(u=>{var h;return this.getAnimationState(u)==="paused"&&((h=this.getAxisMotionValue(u).animation)==null?void 0:h.play())}),{dragSnapToOrigin:m}=this.getProps();this.panSession=new Ox(s,{onSessionStart:i,onStart:l,onMove:o,onSessionEnd:c,resumeAnimation:d},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:m,distanceThreshold:r,contextWindow:Lx(this.visualElement)})}stop(s,a){const r=s||this.latestPointerEvent,n=a||this.latestPanInfo,i=this.isDragging;if(this.cancel(),!i||!n||!r)return;const{velocity:l}=n;this.startAnimation(l);const{onDragEnd:o}=this.getProps();o&&Ft.postRender(()=>o(r,n))}cancel(){this.isDragging=!1;const{projection:s,animationState:a}=this.visualElement;s&&(s.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),a&&a.setActive("whileDrag",!1)}updateAxis(s,a,r){const{drag:n}=this.getProps();if(!r||!Hn(s,n,this.currentDirection))return;const i=this.getAxisMotionValue(s);let l=this.originPoint[s]+r[s];this.constraints&&this.constraints[s]&&(l=zw(l,this.constraints[s],this.elastic[s])),i.set(l)}resolveConstraints(){var i;const{dragConstraints:s,dragElastic:a}=this.getProps(),r=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(i=this.visualElement.projection)==null?void 0:i.layout,n=this.constraints;s&&Nr(s)?this.constraints||(this.constraints=this.resolveRefConstraints()):s&&r?this.constraints=Hw(r.layoutBox,s):this.constraints=!1,this.elastic=Yw(a),n!==this.constraints&&r&&this.constraints&&!this.hasMutatedConstraints&&Zs(l=>{this.constraints!==!1&&this.getAxisMotionValue(l)&&(this.constraints[l]=Kw(r.layoutBox[l],this.constraints[l]))})}resolveRefConstraints(){const{dragConstraints:s,onMeasureDragConstraints:a}=this.getProps();if(!s||!Nr(s))return!1;const r=s.current,{projection:n}=this.visualElement;if(!n||!n.layout)return!1;const i=JN(r,n.root,this.visualElement.getTransformPagePoint());let l=Ww(n.layout.layoutBox,i);if(a){const o=a(ZN(l));this.hasMutatedConstraints=!!o,o&&(l=Nx(o))}return l}startAnimation(s){const{drag:a,dragMomentum:r,dragElastic:n,dragTransition:i,dragSnapToOrigin:l,onDragTransitionEnd:o}=this.getProps(),c=this.constraints||{},d=Zs(m=>{if(!Hn(m,a,this.currentDirection))return;let u=c&&c[m]||{};l&&(u={min:0,max:0});const h=n?200:1e6,g=n?40:1e7,p={type:"inertia",velocity:r?s[m]:0,bounceStiffness:h,bounceDamping:g,timeConstant:750,restDelta:1,restSpeed:10,...i,...u};return this.startAxisValueAnimation(m,p)});return Promise.all(d).then(o)}startAxisValueAnimation(s,a){const r=this.getAxisMotionValue(s);return ro(this.visualElement,s),r.start(cc(s,r,0,a,this.visualElement,!1))}stopAnimation(){Zs(s=>this.getAxisMotionValue(s).stop())}pauseAnimation(){Zs(s=>{var a;return(a=this.getAxisMotionValue(s).animation)==null?void 0:a.pause()})}getAnimationState(s){var a;return(a=this.getAxisMotionValue(s).animation)==null?void 0:a.state}getAxisMotionValue(s){const a=`_drag${s.toUpperCase()}`,r=this.visualElement.getProps(),n=r[a];return n||this.visualElement.getValue(s,(r.initial?r.initial[s]:void 0)||0)}snapToCursor(s){Zs(a=>{const{drag:r}=this.getProps();if(!Hn(a,r,this.currentDirection))return;const{projection:n}=this.visualElement,i=this.getAxisMotionValue(a);if(n&&n.layout){const{min:l,max:o}=n.layout.layoutBox[a];i.set(s[a]-Ut(l,o,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:s,dragConstraints:a}=this.getProps(),{projection:r}=this.visualElement;if(!Nr(a)||!r||!this.constraints)return;this.stopAnimation();const n={x:0,y:0};Zs(l=>{const o=this.getAxisMotionValue(l);if(o&&this.constraints!==!1){const c=o.get();n[l]=Gw({min:c,max:c},this.constraints[l])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),Zs(l=>{if(!Hn(l,s,null))return;const o=this.getAxisMotionValue(l),{min:c,max:d}=this.constraints[l];o.set(Ut(c,d,n[l]))})}addListeners(){if(!this.visualElement.current)return;Zw.set(this.visualElement,this);const s=this.visualElement.current,a=gn(s,"pointerdown",c=>{const{drag:d,dragListener:m=!0}=this.getProps();d&&m&&this.start(c)}),r=()=>{const{dragConstraints:c}=this.getProps();Nr(c)&&c.current&&(this.constraints=this.resolveRefConstraints())},{projection:n}=this.visualElement,i=n.addEventListener("measure",r);n&&!n.layout&&(n.root&&n.root.updateScroll(),n.updateLayout()),Ft.read(r);const l=Tn(window,"resize",()=>this.scalePositionWithinConstraints()),o=n.addEventListener("didUpdate",({delta:c,hasLayoutChanged:d})=>{this.isDragging&&d&&(Zs(m=>{const u=this.getAxisMotionValue(m);u&&(this.originPoint[m]+=c[m].translate,u.set(u.get()+c[m].translate))}),this.visualElement.render())});return()=>{l(),a(),i(),o&&o()}}getProps(){const s=this.visualElement.getProps(),{drag:a=!1,dragDirectionLock:r=!1,dragPropagation:n=!1,dragConstraints:i=!1,dragElastic:l=io,dragMomentum:o=!0}=s;return{...s,drag:a,dragDirectionLock:r,dragPropagation:n,dragConstraints:i,dragElastic:l,dragMomentum:o}}}function Hn(t,s,a){return(s===!0||s===t)&&(a===null||a===t)}function Qw(t,s=10){let a=null;return Math.abs(t.y)>s?a="y":Math.abs(t.x)>s&&(a="x"),a}class Jw extends Ga{constructor(s){super(s),this.removeGroupControls=Js,this.removeListeners=Js,this.controls=new Xw(s)}mount(){const{dragControls:s}=this.node.getProps();s&&(this.removeGroupControls=s.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||Js}unmount(){this.removeGroupControls(),this.removeListeners()}}const bm=t=>(s,a)=>{t&&Ft.postRender(()=>t(s,a))};class qw extends Ga{constructor(){super(...arguments),this.removePointerDownListener=Js}onPointerDown(s){this.session=new Ox(s,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Lx(this.node)})}createPanHandlers(){const{onPanSessionStart:s,onPanStart:a,onPan:r,onPanEnd:n}=this.node.getProps();return{onSessionStart:bm(s),onStart:bm(a),onMove:r,onEnd:(i,l)=>{delete this.session,n&&Ft.postRender(()=>n(i,l))}}}mount(){this.removePointerDownListener=gn(this.node.current,"pointerdown",s=>this.onPointerDown(s))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const ei={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function jm(t,s){return s.max===s.min?0:t/(s.max-s.min)*100}const nn={correct:(t,s)=>{if(!s.target)return t;if(typeof t=="string")if(Ze.test(t))t=parseFloat(t);else return t;const a=jm(t,s.target.x),r=jm(t,s.target.y);return`${a}% ${r}%`}},e1={correct:(t,{treeScale:s,projectionDelta:a})=>{const r=t,n=za.parse(t);if(n.length>5)return r;const i=za.createTransformer(t),l=typeof n[0]!="number"?1:0,o=a.x.scale*s.x,c=a.y.scale*s.y;n[0+l]/=o,n[1+l]/=c;const d=Ut(o,c,.5);return typeof n[2+l]=="number"&&(n[2+l]/=d),typeof n[3+l]=="number"&&(n[3+l]/=d),i(n)}};let pl=!1;class t1 extends x.Component{componentDidMount(){const{visualElement:s,layoutGroup:a,switchLayoutGroup:r,layoutId:n}=this.props,{projection:i}=s;wN(s1),i&&(a.group&&a.group.add(i),r&&r.register&&n&&r.register(i),pl&&i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),ei.hasEverUpdated=!0}getSnapshotBeforeUpdate(s){const{layoutDependency:a,visualElement:r,drag:n,isPresent:i}=this.props,{projection:l}=r;return l&&(l.isPresent=i,pl=!0,n||s.layoutDependency!==a||a===void 0||s.isPresent!==i?l.willUpdate():this.safeToRemove(),s.isPresent!==i&&(i?l.promote():l.relegate()||Ft.postRender(()=>{const o=l.getStack();(!o||!o.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:s}=this.props.visualElement;s&&(s.root.didUpdate(),Qo.postRender(()=>{!s.currentAnimation&&s.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:s,layoutGroup:a,switchLayoutGroup:r}=this.props,{projection:n}=s;pl=!0,n&&(n.scheduleCheckAfterUnmount(),a&&a.group&&a.group.remove(n),r&&r.deregister&&r.deregister(n))}safeToRemove(){const{safeToRemove:s}=this.props;s&&s()}render(){return null}}function Ux(t){const[s,a]=ox(),r=x.useContext(Ro);return e.jsx(t1,{...t,layoutGroup:r,switchLayoutGroup:x.useContext(bx),isPresent:s,safeToRemove:a})}const s1={borderRadius:{...nn,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:nn,borderTopRightRadius:nn,borderBottomLeftRadius:nn,borderBottomRightRadius:nn,boxShadow:e1};function a1(t,s,a){const r=ys(t)?t:Ir(t);return r.start(cc("",r,s,a)),r.animation}const r1=(t,s)=>t.depth-s.depth;class n1{constructor(){this.children=[],this.isDirty=!1}add(s){Io(this.children,s),this.isDirty=!0}remove(s){Eo(this.children,s),this.isDirty=!0}forEach(s){this.isDirty&&this.children.sort(r1),this.isDirty=!1,this.children.forEach(s)}}function i1(t,s){const a=Ds.now(),r=({timestamp:n})=>{const i=n-a;i>=s&&(Va(r),t(i-s))};return Ft.setup(r,!0),()=>Va(r)}const Bx=["TopLeft","TopRight","BottomLeft","BottomRight"],l1=Bx.length,Nm=t=>typeof t=="string"?parseFloat(t):t,wm=t=>typeof t=="number"||Ze.test(t);function o1(t,s,a,r,n,i){n?(t.opacity=Ut(0,a.opacity??1,c1(r)),t.opacityExit=Ut(s.opacity??1,0,d1(r))):i&&(t.opacity=Ut(s.opacity??1,a.opacity??1,r));for(let l=0;l<l1;l++){const o=`border${Bx[l]}Radius`;let c=Cm(s,o),d=Cm(a,o);if(c===void 0&&d===void 0)continue;c||(c=0),d||(d=0),c===0||d===0||wm(c)===wm(d)?(t[o]=Math.max(Ut(Nm(c),Nm(d),r),0),(fa.test(d)||fa.test(c))&&(t[o]+="%")):t[o]=d}(s.rotate||a.rotate)&&(t.rotate=Ut(s.rotate||0,a.rotate||0,r))}function Cm(t,s){return t[s]!==void 0?t[s]:t.borderRadius}const c1=Vx(0,.5,kh),d1=Vx(.5,.95,Js);function Vx(t,s,a){return r=>r<t?0:r>s?1:a(Nn(t,s,r))}function Am(t,s){t.min=s.min,t.max=s.max}function Ys(t,s){Am(t.x,s.x),Am(t.y,s.y)}function Sm(t,s){t.translate=s.translate,t.scale=s.scale,t.originPoint=s.originPoint,t.origin=s.origin}function Tm(t,s,a,r,n){return t-=s,t=pi(t,1/a,r),n!==void 0&&(t=pi(t,1/n,r)),t}function m1(t,s=0,a=1,r=.5,n,i=t,l=t){if(fa.test(s)&&(s=parseFloat(s),s=Ut(l.min,l.max,s/100)-l.min),typeof s!="number")return;let o=Ut(i.min,i.max,r);t===i&&(o-=s),t.min=Tm(t.min,s,a,o,n),t.max=Tm(t.max,s,a,o,n)}function km(t,s,[a,r,n],i,l){m1(t,s[a],s[r],s[n],s.scale,i,l)}const u1=["x","scaleX","originX"],h1=["y","scaleY","originY"];function Rm(t,s,a,r){km(t.x,s,u1,a?a.x:void 0,r?r.x:void 0),km(t.y,s,h1,a?a.y:void 0,r?r.y:void 0)}function Dm(t){return t.translate===0&&t.scale===1}function zx(t){return Dm(t.x)&&Dm(t.y)}function Pm(t,s){return t.min===s.min&&t.max===s.max}function x1(t,s){return Pm(t.x,s.x)&&Pm(t.y,s.y)}function Im(t,s){return Math.round(t.min)===Math.round(s.min)&&Math.round(t.max)===Math.round(s.max)}function Hx(t,s){return Im(t.x,s.x)&&Im(t.y,s.y)}function Em(t){return Ns(t.x)/Ns(t.y)}function Mm(t,s){return t.translate===s.translate&&t.scale===s.scale&&t.originPoint===s.originPoint}class p1{constructor(){this.members=[]}add(s){Io(this.members,s),s.scheduleRender()}remove(s){if(Eo(this.members,s),s===this.prevLead&&(this.prevLead=void 0),s===this.lead){const a=this.members[this.members.length-1];a&&this.promote(a)}}relegate(s){const a=this.members.findIndex(n=>s===n);if(a===0)return!1;let r;for(let n=a;n>=0;n--){const i=this.members[n];if(i.isPresent!==!1){r=i;break}}return r?(this.promote(r),!0):!1}promote(s,a){const r=this.lead;if(s!==r&&(this.prevLead=r,this.lead=s,s.show(),r)){r.instance&&r.scheduleRender(),s.scheduleRender(),s.resumeFrom=r,a&&(s.resumeFrom.preserveOpacity=!0),r.snapshot&&(s.snapshot=r.snapshot,s.snapshot.latestValues=r.animationValues||r.latestValues),s.root&&s.root.isUpdating&&(s.isLayoutDirty=!0);const{crossfade:n}=s.options;n===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(s=>{const{options:a,resumingFrom:r}=s;a.onExitComplete&&a.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(s=>{s.instance&&s.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function g1(t,s,a){let r="";const n=t.x.translate/s.x,i=t.y.translate/s.y,l=(a==null?void 0:a.z)||0;if((n||i||l)&&(r=`translate3d(${n}px, ${i}px, ${l}px) `),(s.x!==1||s.y!==1)&&(r+=`scale(${1/s.x}, ${1/s.y}) `),a){const{transformPerspective:d,rotate:m,rotateX:u,rotateY:h,skewX:g,skewY:p}=a;d&&(r=`perspective(${d}px) ${r}`),m&&(r+=`rotate(${m}deg) `),u&&(r+=`rotateX(${u}deg) `),h&&(r+=`rotateY(${h}deg) `),g&&(r+=`skewX(${g}deg) `),p&&(r+=`skewY(${p}deg) `)}const o=t.x.scale*s.x,c=t.y.scale*s.y;return(o!==1||c!==1)&&(r+=`scale(${o}, ${c})`),r||"none"}const gl=["","X","Y","Z"],f1=1e3;let y1=0;function fl(t,s,a,r){const{latestValues:n}=s;n[t]&&(a[t]=n[t],s.setStaticValue(t,0),r&&(r[t]=0))}function Wx(t){if(t.hasCheckedOptimisedAppear=!0,t.root===t)return;const{visualElement:s}=t.options;if(!s)return;const a=Dx(s);if(window.MotionHasOptimisedAnimation(a,"transform")){const{layout:n,layoutId:i}=t.options;window.MotionCancelOptimisedAnimation(a,"transform",Ft,!(n||i))}const{parent:r}=t;r&&!r.hasCheckedOptimisedAppear&&Wx(r)}function Gx({attachResizeListener:t,defaultParent:s,measureScroll:a,checkIsScrollRoot:r,resetTransform:n}){return class{constructor(l={},o=s==null?void 0:s()){this.id=y1++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(j1),this.nodes.forEach(A1),this.nodes.forEach(S1),this.nodes.forEach(N1)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=l,this.root=o?o.root||o:this,this.path=o?[...o.path,o]:[],this.parent=o,this.depth=o?o.depth+1:0;for(let c=0;c<this.path.length;c++)this.path[c].shouldResetTransform=!0;this.root===this&&(this.nodes=new n1)}addEventListener(l,o){return this.eventHandlers.has(l)||this.eventHandlers.set(l,new _o),this.eventHandlers.get(l).add(o)}notifyListeners(l,...o){const c=this.eventHandlers.get(l);c&&c.notify(...o)}hasListeners(l){return this.eventHandlers.has(l)}mount(l){if(this.instance)return;this.isSVG=lx(l)&&!oN(l),this.instance=l;const{layoutId:o,layout:c,visualElement:d}=this.options;if(d&&!d.current&&d.mount(l),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(c||o)&&(this.isLayoutDirty=!0),t){let m,u=0;const h=()=>this.root.updateBlockedByResize=!1;Ft.read(()=>{u=window.innerWidth}),t(l,()=>{const g=window.innerWidth;g!==u&&(u=g,this.root.updateBlockedByResize=!0,m&&m(),m=i1(h,250),ei.hasAnimatedSinceResize&&(ei.hasAnimatedSinceResize=!1,this.nodes.forEach(Lm)))})}o&&this.root.registerSharedNode(o,this),this.options.animate!==!1&&d&&(o||c)&&this.addEventListener("didUpdate",({delta:m,hasLayoutChanged:u,hasRelativeLayoutChanged:h,layout:g})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const p=this.options.transition||d.getDefaultTransition()||P1,{onLayoutAnimationStart:y,onLayoutAnimationComplete:f}=d.getProps(),b=!this.targetLayout||!Hx(this.targetLayout,g),v=!u&&h;if(this.options.layoutRoot||this.resumeFrom||v||u&&(b||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const w={...Zo(p,"layout"),onPlay:y,onComplete:f};(d.shouldReduceMotion||this.options.layoutRoot)&&(w.delay=0,w.type=!1),this.startAnimation(w),this.setAnimationOrigin(m,v)}else u||Lm(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=g})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const l=this.getStack();l&&l.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),Va(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(T1),this.animationId++)}getTransformTemplate(){const{visualElement:l}=this.options;return l&&l.getProps().transformTemplate}willUpdate(l=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&Wx(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let m=0;m<this.path.length;m++){const u=this.path[m];u.shouldResetTransform=!0,u.updateScroll("snapshot"),u.options.layoutRoot&&u.willUpdate(!1)}const{layoutId:o,layout:c}=this.options;if(o===void 0&&!c)return;const d=this.getTransformTemplate();this.prevTransformTemplateValue=d?d(this.latestValues,""):void 0,this.updateSnapshot(),l&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){this.unblockUpdate(),this.clearAllSnapshots(),this.nodes.forEach(Fm);return}if(this.animationId<=this.animationCommitId){this.nodes.forEach(_m);return}this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(C1),this.nodes.forEach(v1),this.nodes.forEach(b1)):this.nodes.forEach(_m),this.clearAllSnapshots();const o=Ds.now();hs.delta=Ra(0,1e3/60,o-hs.timestamp),hs.timestamp=o,hs.isProcessing=!0,nl.update.process(hs),nl.preRender.process(hs),nl.render.process(hs),hs.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,Qo.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(w1),this.sharedNodes.forEach(k1)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,Ft.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){Ft.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!Ns(this.snapshot.measuredBox.x)&&!Ns(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c<this.path.length;c++)this.path[c].updateScroll();const l=this.layout;this.layout=this.measure(!1),this.layoutCorrected=Kt(),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);const{visualElement:o}=this.options;o&&o.notify("LayoutMeasure",this.layout.layoutBox,l?l.layoutBox:void 0)}updateScroll(l="measure"){let o=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===l&&(o=!1),o&&this.instance){const c=r(this.instance);this.scroll={animationId:this.root.animationId,phase:l,isRoot:c,offset:a(this.instance),wasRoot:this.scroll?this.scroll.isRoot:c}}}resetTransform(){if(!n)return;const l=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,o=this.projectionDelta&&!zx(this.projectionDelta),c=this.getTransformTemplate(),d=c?c(this.latestValues,""):void 0,m=d!==this.prevTransformTemplateValue;l&&this.instance&&(o||nr(this.latestValues)||m)&&(n(this.instance,d),this.shouldResetTransform=!1,this.scheduleRender())}measure(l=!0){const o=this.measurePageBox();let c=this.removeElementScroll(o);return l&&(c=this.removeTransform(c)),I1(c),{animationId:this.root.animationId,measuredBox:o,layoutBox:c,latestValues:{},source:this.id}}measurePageBox(){var d;const{visualElement:l}=this.options;if(!l)return Kt();const o=l.measureViewportBox();if(!(((d=this.scroll)==null?void 0:d.wasRoot)||this.path.some(E1))){const{scroll:m}=this.root;m&&(wr(o.x,m.offset.x),wr(o.y,m.offset.y))}return o}removeElementScroll(l){var c;const o=Kt();if(Ys(o,l),(c=this.scroll)!=null&&c.wasRoot)return o;for(let d=0;d<this.path.length;d++){const m=this.path[d],{scroll:u,options:h}=m;m!==this.root&&u&&h.layoutScroll&&(u.wasRoot&&Ys(o,l),wr(o.x,u.offset.x),wr(o.y,u.offset.y))}return o}applyTransform(l,o=!1){const c=Kt();Ys(c,l);for(let d=0;d<this.path.length;d++){const m=this.path[d];!o&&m.options.layoutScroll&&m.scroll&&m!==m.root&&Cr(c,{x:-m.scroll.offset.x,y:-m.scroll.offset.y}),nr(m.latestValues)&&Cr(c,m.latestValues)}return nr(this.latestValues)&&Cr(c,this.latestValues),c}removeTransform(l){const o=Kt();Ys(o,l);for(let c=0;c<this.path.length;c++){const d=this.path[c];if(!d.instance||!nr(d.latestValues))continue;eo(d.latestValues)&&d.updateSnapshot();const m=Kt(),u=d.measurePageBox();Ys(m,u),Rm(o,d.latestValues,d.snapshot?d.snapshot.layoutBox:void 0,m)}return nr(this.latestValues)&&Rm(o,this.latestValues),o}setTargetDelta(l){this.targetDelta=l,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(l){this.options={...this.options,...l,crossfade:l.crossfade!==void 0?l.crossfade:!0}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==hs.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(l=!1){var h;const o=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=o.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=o.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=o.isSharedProjectionDirty);const c=!!this.resumingFrom||this!==o;if(!(l||c&&this.isSharedProjectionDirty||this.isProjectionDirty||(h=this.parent)!=null&&h.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;const{layout:m,layoutId:u}=this.options;if(!(!this.layout||!(m||u))){if(this.resolvedRelativeTargetAt=hs.timestamp,!this.targetDelta&&!this.relativeTarget){const g=this.getClosestProjectingParent();g&&g.layout&&this.animationProgress!==1?(this.relativeParent=g,this.forceRelativeParentToResolveTarget(),this.relativeTarget=Kt(),this.relativeTargetOrigin=Kt(),yn(this.relativeTargetOrigin,this.layout.layoutBox,g.layout.layoutBox),Ys(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}if(!(!this.relativeTarget&&!this.targetDelta)&&(this.target||(this.target=Kt(),this.targetWithTransforms=Kt()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),$w(this.target,this.relativeTarget,this.relativeParent.target)):this.targetDelta?(this.resumingFrom?this.target=this.applyTransform(this.layout.layoutBox):Ys(this.target,this.layout.layoutBox),Cx(this.target,this.targetDelta)):Ys(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget)){this.attemptToResolveRelativeTarget=!1;const g=this.getClosestProjectingParent();g&&!!g.resumingFrom==!!this.resumingFrom&&!g.options.layoutScroll&&g.target&&this.animationProgress!==1?(this.relativeParent=g,this.forceRelativeParentToResolveTarget(),this.relativeTarget=Kt(),this.relativeTargetOrigin=Kt(),yn(this.relativeTargetOrigin,this.target,g.target),Ys(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}}}getClosestProjectingParent(){if(!(!this.parent||eo(this.parent.latestValues)||wx(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}calcProjection(){var p;const l=this.getLead(),o=!!this.resumingFrom||this!==l;let c=!0;if((this.isProjectionDirty||(p=this.parent)!=null&&p.isProjectionDirty)&&(c=!1),o&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(c=!1),this.resolvedRelativeTargetAt===hs.timestamp&&(c=!1),c)return;const{layout:d,layoutId:m}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(d||m))return;Ys(this.layoutCorrected,this.layout.layoutBox);const u=this.treeScale.x,h=this.treeScale.y;QN(this.layoutCorrected,this.treeScale,this.path,o),l.layout&&!l.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(l.target=l.layout.layoutBox,l.targetWithTransforms=Kt());const{target:g}=l;if(!g){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(Sm(this.prevProjectionDelta.x,this.projectionDelta.x),Sm(this.prevProjectionDelta.y,this.projectionDelta.y)),fn(this.projectionDelta,this.layoutCorrected,g,this.latestValues),(this.treeScale.x!==u||this.treeScale.y!==h||!Mm(this.projectionDelta.x,this.prevProjectionDelta.x)||!Mm(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",g))}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(l=!0){var o;if((o=this.options.visualElement)==null||o.scheduleRender(),l){const c=this.getStack();c&&c.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=Ar(),this.projectionDelta=Ar(),this.projectionDeltaWithTransform=Ar()}setAnimationOrigin(l,o=!1){const c=this.snapshot,d=c?c.latestValues:{},m={...this.latestValues},u=Ar();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!o;const h=Kt(),g=c?c.source:void 0,p=this.layout?this.layout.source:void 0,y=g!==p,f=this.getStack(),b=!f||f.members.length<=1,v=!!(y&&!b&&this.options.crossfade===!0&&!this.path.some(D1));this.animationProgress=0;let w;this.mixTargetDelta=A=>{const S=A/1e3;Om(u.x,l.x,S),Om(u.y,l.y,S),this.setTargetDelta(u),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(yn(h,this.layout.layoutBox,this.relativeParent.layout.layoutBox),R1(this.relativeTarget,this.relativeTargetOrigin,h,S),w&&x1(this.relativeTarget,w)&&(this.isProjectionDirty=!1),w||(w=Kt()),Ys(w,this.relativeTarget)),y&&(this.animationValues=m,o1(m,d,this.latestValues,S,v,b)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=S},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(l){var o,c,d;this.notifyListeners("animationStart"),(o=this.currentAnimation)==null||o.stop(),(d=(c=this.resumingFrom)==null?void 0:c.currentAnimation)==null||d.stop(),this.pendingAnimation&&(Va(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Ft.update(()=>{ei.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=Ir(0)),this.currentAnimation=a1(this.motionValue,[0,1e3],{...l,velocity:0,isSync:!0,onUpdate:m=>{this.mixTargetDelta(m),l.onUpdate&&l.onUpdate(m)},onStop:()=>{},onComplete:()=>{l.onComplete&&l.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const l=this.getStack();l&&l.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(f1),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const l=this.getLead();let{targetWithTransforms:o,target:c,layout:d,latestValues:m}=l;if(!(!o||!c||!d)){if(this!==l&&this.layout&&d&&Kx(this.options.animationType,this.layout.layoutBox,d.layoutBox)){c=this.target||Kt();const u=Ns(this.layout.layoutBox.x);c.x.min=l.target.x.min,c.x.max=c.x.min+u;const h=Ns(this.layout.layoutBox.y);c.y.min=l.target.y.min,c.y.max=c.y.min+h}Ys(o,c),Cr(o,m),fn(this.projectionDeltaWithTransform,this.layoutCorrected,o,m)}}registerSharedNode(l,o){this.sharedNodes.has(l)||this.sharedNodes.set(l,new p1),this.sharedNodes.get(l).add(o);const d=o.options.initialPromotionConfig;o.promote({transition:d?d.transition:void 0,preserveFollowOpacity:d&&d.shouldPreserveFollowOpacity?d.shouldPreserveFollowOpacity(o):void 0})}isLead(){const l=this.getStack();return l?l.lead===this:!0}getLead(){var o;const{layoutId:l}=this.options;return l?((o=this.getStack())==null?void 0:o.lead)||this:this}getPrevLead(){var o;const{layoutId:l}=this.options;return l?(o=this.getStack())==null?void 0:o.prevLead:void 0}getStack(){const{layoutId:l}=this.options;if(l)return this.root.sharedNodes.get(l)}promote({needsReset:l,transition:o,preserveFollowOpacity:c}={}){const d=this.getStack();d&&d.promote(this,c),l&&(this.projectionDelta=void 0,this.needsReset=!0),o&&this.setOptions({transition:o})}relegate(){const l=this.getStack();return l?l.relegate(this):!1}resetSkewAndRotation(){const{visualElement:l}=this.options;if(!l)return;let o=!1;const{latestValues:c}=l;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(o=!0),!o)return;const d={};c.z&&fl("z",l,d,this.animationValues);for(let m=0;m<gl.length;m++)fl(`rotate${gl[m]}`,l,d,this.animationValues),fl(`skew${gl[m]}`,l,d,this.animationValues);l.render();for(const m in d)l.setStaticValue(m,d[m]),this.animationValues&&(this.animationValues[m]=d[m]);l.scheduleRender()}applyProjectionStyles(l,o){if(!this.instance||this.isSVG)return;if(!this.isVisible){l.visibility="hidden";return}const c=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,l.visibility="",l.opacity="",l.pointerEvents=qn(o==null?void 0:o.pointerEvents)||"",l.transform=c?c(this.latestValues,""):"none";return}const d=this.getLead();if(!this.projectionDelta||!this.layout||!d.target){this.options.layoutId&&(l.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,l.pointerEvents=qn(o==null?void 0:o.pointerEvents)||""),this.hasProjected&&!nr(this.latestValues)&&(l.transform=c?c({},""):"none",this.hasProjected=!1);return}l.visibility="";const m=d.animationValues||d.latestValues;this.applyTransformsToTarget();let u=g1(this.projectionDeltaWithTransform,this.treeScale,m);c&&(u=c(m,u)),l.transform=u;const{x:h,y:g}=this.projectionDelta;l.transformOrigin=`${h.origin*100}% ${g.origin*100}% 0`,d.animationValues?l.opacity=d===this?m.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:m.opacityExit:l.opacity=d===this?m.opacity!==void 0?m.opacity:"":m.opacityExit!==void 0?m.opacityExit:0;for(const p in Sn){if(m[p]===void 0)continue;const{correct:y,applyTo:f,isCSSVariable:b}=Sn[p],v=u==="none"?m[p]:y(m[p],d);if(f){const w=f.length;for(let A=0;A<w;A++)l[f[A]]=v}else b?this.options.visualElement.renderState.vars[p]=v:l[p]=v}this.options.layoutId&&(l.pointerEvents=d===this?qn(o==null?void 0:o.pointerEvents)||"":"none")}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(l=>{var o;return(o=l.currentAnimation)==null?void 0:o.stop()}),this.root.nodes.forEach(Fm),this.root.sharedNodes.clear()}}}function v1(t){t.updateLayout()}function b1(t){var a;const s=((a=t.resumeFrom)==null?void 0:a.snapshot)||t.snapshot;if(t.isLead()&&t.layout&&s&&t.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:n}=t.layout,{animationType:i}=t.options,l=s.source!==t.layout.source;i==="size"?Zs(u=>{const h=l?s.measuredBox[u]:s.layoutBox[u],g=Ns(h);h.min=r[u].min,h.max=h.min+g}):Kx(i,s.layoutBox,r)&&Zs(u=>{const h=l?s.measuredBox[u]:s.layoutBox[u],g=Ns(r[u]);h.max=h.min+g,t.relativeTarget&&!t.currentAnimation&&(t.isProjectionDirty=!0,t.relativeTarget[u].max=t.relativeTarget[u].min+g)});const o=Ar();fn(o,r,s.layoutBox);const c=Ar();l?fn(c,t.applyTransform(n,!0),s.measuredBox):fn(c,r,s.layoutBox);const d=!zx(o);let m=!1;if(!t.resumeFrom){const u=t.getClosestProjectingParent();if(u&&!u.resumeFrom){const{snapshot:h,layout:g}=u;if(h&&g){const p=Kt();yn(p,s.layoutBox,h.layoutBox);const y=Kt();yn(y,r,g.layoutBox),Hx(p,y)||(m=!0),u.options.layoutRoot&&(t.relativeTarget=y,t.relativeTargetOrigin=p,t.relativeParent=u)}}}t.notifyListeners("didUpdate",{layout:r,snapshot:s,delta:c,layoutDelta:o,hasLayoutChanged:d,hasRelativeLayoutChanged:m})}else if(t.isLead()){const{onExitComplete:r}=t.options;r&&r()}t.options.transition=void 0}function j1(t){t.parent&&(t.isProjecting()||(t.isProjectionDirty=t.parent.isProjectionDirty),t.isSharedProjectionDirty||(t.isSharedProjectionDirty=!!(t.isProjectionDirty||t.parent.isProjectionDirty||t.parent.isSharedProjectionDirty)),t.isTransformDirty||(t.isTransformDirty=t.parent.isTransformDirty))}function N1(t){t.isProjectionDirty=t.isSharedProjectionDirty=t.isTransformDirty=!1}function w1(t){t.clearSnapshot()}function Fm(t){t.clearMeasurements()}function _m(t){t.isLayoutDirty=!1}function C1(t){const{visualElement:s}=t.options;s&&s.getProps().onBeforeLayoutMeasure&&s.notify("BeforeLayoutMeasure"),t.resetTransform()}function Lm(t){t.finishAnimation(),t.targetDelta=t.relativeTarget=t.target=void 0,t.isProjectionDirty=!0}function A1(t){t.resolveTargetDelta()}function S1(t){t.calcProjection()}function T1(t){t.resetSkewAndRotation()}function k1(t){t.removeLeadSnapshot()}function Om(t,s,a){t.translate=Ut(s.translate,0,a),t.scale=Ut(s.scale,1,a),t.origin=s.origin,t.originPoint=s.originPoint}function $m(t,s,a,r){t.min=Ut(s.min,a.min,r),t.max=Ut(s.max,a.max,r)}function R1(t,s,a,r){$m(t.x,s.x,a.x,r),$m(t.y,s.y,a.y,r)}function D1(t){return t.animationValues&&t.animationValues.opacityExit!==void 0}const P1={duration:.45,ease:[.4,0,.1,1]},Um=t=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(t),Bm=Um("applewebkit/")&&!Um("chrome/")?Math.round:Js;function Vm(t){t.min=Bm(t.min),t.max=Bm(t.max)}function I1(t){Vm(t.x),Vm(t.y)}function Kx(t,s,a){return t==="position"||t==="preserve-aspect"&&!Ow(Em(s),Em(a),.2)}function E1(t){var s;return t!==t.root&&((s=t.scroll)==null?void 0:s.wasRoot)}const M1=Gx({attachResizeListener:(t,s)=>Tn(t,"resize",s),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),yl={current:void 0},Yx=Gx({measureScroll:t=>({x:t.scrollLeft,y:t.scrollTop}),defaultParent:()=>{if(!yl.current){const t=new M1({});t.mount(window),t.setOptions({layoutScroll:!0}),yl.current=t}return yl.current},resetTransform:(t,s)=>{t.style.transform=s!==void 0?s:"none"},checkIsScrollRoot:t=>window.getComputedStyle(t).position==="fixed"}),F1={pan:{Feature:qw},drag:{Feature:Jw,ProjectionNode:Yx,MeasureLayout:Ux}};function zm(t,s,a){const{props:r}=t;t.animationState&&r.whileHover&&t.animationState.setActive("whileHover",a==="Start");const n="onHover"+a,i=r[n];i&&Ft.postRender(()=>i(s,Mn(s)))}class _1 extends Ga{mount(){const{current:s}=this.node;s&&(this.unmount=aN(s,(a,r)=>(zm(this.node,r,"Start"),n=>zm(this.node,n,"End"))))}unmount(){}}class L1 extends Ga{constructor(){super(...arguments),this.isActive=!1}onFocus(){let s=!1;try{s=this.node.current.matches(":focus-visible")}catch{s=!0}!s||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Pn(Tn(this.node.current,"focus",()=>this.onFocus()),Tn(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Hm(t,s,a){const{props:r}=t;if(t.current instanceof HTMLButtonElement&&t.current.disabled)return;t.animationState&&r.whileTap&&t.animationState.setActive("whileTap",a==="Start");const n="onTap"+(a==="End"?"":a),i=r[n];i&&Ft.postRender(()=>i(s,Mn(s)))}class O1 extends Ga{mount(){const{current:s}=this.node;s&&(this.unmount=lN(s,(a,r)=>(Hm(this.node,r,"Start"),(n,{success:i})=>Hm(this.node,n,i?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const lo=new WeakMap,vl=new WeakMap,$1=t=>{const s=lo.get(t.target);s&&s(t)},U1=t=>{t.forEach($1)};function B1({root:t,...s}){const a=t||document;vl.has(a)||vl.set(a,{});const r=vl.get(a),n=JSON.stringify(s);return r[n]||(r[n]=new IntersectionObserver(U1,{root:t,...s})),r[n]}function V1(t,s,a){const r=B1(s);return lo.set(t,a),r.observe(t),()=>{lo.delete(t),r.unobserve(t)}}const z1={some:0,all:1};class H1 extends Ga{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:s={}}=this.node.getProps(),{root:a,margin:r,amount:n="some",once:i}=s,l={root:a?a.current:void 0,rootMargin:r,threshold:typeof n=="number"?n:z1[n]},o=c=>{const{isIntersecting:d}=c;if(this.isInView===d||(this.isInView=d,i&&!d&&this.hasEnteredView))return;d&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",d);const{onViewportEnter:m,onViewportLeave:u}=this.node.getProps(),h=d?m:u;h&&h(c)};return V1(this.node.current,l,o)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:s,prevProps:a}=this.node;["amount","margin","root"].some(W1(s,a))&&this.startObserver()}unmount(){}}function W1({viewport:t={}},{viewport:s={}}={}){return a=>t[a]!==s[a]}const G1={inView:{Feature:H1},tap:{Feature:O1},focus:{Feature:L1},hover:{Feature:_1}},K1={layout:{ProjectionNode:Yx,MeasureLayout:Ux}},Y1={...Iw,...G1,...F1,...K1},ms=YN(Y1,lw),ln=[{id:"claim-management",name:"Claim Management",description:"End-to-end dealer claim processing workflow with automatic IO generation and budget blocking",category:"Dealer Operations",icon:xs,color:"from-blue-500 to-indigo-600",estimatedTime:"5-7 days",steps:7,features:["Automatic IO confirmation","Budget blocking","Document verification","E-invoice generation","Credit note issuance"],disabled:!1},{id:"vendor-payment",name:"Vendor Payment",description:"Streamlined vendor payment approval with PO validation and financial controls",category:"Finance",icon:Du,color:"from-green-500 to-emerald-600",estimatedTime:"3-5 days",steps:5,features:["PO matching","Invoice verification","Multi-level approvals","Payment scheduling"],disabled:!0,comingSoon:!0}];function Z1({open:t,onClose:s,onSelectTemplate:a}){var d,m,u;const[r,n]=x.useState(null),[i,l]=x.useState(!1);x.useEffect(()=>{const h=st.getUserData();l((h==null?void 0:h.jobTitle)==="Dealer")},[]);const o=h=>{if(i)return;const g=ln.find(p=>p.id===h);g!=null&&g.disabled||n(h)},c=()=>{r&&(a(r),s())};return e.jsx(ct,{open:t,onOpenChange:s,children:e.jsxs(lt,{className:"!fixed !inset-0 !top-0 !left-0 !right-0 !bottom-0 !w-screen !h-screen !max-w-none !translate-x-0 !translate-y-0 p-0 gap-0 border-0 !rounded-none bg-gradient-to-br from-gray-50 to-white [&>button]:hidden !m-0",children:[e.jsx(ot,{className:"sr-only",children:"Select a Template"}),e.jsx(Lt,{className:"sr-only",children:"Choose from pre-configured templates with predefined workflows and approval chains for faster processing."}),e.jsx("button",{onClick:s,className:"!flex absolute top-6 left-6 z-50 w-10 h-10 rounded-full bg-white shadow-lg hover:shadow-xl border border-gray-200 items-center justify-center transition-all hover:scale-110","aria-label":"Go back",children:e.jsx(zs,{className:"w-5 h-5 text-gray-600"})}),e.jsx("div",{className:"h-full overflow-y-auto",children:e.jsxs("div",{className:"min-h-full flex flex-col items-center justify-center px-6 py-12",children:[e.jsxs(ms.div,{initial:{opacity:0,y:-20},animate:{opacity:1,y:0},className:"text-center mb-12 max-w-3xl",children:[e.jsx("div",{className:"w-20 h-20 bg-gradient-to-br from-blue-500 to-purple-600 rounded-2xl flex items-center justify-center mx-auto mb-6",children:e.jsx(wi,{className:"w-10 h-10 text-white"})}),e.jsx("h1",{className:"text-4xl lg:text-5xl font-bold text-gray-900 mb-4",children:"Choose Your Template"}),e.jsx("p",{className:"text-lg text-gray-600",children:"Select from pre-configured templates with predefined workflows and approval chains for faster processing."})]}),e.jsx("div",{className:"w-full max-w-5xl grid grid-cols-1 md:grid-cols-2 gap-6 mb-8",children:ln.map((h,g)=>{const p=h.icon,y=r===h.id,f=i||h.disabled;return e.jsx(ms.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:g*.1},whileHover:f?{}:{scale:1.03},whileTap:f?{}:{scale:.98},children:e.jsxs(te,{className:`h-full transition-all duration-300 border-2 ${f?"opacity-50 cursor-not-allowed border-gray-200":y?"cursor-pointer border-blue-500 shadow-xl bg-blue-50/50 ring-2 ring-blue-200":"cursor-pointer border-gray-200 hover:border-blue-300 hover:shadow-lg"}`,onClick:()=>o(h.id),children:[e.jsxs(ue,{className:"space-y-4 pb-4",children:[e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsx("div",{className:`w-14 h-14 rounded-xl bg-gradient-to-br ${h.color} flex items-center justify-center shadow-md`,children:e.jsx(p,{className:"w-7 h-7 text-white"})}),y&&e.jsx(ms.div,{initial:{scale:0},animate:{scale:1},transition:{type:"spring",stiffness:500,damping:15},children:e.jsx("div",{className:"w-8 h-8 rounded-full bg-blue-600 flex items-center justify-center shadow-md",children:e.jsx(Fr,{className:"w-5 h-5 text-white"})})})]}),e.jsxs("div",{className:"text-left",children:[e.jsx(he,{className:"text-xl mb-2",children:h.name}),e.jsx(Te,{className:"text-sm leading-relaxed",children:h.description}),i&&e.jsxs("div",{className:"mt-3 flex items-start gap-2 p-2 bg-amber-50 border border-amber-200 rounded-lg",children:[e.jsx(Ge,{className:"w-4 h-4 text-amber-600 flex-shrink-0 mt-0.5"}),e.jsx("p",{className:"text-xs text-amber-800",children:"Not accessible for Dealers"})]}),h.comingSoon&&!i&&e.jsxs("div",{className:"mt-3 flex items-start gap-2 p-2 bg-blue-50 border border-blue-200 rounded-lg",children:[e.jsx(Ge,{className:"w-4 h-4 text-blue-600 flex-shrink-0 mt-0.5"}),e.jsx("p",{className:"text-xs text-blue-800 font-semibold",children:"Coming Soon"})]})]})]}),e.jsxs(se,{className:"pt-0 space-y-4",children:[e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(le,{variant:"secondary",className:"text-xs",children:h.category})}),e.jsx(Vt,{}),e.jsxs("div",{className:"grid grid-cols-2 gap-3 text-xs text-gray-500",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(Ye,{className:"w-3.5 h-3.5"}),e.jsx("span",{children:h.estimatedTime})]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(_t,{className:"w-3.5 h-3.5"}),e.jsxs("span",{children:[h.steps," steps"]})]})]}),e.jsxs("div",{className:"space-y-2 pt-2",children:[e.jsx("p",{className:"text-xs text-gray-500 font-semibold",children:"Key Features:"}),e.jsxs("div",{className:"space-y-1.5",children:[h.features.slice(0,3).map((b,v)=>e.jsxs("div",{className:"flex items-center gap-2 text-xs text-gray-600",children:[e.jsx(Ce,{className:"w-3 h-3 text-green-600 flex-shrink-0"}),e.jsx("span",{children:b})]},v)),h.features.length>3&&e.jsxs("p",{className:"text-xs text-blue-600 italic pl-5",children:["+",h.features.length-3," more features"]})]})]})]})]})},h.id)})}),e.jsxs(ms.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.3},className:"flex flex-col sm:flex-row justify-center gap-4 mt-4",children:[e.jsx(M,{variant:"outline",onClick:s,size:"lg",className:"px-8",children:"Cancel"}),e.jsxs(M,{onClick:c,disabled:!r||i||((d=ln.find(h=>h.id===r))==null?void 0:d.disabled),size:"lg",className:`gap-2 px-8 ${r&&!i&&!((m=ln.find(h=>h.id===r))!=null&&m.disabled)?"bg-blue-600 hover:bg-blue-700":"bg-gray-400 cursor-not-allowed"}`,children:["Continue with Template",e.jsx(ls,{className:"w-4 h-4"})]})]}),e.jsx(ec,{children:r&&e.jsx(ms.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},className:"mt-6 text-center",children:e.jsxs("p",{className:"text-sm text-gray-600",children:["Selected: ",e.jsx("span",{className:"font-semibold text-blue-600",children:(u=ln.find(h=>h.id===r))==null?void 0:u.name})]})})})]})})]})})}function dc({fileName:t,fileType:s,fileUrl:a,fileSize:r,attachmentId:n,onDownload:i,open:l,onClose:o}){const[c,d]=x.useState(100),[m,u]=x.useState(0),[h,g]=x.useState(null),[p,y]=x.useState(!1),[f,b]=x.useState(null),v=s.toLowerCase().includes("image")||s.toLowerCase().includes("png")||s.toLowerCase().includes("jpg")||s.toLowerCase().includes("jpeg")||s.toLowerCase().includes("gif")||s.toLowerCase().includes("webp"),w=s.toLowerCase().includes("pdf"),A=v||w;x.useEffect(()=>{if(!l||!A||!a){g(null);return}return(async()=>{y(!0),b(null);try{let R=a;a.startsWith("/")&&!a.startsWith("//")&&(R=`${window.location.origin}${a}`);const I=await fetch(R,{headers:{Accept:w?"application/pdf":"*/*"},credentials:"include",mode:"cors"});if(!I.ok){const N=await I.text().catch(()=>"");throw new Error(`Failed to load file: ${I.status} ${I.statusText}. ${N}`)}const $=await I.blob();if($.size===0)throw new Error("File is empty or could not be loaded");w&&!$.type.includes("pdf")&&$.type!=="application/octet-stream"&&console.warn(`Expected PDF but got ${$.type}`);const _=window.URL.createObjectURL($);g(_)}catch(C){console.error("Failed to load file for preview:",C),b(C instanceof Error?C.message:"Failed to load file for preview")}finally{y(!1)}})(),()=>{h&&(window.URL.revokeObjectURL(h),g(null))}},[l,a,A,w]);const S=async()=>{if(i&&n)try{await i(n)}catch{alert("Failed to download file")}},k=()=>d(D=>Math.min(D+25,200)),F=()=>d(D=>Math.max(D-25,50)),T=()=>u(D=>(D+90)%360);return e.jsx(ct,{open:l,onOpenChange:o,children:e.jsx(lt,{className:"file-preview-dialog p-3 sm:p-6",children:e.jsxs("div",{className:"file-preview-content",children:[e.jsx(dt,{className:"pb-4 flex-shrink-0 pr-8",children:e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-1 min-w-0",children:[e.jsx(jt,{className:"w-5 h-5 text-blue-600 flex-shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx(ot,{className:"text-base sm:text-lg font-bold text-gray-900 truncate pr-2",children:t}),e.jsxs("p",{className:"text-xs sm:text-sm text-gray-500",children:[s," ",r&&`• ${(r/1024).toFixed(1)} KB`]})]})]}),e.jsxs("div",{className:"flex items-center gap-2 flex-wrap mr-2",children:[v&&e.jsxs("div",{className:"flex items-center gap-1 mr-2",children:[e.jsx(M,{variant:"ghost",size:"sm",onClick:F,disabled:c<=50,title:"Zoom out",className:"h-8 w-8 p-0",children:e.jsx(Ef,{className:"h-4 w-4"})}),e.jsxs("span",{className:"text-xs sm:text-sm text-gray-600 min-w-[3rem] text-center",children:[c,"%"]}),e.jsx(M,{variant:"ghost",size:"sm",onClick:k,disabled:c>=200,title:"Zoom in",className:"h-8 w-8 p-0",children:e.jsx(Mf,{className:"h-4 w-4"})}),e.jsx(M,{variant:"ghost",size:"sm",onClick:T,title:"Rotate",className:"h-8 w-8 p-0",children:e.jsx(Ff,{className:"h-4 w-4"})})]}),i&&n&&e.jsxs(M,{variant:"outline",size:"sm",onClick:S,className:"gap-2 h-9",children:[e.jsx(wt,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Download"})]})]})]})}),e.jsx("div",{className:"file-preview-body bg-gray-100 rounded-lg p-2 sm:p-4",children:p?e.jsxs("div",{className:"flex flex-col items-center justify-center h-full",children:[e.jsx(Je,{className:"w-12 h-12 text-blue-600 animate-spin mb-4"}),e.jsx("p",{className:"text-sm text-gray-600",children:"Loading preview..."})]}):f?e.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-center",children:[e.jsx("div",{className:"w-20 h-20 bg-red-100 rounded-full flex items-center justify-center mb-4",children:e.jsx(ht,{className:"w-10 h-10 text-red-600"})}),e.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Preview Failed"}),e.jsx("p",{className:"text-sm text-gray-600 mb-6",children:f}),i&&n&&e.jsxs(M,{onClick:S,className:"gap-2",children:[e.jsx(wt,{className:"h-4 w-4"}),"Download ",t]})]}):A&&h?e.jsxs(e.Fragment,{children:[v&&e.jsx("div",{className:"flex items-center justify-center h-full",children:e.jsx("img",{src:h,alt:t,style:{transform:`scale(${c/100}) rotate(${m}deg)`,transition:"transform 0.2s ease-in-out",maxWidth:"100%",maxHeight:"100%",objectFit:"contain"},className:"rounded-lg shadow-lg"})}),w&&e.jsx("div",{className:"w-full h-full flex items-center justify-center",children:e.jsx("iframe",{src:h,className:"w-full h-full rounded-lg border-0",title:t,style:{minHeight:"70vh",height:"100%"},onError:()=>{b("Failed to load PDF preview")}})})]}):e.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-center",children:[e.jsx("div",{className:"w-20 h-20 bg-gray-200 rounded-full flex items-center justify-center mb-4",children:e.jsx(jt,{className:"w-10 h-10 text-gray-400"})}),e.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Preview Not Available"}),e.jsx("p",{className:"text-sm text-gray-600 mb-6",children:"This file type cannot be previewed. Please download to view."}),i&&n&&e.jsxs(M,{onClick:S,className:"gap-2",children:[e.jsx(wt,{className:"h-4 w-4"}),"Download ",t]})]})})]})})})}function Fn({open:t,onClose:s,violations:a,policyDetails:r}){return e.jsx(ct,{open:t,onOpenChange:s,children:e.jsxs(lt,{className:"sm:max-w-lg",children:[e.jsxs(dt,{children:[e.jsxs(ot,{className:"flex items-center gap-2",children:[e.jsx(Ge,{className:"w-5 h-5 text-red-600"}),"Policy Violation"]}),e.jsx(Lt,{asChild:!0,children:e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{className:"text-gray-700",children:"The following policy violations were detected:"}),e.jsx("div",{className:"space-y-2 max-h-60 overflow-y-auto",children:a.map((n,i)=>e.jsxs("div",{className:"bg-red-50 border border-red-200 rounded-lg p-3",children:[e.jsx("p",{className:"font-medium text-red-900 text-sm",children:n.type}),e.jsx("p",{className:"text-xs text-red-700 mt-1",children:n.message}),n.currentValue!==void 0&&n.maxValue!==void 0&&e.jsxs("p",{className:"text-xs text-red-600 mt-1 font-semibold",children:["Current: ",n.currentValue," / Maximum: ",n.maxValue]})]},i))}),r&&e.jsxs("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-3",children:[e.jsx("p",{className:"text-sm text-blue-800 font-semibold mb-1",children:"System Policy:"}),e.jsxs("ul",{className:"text-xs text-blue-700 space-y-1 list-disc list-inside",children:[r.maxApprovalLevels!==void 0&&e.jsxs("li",{children:["Maximum approval levels: ",r.maxApprovalLevels]}),r.maxParticipants!==void 0&&e.jsxs("li",{children:["Maximum participants per request: ",r.maxParticipants]}),r.allowSpectators!==void 0&&e.jsxs("li",{children:["Allow adding spectators: ",r.allowSpectators?"Yes":"No"]}),r.maxSpectators!==void 0&&e.jsxs("li",{children:["Maximum spectators per request: ",r.maxSpectators]})]})]})]})})]}),e.jsx(Ct,{children:e.jsx(M,{onClick:s,className:"w-full sm:w-auto",children:"OK"})})]})})}const Vs=async t=>{const s=t?{category:t}:{};return(await be.get("/users/configurations",{params:s})).data.data},Ui=async t=>{const s=t?{category:t}:{};return(await be.get("/admin/configurations",{params:s})).data.data},bs=async(t,s)=>{await be.put(`/admin/configurations/${t}`,{configValue:s})},X1=async t=>{await be.post(`/admin/configurations/${t}/reset`)},Q1=async t=>{const s=t?{year:t}:{};return(await be.get("/admin/holidays",{params:s})).data.data},J1=async t=>(await be.post("/admin/holidays",t)).data.data,q1=async(t,s)=>(await be.put(`/admin/holidays/${t}`,s)).data.data,eC=async t=>{await be.delete(`/admin/holidays/${t}`)},tC={template:"",title:"",description:"",category:"",priority:"",urgency:"",businessImpact:"",amount:"",currency:"USD",vendor:"",timeline:"",slaTemplate:"",slaHours:0,customSlaHours:0,slaEndDate:void 0,expectedCompletionDate:void 0,breachEscalation:!0,reminderSchedule:"50",workflowType:"sequential",requiresAllApprovals:!0,escalationEnabled:!0,reminderEnabled:!0,minimumLevel:1,maxLevel:1,approvers:[],approverCount:1,spectators:[],ccList:[],invitedUsers:[],allowComments:!0,allowDocumentUpload:!0,documents:[],tags:[],relatedRequests:[],costCenter:"",project:""};function sC(t,s,a){const[r,n]=x.useState(tC),[i,l]=x.useState(null),[o,c]=x.useState(t),[d,m]=x.useState({maxApprovalLevels:10,maxParticipants:50,allowSpectators:!0,maxSpectators:20}),[u,h]=x.useState({maxFileSizeMB:10,allowedFileTypes:["pdf","doc","docx","xls","xlsx","ppt","pptx","jpg","jpeg","png","gif"]}),[g,p]=x.useState([]);return x.useEffect(()=>{(async()=>{var b;try{const v=await Vs("DOCUMENT_POLICY"),w={};v.forEach(P=>{w[P.configKey]=P.configValue});const A=parseInt(w.MAX_FILE_SIZE_MB||"10"),k=(w.ALLOWED_FILE_TYPES||"pdf,doc,docx,xls,xlsx,ppt,pptx,jpg,jpeg,png,gif").split(",").map(P=>P.trim().toLowerCase());h({maxFileSizeMB:A,allowedFileTypes:k});const F=await Vs("SYSTEM_SETTINGS"),T=await Vs("WORKFLOW_SHARING"),D=[...F,...T],C={};D.forEach(P=>{C[P.configKey]=P.configValue}),m({maxApprovalLevels:parseInt(C.MAX_APPROVAL_LEVELS||"10"),maxParticipants:parseInt(C.MAX_PARTICIPANTS_PER_REQUEST||"50"),allowSpectators:((b=C.ALLOW_ADD_SPECTATOR)==null?void 0:b.toLowerCase())==="true",maxSpectators:parseInt(C.MAX_SPECTATORS_PER_REQUEST||"20")})}catch(v){console.error("Failed to load policies:",v)}})()},[]),x.useEffect(()=>{if(!t||!s)return;let f=!0;return(async()=>{try{c(!0);const b=await ks(s);if(!f||!b)return;const v=b.workflow||{},w=Array.isArray(b.approvals)?b.approvals:[],A=Array.isArray(b.participants)?b.participants:[],S=Array.isArray(b.documents)?b.documents.filter(R=>!R.isDeleted):[];p(S);const k=(v.priority||"").toString().toLowerCase(),F={standard:"standard",express:"express"},T=v.templateType==="TEMPLATE"?"existing-template":"custom",D=a.find(R=>R.id===T)||a[0]||null;l(D);const C=w.sort((R,V)=>(R.levelNumber||0)-(V.levelNumber||0)).map(R=>{const V=Number(R.tatHours||24),I=Math.floor(V/24),$=V%24;return{id:R.approverId||`temp-${R.levelNumber}`,name:R.approverName||R.approverEmail||"",email:R.approverEmail||"",role:R.levelName||`Level ${R.levelNumber}`,department:"",avatar:(R.approverName||R.approverEmail||"XX").substring(0,2).toUpperCase(),level:R.levelNumber||1,canClose:!1,tat:I>0?I:$,tatType:I>0?"days":"hours",userId:R.approverId}}),P=A.filter(R=>(R.participantType||R.participant_type||"").toString().toUpperCase().trim()==="SPECTATOR"?!!(R.userEmail||R.user_email||R.email):!1).map((R,V)=>{const I=R.userId||R.user_id||R.id,$=R.userName||R.user_name||R.name||"",_=R.userEmail||R.user_email||R.email||"",j=($||_||"XX").split(" ").map(U=>U[0]).filter(Boolean).join("").slice(0,2).toUpperCase();return{id:I||`spectator-${s}-${V}-${Date.now()}`,userId:I,name:$||_||"Spectator",email:_,role:"Spectator",department:R.department||"",avatar:j,level:1,canClose:!1}});n(R=>({...R,template:T,title:v.title||"",description:v.description||"",priority:F[k]||"standard",approvers:C,approverCount:C.length||1,spectators:P,maxLevel:Math.max(...C.map(V=>V.level||1),1)}))}catch(b){console.error("Failed to load draft:",b)}finally{f&&c(!1)}})(),()=>{f=!1}},[t,s,a]),{formData:r,setFormData:n,updateFormData:(f,b)=>{n(v=>({...v,[f]:b}))},selectedTemplate:i,setSelectedTemplate:l,loadingDraft:o,systemPolicy:d,documentPolicy:u,existingDocuments:g,setExistingDocuments:p}}const Wm=["Template Selection","Basic Information","Approval Workflow","Participants & Access","Documents & Attachments","Review & Submit"];function aC(t,s,a){const[r,n]=x.useState(t?2:1),i=Wm.length,l=u=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(u),o=()=>{switch(r){case 1:return s!==null;case 2:return a.title.trim()!==""&&a.description.trim()!==""&&a.priority!=="";case 3:return(a.approverCount||1)>0&&a.approvers.length===(a.approverCount||1)&&a.approvers.every(u=>{if(!u||!u.email||!l(u.email))return!1;if(!u.userId)return!0;const h=u.tatType||"hours";return h==="hours"?u.tat&&u.tat>0&&u.tat<=720:h==="days"?u.tat&&u.tat>0&&u.tat<=30:!1});case 4:return!0;case 5:return!0;case 6:return!0;default:return!1}};return{currentStep:r,setCurrentStep:n,totalSteps:i,stepNames:Wm,isStepValid:o,nextStep:()=>{o()&&(window.innerWidth<640&&window.scrollTo({top:0,behavior:"smooth"}),r<i&&n(r+1))},prevStep:()=>{r>1&&(n(r-1),window.innerWidth<640&&window.scrollTo({top:0,behavior:"smooth"}))},goToStep:u=>{u>=1&&u<=i&&n(u)},validateEmail:l}}function rC(){const[t,s]=x.useState({open:!1,type:"error",email:"",message:""}),[a,r]=x.useState({open:!1,violations:[]}),[n,i]=x.useState({open:!1,errors:[]});return{validationModal:t,policyViolationModal:a,documentErrorModal:n,openValidationModal:(h,g,p="")=>{s({open:!0,type:h,email:g,message:p})},closeValidationModal:()=>{s(h=>({...h,open:!1}))},openPolicyViolationModal:h=>{r({open:!0,violations:h})},closePolicyViolationModal:()=>{r({open:!1,violations:[]})},openDocumentErrorModal:h=>{i({open:!0,errors:h})},closeDocumentErrorModal:()=>{i({open:!1,errors:[]})}}}function nC(t,s){const a=typeof t=="number"?t:parseInt(String(t))||0;return s==="days"?a*24:a||24}function iC(t,s,a){var n;const r=nC(t.tat||24,t.tatType||"hours");return{levelNumber:s,levelName:`Level ${s}`,approverId:t.userId||"",approverEmail:t.email||"",approverName:t.name||((n=t.email)==null?void 0:n.split("@")[0])||`Approver ${s}`,tatHours:r,isFinalApprover:a}}function lC(t,s){return t.slice(0,s).map((a,r)=>{const n=r+1;return iC(a,n,n===s)})}function Gm(t,s,a){const r=new Set((t.approvers||[]).map(i=>{var l;return(l=i==null?void 0:i.email)==null?void 0:l.toLowerCase()}).filter(Boolean)),n=(t.spectators||[]).filter(i=>(i==null?void 0:i.email)&&!r.has(i.email.toLowerCase()));return{templateId:(s==null?void 0:s.id)||null,templateType:(s==null?void 0:s.id)==="custom"?"CUSTOM":"TEMPLATE",title:t.title,description:t.description,priorityUi:t.priority==="express"?"express":"standard",approverCount:t.approverCount||1,approvers:(t.approvers||[]).map(i=>({userId:(i==null?void 0:i.userId)||"",email:(i==null?void 0:i.email)||"",name:i==null?void 0:i.name,tat:(i==null?void 0:i.tat)||"",tatType:(i==null?void 0:i.tatType)||"hours"})),spectators:n.map(i=>({userId:(i==null?void 0:i.userId)||"",name:(i==null?void 0:i.name)||"",email:(i==null?void 0:i.email)||""})),ccList:[],participants:[]}}function Km(t,s,a){const r=lC(t.approvers||[],t.approverCount||1);return{title:t.title,description:t.description,priority:t.priority==="express"?"EXPRESS":"STANDARD",approvalLevels:r,participants:[],deleteDocumentIds:a.length>0?a:void 0}}function oC(t,s){const a=t.slice(0,s);if(a.some(l=>!(l!=null&&l.email)||!l.email.trim()))return{valid:!1,message:"Please provide email addresses for all approvers."};const n=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;return a.some(l=>!n.test((l==null?void 0:l.email)||""))?{valid:!1,message:"Please provide valid email addresses for all approvers."}:{valid:!0}}async function Zx(t,s){return{id:(await lh(t,s||[],"SUPPORTING")).id}}async function Xx(t,s,a,r){const n=a&&a.length>0,i=r.length>0;n||i?await rb(t,s,a||[],r):await ab(t,s)}async function Qx(t){await uh(t)}async function cC(t,s){const a=await Zx(t,s);return await Qx(a.id),a}async function dC(t,s,a,r){await Xx(t,s,a,r),await Qx(t)}function mC({formData:t,selectedTemplate:s,documents:a,documentsToDelete:r,user:n,isEditing:i,editRequestId:l,onSubmit:o}){const[c,d]=x.useState(!1),[m,u]=x.useState(!1);return{submitting:c,savingDraft:m,handleSubmit:async()=>{var y,f;if(c||m)return;const p=oC(t.approvers||[],t.approverCount||1);if(!p.valid){alert(p.message);return}d(!0);try{if(i&&l){const b=Km(t,n,r);await dC(l,b,a,r),q.success("Request Submitted Successfully!",{description:`Your request "${t.title}" has been submitted and sent for approval.`,duration:5e3}),o==null||o({...t,backendId:l,template:s})}else{const b=Gm(t,s,n),v=await cC(b,a);q.success("Request Submitted Successfully!",{description:`Your request "${t.title}" has been created and sent for approval.`,duration:5e3}),o==null||o({...t,backendId:v.id,template:s})}}catch(b){console.error("Failed to submit workflow:",b),q.error("Failed to Submit Request",{description:((f=(y=b==null?void 0:b.response)==null?void 0:y.data)==null?void 0:f.message)||(b==null?void 0:b.message)||"An error occurred while submitting the request.",duration:5e3}),d(!1)}},handleSaveDraft:async()=>{var p,y;if(!(!s||!t.title.trim()||!t.description.trim()||!t.priority)&&!(c||m)){u(!0);try{if(i&&l){const f=Km(t,n,r);await Xx(l,f,a,r),q.success("Draft Saved Successfully!",{description:`Your request "${t.title}" has been saved as draft.`,duration:5e3}),o==null||o({...t,backendId:l,template:s})}else{const f=Gm(t,s,n),b=await Zx(f,a);q.success("Draft Saved Successfully!",{description:`Your request "${t.title}" has been saved as draft.`,duration:5e3}),o==null||o({...t,backendId:b.id,template:s})}}catch(f){console.error("Failed to save draft:",f),q.error("Failed to Save Draft",{description:((y=(p=f==null?void 0:f.response)==null?void 0:p.data)==null?void 0:y.message)||(f==null?void 0:f.message)||"An error occurred while saving the draft.",duration:5e3}),u(!1)}}}}}async function ta(t,s=10){return await be.get("/users/search",{params:{q:t,limit:s}})}async function qs(t){var a;const s=await be.post("/users/ensure",t);return((a=s.data)==null?void 0:a.data)||s.data}async function uC(t,s){return await be.post("/admin/users/assign-role",{email:t,role:s})}async function hC(t,s){return await be.put(`/admin/users/${t}/role`,{role:s})}async function xC(t,s=1,a=10){return await be.get("/admin/users/by-role",{params:{role:t||"ELEVATED",page:s,limit:a}})}async function pC(){return await be.get("/admin/users/role-statistics")}async function gC(){var s,a;return((a=(s=(await be.get("/users")).data)==null?void 0:s.data)==null?void 0:a.users)||[]}const Ls={searchUsers:ta,ensureUserExists:qs,assignRole:uC,updateUserRole:hC,getUsersByRole:xC,getRoleStatistics:pC,getAllUsers:gC};async function fC(t,s){var a;if(t.email.toLowerCase()===s.toLowerCase())return{success:!1,error:{type:"self-assign",email:t.email,message:""}};try{const n=((a=(await ta(t.email,1)).data)==null?void 0:a.data)||[];if(n.length===0)return{success:!1,error:{type:"not-found",email:t.email,message:""}};const i=n[0];return i?(await qs({userId:i.userId,email:i.email,displayName:i.displayName,firstName:i.firstName,lastName:i.lastName,department:i.department,phone:i.phone,mobilePhone:i.mobilePhone,designation:i.designation,jobTitle:i.jobTitle,manager:i.manager,employeeId:i.employeeId,employeeNumber:i.employeeNumber,secondEmail:i.secondEmail,location:i.location}),{success:!0}):{success:!1,error:{type:"error",email:t.email,message:"Could not retrieve user details. Please try again."}}}catch(r){return console.error(`Failed to validate approver ${t.email}:`,r),{success:!1,error:{type:"error",email:t.email,message:"Failed to validate user. Please try again or select a different user."}}}}async function yC(t,s){var n;if(t.filter(i=>i&&i.email&&!i.userId).length===0)return{success:!0,validatedApprovers:t};const r=[...t];for(let i=0;i<r.length;i++){const l=r[i];if(l.userId||!l.email)continue;const o=await fC(l,s);if(!o.success)return{success:!1,error:o.error};try{const m=(((n=(await ta(l.email,1)).data)==null?void 0:n.data)||[])[0];if(m){const u=await qs({userId:m.userId,email:m.email,displayName:m.displayName,firstName:m.firstName,lastName:m.lastName,department:m.department,phone:m.phone,mobilePhone:m.mobilePhone,designation:m.designation,jobTitle:m.jobTitle,manager:m.manager,employeeId:m.employeeId,employeeNumber:m.employeeNumber,secondEmail:m.secondEmail,location:m.location});r[i]={...l,userId:u.userId,name:u.displayName||l.name,department:u.department||l.department,avatar:(u.displayName||u.email).substring(0,2).toUpperCase()}}}catch(c){console.error(`Failed to update approver ${l.email}:`,c)}}return{success:!0,validatedApprovers:r}}function vC({selectedTemplate:t,setSelectedTemplate:s,updateFormData:a,formData:r,currentStep:n,isStepValid:i,wizardNextStep:l,wizardPrevStep:o,user:c,openValidationModal:d,systemPolicy:m,onPolicyViolation:u,onSubmit:h}){const g=Pa(),[p,y]=x.useState(!1),[f,b]=x.useState(null);return{showTemplateModal:p,setShowTemplateModal:y,previewDocument:f,selectTemplate:T=>{s(T),a("template",T.id),a("category",T.category),a("priority",T.priority);const D=new Date;D.setDate(D.getDate()+T.suggestedSLA),a("slaEndDate",D)},handleTemplateSelection:T=>{T==="claim-management"?g("/claim-management"):T==="vendor-payment"?g("/vendor-payment"):h&&h({templateType:T})},nextStep:async()=>{var T;if(i()){if(n===1&&(t==null?void 0:t.id)==="existing-template"){y(!0);return}if(window.innerWidth<640&&window.scrollTo({top:0,behavior:"smooth"}),n===3){if(m&&u){const P=r.approverCount||1;if(P>m.maxApprovalLevels){u([{type:"Maximum Approval Levels Exceeded",message:`The request has ${P} approval levels, which exceeds the maximum allowed (${m.maxApprovalLevels}). Please reduce the number of approvers.`,currentValue:P,maxValue:m.maxApprovalLevels}]);return}}const D=((T=c==null?void 0:c.email)==null?void 0:T.toLowerCase())||"",C=await yC(r.approvers,D);if(!C.success&&C.error){d(C.error.type,C.error.email,C.error.message);return}C.validatedApprovers&&a("approvers",C.validatedApprovers)}l()}},prevStep:()=>{o(),window.innerWidth<640&&window.scrollTo({top:0,behavior:"smooth"})},handlePreviewDocument:(T,D)=>{if(D){const C=T.documentId||T.document_id||"";b({fileName:T.originalFileName||T.fileName||"Document",fileType:T.fileType||T.file_type||"application/octet-stream",fileUrl:To(C),fileSize:Number(T.fileSize||T.file_size||0),documentId:C})}else{const C=URL.createObjectURL(T);b({fileName:T.name,fileType:T.type||"application/octet-stream",fileUrl:C,fileSize:T.size,file:T})}},closePreview:()=>{f!=null&&f.fileUrl&&(f!=null&&f.file)&&URL.revokeObjectURL(f.fileUrl),b(null)}}}const Ym=[{id:"custom",name:"Custom Request",description:"Create a custom request for unique business needs with full flexibility to define your own workflow and requirements",category:"General",icon:Ci,estimatedTime:"Variable",commonApprovers:[],suggestedSLA:3,priority:"medium",fields:{}},{id:"existing-template",name:"Existing Template",description:"Use a pre-configured template with predefined approval workflows, timelines, and requirements for faster processing",category:"Templates",icon:_e,estimatedTime:"1-2 days",commonApprovers:["Department Head","Manager"],suggestedSLA:2,priority:"medium",fields:{timeline:!0}}];function bC({currentStep:t,totalSteps:s,stepNames:a}){const r=Math.round(t/s*100);return e.jsx("div",{className:"bg-white border-b border-gray-200 px-3 sm:px-6 py-2 sm:py-3 flex-shrink-0","data-testid":"wizard-stepper",children:e.jsxs("div",{className:"max-w-6xl mx-auto",children:[e.jsxs("div",{className:"block sm:hidden","data-testid":"wizard-stepper-mobile",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-8 h-8 rounded-full bg-green-600 text-white flex items-center justify-center text-xs font-semibold","data-testid":"wizard-stepper-mobile-current-step",children:t}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-semibold text-gray-900","data-testid":"wizard-stepper-mobile-step-name",children:a[t-1]}),e.jsxs("p",{className:"text-xs text-gray-600","data-testid":"wizard-stepper-mobile-step-info",children:["Step ",t," of ",s]})]})]}),e.jsx("div",{className:"text-right",children:e.jsxs("p",{className:"text-xs font-medium text-green-600","data-testid":"wizard-stepper-mobile-progress",children:[r,"%"]})})]}),e.jsx("div",{className:"w-full bg-gray-200 h-1.5 rounded-full overflow-hidden","data-testid":"wizard-stepper-mobile-progress-bar",children:e.jsx("div",{className:"bg-green-600 h-full transition-all duration-300",style:{width:`${r}%`},"data-testid":"wizard-stepper-mobile-progress-fill"})})]}),e.jsxs("div",{className:"hidden sm:block","data-testid":"wizard-stepper-desktop",children:[e.jsx("div",{className:"flex items-center justify-between mb-2","data-testid":"wizard-stepper-desktop-steps",children:a.map((n,i)=>e.jsxs("div",{className:"flex items-center","data-testid":`wizard-stepper-desktop-step-${i+1}`,children:[e.jsx("div",{className:`w-8 h-8 rounded-full flex items-center justify-center text-xs font-semibold ${i+1<t?"bg-green-600 text-white":i+1===t?"bg-blue-600 text-white":"bg-gray-200 text-gray-600"}`,"data-testid":`wizard-stepper-desktop-step-${i+1}-indicator`,children:i+1<t?e.jsx(Fr,{className:"w-4 h-4"}):i+1}),i<a.length-1&&e.jsx("div",{className:`w-8 md:w-12 lg:w-16 h-1 mx-1 md:mx-2 ${i+1<t?"bg-green-600":"bg-gray-200"}`,"data-testid":`wizard-stepper-desktop-step-${i+1}-connector`})]},i))}),e.jsx("div",{className:"hidden lg:flex justify-between text-xs text-gray-600 mt-2","data-testid":"wizard-stepper-desktop-labels",children:a.map((n,i)=>e.jsx("span",{className:`${i+1===t?"font-semibold text-blue-600":""}`,"data-testid":`wizard-stepper-desktop-label-${i+1}`,children:n},i))})]})]})})}function jC({currentStep:t,totalSteps:s,isStepValid:a,onPrev:r,onNext:n,onSubmit:i,onSaveDraft:l,submitting:o,savingDraft:c,loadingDraft:d,isEditing:m}){return e.jsx("div",{className:"fixed sm:relative bottom-0 left-0 right-0 bg-white border-t border-gray-200 px-3 sm:px-6 py-3 sm:py-4 flex-shrink-0 shadow-lg sm:shadow-none z-50","data-testid":"wizard-footer",children:e.jsxs("div",{className:"flex flex-col sm:flex-row justify-between items-stretch sm:items-center gap-2 sm:gap-4 max-w-6xl mx-auto",children:[e.jsxs(M,{variant:"outline",onClick:r,disabled:t===1,size:"sm",className:"sm:size-lg order-2 sm:order-1","data-testid":"wizard-footer-prev-button",children:[e.jsx(zs,{className:"h-3 w-3 sm:h-4 sm:w-4 mr-1 sm:mr-2"}),e.jsx("span",{className:"text-xs sm:text-sm",children:"Previous"})]}),e.jsxs("div",{className:"flex gap-2 sm:gap-3 order-1 sm:order-2","data-testid":"wizard-footer-actions",children:[e.jsx(M,{variant:"outline",onClick:l,size:"sm",className:"sm:size-lg flex-1 sm:flex-none text-xs sm:text-sm",disabled:d||o||c,"data-testid":"wizard-footer-save-draft-button",children:c?e.jsxs(e.Fragment,{children:[e.jsx(Je,{className:"h-3 w-3 sm:h-4 sm:w-4 mr-1 sm:mr-2 animate-spin"}),e.jsx("span",{children:m?"Updating...":"Saving..."})]}):e.jsx("span",{children:m?"Update Draft":"Save Draft"})}),t===s?e.jsx(M,{onClick:i,disabled:!a||d||o||c,size:"sm",className:"sm:size-lg bg-green-600 hover:bg-green-700 flex-1 sm:flex-none sm:px-8 text-xs sm:text-sm","data-testid":"wizard-footer-submit-button",children:o?e.jsxs(e.Fragment,{children:[e.jsx(Je,{className:"h-3 w-3 sm:h-4 sm:w-4 mr-1 sm:mr-2 animate-spin"}),"Submitting..."]}):e.jsxs(e.Fragment,{children:[e.jsx(Pu,{className:"h-3 w-3 sm:h-4 sm:w-4 mr-1 sm:mr-2"}),"Submit"]})}):e.jsxs(M,{onClick:n,disabled:!a,size:"sm",className:"sm:size-lg flex-1 sm:flex-none sm:px-8 text-xs sm:text-sm","data-testid":"wizard-footer-next-button",children:[e.jsx("span",{className:"hidden sm:inline",children:"Next Step"}),e.jsx("span",{className:"sm:hidden",children:"Next"}),e.jsx(ls,{className:"h-3 w-3 sm:h-4 sm:w-4 ml-1 sm:ml-2"})]})]})]})})}const NC=t=>{switch(t){case"high":return e.jsx(ha,{className:"w-4 h-4 text-red-600"});case"medium":return e.jsx(_t,{className:"w-4 h-4 text-orange-600"});case"low":return e.jsx(Bs,{className:"w-4 h-4 text-green-600"});default:return e.jsx(_t,{className:"w-4 h-4 text-gray-600"})}};function wC({templates:t,selectedTemplate:s,onSelectTemplate:a}){return e.jsxs(ms.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},className:"min-h-full flex flex-col items-center justify-center py-8","data-testid":"template-selection-step",children:[e.jsxs("div",{className:"text-center mb-12 max-w-3xl","data-testid":"template-selection-header",children:[e.jsx("h1",{className:"text-4xl lg:text-5xl font-bold text-gray-900 mb-4","data-testid":"template-selection-title",children:"Choose Your Request Type"}),e.jsx("p",{className:"text-lg text-gray-600","data-testid":"template-selection-description",children:"Start with a pre-built template for faster approvals, or create a custom request tailored to your needs."})]}),e.jsx("div",{className:"w-full max-w-6xl grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mb-8","data-testid":"template-selection-grid",children:t.map(r=>e.jsx(ms.div,{whileHover:{scale:1.03},whileTap:{scale:.98},transition:{type:"spring",stiffness:300,damping:20},"data-testid":`template-card-${r.id}`,children:e.jsxs(te,{className:`cursor-pointer h-full transition-all duration-300 border-2 ${(s==null?void 0:s.id)===r.id?"border-blue-500 shadow-xl bg-blue-50/50 ring-2 ring-blue-200":"border-gray-200 hover:border-blue-300 hover:shadow-lg"}`,onClick:()=>a(r),"data-testid":`template-card-${r.id}-clickable`,children:[e.jsxs(ue,{className:"space-y-4 pb-4",children:[e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsx("div",{className:`w-14 h-14 rounded-xl flex items-center justify-center ${(s==null?void 0:s.id)===r.id?"bg-blue-100":"bg-gray-100"}`,"data-testid":`template-card-${r.id}-icon`,children:e.jsx(r.icon,{className:`w-7 h-7 ${(s==null?void 0:s.id)===r.id?"text-blue-600":"text-gray-600"}`})}),(s==null?void 0:s.id)===r.id&&e.jsx(ms.div,{initial:{scale:0},animate:{scale:1},transition:{type:"spring",stiffness:500,damping:15},"data-testid":`template-card-${r.id}-selected-indicator`,children:e.jsx("div",{className:"w-8 h-8 rounded-full bg-blue-600 flex items-center justify-center",children:e.jsx(Fr,{className:"w-5 h-5 text-white"})})})]}),e.jsxs("div",{className:"text-left",children:[e.jsx(he,{className:"text-xl mb-2","data-testid":`template-card-${r.id}-name`,children:r.name}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(le,{variant:"secondary",className:"text-xs","data-testid":`template-card-${r.id}-category`,children:r.category}),NC(r.priority)]})]})]}),e.jsxs(se,{className:"pt-0 space-y-4",children:[e.jsx("p",{className:"text-sm text-gray-600 leading-relaxed line-clamp-2","data-testid":`template-card-${r.id}-description`,children:r.description}),e.jsx(Vt,{}),e.jsxs("div",{className:"grid grid-cols-2 gap-3 text-xs text-gray-500",children:[e.jsxs("div",{className:"flex items-center gap-1.5","data-testid":`template-card-${r.id}-estimated-time`,children:[e.jsx(Ye,{className:"w-3.5 h-3.5"}),e.jsx("span",{children:r.estimatedTime})]}),e.jsxs("div",{className:"flex items-center gap-1.5","data-testid":`template-card-${r.id}-approvers-count`,children:[e.jsx(Mt,{className:"w-3.5 h-3.5"}),e.jsxs("span",{children:[r.commonApprovers.length," approvers"]})]})]})]})]})},r.id))})]})}function CC({className:t,...s}){return e.jsx(Og,{"data-slot":"radio-group",className:we("grid gap-3",t),...s})}function Zm({className:t,...s}){return e.jsx($g,{"data-slot":"radio-group-item",className:we("border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",t),...s,children:e.jsx(Ug,{"data-slot":"radio-group-indicator",className:"relative flex items-center justify-center",children:e.jsx(_f,{className:"fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2"})})})}function AC({formData:t,selectedTemplate:s,updateFormData:a}){return e.jsxs(ms.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},className:"space-y-6","data-testid":"basic-information-step",children:[e.jsxs("div",{className:"text-center mb-8","data-testid":"basic-information-header",children:[e.jsx("div",{className:"w-16 h-16 bg-gradient-to-br from-green-500 to-blue-600 rounded-2xl flex items-center justify-center mx-auto mb-4",children:e.jsx(_e,{className:"w-8 h-8 text-white"})}),e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-2","data-testid":"basic-information-title",children:"Basic Information"}),e.jsxs("p",{className:"text-gray-600","data-testid":"basic-information-description",children:["Provide the essential details for your ",(s==null?void 0:s.name)||"request","."]})]}),e.jsxs("div",{className:"max-w-2xl mx-auto space-y-6","data-testid":"basic-information-form",children:[e.jsxs("div",{"data-testid":"basic-information-title-field",children:[e.jsx(re,{htmlFor:"title",className:"text-base font-semibold",children:"Request Title *"}),e.jsx("p",{className:"text-sm text-gray-600 mb-3",children:"Be specific and descriptive. This will be visible to all participants."}),e.jsx(Se,{id:"title",placeholder:"e.g., Approval on new office location",value:t.title,onChange:r=>a("title",r.target.value),className:"text-base h-12 border-2 border-gray-300 focus:border-blue-500 bg-white shadow-sm","data-testid":"basic-information-title-input"})]}),e.jsxs("div",{"data-testid":"basic-information-description-field",children:[e.jsx(re,{htmlFor:"description",className:"text-base font-semibold",children:"Detailed Description *"}),e.jsxs("p",{className:"text-sm text-gray-600 mb-3",children:["Explain what you need approval for, why it's needed, and any relevant background information.",e.jsx("span",{className:"block mt-1 text-xs text-blue-600",children:"💡 Tip: You can paste formatted content (lists, tables) and the formatting will be preserved."})]}),e.jsx(Fi,{value:t.description||"",onChange:r=>a("description",r),placeholder:"Provide comprehensive details about your request including scope, objectives, expected outcomes, and any supporting context that will help approvers make an informed decision.",className:"min-h-[120px] text-base border-2 border-gray-300 focus-within:border-blue-500 bg-white shadow-sm",minHeight:"120px","data-testid":"basic-information-description-textarea"})]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6","data-testid":"basic-information-priority-section",children:e.jsxs("div",{"data-testid":"basic-information-priority-field",children:[e.jsx(re,{className:"text-base font-semibold",children:"Priority Level *"}),e.jsx("p",{className:"text-sm text-gray-600 mb-2",children:"select priority for your request"}),e.jsxs(CC,{value:t.priority||"",onValueChange:r=>a("priority",r),"data-testid":"basic-information-priority-radio-group",children:[e.jsxs("div",{className:`flex items-center space-x-3 p-3 rounded-lg border-2 cursor-pointer transition-all ${t.priority==="express"?"border-red-500 bg-red-100":"border-red-200 bg-red-50 hover:bg-red-100"}`,onClick:()=>a("priority","express"),"data-testid":"basic-information-priority-express-option",children:[e.jsx(Zm,{value:"express",id:"express"}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(ji,{className:"w-4 h-4 text-red-600"}),e.jsx(re,{htmlFor:"express",className:"font-medium text-red-900 cursor-pointer",children:"Express"}),e.jsx(le,{variant:"destructive",className:"text-xs",children:"URGENT"})]}),e.jsx("p",{className:"text-xs text-red-700",children:"Includes calendar days in TAT - faster processing timeline"})]})]}),e.jsxs("div",{className:`flex items-center space-x-3 p-3 rounded-lg border cursor-pointer transition-all ${t.priority==="standard"?"border-blue-500 bg-blue-50":"border-gray-200 hover:bg-gray-50"}`,onClick:()=>a("priority","standard"),"data-testid":"basic-information-priority-standard-option",children:[e.jsx(Zm,{value:"standard",id:"standard"}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(Ye,{className:"w-4 h-4 text-blue-600"}),e.jsx(re,{htmlFor:"standard",className:"font-medium text-blue-900 cursor-pointer",children:"Standard"}),e.jsx(le,{variant:"secondary",className:"text-xs",children:"DEFAULT"})]}),e.jsx("p",{className:"text-xs text-gray-600",children:"Includes working days in TAT - regular processing timeline"})]})]})]})]})}),((s==null?void 0:s.fields.amount)||(s==null?void 0:s.fields.vendor)||(s==null?void 0:s.fields.timeline)||(s==null?void 0:s.fields.impact))&&e.jsxs("div",{className:"border-t pt-6","data-testid":"basic-information-additional-details",children:[e.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-4",children:"Additional Details"}),e.jsxs("div",{className:"space-y-6",children:[(s==null?void 0:s.fields.amount)&&e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4","data-testid":"basic-information-amount-field",children:[e.jsxs("div",{className:"md:col-span-2",children:[e.jsx(re,{htmlFor:"amount",className:"text-base font-semibold",children:"Budget Amount"}),e.jsx(Se,{id:"amount",placeholder:"Enter amount",value:t.amount,onChange:r=>a("amount",r.target.value),className:"text-base h-12 border-2 border-gray-300 focus:border-blue-500 bg-white shadow-sm","data-testid":"basic-information-amount-input"})]}),e.jsxs("div",{children:[e.jsx(re,{className:"text-base font-semibold",children:"Currency"}),e.jsxs(Be,{value:t.currency,onValueChange:r=>a("currency",r),"data-testid":"basic-information-currency-select",children:[e.jsx(ze,{className:"h-12 border-2 border-gray-300 focus:border-blue-500 bg-white shadow-sm",children:e.jsx(Ve,{})}),e.jsxs(He,{children:[e.jsx(K,{value:"USD",children:"USD ($)"}),e.jsx(K,{value:"EUR",children:"EUR (€)"}),e.jsx(K,{value:"GBP",children:"GBP (£)"}),e.jsx(K,{value:"INR",children:"INR (₹)"})]})]})]})]}),(s==null?void 0:s.fields.vendor)&&e.jsxs("div",{"data-testid":"basic-information-vendor-field",children:[e.jsx(re,{htmlFor:"vendor",className:"text-base font-semibold",children:"Vendor/Supplier"}),e.jsx(Se,{id:"vendor",placeholder:"Enter vendor or supplier name",value:t.vendor,onChange:r=>a("vendor",r.target.value),className:"text-base h-12 border-2 border-gray-300 focus:border-blue-500 bg-white shadow-sm","data-testid":"basic-information-vendor-input"})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsxs("div",{"data-testid":"basic-information-cost-center-field",children:[e.jsx(re,{htmlFor:"costCenter",className:"text-base font-semibold",children:"Cost Center"}),e.jsx(Se,{id:"costCenter",placeholder:"e.g., Marketing, IT, Operations",value:t.costCenter,onChange:r=>a("costCenter",r.target.value),className:"text-base h-12 border-2 border-gray-300 focus:border-blue-500 bg-white shadow-sm","data-testid":"basic-information-cost-center-input"})]}),e.jsxs("div",{"data-testid":"basic-information-project-field",children:[e.jsx(re,{htmlFor:"project",className:"text-base font-semibold",children:"Related Project"}),e.jsx(Se,{id:"project",placeholder:"Associated project name or code",value:t.project,onChange:r=>a("project",r.target.value),className:"text-base h-12 border-2 border-gray-300 focus:border-blue-500 bg-white shadow-sm","data-testid":"basic-information-project-input"})]})]})]})]})]})]})}function SC(){const[t,s]=x.useState([]),[a,r]=x.useState(!1),n=x.useRef(null);return{searchResults:t,searchLoading:a,searchUsersDebounced:async(c,d=10)=>{if(n.current&&clearTimeout(n.current),!c||!c.startsWith("@")||c.length<2){s([]),r(!1);return}r(!0),n.current=setTimeout(async()=>{var m;try{const u=c.slice(1),g=((m=(await ta(u,d)).data)==null?void 0:m.data)||[];s(g)}catch(u){console.error("User search failed:",u),s([])}finally{r(!1)}},300)},clearSearch:()=>{n.current&&clearTimeout(n.current),s([]),r(!1)},ensureUser:async c=>{try{return await qs({userId:c.userId,email:c.email,displayName:c.displayName,firstName:c.firstName,lastName:c.lastName,department:c.department,phone:c.phone,mobilePhone:c.mobilePhone,designation:c.designation,jobTitle:c.jobTitle,manager:c.manager,employeeId:c.employeeId,employeeNumber:c.employeeNumber,secondEmail:c.secondEmail,location:c.location})}catch(d){throw console.error("Failed to ensure user exists:",d),d}}}}function Jx(){const[t,s]=x.useState({}),[a,r]=x.useState({}),n=x.useRef({});return{userSearchResults:t,userSearchLoading:a,searchUsersForIndex:async(o,c,d=10)=>{if(n.current[o]&&clearTimeout(n.current[o]),!c||!c.startsWith("@")||c.length<2){s(m=>({...m,[o]:[]})),r(m=>({...m,[o]:!1}));return}r(m=>({...m,[o]:!0})),n.current[o]=setTimeout(async()=>{var m;try{const u=c.slice(1),g=((m=(await ta(u,d)).data)==null?void 0:m.data)||[];s(p=>({...p,[o]:g}))}catch(u){console.error(`User search failed for index ${o}:`,u),s(h=>({...h,[o]:[]}))}finally{r(u=>({...u,[o]:!1}))}},300)},clearSearchForIndex:o=>{n.current[o]&&clearTimeout(n.current[o]),s(c=>({...c,[o]:[]})),r(c=>({...c,[o]:!1}))}}}function TC({formData:t,updateFormData:s,onValidationError:a,systemPolicy:r,onPolicyViolation:n}){var u;const{userSearchResults:i,userSearchLoading:l,searchUsersForIndex:o,clearSearchForIndex:c}=Jx();x.useEffect(()=>{const h=t.approverCount||1,g=t.approvers||[];if(g.length<h){const p=[...g];for(let y=g.length;y<h;y++)p[y]||(p[y]={email:"",name:"",level:y+1,tat:""});s("approvers",p)}else g.length>h&&s("approvers",g.slice(0,h))},[t.approverCount,s]);const d=(h,g)=>{var b,v,w,A,S;const p=[...t.approvers],f=((b=p[h])==null?void 0:b.email)!==g;if(p[h]={...p[h],email:g,level:h+1,userId:f||(v=p[h])==null?void 0:v.userId,name:f||(w=p[h])==null?void 0:w.name,department:f||(A=p[h])==null?void 0:A.department,avatar:f||(S=p[h])==null?void 0:S.avatar},s("approvers",p),!g||!g.startsWith("@")||g.length<2){c(h);return}o(h,g,10)},m=async(h,g)=>{var p,y;try{if((p=t.approvers)==null?void 0:p.some((A,S)=>{var k,F;return S!==h&&(A.userId===g.userId||((k=A.email)==null?void 0:k.toLowerCase())===((F=g.email)==null?void 0:F.toLowerCase()))})){a({type:"error",email:g.email,message:"This user is already added as an approver in another level."});return}if((y=t.spectators)==null?void 0:y.some(A=>{var S,k;return A.userId===g.userId||((S=A.email)==null?void 0:S.toLowerCase())===((k=g.email)==null?void 0:k.toLowerCase())})){a({type:"error",email:g.email,message:"This user is already added as a spectator. A user cannot be both an approver and a spectator."});return}const v=await qs({userId:g.userId,email:g.email,displayName:g.displayName,firstName:g.firstName,lastName:g.lastName,department:g.department,phone:g.phone,mobilePhone:g.mobilePhone,designation:g.designation,jobTitle:g.jobTitle,manager:g.manager,employeeId:g.employeeId,employeeNumber:g.employeeNumber,secondEmail:g.secondEmail,location:g.location}),w=[...t.approvers];w[h]={...w[h],email:g.email,name:g.displayName||[g.firstName,g.lastName].filter(Boolean).join(" "),userId:v.userId,level:h+1},s("approvers",w),c(h)}catch(f){console.error("Failed to ensure user exists:",f),a({type:"error",email:g.email,message:"Failed to validate user. Please try again."})}};return e.jsxs(ms.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},className:"space-y-6","data-testid":"approval-workflow-step",children:[e.jsxs("div",{className:"text-center mb-8","data-testid":"approval-workflow-header",children:[e.jsx("div",{className:"w-16 h-16 bg-gradient-to-br from-orange-500 to-red-600 rounded-2xl flex items-center justify-center mx-auto mb-4",children:e.jsx(Mt,{className:"w-8 h-8 text-white"})}),e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-2","data-testid":"approval-workflow-title",children:"Approval Workflow"}),e.jsx("p",{className:"text-gray-600","data-testid":"approval-workflow-description",children:"Define the approval hierarchy and assign approvers by email ID."})]}),e.jsxs("div",{className:"max-w-4xl mx-auto space-y-8","data-testid":"approval-workflow-content",children:[e.jsxs(te,{"data-testid":"approval-workflow-config-card",children:[e.jsxs(ue,{children:[e.jsxs(he,{className:"flex items-center gap-2","data-testid":"approval-workflow-config-title",children:[e.jsx($a,{className:"w-5 h-5"}),"Approval Configuration"]}),e.jsx(Te,{children:"Configure how many approvers you need and define the approval sequence."})]}),e.jsx(se,{className:"space-y-6",children:e.jsxs("div",{"data-testid":"approval-workflow-count-field",children:[e.jsx(re,{className:"text-base font-semibold mb-4 block",children:"Number of Approvers *"}),e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx(M,{type:"button",variant:"outline",size:"sm",onClick:()=>{const h=t.approverCount||1,g=Math.max(1,h-1);s("approverCount",g),t.approvers.length>g&&s("approvers",t.approvers.slice(0,g))},disabled:(t.approverCount||1)<=1,"data-testid":"approval-workflow-decrease-count",children:e.jsx(Lf,{className:"w-4 h-4"})}),e.jsx("span",{className:"text-2xl font-semibold w-12 text-center","data-testid":"approval-workflow-count-display",children:t.approverCount||1}),e.jsx(M,{type:"button",variant:"outline",size:"sm",onClick:()=>{const g=(t.approverCount||1)+1;if(g>r.maxApprovalLevels){n([{type:"Maximum Approval Levels Exceeded",message:`Cannot add more than ${r.maxApprovalLevels} approval levels. Please remove an approver level or contact your administrator.`,currentValue:g,maxValue:r.maxApprovalLevels}]);return}s("approverCount",g)},disabled:(t.approverCount||1)>=r.maxApprovalLevels,"data-testid":"approval-workflow-increase-count",children:e.jsx(Us,{className:"w-4 h-4"})})]}),e.jsxs("p",{className:"text-sm text-gray-600 mt-2",children:["Maximum ",r.maxApprovalLevels," approver",r.maxApprovalLevels!==1?"s":""," allowed. Each approver will review sequentially."]})]})})]}),e.jsxs(te,{"data-testid":"approval-workflow-hierarchy-card",children:[e.jsxs(ue,{children:[e.jsxs(he,{className:"flex items-center gap-2","data-testid":"approval-workflow-hierarchy-title",children:[e.jsx(ss,{className:"w-5 h-5"}),"Approval Hierarchy *"]}),e.jsxs(Te,{children:["Define the approval sequence. Each approver will review the request in order from Level 1 to Level ",t.approverCount||1,"."]})]}),e.jsxs(se,{className:"space-y-6",children:[e.jsx("div",{className:"p-4 rounded-lg border-2 border-blue-200 bg-blue-50","data-testid":"approval-workflow-initiator-card",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 bg-blue-600 rounded-full flex items-center justify-center",children:e.jsx(kt,{className:"w-5 h-5 text-white"})}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-semibold text-blue-900",children:"Request Initiator"}),e.jsx(le,{variant:"secondary",className:"text-xs",children:"YOU"})]}),e.jsx("p",{className:"text-sm text-blue-700",children:"Creates and submits the request"})]})]})}),Array.from({length:t.approverCount||1},(h,g)=>{var b,v;const p=g+1,y=p===(t.approverCount||1),f=t.approvers[g]||{email:"",tat:""};return e.jsxs("div",{className:"space-y-3","data-testid":`approval-workflow-approver-level-${p}`,children:[e.jsx("div",{className:"flex justify-center",children:e.jsx("div",{className:"w-px h-6 bg-gray-300"})}),e.jsx("div",{className:`p-4 rounded-lg border-2 transition-all ${f.email?"border-green-200 bg-green-50":"border-gray-200 bg-gray-50"}`,children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:`w-10 h-10 rounded-full flex items-center justify-center ${f.email?"bg-green-600":"bg-gray-400"}`,children:e.jsx("span",{className:"text-white font-semibold",children:p})}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsxs("span",{className:"font-semibold text-gray-900",children:["Approver Level ",p]}),y&&e.jsx(le,{variant:"destructive",className:"text-xs",children:"FINAL APPROVER"})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{"data-testid":`approval-workflow-approver-${p}-email-field`,children:[e.jsxs("div",{className:"flex items-center justify-between mb-1",children:[e.jsx(re,{htmlFor:`approver-${p}`,className:"text-sm font-medium",children:"Email Address *"}),f.email&&f.userId&&e.jsxs(le,{variant:"outline",className:"text-xs bg-green-50 text-green-700 border-green-300",children:[e.jsx(Ce,{className:"w-3 h-3 mr-1"}),"Verified"]})]}),e.jsxs("div",{className:"relative",children:[e.jsx(Se,{id:`approver-${p}`,type:"email",placeholder:"approver@royalenfield.com",value:f.email||"",onChange:w=>d(g,w.target.value),className:"h-10 border-2 border-gray-300 focus:border-blue-500 mt-1 w-full","data-testid":`approval-workflow-approver-${p}-email-input`}),(l[g]||(((b=i[g])==null?void 0:b.length)||0)>0)&&e.jsx("div",{className:"absolute left-0 right-0 top-full mt-1 z-50 border rounded-md bg-white shadow-lg",children:l[g]?e.jsx("div",{className:"p-2 text-xs text-gray-500",children:"Searching..."}):e.jsx("ul",{className:"max-h-56 overflow-auto divide-y",children:(v=i[g])==null?void 0:v.map(w=>e.jsxs("li",{className:"p-2 text-sm cursor-pointer hover:bg-gray-50",onClick:()=>m(g,w),"data-testid":`approval-workflow-approver-${p}-search-result-${w.userId}`,children:[e.jsx("div",{className:"font-medium text-gray-900",children:w.displayName||w.email}),e.jsx("div",{className:"text-xs text-gray-600",children:w.email})]},w.userId))})})]})]}),e.jsxs("div",{"data-testid":`approval-workflow-approver-${p}-tat-field`,children:[e.jsx(re,{htmlFor:`tat-${p}`,className:"text-sm font-medium",children:"TAT (Turn Around Time) *"}),e.jsxs("div",{className:"flex items-center gap-2 mt-1",children:[e.jsx(Se,{id:`tat-${p}`,type:"number",placeholder:f.tatType==="days"?"7":"24",min:"1",max:f.tatType==="days"?"30":"720",value:f.tat||"",onChange:w=>{const A=[...t.approvers];A[g]={...A[g],tat:parseInt(w.target.value)||"",level:p,tatType:f.tatType||"hours"},s("approvers",A)},className:"h-10 border-2 border-gray-300 focus:border-blue-500 flex-1","data-testid":`approval-workflow-approver-${p}-tat-input`}),e.jsxs(Be,{value:f.tatType||"hours",onValueChange:w=>{const A=[...t.approvers];A[g]={...A[g],tatType:w,level:p,tat:""},s("approvers",A)},"data-testid":`approval-workflow-approver-${p}-tat-type-select`,children:[e.jsx(ze,{className:"w-20 h-10 border-2 border-gray-300",children:e.jsx(Ve,{})}),e.jsxs(He,{children:[e.jsx(K,{value:"hours",children:"Hours"}),e.jsx(K,{value:"days",children:"Days"})]})]})]})]})]})]})]})})]},p)})]})]}),e.jsxs("div",{className:"mt-6 space-y-4",children:[e.jsx("div",{className:"p-4 bg-blue-50 rounded-lg border border-blue-200",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(kn,{className:"w-5 h-5 text-blue-600 mt-0.5"}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-blue-900 mb-1",children:"Approval Flow Summary"}),e.jsxs("p",{className:"text-sm text-blue-700",children:["Your request will follow this sequence: ",e.jsx("strong",{children:"You (Initiator)"})," → ",Array.from({length:t.approverCount||1},(h,g)=>`Level ${g+1} Approver`).join(" → "),". The final approver can close the request."]})]})]})}),e.jsx("div",{className:"p-4 bg-gradient-to-r from-emerald-50 to-teal-50 rounded-lg border border-emerald-200",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(Ye,{className:"w-5 h-5 text-emerald-600 mt-0.5"}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx("h4",{className:"font-semibold text-emerald-900",children:"TAT Summary"}),e.jsx("div",{className:"text-right",children:(()=>{var p;const h=((p=t.approvers)==null?void 0:p.reduce((y,f)=>{const b=Number(f.tat||0);return(f.tatType||"hours")==="days"?y+b:y+b/24},0))||0,g=Math.ceil(h);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"text-lg font-bold text-emerald-800",children:[g," ",g===1?"Day":"Days"]}),e.jsx("div",{className:"text-xs text-emerald-600",children:"Total Duration"})]})})()})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:(u=t.approvers)==null?void 0:u.map((h,g)=>{const p=Number(h.tat||0),f=(h.tatType||"hours")==="days"?p*24:p;return p?e.jsx("div",{className:"bg-white/60 p-2 rounded border border-emerald-100",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("span",{className:"text-sm font-medium text-emerald-900",children:["Level ",g+1]}),e.jsxs("span",{className:"text-sm text-emerald-700",children:[f," ",f===1?"hour":"hours"]})]})},g):null})}),(()=>{var p;const h=((p=t.approvers)==null?void 0:p.reduce((y,f)=>{const b=Number(f.tat||0);return(f.tatType||"hours")==="days"?y+b*24:y+b},0))||0,g=Math.ceil(h/8);return h===0?null:e.jsxs("div",{className:"bg-white/80 p-3 rounded border border-emerald-200",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4 text-center",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"text-lg font-bold text-emerald-800",children:[h,"h"]}),e.jsx("div",{className:"text-xs text-emerald-600",children:"Total Hours"})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-lg font-bold text-emerald-800",children:g}),e.jsx("div",{className:"text-xs text-emerald-600",children:"Working Days*"})]})]}),e.jsx("p",{className:"text-xs text-emerald-600 mt-2 text-center",children:"*Based on 8-hour working days"})]})})()]})]})]})})]})]})]})}function kC({formData:t,updateFormData:s,onValidationError:a,initiatorEmail:r}){const[n,i]=x.useState(""),{searchResults:l,searchLoading:o,searchUsersDebounced:c,clearSearch:d,ensureUser:m}=SC(),u=p=>{if(i(p),!p||!p.startsWith("@")||p.length<2){d();return}c(p,10)},h=async p=>{var y,f;if(p){if(p.email.toLowerCase()===r.toLowerCase()){a({type:"self-assign",email:p.email,message:"You cannot add yourself as a spectator."});return}const b=t.spectators.some(w=>{var A,S;return w.userId===p.userId||((A=w.email)==null?void 0:A.toLowerCase())===((S=p.email)==null?void 0:S.toLowerCase())}),v=(y=t.approvers)==null?void 0:y.some(w=>{var A,S;return w.userId===p.userId||((A=w.email)==null?void 0:A.toLowerCase())===((S=p.email)==null?void 0:S.toLowerCase())});if(b){a({type:"error",email:p.email,message:"This user is already added as a spectator."});return}if(v){a({type:"error",email:p.email,message:"This user is already added as an approver. A user cannot be both an approver and a spectator."});return}try{const w=await m(p),A={id:w.userId,userId:w.userId,name:w.displayName||p.email.split("@")[0],email:w.email,avatar:(w.displayName||w.email).substring(0,2).toUpperCase(),role:"Spectator",department:w.department||"",level:1,canClose:!1},S=[...t.spectators,A];s("spectators",S),i(""),d()}catch{a({type:"error",email:p.email,message:"Failed to validate user. Please try again."})}}else if(n&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(n)){if(n.toLowerCase()===r.toLowerCase()){a({type:"self-assign",email:n,message:"You cannot add yourself as a spectator."});return}const b=t.spectators.some(w=>{var A;return((A=w.email)==null?void 0:A.toLowerCase())===n.toLowerCase()}),v=(f=t.approvers)==null?void 0:f.some(w=>{var A;return((A=w.email)==null?void 0:A.toLowerCase())===n.toLowerCase()});if(b){a({type:"error",email:n,message:"This user is already added as a spectator."});return}if(v){a({type:"error",email:n,message:"This user is already added as an approver. A user cannot be both an approver and a spectator."});return}}},g=p=>{const y=t.spectators.filter(f=>f.id!==p);s("spectators",y)};return e.jsxs(ms.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},className:"space-y-6","data-testid":"participants-step",children:[e.jsxs("div",{className:"text-center mb-8","data-testid":"participants-header",children:[e.jsx("div",{className:"w-16 h-16 bg-gradient-to-br from-teal-500 to-green-600 rounded-2xl flex items-center justify-center mx-auto mb-4",children:e.jsx(jt,{className:"w-8 h-8 text-white"})}),e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-2","data-testid":"participants-title",children:"Participants & Access"}),e.jsx("p",{className:"text-gray-600","data-testid":"participants-description",children:"Configure additional participants and visibility settings for your request."})]}),e.jsx("div",{className:"max-w-3xl mx-auto space-y-8","data-testid":"participants-content",children:e.jsx("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-8",children:e.jsxs(te,{"data-testid":"participants-spectators-card",children:[e.jsxs(ue,{children:[e.jsxs(he,{className:"flex items-center justify-between text-base","data-testid":"participants-spectators-title",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(jt,{className:"w-4 h-4"}),"Spectators"]}),e.jsx(le,{variant:"outline",className:"text-xs","data-testid":"participants-spectators-count",children:t.spectators.length})]}),e.jsx(Te,{children:"Users who can view and comment but cannot approve"})]}),e.jsxs(se,{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2","data-testid":"participants-spectators-add-section",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("div",{className:"relative w-full",children:[e.jsx(Se,{placeholder:"Use @ sign to add a user",value:n,onChange:p=>u(p.target.value),onKeyPress:async p=>{p.key==="Enter"&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(n)&&(p.preventDefault(),await h())},className:"text-sm w-full","data-testid":"participants-spectators-email-input"}),(o||l.length>0)&&e.jsx("div",{className:"absolute left-0 right-0 top-full mt-1 z-50 border rounded-md bg-white shadow-lg",children:o?e.jsx("div",{className:"p-2 text-xs text-gray-500",children:"Searching..."}):e.jsx("ul",{className:"max-h-56 overflow-auto divide-y",children:l.map(p=>e.jsxs("li",{className:"p-2 text-sm cursor-pointer hover:bg-gray-50",onClick:()=>h(p),"data-testid":`participants-spectators-search-result-${p.userId}`,children:[e.jsx("div",{className:"font-medium text-gray-900",children:p.displayName||p.email}),e.jsx("div",{className:"text-xs text-gray-600",children:p.email})]},p.userId))})})]}),e.jsx(M,{size:"sm",onClick:()=>h(),disabled:!n||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(n),"data-testid":"participants-spectators-add-button",children:"Add"})]}),e.jsxs("p",{className:"text-xs text-blue-600 bg-blue-50 border border-blue-200 rounded p-2 flex items-center gap-1",children:[e.jsx(kn,{className:"w-3 h-3 flex-shrink-0"}),e.jsxs("span",{children:["Use ",e.jsx("span",{className:"font-mono bg-blue-100 px-1 rounded",children:"@"})," sign to search users, or type email directly (will be validated against organization directory)"]})]})]}),e.jsx("div",{className:"space-y-2 max-h-40 overflow-y-auto","data-testid":"participants-spectators-list",children:t.spectators.map(p=>e.jsxs("div",{className:"flex items-center justify-between p-2 bg-teal-50 rounded-lg","data-testid":`participants-spectator-${p.id}`,children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(as,{className:"h-6 w-6",children:e.jsx(rs,{className:"bg-teal-600 text-white text-xs",children:p.avatar})}),e.jsx("span",{className:"text-sm font-medium",children:p.name})]}),e.jsx(M,{variant:"ghost",size:"sm",onClick:()=>g(p.id),"data-testid":`participants-spectator-${p.id}-remove`,children:e.jsx(ht,{className:"h-3 w-3"})})]},p.id))})]})]})})})]})}function RC({documentPolicy:t,isEditing:s,documents:a,existingDocuments:r,documentsToDelete:n,onDocumentsChange:i,onExistingDocumentsChange:l,onDocumentsToDeleteChange:o,onPreviewDocument:c,onDocumentErrors:d,fileInputRef:m}){const u=y=>{const f=Array.from(y.target.files||[]);if(f.length===0)return;const b=t.maxFileSizeMB*1024*1024,v=[],w=[];f.forEach(A=>{if(A.size>b){v.push({fileName:A.name,reason:`File size exceeds the maximum allowed size of ${t.maxFileSizeMB}MB. Current size: ${(A.size/1048576).toFixed(2)}MB`});return}const S=A.name.toLowerCase(),k=S.substring(S.lastIndexOf(".")+1);if(!t.allowedFileTypes.includes(k)){v.push({fileName:A.name,reason:`File type "${k}" is not allowed. Allowed types: ${t.allowedFileTypes.join(", ")}`});return}w.push(A)}),w.length>0&&i([...a,...w]),v.length>0&&d&&d(v),y.target&&(y.target.value="")},h=y=>{const f=a.filter((b,v)=>v!==y);i(f)},g=y=>{o([...n,y])},p=(y,f=!1)=>{if(f){const b=(y.fileType||y.file_type||"").toLowerCase(),v=(y.originalFileName||y.fileName||"").toLowerCase();return b.includes("image")||b.includes("pdf")||v.endsWith(".jpg")||v.endsWith(".jpeg")||v.endsWith(".png")||v.endsWith(".gif")||v.endsWith(".pdf")}else{const b=(y.type||"").toLowerCase(),v=(y.name||"").toLowerCase();return b.includes("image")||b.includes("pdf")||v.endsWith(".jpg")||v.endsWith(".jpeg")||v.endsWith(".png")||v.endsWith(".gif")||v.endsWith(".pdf")}};return e.jsxs(ms.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},className:"space-y-6","data-testid":"documents-step",children:[e.jsxs("div",{className:"text-center mb-8","data-testid":"documents-header",children:[e.jsx("div",{className:"w-16 h-16 bg-gradient-to-br from-indigo-500 to-purple-600 rounded-2xl flex items-center justify-center mx-auto mb-4",children:e.jsx(Ps,{className:"w-8 h-8 text-white"})}),e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-2","data-testid":"documents-title",children:"Documents & Attachments"}),e.jsx("p",{className:"text-gray-600","data-testid":"documents-description",children:"Upload supporting documents, files, and any additional materials for your request."})]}),e.jsxs("div",{className:"max-w-2xl mx-auto space-y-6","data-testid":"documents-content",children:[e.jsxs(te,{"data-testid":"documents-upload-card",children:[e.jsxs(ue,{children:[e.jsxs(he,{className:"flex items-center gap-2","data-testid":"documents-upload-title",children:[e.jsx(_e,{className:"w-5 h-5"}),"File Upload"]}),e.jsxs(Te,{children:["Attach supporting documents. Max ",t.maxFileSizeMB,"MB per file. Allowed types: ",t.allowedFileTypes.join(", ")]})]}),e.jsx(se,{children:e.jsxs("div",{className:"border-2 border-dashed border-gray-300 rounded-lg p-8 text-center hover:border-gray-400 transition-colors","data-testid":"documents-upload-area",children:[e.jsx(Ps,{className:"h-12 w-12 mx-auto mb-4 text-gray-400"}),e.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Upload Files"}),e.jsx("p",{className:"text-gray-600 mb-4",children:"Drag and drop files here, or click to browse"}),e.jsx("input",{type:"file",multiple:!0,accept:t.allowedFileTypes.map(y=>`.${y}`).join(","),onChange:u,className:"hidden",id:"file-upload",ref:m,"data-testid":"documents-file-input"}),e.jsxs(M,{variant:"outline",size:"lg",type:"button",onClick:()=>{var y;return(y=m.current)==null?void 0:y.click()},"data-testid":"documents-browse-button",children:[e.jsx(Us,{className:"w-4 h-4 mr-2"}),"Browse Files"]}),e.jsxs("p",{className:"text-xs text-gray-500 mt-2",children:["Supported formats: ",t.allowedFileTypes.map(y=>y.toUpperCase()).join(", ")," (Max ",t.maxFileSizeMB,"MB per file)"]})]})})]}),s&&r.length>0&&e.jsxs(te,{"data-testid":"documents-existing-card",children:[e.jsx(ue,{children:e.jsxs(he,{className:"flex items-center justify-between","data-testid":"documents-existing-title",children:[e.jsx("span",{children:"Existing Documents"}),e.jsxs(le,{variant:"secondary","data-testid":"documents-existing-count",children:[r.filter(y=>!n.includes(y.documentId||y.document_id||"")).length," file",r.filter(y=>!n.includes(y.documentId||y.document_id||"")).length!==1?"s":""]})]})}),e.jsx(se,{children:e.jsx("div",{className:"space-y-3","data-testid":"documents-existing-list",children:r.map(y=>{const f=y.documentId||y.document_id||"";return n.includes(f)?null:e.jsxs("div",{className:"flex items-center justify-between p-4 rounded-lg border bg-gray-50","data-testid":`documents-existing-${f}`,children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 bg-blue-100 rounded-lg flex items-center justify-center",children:e.jsx(_e,{className:"h-5 w-5 text-blue-600"})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-gray-900",children:y.originalFileName||y.fileName||"Document"}),e.jsx("div",{className:"flex items-center gap-3 text-sm text-gray-600",children:e.jsx("span",{children:y.fileSize?(Number(y.fileSize)/(1024*1024)).toFixed(2)+" MB":"Unknown size"})})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[p(y,!0)&&e.jsx(M,{variant:"ghost",size:"sm",onClick:()=>c(y,!0),"data-testid":`documents-existing-${f}-preview`,children:e.jsx(jt,{className:"h-4 w-4"})}),e.jsx(M,{variant:"ghost",size:"sm",onClick:()=>g(f),"data-testid":`documents-existing-${f}-delete`,children:e.jsx(ht,{className:"h-4 w-4 text-red-600"})})]})]},f)})})})]}),a.length>0&&e.jsxs(te,{"data-testid":"documents-new-card",children:[e.jsx(ue,{children:e.jsxs(he,{className:"flex items-center justify-between","data-testid":"documents-new-title",children:[e.jsx("span",{children:"New Files to Upload"}),e.jsxs(le,{variant:"secondary","data-testid":"documents-new-count",children:[a.length," file",a.length!==1?"s":""]})]})}),e.jsx(se,{children:e.jsx("div",{className:"space-y-3","data-testid":"documents-new-list",children:a.map((y,f)=>e.jsxs("div",{className:"flex items-center justify-between p-4 bg-gray-50 rounded-lg border","data-testid":`documents-new-${f}`,children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 bg-blue-100 rounded-lg flex items-center justify-center",children:e.jsx(_e,{className:"h-5 w-5 text-blue-600"})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-gray-900",children:y.name}),e.jsx("div",{className:"flex items-center gap-3 text-sm text-gray-600",children:e.jsxs("span",{children:[(y.size/(1024*1024)).toFixed(2)," MB"]})})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[p(y,!1)&&e.jsx(M,{variant:"ghost",size:"sm",onClick:()=>c(y,!1),"data-testid":`documents-new-${f}-preview`,children:e.jsx(jt,{className:"h-4 w-4"})}),e.jsx(M,{variant:"ghost",size:"sm",onClick:()=>h(f),"data-testid":`documents-new-${f}-remove`,children:e.jsx(ht,{className:"h-4 w-4"})})]})]},f))})})]})]})]})}const DC=t=>{switch(t){case"high":return e.jsx(ha,{className:"w-4 h-4 text-red-600"});case"medium":return e.jsx(_t,{className:"w-4 h-4 text-orange-600"});case"low":return e.jsx(Bs,{className:"w-4 h-4 text-green-600"});default:return e.jsx(_t,{className:"w-4 h-4 text-gray-600"})}};function PC({formData:t,selectedTemplate:s}){return e.jsxs(ms.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},className:"space-y-6","data-testid":"review-submit-step",children:[e.jsxs("div",{className:"text-center mb-8","data-testid":"review-submit-header",children:[e.jsx("div",{className:"w-16 h-16 bg-gradient-to-br from-green-500 to-teal-600 rounded-2xl flex items-center justify-center mx-auto mb-4",children:e.jsx(Ce,{className:"w-8 h-8 text-white"})}),e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-2","data-testid":"review-submit-title",children:"Review & Submit"}),e.jsx("p",{className:"text-gray-600","data-testid":"review-submit-description",children:"Please review all details before submitting your request for approval."})]}),e.jsxs("div",{className:"max-w-5xl mx-auto space-y-8","data-testid":"review-submit-content",children:[e.jsxs(te,{className:"border-2 border-green-200 bg-green-50/50","data-testid":"review-submit-overview-card",children:[e.jsx(ue,{children:e.jsxs(he,{className:"flex items-center gap-2 text-green-900","data-testid":"review-submit-overview-title",children:[e.jsx(Pu,{className:"w-5 h-5"}),"Request Overview"]})}),e.jsxs(se,{className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6","data-testid":"review-submit-overview-grid",children:[e.jsxs("div",{"data-testid":"review-submit-overview-type",children:[e.jsx(re,{className:"text-green-900 font-semibold",children:"Request Type"}),e.jsx("p",{className:"text-green-800 mt-1",children:s==null?void 0:s.name}),e.jsx(le,{variant:"outline",className:"mt-2 text-xs border-green-300 text-green-700",children:s==null?void 0:s.category})]}),e.jsxs("div",{"data-testid":"review-submit-overview-priority",children:[e.jsx(re,{className:"text-green-900 font-semibold",children:"Priority"}),e.jsxs("div",{className:"flex items-center gap-2 mt-1",children:[DC(t.priority),e.jsx("span",{className:"text-green-800 capitalize",children:t.priority})]})]}),e.jsxs("div",{"data-testid":"review-submit-overview-workflow",children:[e.jsx(re,{className:"text-green-900 font-semibold",children:"Workflow Type"}),e.jsx("p",{className:"text-green-800 mt-1 capitalize",children:t.workflowType}),e.jsxs("p",{className:"text-sm text-green-700",children:[t.approverCount||1," Level",(t.approverCount||1)>1?"s":""]})]})]}),e.jsxs("div",{"data-testid":"review-submit-overview-title",children:[e.jsx(re,{className:"text-green-900 font-semibold",children:"Request Title"}),e.jsx("p",{className:"text-green-800 font-medium mt-1 text-lg",children:t.title})]})]})]}),e.jsxs(te,{"data-testid":"review-submit-basic-info-card",children:[e.jsx(ue,{children:e.jsxs(he,{className:"flex items-center gap-2","data-testid":"review-submit-basic-info-title",children:[e.jsx(_e,{className:"w-5 h-5"}),"Basic Information"]})}),e.jsxs(se,{className:"space-y-4",children:[e.jsxs("div",{"data-testid":"review-submit-basic-info-description",children:[e.jsx(re,{className:"font-semibold",children:"Description"}),e.jsx("div",{className:"mt-1 p-3 bg-gray-50 rounded-lg border",children:e.jsx(Qs,{content:t.description||""})})]}),t.amount&&e.jsxs("div",{className:"p-3 bg-blue-50 rounded-lg border border-blue-200","data-testid":"review-submit-basic-info-financial",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(ka,{className:"w-4 h-4 text-blue-600"}),e.jsx(re,{className:"font-semibold text-blue-900",children:"Financial Details"})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-sm text-blue-700",children:"Amount"}),e.jsxs("p",{className:"font-semibold text-blue-900",children:[t.amount," ",t.currency]})]}),t.costCenter&&e.jsxs("div",{children:[e.jsx("span",{className:"text-sm text-blue-700",children:"Cost Center"}),e.jsx("p",{className:"font-medium text-blue-900",children:t.costCenter})]})]})]})]})]}),e.jsxs(te,{className:"border-2 border-orange-200 bg-orange-50/50","data-testid":"review-submit-approval-card",children:[e.jsxs(ue,{children:[e.jsxs(he,{className:"flex items-center gap-2 text-orange-900","data-testid":"review-submit-approval-title",children:[e.jsx(Mt,{className:"w-5 h-5"}),"Approval Workflow"]}),e.jsx(Te,{className:"text-orange-700",children:"Sequential approval hierarchy with TAT (Turn Around Time) for each level"})]}),e.jsx(se,{className:"space-y-6",children:e.jsx("div",{className:"space-y-4","data-testid":"review-submit-approval-levels",children:Array.from({length:t.approverCount||1},(a,r)=>{const n=r+1,i=n===(t.approverCount||1),l=t.approvers[r];return e.jsx("div",{className:"p-4 bg-white rounded-lg border border-orange-200","data-testid":`review-submit-approval-level-${n}`,children:e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("div",{className:`w-10 h-10 rounded-full flex items-center justify-center flex-shrink-0 ${l!=null&&l.email?"bg-green-600":"bg-gray-400"}`,children:e.jsx("span",{className:"text-white font-semibold",children:n})}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsxs("span",{className:"font-semibold text-gray-900",children:["Approver Level ",n]}),i&&e.jsx(le,{variant:"destructive",className:"text-xs",children:"FINAL APPROVER"})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-sm text-gray-600",children:"Email Address"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:(l==null?void 0:l.email)||"Not assigned"})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-sm text-gray-600",children:"TAT (Turn Around Time)"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:l!=null&&l.tat?`${l.tat} ${l.tatType==="days"?"day":"hour"}${l.tat!==1?"s":""}`:"Not set"})]})]})]})]})},n)})})})]}),e.jsxs(te,{"data-testid":"review-submit-participants-card",children:[e.jsx(ue,{children:e.jsxs(he,{className:"flex items-center gap-2","data-testid":"review-submit-participants-title",children:[e.jsx(jt,{className:"w-5 h-5"}),"Participants & Access Control"]})}),e.jsx(se,{className:"space-y-4",children:t.spectators.length>0&&e.jsxs("div",{"data-testid":"review-submit-participants-spectators",children:[e.jsxs(re,{className:"font-semibold text-sm",children:["Spectators (",t.spectators.length,")"]}),e.jsx("div",{className:"flex flex-wrap gap-2 mt-2",children:t.spectators.map(a=>e.jsxs(le,{variant:"outline",className:"text-xs","data-testid":`review-submit-spectator-${a.id}`,children:[a.name," (",a.email,")"]},a.id))})]})})]}),t.documents.length>0&&e.jsxs(te,{"data-testid":"review-submit-documents-card",children:[e.jsxs(ue,{children:[e.jsxs(he,{className:"flex items-center gap-2","data-testid":"review-submit-documents-title",children:[e.jsx(Ps,{className:"w-5 h-5"}),"Documents & Attachments"]}),e.jsxs(Te,{children:[t.documents.length," document",t.documents.length!==1?"s":""," attached to this request"]})]}),e.jsx(se,{children:e.jsx("div",{className:"space-y-3","data-testid":"review-submit-documents-list",children:t.documents.map((a,r)=>e.jsxs("div",{className:"flex items-center gap-3 p-3 bg-gray-50 rounded-lg border","data-testid":`review-submit-document-${r}`,children:[e.jsx(_e,{className:"w-5 h-5 text-gray-500 flex-shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"font-medium text-sm truncate",children:a.name}),e.jsx("div",{className:"flex items-center gap-3 text-xs text-gray-500 mt-1",children:e.jsxs("span",{children:[(a.size/(1024*1024)).toFixed(2)," MB"]})})]})]},r))})})]}),e.jsx(te,{className:"border-2 border-blue-200 bg-blue-50/50","data-testid":"review-submit-confirmation-card",children:e.jsx(se,{className:"pt-6",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx(Ce,{className:"w-6 h-6 text-blue-600 mt-1 flex-shrink-0"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h3",{className:"font-semibold text-blue-900 mb-2","data-testid":"review-submit-confirmation-title",children:"Ready to Submit Request"}),e.jsx("p",{className:"text-sm text-blue-700 mb-4","data-testid":"review-submit-confirmation-message",children:"Once submitted, your request will enter the approval workflow and notifications will be sent to all relevant participants."}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 text-sm","data-testid":"review-submit-confirmation-summary",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-blue-700",children:"Request Type:"}),e.jsx("p",{className:"font-medium text-blue-900",children:s==null?void 0:s.name})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-blue-700",children:"Approval Levels:"}),e.jsx("p",{className:"font-medium text-blue-900",children:t.approverCount||1})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-blue-700",children:"Documents:"}),e.jsxs("p",{className:"font-medium text-blue-900",children:[t.documents.length," attached"]})]})]})]})]})})})]})]})}function IC({isEditing:t,currentStep:s,totalSteps:a,stepNames:r,onBack:n}){return e.jsx("div",{className:"bg-white border-b border-gray-200 px-3 sm:px-6 py-3 sm:py-4 flex-shrink-0","data-testid":"create-request-header",children:e.jsxs("div",{className:"flex items-center justify-between max-w-6xl mx-auto gap-2 sm:gap-4",children:[e.jsxs("div",{className:"flex items-center gap-2 sm:gap-4 flex-1 min-w-0",children:[e.jsx(M,{variant:"ghost",size:"icon",onClick:n,className:"shrink-0 h-8 w-8 sm:h-10 sm:w-10","data-testid":"create-request-back-button",children:e.jsx(zs,{className:"h-4 w-4 sm:h-5 sm:w-5"})}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("h1",{className:"text-base sm:text-xl md:text-2xl font-bold text-gray-900 truncate","data-testid":"create-request-title",children:t?"Edit Draft":"New Request"}),e.jsxs("p",{className:"text-xs sm:text-sm text-gray-600 hidden sm:block","data-testid":"create-request-step-info",children:["Step ",s," of ",a,": ",r[s-1]]})]})]}),e.jsx("div",{className:"hidden md:flex items-center gap-4","data-testid":"create-request-progress-info",children:e.jsxs("div",{className:"text-right",children:[e.jsxs("p",{className:"text-sm font-medium text-gray-900",children:[Math.round(s/a*100),"% Complete"]}),e.jsxs("p",{className:"text-xs text-gray-600",children:[a-s," steps remaining"]})]})})]})})}function EC({children:t}){return e.jsx("div",{className:"flex-1 overflow-y-auto pb-24 sm:pb-4","data-testid":"create-request-content",children:e.jsx("div",{className:"max-w-6xl mx-auto p-3 sm:p-6 pb-6 sm:pb-6",children:e.jsx(ec,{mode:"wait",children:t})})})}function MC({modal:t,onClose:s}){return e.jsx(ct,{open:t.open,onOpenChange:a=>!a&&s(),"data-testid":"create-request-validation-modal",children:e.jsxs(lt,{className:"sm:max-w-md",children:[e.jsxs(dt,{children:[e.jsxs(ot,{className:"flex items-center gap-2","data-testid":"validation-modal-title",children:[t.type==="self-assign"&&e.jsxs(e.Fragment,{children:[e.jsx(Ge,{className:"w-5 h-5 text-amber-600"}),"Cannot Add Yourself"]}),t.type==="not-found"&&e.jsxs(e.Fragment,{children:[e.jsx(Ge,{className:"w-5 h-5 text-red-600"}),"User Not Found"]}),t.type==="error"&&e.jsxs(e.Fragment,{children:[e.jsx(Ge,{className:"w-5 h-5 text-red-600"}),"Validation Error"]})]}),e.jsx(Lt,{asChild:!0,children:e.jsxs("div",{className:"space-y-3",children:[t.type==="self-assign"&&e.jsxs(e.Fragment,{children:[e.jsxs("p",{className:"text-gray-700",children:["You cannot add yourself (",e.jsx("strong",{children:t.email}),") as an approver."]}),e.jsx("div",{className:"bg-amber-50 border border-amber-200 rounded-lg p-3",children:e.jsxs("p",{className:"text-sm text-amber-800",children:[e.jsx("strong",{children:"Why?"})," The initiator creates the request and cannot approve their own request. Please select a different user."]})})]}),t.type==="not-found"&&e.jsxs(e.Fragment,{children:[e.jsxs("p",{className:"text-gray-700",children:["User ",e.jsx("strong",{children:t.email})," was not found in the organization directory."]}),e.jsxs("div",{className:"bg-red-50 border border-red-200 rounded-lg p-3 space-y-2",children:[e.jsx("p",{className:"text-sm text-red-800 font-semibold",children:"Please verify:"}),e.jsxs("ul",{className:"text-sm text-red-700 space-y-1 list-disc list-inside",children:[e.jsx("li",{children:"Email address is spelled correctly"}),e.jsx("li",{children:"User exists in Okta/SSO system"}),e.jsx("li",{children:"User has an active account"})]})]}),e.jsx("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-3",children:e.jsxs("p",{className:"text-sm text-blue-800 flex items-center gap-1",children:[e.jsx(Ci,{className:"w-4 h-4"}),e.jsx("strong",{children:"Tip:"})," Use"," ",e.jsx("span",{className:"font-mono bg-blue-100 px-1 rounded",children:"@"})," ","sign to search and select users from the directory for guaranteed results."]})})]}),t.type==="error"&&e.jsxs(e.Fragment,{children:[e.jsxs("p",{className:"text-gray-700",children:[t.email&&e.jsxs(e.Fragment,{children:["Failed to validate ",e.jsx("strong",{children:t.email}),"."]}),!t.email&&e.jsx(e.Fragment,{children:"An error occurred during validation."})]}),t.message&&e.jsx("div",{className:"bg-gray-50 border border-gray-200 rounded-lg p-3",children:e.jsx("p",{className:"text-sm text-gray-700",children:t.message})})]})]})})]}),e.jsx(Ct,{children:e.jsx(M,{onClick:s,className:"w-full sm:w-auto","data-testid":"validation-modal-ok-button",children:t.type==="not-found"?"Fix Email":"OK"})})]})})}function FC({modal:t,documentPolicy:s,onClose:a}){return e.jsx(ct,{open:t.open,onOpenChange:r=>!r&&a(),"data-testid":"create-request-document-error-modal",children:e.jsxs(lt,{className:"sm:max-w-lg",children:[e.jsxs(dt,{children:[e.jsxs(ot,{className:"flex items-center gap-2","data-testid":"document-error-modal-title",children:[e.jsx(Ge,{className:"w-5 h-5 text-red-600"}),"Document Upload Policy Violation"]}),e.jsx(Lt,{asChild:!0,children:e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{className:"text-gray-700",children:"The following file(s) could not be uploaded due to policy violations:"}),e.jsx("div",{className:"space-y-2 max-h-60 overflow-y-auto",children:t.errors.map((r,n)=>e.jsxs("div",{className:"bg-red-50 border border-red-200 rounded-lg p-3","data-testid":`document-error-${n}`,children:[e.jsx("p",{className:"font-medium text-red-900 text-sm",children:r.fileName}),e.jsx("p",{className:"text-xs text-red-700 mt-1",children:r.reason})]},n))}),e.jsxs("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-3",children:[e.jsx("p",{className:"text-sm text-blue-800 font-semibold mb-1",children:"Document Policy:"}),e.jsxs("ul",{className:"text-xs text-blue-700 space-y-1 list-disc list-inside",children:[e.jsxs("li",{children:["Maximum file size: ",s.maxFileSizeMB,"MB"]}),e.jsxs("li",{children:["Allowed file types:"," ",s.allowedFileTypes.join(", ")]})]})]})]})})]}),e.jsx(Ct,{children:e.jsx(M,{onClick:a,className:"w-full sm:w-auto","data-testid":"document-error-modal-ok-button",children:"OK"})})]})})}function Xm({onBack:t,onSubmit:s,requestId:a,isEditMode:r=!1}){const n=gr(),i=Pa(),l=n.requestId||a||"",o=r&&!!l,{user:c}=Zt(),{formData:d,updateFormData:m,selectedTemplate:u,setSelectedTemplate:h,loadingDraft:g,systemPolicy:p,documentPolicy:y,existingDocuments:f,setExistingDocuments:b}=sC(o,l,Ym),{currentStep:v,totalSteps:w,stepNames:A,isStepValid:S,nextStep:k,prevStep:F}=aC(o,u,d),[T,D]=x.useState([]),[C,P]=x.useState([]),R=x.useRef(null),{validationModal:V,policyViolationModal:I,documentErrorModal:$,openValidationModal:_,closeValidationModal:N,openPolicyViolationModal:j,closePolicyViolationModal:U,openDocumentErrorModal:z,closeDocumentErrorModal:B}=rC(),{submitting:X,savingDraft:H,handleSubmit:oe,handleSaveDraft:Y}=mC({formData:d,selectedTemplate:u,documents:T,documentsToDelete:C,user:c,isEditing:o,editRequestId:l,onSubmit:s}),{showTemplateModal:E,setShowTemplateModal:O,previewDocument:L,selectTemplate:W,handleTemplateSelection:G,nextStep:ee,prevStep:ce,handlePreviewDocument:Pe,closePreview:Oe}=vC({selectedTemplate:u,setSelectedTemplate:h,updateFormData:m,formData:d,currentStep:v,isStepValid:S,wizardNextStep:k,wizardPrevStep:F,user:c,openValidationModal:_,systemPolicy:p,onPolicyViolation:j,onSubmit:s}),ie=x.useCallback(()=>{v===1||v===3||v===4?t?t():window.history.length>1?window.history.back():i("/dashboard",{replace:!0}):ce()},[v,t,i,ce]),de=x.useRef(!0),je=x.useRef(!1);x.useEffect(()=>{de.current&&d.documents&&d.documents.length>0&&!je.current&&(D(d.documents),je.current=!0),de.current=!1},[d.documents]);const Me=x.useRef(!1),ye=x.useRef(T);x.useEffect(()=>{if(Me.current){Me.current=!1,ye.current=T;return}ye.current!==T&&(m("documents",T),ye.current=T)},[T]);const ae=()=>{switch(v){case 1:return e.jsx(wC,{templates:Ym,selectedTemplate:u,onSelectTemplate:W});case 2:return e.jsx(AC,{formData:d,selectedTemplate:u,updateFormData:m});case 3:return e.jsx(TC,{formData:d,updateFormData:m,systemPolicy:p,onValidationError:ne=>_(ne.type,ne.email,ne.message),onPolicyViolation:j});case 4:return e.jsx(kC,{formData:d,updateFormData:m,onValidationError:ne=>_(ne.type,ne.email,ne.message),initiatorEmail:(c==null?void 0:c.email)||""});case 5:return e.jsx(RC,{documentPolicy:y,isEditing:o,documents:T,existingDocuments:f,documentsToDelete:C,onDocumentsChange:D,onExistingDocumentsChange:b,onDocumentsToDeleteChange:P,onPreviewDocument:Pe,onDocumentErrors:ne=>z(ne),fileInputRef:R});case 6:return e.jsx(PC,{formData:d,selectedTemplate:u});default:return null}};return g?e.jsx("div",{className:"min-h-screen bg-gray-50 flex items-center justify-center","data-testid":"create-request-loading",children:e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto mb-4"}),e.jsx("p",{className:"text-gray-600",children:"Loading draft..."})]})}):e.jsxs("div",{className:"h-full flex flex-col bg-gradient-to-br from-gray-50 to-white","data-testid":"create-request",children:[e.jsx(IC,{isEditing:o,currentStep:v,totalSteps:w,stepNames:A,onBack:ie}),e.jsx(bC,{currentStep:v,totalSteps:w,stepNames:A}),e.jsx(EC,{children:ae()}),e.jsx(jC,{currentStep:v,totalSteps:w,isStepValid:S(),onPrev:ce,onNext:ee,onSubmit:oe,onSaveDraft:Y,submitting:X,savingDraft:H,loadingDraft:g,isEditing:o}),e.jsx(Z1,{open:E,onClose:()=>O(!1),onSelectTemplate:G}),L&&e.jsx(dc,{fileName:L.fileName,fileType:L.fileType,fileUrl:L.fileUrl,fileSize:L.fileSize,open:!!L,onClose:Oe,onDownload:async()=>{if(L.file){const ne=document.createElement("a");ne.href=L.fileUrl,ne.download=L.fileName,document.body.appendChild(ne),ne.click(),document.body.removeChild(ne)}else L.documentId&&await pr(L.documentId)},attachmentId:L.documentId}),e.jsx(MC,{modal:V,onClose:N}),e.jsx(FC,{modal:$,documentPolicy:y,onClose:B}),e.jsx(Fn,{open:I.open,onClose:U,violations:I.violations,policyDetails:{maxApprovalLevels:p.maxApprovalLevels,maxParticipants:p.maxParticipants,allowSpectators:p.allowSpectators,maxSpectators:p.maxSpectators}})]})}function Vr({className:t,...s}){return e.jsx(Bg,{"data-slot":"tabs",className:we("flex flex-col gap-2",t),...s})}function zr({className:t,...s}){return e.jsx(Vg,{"data-slot":"tabs-list",className:we("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-xl p-[3px] flex",t),...s})}function vt({className:t,...s}){return e.jsx(zg,{"data-slot":"tabs-trigger",className:we("data-[state=active]:bg-card dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-xl border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),...s})}function bt({className:t,...s}){return e.jsx(Hg,{"data-slot":"tabs-content",className:we("flex-1 outline-none",t),...s})}const qx={"RE-REQ-2024-001":{id:"RE-REQ-2024-001",title:"Himalayan 450 Launch Campaign - Digital Media Blitz",description:`Comprehensive digital marketing campaign for Himalayan 450 adventure motorcycle launch. Includes social media campaigns, influencer partnerships, performance marketing, content creation, and digital advertising across platforms. Target: Reach 10M adventure enthusiasts across India.
|
||
|
||
Equipment Specifications:
|
||
• 10x MacBook Pro 16-inch (M2 Pro chip)
|
||
• 5x Professional Camera Kits (Canon EOS R5)
|
||
• Video Editing Workstations
|
||
• Social Media Management Tools`,category:"Marketing & Campaigns",subcategory:"Digital Marketing",status:"pending",priority:"express",amount:"₹3,75,00,000",slaProgress:65,slaRemaining:"8 hours 45 minutes",slaEndDate:"Oct 9, 2024 5:00 PM",currentStep:1,totalSteps:3,template:"custom",initiator:{name:"Priya Sharma",role:"Senior Digital Marketing Manager",department:"Marketing",email:"priya.sharma@royalenfield.com",phone:"+91 98765 43210",avatar:"PS"},department:"Marketing",createdAt:"Oct 6, 2024 10:30 AM",updatedAt:"Oct 7, 2024 2:15 PM",dueDate:"2024-10-09T17:00:00Z",conclusionRemark:"",approvalFlow:[{step:1,approver:"Rajesh Kumar",role:"Marketing Director - India",status:"pending",tatHours:24,elapsedHours:22,assignedAt:"2024-10-06T10:30:00Z",comment:null,timestamp:null},{step:2,approver:"Amit Desai",role:"VP Product Marketing",status:"waiting",tatHours:48,elapsedHours:0,assignedAt:null,comment:null,timestamp:null},{step:3,approver:"Deepika Sharma",role:"VP Sales & Marketing",status:"waiting",tatHours:72,elapsedHours:0,assignedAt:null,comment:null,timestamp:null}],documents:[{name:"Himalayan_450_Digital_Strategy.pdf",size:"5.2 MB",type:"PDF",uploadedBy:"Priya Sharma",uploadedAt:"Oct 6, 2024 10:45 AM"},{name:"Budget_Breakdown_Q4_2024.xlsx",size:"980 KB",type:"Excel",uploadedBy:"Priya Sharma",uploadedAt:"Oct 6, 2024 11:15 AM"},{name:"Influencer_Partnership_List.xlsx",size:"450 KB",type:"Excel",uploadedBy:"Marketing Team",uploadedAt:"Oct 6, 2024 2:30 PM"},{name:"Creative_Campaign_Assets.zip",size:"125 MB",type:"ZIP",uploadedBy:"Creative Team",uploadedAt:"Oct 6, 2024 4:15 PM"}],spectators:[{name:"Sarah Khan",role:"Brand Strategy Lead",avatar:"SK"},{name:"Finance Team",role:"Budget Approval",avatar:"FT"}],auditTrail:[{type:"created",action:"Request Created",details:"New digital marketing campaign request submitted",user:"Priya Sharma",timestamp:"Oct 6, 2024 10:30 AM"},{type:"assignment",action:"Assigned to Rajesh Kumar",details:"Forwarded to Marketing Director for review",user:"System",timestamp:"Oct 6, 2024 10:31 AM"},{type:"comment",action:"Work Note Added",details:"Reviewed budget allocation and target metrics",user:"Rajesh Kumar",timestamp:"Oct 7, 2024 2:15 PM"},{type:"reminder",action:"SLA Reminder",details:"TAT approaching - 8 hours remaining",user:"System",timestamp:"Oct 7, 2024 8:15 AM"}],tags:["digital-marketing","launch-campaign","himalayan-450","high-priority"]},"RE-REQ-2024-002":{id:"RE-REQ-2024-002",title:"New Laptop Procurement - Design Team Expansion",description:"Purchase of 10 high-performance laptops for the newly expanded Product Design team. Required specifications: Latest generation processor, 32GB RAM, dedicated graphics card for 3D modeling and rendering work.",category:"IT & Infrastructure",subcategory:"Hardware Procurement",status:"in-review",priority:"standard",amount:"₹12,50,000",slaProgress:45,slaRemaining:"2 days 8 hours",slaEndDate:"Oct 11, 2024 5:00 PM",currentStep:2,totalSteps:3,template:"custom",initiator:{name:"Vikram Singh",role:"Head - IT Operations",department:"Information Technology",email:"vikram.singh@royalenfield.com",phone:"+91 98765 43221",avatar:"VS"},department:"Information Technology",createdAt:"Oct 5, 2024 9:15 AM",updatedAt:"Oct 7, 2024 3:45 PM",dueDate:"2024-10-11T17:00:00Z",conclusionRemark:"",approvalFlow:[{step:1,approver:"Meera Patel",role:"IT Manager",status:"approved",tatHours:24,actualHours:18,assignedAt:"2024-10-05T09:15:00Z",comment:"Technical specifications verified. Hardware meets design team requirements.",timestamp:"2024-10-06T03:15:00Z"},{step:2,approver:"Anil Kapoor",role:"Finance Manager",status:"in-review",tatHours:48,elapsedHours:32,assignedAt:"2024-10-06T03:15:00Z",comment:null,timestamp:null},{step:3,approver:"Ramesh Kulkarni",role:"VP Operations",status:"waiting",tatHours:72,elapsedHours:0,assignedAt:null,comment:null,timestamp:null}],documents:[{name:"Laptop_Specifications.pdf",size:"850 KB",type:"PDF",uploadedBy:"Vikram Singh",uploadedAt:"Oct 5, 2024 9:20 AM"},{name:"Vendor_Quotations.xlsx",size:"1.2 MB",type:"Excel",uploadedBy:"Procurement Team",uploadedAt:"Oct 5, 2024 11:45 AM"},{name:"Team_Expansion_Plan.pdf",size:"620 KB",type:"PDF",uploadedBy:"Design Team",uploadedAt:"Oct 5, 2024 2:30 PM"}],spectators:[{name:"Design Team Lead",role:"End Users",avatar:"DT"},{name:"Procurement Team",role:"Vendor Management",avatar:"PT"}],auditTrail:[{type:"created",action:"Request Created",details:"Laptop procurement request for design team",user:"Vikram Singh",timestamp:"Oct 5, 2024 9:15 AM"},{type:"assignment",action:"Assigned to Meera Patel",details:"IT Manager to verify specifications",user:"System",timestamp:"Oct 5, 2024 9:16 AM"},{type:"approval",action:"Approved by Meera Patel",details:"Technical specifications approved",user:"Meera Patel",timestamp:"Oct 6, 2024 3:15 AM"},{type:"assignment",action:"Assigned to Anil Kapoor",details:"Forwarded to Finance for budget approval",user:"System",timestamp:"Oct 6, 2024 3:15 AM"}],tags:["hardware","procurement","design-team","laptops"]},"RE-REQ-2024-003":{id:"RE-REQ-2024-003",title:"Annual Service Center Expansion - Western Region",description:"Proposal for opening 15 new authorized service centers across tier-2 cities in Western region. Includes infrastructure setup, technician training, spare parts inventory, and marketing support. Expected to improve service accessibility by 35% in the target region.",category:"Operations & Expansion",subcategory:"Service Network",status:"pending",priority:"standard",amount:"₹8,75,00,000",slaProgress:78,slaRemaining:"1 day 4 hours",slaEndDate:"Oct 10, 2024 5:00 PM",currentStep:1,totalSteps:4,template:"custom",initiator:{name:"Sanjay Reddy",role:"Regional Service Manager - West",department:"After Sales Service",email:"sanjay.reddy@royalenfield.com",phone:"+91 98765 43232",avatar:"SR"},department:"After Sales Service",createdAt:"Oct 3, 2024 8:45 AM",updatedAt:"Oct 6, 2024 5:45 PM",dueDate:"2024-10-10T17:00:00Z",conclusionRemark:"",approvalFlow:[{step:1,approver:"Ramesh Kulkarni",role:"Head - After Sales Service",status:"pending",tatHours:72,elapsedHours:85,assignedAt:"2024-10-03T08:45:00Z",comment:null,timestamp:null},{step:2,approver:"Finance Team",role:"Budget Allocation",status:"waiting",tatHours:96,elapsedHours:0,assignedAt:null,comment:null,timestamp:null},{step:3,approver:"Legal Team",role:"Compliance Review",status:"waiting",tatHours:120,elapsedHours:0,assignedAt:null,comment:null,timestamp:null},{step:4,approver:"Deepika Sharma",role:"VP Sales & Marketing",status:"waiting",tatHours:72,elapsedHours:0,assignedAt:null,comment:null,timestamp:null}],documents:[{name:"Western_Region_Expansion_Plan.pdf",size:"7.5 MB",type:"PDF",uploadedBy:"Sanjay Reddy",uploadedAt:"Oct 3, 2024 9:00 AM"},{name:"Service_Center_Requirements.xlsx",size:"2.8 MB",type:"Excel",uploadedBy:"Planning Team",uploadedAt:"Oct 3, 2024 11:30 AM"},{name:"Customer_Demand_Analysis.pptx",size:"4.2 MB",type:"PowerPoint",uploadedBy:"Analytics Team",uploadedAt:"Oct 4, 2024 2:15 PM"},{name:"ROI_Projections_Service_Network.xlsx",size:"1.9 MB",type:"Excel",uploadedBy:"Finance Team",uploadedAt:"Oct 5, 2024 10:45 AM"}],spectators:[{name:"Regional Managers",role:"Service Operations",avatar:"RM"},{name:"Training Team",role:"Technician Development",avatar:"TT"}],auditTrail:[{type:"created",action:"Request Created",details:"Service center expansion proposal submitted",user:"Sanjay Reddy",timestamp:"Oct 3, 2024 8:45 AM"},{type:"assignment",action:"Assigned to Ramesh Kulkarni",details:"Forwarded to Head of After Sales Service",user:"System",timestamp:"Oct 3, 2024 8:46 AM"},{type:"reminder",action:"Reminder Sent",details:"TAT breach reminder sent to approver",user:"System",timestamp:"Oct 6, 2024 5:45 PM"},{type:"updated",action:"Additional Documents",details:"ROI projections added by finance team",user:"Finance Team",timestamp:"Oct 5, 2024 10:45 AM"}],tags:["service-expansion","western-region","tier2-cities","overdue"]},"RE-REQ-2024-004":{id:"RE-REQ-2024-004",title:"Employee Training Program - Advanced Motorcycle Mechanics",description:"Comprehensive training program for 50 service center technicians covering advanced diagnostics, electrical systems, fuel injection troubleshooting, and customer service excellence. Program duration: 3 weeks. Includes certification upon completion.",category:"Human Resources",subcategory:"Training & Development",status:"approved",priority:"standard",amount:"₹18,50,000",slaProgress:100,slaRemaining:"Completed",slaEndDate:"Oct 5, 2024 5:00 PM",currentStep:3,totalSteps:3,template:"custom",initiator:{name:"Kavita Menon",role:"Training Manager",department:"Human Resources",email:"kavita.menon@royalenfield.com",phone:"+91 98765 43243",avatar:"KM"},department:"Human Resources",createdAt:"Sep 28, 2024 11:00 AM",updatedAt:"Oct 5, 2024 4:30 PM",dueDate:"2024-10-05T17:00:00Z",submittedDate:"2024-09-28T11:00:00Z",estimatedCompletion:"Oct 5, 2024",currentApprover:"Completed",approverLevel:"3 of 3",conclusionRemark:"All approvals completed. Training program scheduled for November 2024.",approvalFlow:[{step:1,approver:"Ramesh Kulkarni",role:"Head - After Sales Service",status:"approved",tatHours:48,actualHours:36,assignedAt:"2024-09-28T11:00:00Z",comment:"Excellent initiative. Training content approved.",timestamp:"Sep 29, 2024 11:00 PM"},{step:2,approver:"Anil Kapoor",role:"Finance Manager",status:"approved",tatHours:72,actualHours:48,assignedAt:"2024-09-29T23:00:00Z",comment:"Budget approved. Cost per participant is reasonable.",timestamp:"Oct 1, 2024 11:00 PM"},{step:3,approver:"Deepika Sharma",role:"VP Sales & Marketing",status:"approved",tatHours:96,actualHours:72,assignedAt:"2024-10-01T23:00:00Z",comment:"Final approval granted. Proceed with program execution.",timestamp:"Oct 5, 2024 4:30 PM"}],documents:[{name:"Training_Curriculum.pdf",size:"3.2 MB",type:"PDF",uploadedBy:"Kavita Menon",uploadedAt:"Sep 28, 2024 11:15 AM"},{name:"Trainer_Profiles.pdf",size:"1.8 MB",type:"PDF",uploadedBy:"HR Team",uploadedAt:"Sep 28, 2024 2:45 PM"},{name:"Budget_Training_Program.xlsx",size:"680 KB",type:"Excel",uploadedBy:"Finance Team",uploadedAt:"Sep 29, 2024 10:30 AM"}],spectators:[{name:"Service Center Managers",role:"Participant Coordination",avatar:"SC"},{name:"Quality Assurance",role:"Training Quality",avatar:"QA"}],auditTrail:[{type:"created",action:"Request Created",details:"Training program proposal submitted",user:"Kavita Menon",timestamp:"Sep 28, 2024 11:00 AM"},{type:"assignment",action:"Assigned to Ramesh Kulkarni",details:"Forwarded to After Sales Service Head",user:"System",timestamp:"Sep 28, 2024 11:01 AM"},{type:"approval",action:"Approved by Ramesh Kulkarni",details:"Level 1 approval completed",user:"Ramesh Kulkarni",timestamp:"Sep 29, 2024 11:00 PM"},{type:"assignment",action:"Assigned to Anil Kapoor",details:"Forwarded to Finance Manager",user:"System",timestamp:"Sep 29, 2024 11:01 PM"},{type:"approval",action:"Approved by Anil Kapoor",details:"Budget approval completed",user:"Anil Kapoor",timestamp:"Oct 1, 2024 11:00 PM"},{type:"assignment",action:"Assigned to Deepika Sharma",details:"Forwarded to VP for final approval",user:"System",timestamp:"Oct 1, 2024 11:01 PM"},{type:"approval",action:"Approved by Deepika Sharma",details:"Final approval - Request completed",user:"Deepika Sharma",timestamp:"Oct 5, 2024 4:30 PM"},{type:"completed",action:"Request Completed",details:"All approvals obtained. Training scheduled.",user:"System",timestamp:"Oct 5, 2024 4:31 PM"}],tags:["training","technicians","approved","completed"]},"RE-REQ-2024-005":{id:"RE-REQ-2024-005",title:"Showroom Renovation - Chennai Flagship Store",description:"Complete renovation of Chennai flagship showroom including modern interior design, interactive display zones, customer lounge upgrade, motorcycle test ride facility, and digital experience center. Project timeline: 8 weeks.",category:"Infrastructure",subcategory:"Retail & Showroom",status:"rejected",priority:"standard",amount:"₹65,00,000",slaProgress:100,slaRemaining:"Rejected",slaEndDate:"Oct 4, 2024 5:00 PM",currentStep:2,totalSteps:4,template:"custom",initiator:{name:"Arjun Nair",role:"Showroom Manager - South",department:"Retail Operations",email:"arjun.nair@royalenfield.com",phone:"+91 98765 43254",avatar:"AN"},department:"Retail Operations",createdAt:"Oct 1, 2024 9:30 AM",updatedAt:"Oct 4, 2024 3:15 PM",dueDate:"2024-10-04T17:00:00Z",submittedDate:"2024-10-01T09:30:00Z",estimatedCompletion:"N/A",currentApprover:"Rejected by Anil Kapoor",approverLevel:"2 of 4",conclusionRemark:"Request rejected due to insufficient budget justification. Please revise with detailed ROI analysis.",approvalFlow:[{step:1,approver:"Suresh Iyer",role:"Regional Manager - South",status:"approved",tatHours:48,actualHours:24,assignedAt:"2024-10-01T09:30:00Z",comment:"Renovation is necessary. Current showroom needs upgrade.",timestamp:"Oct 2, 2024 9:30 AM"},{step:2,approver:"Anil Kapoor",role:"Finance Manager",status:"rejected",tatHours:72,actualHours:48,assignedAt:"2024-10-02T09:30:00Z",comment:"Budget allocation not justified. Need detailed ROI analysis and comparison with alternative renovation options. Please revise and resubmit with comprehensive financial projections.",timestamp:"Oct 4, 2024 3:15 PM"},{step:3,approver:"Legal Team",role:"Compliance & Contracts",status:"cancelled",tatHours:96,elapsedHours:0,assignedAt:null,comment:null,timestamp:null},{step:4,approver:"Ramesh Kulkarni",role:"VP Operations",status:"cancelled",tatHours:72,elapsedHours:0,assignedAt:null,comment:null,timestamp:null}],documents:[{name:"Showroom_Renovation_Plan.pdf",size:"12.5 MB",type:"PDF",uploadedBy:"Arjun Nair",uploadedAt:"Oct 1, 2024 9:45 AM"},{name:"Interior_Design_Mockups.zip",size:"85 MB",type:"ZIP",uploadedBy:"Design Team",uploadedAt:"Oct 1, 2024 2:30 PM"},{name:"Contractor_Quotations.xlsx",size:"2.1 MB",type:"Excel",uploadedBy:"Procurement Team",uploadedAt:"Oct 2, 2024 11:15 AM"}],spectators:[{name:"Marketing Team",role:"Brand Experience",avatar:"MT"},{name:"Customer Experience",role:"Feedback & Analysis",avatar:"CX"}],auditTrail:[{type:"created",action:"Request Created",details:"Showroom renovation request submitted",user:"Arjun Nair",timestamp:"Oct 1, 2024 9:30 AM"},{type:"assignment",action:"Assigned to Suresh Iyer",details:"Forwarded to Regional Manager",user:"System",timestamp:"Oct 1, 2024 9:31 AM"},{type:"approval",action:"Approved by Suresh Iyer",details:"Level 1 approval completed",user:"Suresh Iyer",timestamp:"Oct 2, 2024 9:30 AM"},{type:"assignment",action:"Assigned to Anil Kapoor",details:"Forwarded to Finance Manager",user:"System",timestamp:"Oct 2, 2024 9:31 AM"},{type:"rejection",action:"Rejected by Anil Kapoor",details:"Budget justification insufficient",user:"Anil Kapoor",timestamp:"Oct 4, 2024 3:15 PM"},{type:"completed",action:"Request Rejected",details:"Workflow terminated. Requires resubmission with revisions.",user:"System",timestamp:"Oct 4, 2024 3:16 PM"}],tags:["showroom","renovation","rejected","south-region"]},"RE-REQ-2024-006":{id:"RE-REQ-2024-006",title:"Spare Parts Inventory Optimization System",description:"Implementation of AI-powered inventory management system for spare parts across all service centers. Features include demand forecasting, automated reordering, stock level optimization, and real-time tracking. Expected to reduce inventory costs by 20% and improve part availability.",category:"Technology & Innovation",subcategory:"Software Implementation",status:"pending",priority:"express",amount:"₹42,00,000",slaProgress:35,slaRemaining:"1 day 16 hours",slaEndDate:"Oct 12, 2024 5:00 PM",currentStep:1,totalSteps:4,template:"custom",initiator:{name:"Rahul Deshmukh",role:"Head - Supply Chain Technology",department:"Supply Chain",email:"rahul.deshmukh@royalenfield.com",phone:"+91 98765 43265",avatar:"RD"},department:"Supply Chain",createdAt:"Oct 7, 2024 10:00 AM",updatedAt:"Oct 8, 2024 9:15 AM",dueDate:"2024-10-12T17:00:00Z",submittedDate:"2024-10-07T10:00:00Z",estimatedCompletion:"Oct 12, 2024",currentApprover:"Vikram Singh",approverLevel:"1 of 4",conclusionRemark:"",approvalFlow:[{step:1,approver:"Vikram Singh",role:"Head - IT Operations",status:"pending",tatHours:48,elapsedHours:23,assignedAt:"2024-10-07T10:00:00Z",comment:null,timestamp:null},{step:2,approver:"Supply Chain Director",role:"Operations Approval",status:"waiting",tatHours:72,elapsedHours:0,assignedAt:null,comment:null,timestamp:null},{step:3,approver:"Anil Kapoor",role:"Finance Manager",status:"waiting",tatHours:96,elapsedHours:0,assignedAt:null,comment:null,timestamp:null},{step:4,approver:"Ramesh Kulkarni",role:"VP Operations",status:"waiting",tatHours:72,elapsedHours:0,assignedAt:null,comment:null,timestamp:null}],documents:[{name:"AI_Inventory_System_Proposal.pdf",size:"8.9 MB",type:"PDF",uploadedBy:"Rahul Deshmukh",uploadedAt:"Oct 7, 2024 10:15 AM"},{name:"Vendor_Comparison_Analysis.xlsx",size:"3.4 MB",type:"Excel",uploadedBy:"IT Procurement",uploadedAt:"Oct 7, 2024 2:45 PM"},{name:"Cost_Benefit_Analysis.pptx",size:"6.2 MB",type:"PowerPoint",uploadedBy:"Analytics Team",uploadedAt:"Oct 7, 2024 4:30 PM"},{name:"Implementation_Timeline.pdf",size:"1.5 MB",type:"PDF",uploadedBy:"Project Management",uploadedAt:"Oct 8, 2024 9:15 AM"}],spectators:[{name:"Service Center Network",role:"End Users",avatar:"SN"},{name:"Data Analytics Team",role:"System Integration",avatar:"DA"}],auditTrail:[{type:"created",action:"Request Created",details:"AI inventory system proposal submitted",user:"Rahul Deshmukh",timestamp:"Oct 7, 2024 10:00 AM"},{type:"assignment",action:"Assigned to Vikram Singh",details:"Forwarded to IT Operations Head",user:"System",timestamp:"Oct 7, 2024 10:01 AM"},{type:"updated",action:"Documents Added",details:"Implementation timeline document uploaded",user:"Project Management",timestamp:"Oct 8, 2024 9:15 AM"}],tags:["technology","ai","inventory","supply-chain","high-priority"]},"RE-REQ-2024-007":{id:"RE-REQ-2024-007",title:"Dealer Network Meeting - Q4 Business Review",description:"Quarterly business review meeting for all authorized dealers across India. Venue: Bangalore. Topics include Q3 performance review, Q4 targets, new model launches, marketing initiatives, service excellence programs, and dealer support policies. Expected attendance: 250 dealers.",category:"Events & Conferences",subcategory:"Dealer Meetings",status:"in-review",priority:"standard",amount:"₹28,50,000",slaProgress:58,slaRemaining:"1 day 12 hours",slaEndDate:"Oct 11, 2024 5:00 PM",currentStep:2,totalSteps:3,template:"custom",initiator:{name:"Neha Kapoor",role:"Dealer Network Manager",department:"Sales & Distribution",email:"neha.kapoor@royalenfield.com",phone:"+91 98765 43276",avatar:"NK"},department:"Sales & Distribution",createdAt:"Oct 6, 2024 2:00 PM",updatedAt:"Oct 8, 2024 11:30 AM",dueDate:"2024-10-11T17:00:00Z",submittedDate:"2024-10-06T14:00:00Z",estimatedCompletion:"Oct 11, 2024",currentApprover:"Anil Kapoor",approverLevel:"2 of 3",conclusionRemark:"",approvalFlow:[{step:1,approver:"Suresh Mehta",role:"Sales Director",status:"approved",tatHours:48,actualHours:36,assignedAt:"2024-10-06T14:00:00Z",comment:"Dealer meeting approved. Agenda looks comprehensive.",timestamp:"Oct 8, 2024 2:00 AM"},{step:2,approver:"Anil Kapoor",role:"Finance Manager",status:"in-review",tatHours:72,elapsedHours:33,assignedAt:"2024-10-08T02:00:00Z",comment:null,timestamp:null},{step:3,approver:"Deepika Sharma",role:"VP Sales & Marketing",status:"waiting",tatHours:48,elapsedHours:0,assignedAt:null,comment:null,timestamp:null}],documents:[{name:"Q4_Dealer_Meeting_Agenda.pdf",size:"2.8 MB",type:"PDF",uploadedBy:"Neha Kapoor",uploadedAt:"Oct 6, 2024 2:15 PM"},{name:"Venue_Booking_Confirmation.pdf",size:"980 KB",type:"PDF",uploadedBy:"Events Team",uploadedAt:"Oct 6, 2024 4:45 PM"},{name:"Event_Budget_Breakdown.xlsx",size:"1.2 MB",type:"Excel",uploadedBy:"Finance Team",uploadedAt:"Oct 7, 2024 10:30 AM"},{name:"Dealer_Invitations_List.xlsx",size:"580 KB",type:"Excel",uploadedBy:"Sales Team",uploadedAt:"Oct 7, 2024 3:15 PM"}],spectators:[{name:"Marketing Team",role:"Presentation Support",avatar:"MT"},{name:"Events Management",role:"Logistics Coordination",avatar:"EM"}],auditTrail:[{type:"created",action:"Request Created",details:"Dealer meeting proposal submitted",user:"Neha Kapoor",timestamp:"Oct 6, 2024 2:00 PM"},{type:"assignment",action:"Assigned to Suresh Mehta",details:"Forwarded to Sales Director",user:"System",timestamp:"Oct 6, 2024 2:01 PM"},{type:"approval",action:"Approved by Suresh Mehta",details:"Sales approval completed",user:"Suresh Mehta",timestamp:"Oct 8, 2024 2:00 AM"},{type:"assignment",action:"Assigned to Anil Kapoor",details:"Forwarded to Finance Manager",user:"System",timestamp:"Oct 8, 2024 2:01 AM"},{type:"updated",action:"Documents Added",details:"Dealer invitations list uploaded",user:"Sales Team",timestamp:"Oct 7, 2024 3:15 PM"}],tags:["dealer-meeting","q4-review","event","bangalore"]},"RE-REQ-2024-008":{id:"RE-REQ-2024-008",title:"Cybersecurity Infrastructure Upgrade",description:"Comprehensive upgrade of cybersecurity infrastructure including next-gen firewall, intrusion detection system, endpoint protection for 500+ devices, security information and event management (SIEM) system, and employee security awareness training. Critical for protecting customer data and business operations.",category:"IT & Infrastructure",subcategory:"Security & Compliance",status:"pending",priority:"urgent",amount:"₹52,00,000",slaProgress:82,slaRemaining:"4 hours 20 minutes",slaEndDate:"Oct 8, 2024 6:00 PM",currentStep:2,totalSteps:3,template:"custom",initiator:{name:"Sameer Joshi",role:"Chief Information Security Officer",department:"Information Technology",email:"sameer.joshi@royalenfield.com",phone:"+91 98765 43287",avatar:"SJ"},department:"Information Technology",createdAt:"Oct 5, 2024 11:30 AM",updatedAt:"Oct 8, 2024 12:45 PM",dueDate:"2024-10-08T18:00:00Z",submittedDate:"2024-10-05T11:30:00Z",estimatedCompletion:"Oct 8, 2024",currentApprover:"Anil Kapoor",approverLevel:"2 of 3",conclusionRemark:"",approvalFlow:[{step:1,approver:"Vikram Singh",role:"Head - IT Operations",status:"approved",tatHours:24,actualHours:18,assignedAt:"2024-10-05T11:30:00Z",comment:"Critical security upgrade. Approve immediately.",timestamp:"Oct 6, 2024 5:30 AM"},{step:2,approver:"Anil Kapoor",role:"Finance Manager",status:"pending",tatHours:48,elapsedHours:55,assignedAt:"2024-10-06T05:30:00Z",comment:null,timestamp:null},{step:3,approver:"Ramesh Kulkarni",role:"VP Operations",status:"waiting",tatHours:72,elapsedHours:0,assignedAt:null,comment:null,timestamp:null}],documents:[{name:"Security_Assessment_Report.pdf",size:"15.3 MB",type:"PDF",uploadedBy:"Sameer Joshi",uploadedAt:"Oct 5, 2024 11:45 AM"},{name:"Vendor_Solutions_Comparison.xlsx",size:"4.8 MB",type:"Excel",uploadedBy:"IT Security Team",uploadedAt:"Oct 5, 2024 3:30 PM"},{name:"Implementation_Roadmap.pptx",size:"7.6 MB",type:"PowerPoint",uploadedBy:"Project Management",uploadedAt:"Oct 6, 2024 10:15 AM"},{name:"Risk_Analysis_Report.pdf",size:"5.9 MB",type:"PDF",uploadedBy:"Security Consultant",uploadedAt:"Oct 6, 2024 4:45 PM"}],spectators:[{name:"Legal & Compliance",role:"Data Protection",avatar:"LC"},{name:"IT Infrastructure",role:"System Integration",avatar:"IT"}],auditTrail:[{type:"created",action:"Request Created",details:"Cybersecurity upgrade proposal submitted",user:"Sameer Joshi",timestamp:"Oct 5, 2024 11:30 AM"},{type:"assignment",action:"Assigned to Vikram Singh",details:"Forwarded to IT Operations Head",user:"System",timestamp:"Oct 5, 2024 11:31 AM"},{type:"approval",action:"Approved by Vikram Singh",details:"IT approval - marked as critical",user:"Vikram Singh",timestamp:"Oct 6, 2024 5:30 AM"},{type:"assignment",action:"Assigned to Anil Kapoor",details:"Forwarded to Finance Manager",user:"System",timestamp:"Oct 6, 2024 5:31 AM"},{type:"reminder",action:"Urgent Reminder",details:"TAT breach warning - 4 hours remaining",user:"System",timestamp:"Oct 8, 2024 12:45 PM"}],tags:["cybersecurity","urgent","critical","infrastructure","overdue"]}},_C={"RE-REQ-2024-CM-001":{id:"RE-REQ-2024-CM-001",title:"Dealer Marketing Activity Claim - Diwali Festival Campaign",description:"Claim request for dealer-led Diwali festival marketing campaign including showroom decoration, test ride events, customer engagement activities, and promotional merchandise distribution. Activity conducted at Royal Motors Mumbai dealership.",category:"Dealer Operations",subcategory:"Claim Management",status:"pending",priority:"standard",amount:"TBD",slaProgress:35,slaRemaining:"4 days 12 hours",slaEndDate:"Oct 16, 2024 5:00 PM",currentStep:1,totalSteps:8,template:"claim-management",templateName:"Claim Management",initiator:{name:"Sneha Patil",role:"Regional Marketing Coordinator",department:"Marketing - West Zone",email:"sneha.patil@royalenfield.com",phone:"+91 98765 43250",avatar:"SP"},department:"Marketing - West Zone",createdAt:"Oct 7, 2024 9:30 AM",updatedAt:"Oct 7, 2024 9:30 AM",dueDate:"2024-10-16T17:00:00Z",conclusionRemark:"",claimDetails:{activityName:"Diwali Festival Campaign 2024",activityType:"Marketing Activity",activityDate:"Oct 5, 2024",location:"Mumbai, Maharashtra",dealerCode:"RE-MH-001",dealerName:"Royal Motors Mumbai",dealerEmail:"dealer@royalmotorsmumbai.com",dealerPhone:"+91 98765 12345",dealerAddress:"123 Main Street, Andheri West, Mumbai, Maharashtra 400053",requestDescription:"Marketing campaign for Diwali festival including showroom decoration, test ride events, customer engagement activities, and promotional merchandise distribution at Royal Motors Mumbai dealership.",estimatedBudget:"₹2,45,000",periodStart:"Oct 1, 2024",periodEnd:"Oct 10, 2024"},approvalFlow:[{step:1,approver:"Royal Motors Mumbai (Dealer)",role:"Dealer - Document Upload",status:"pending",tatHours:72,elapsedHours:12,assignedAt:"2024-10-07T09:30:00Z",comment:null,timestamp:null,description:"Dealer uploads proposal document, cost breakup, timeline for closure, and other supporting documents"},{step:2,approver:"Sneha Patil (Initiator)",role:"Initiator Evaluation",status:"waiting",tatHours:48,elapsedHours:0,assignedAt:null,comment:null,timestamp:null,description:"Initiator reviews dealer documents and approves or requests modifications"},{step:3,approver:"System Auto-Process",role:"IO Confirmation",status:"waiting",tatHours:1,elapsedHours:0,assignedAt:null,comment:null,timestamp:null,description:"Automatic IO (Internal Order) confirmation generated upon initiator approval"},{step:4,approver:"Rajesh Kumar",role:"Department Lead Approval",status:"waiting",tatHours:72,elapsedHours:0,assignedAt:null,comment:null,timestamp:null,description:"Department head approves and blocks budget in IO for this activity"},{step:5,approver:"Royal Motors Mumbai (Dealer)",role:"Dealer - Completion Documents",status:"waiting",tatHours:120,elapsedHours:0,assignedAt:null,comment:null,timestamp:null,description:"Dealer submits activity completion documents and description"},{step:6,approver:"Sneha Patil (Initiator)",role:"Initiator Verification",status:"waiting",tatHours:48,elapsedHours:0,assignedAt:null,comment:null,timestamp:null,description:"Initiator verifies completion documents and can modify approved amount"},{step:7,approver:"System Auto-Process",role:"E-Invoice Generation",status:"waiting",tatHours:1,elapsedHours:0,assignedAt:null,comment:null,timestamp:null,description:"Auto-generate e-invoice based on final approved amount"},{step:8,approver:"Meera Patel",role:"Finance - Credit Note Issuance",status:"waiting",tatHours:48,elapsedHours:0,assignedAt:null,comment:null,timestamp:null,description:"Finance team issues credit note to dealer"}],documents:[{name:"Claim_Proposal_Diwali_2024.pdf",size:"1.8 MB",type:"PDF",uploadedBy:"Sneha Patil",uploadedAt:"Oct 7, 2024 9:35 AM"},{name:"Cost_Breakup_Detailed.xlsx",size:"450 KB",type:"Excel",uploadedBy:"Sneha Patil",uploadedAt:"Oct 7, 2024 9:38 AM"},{name:"Activity_Timeline.pdf",size:"320 KB",type:"PDF",uploadedBy:"Sneha Patil",uploadedAt:"Oct 7, 2024 9:40 AM"}],spectators:[{name:"Arjun Menon",role:"Brand Manager",avatar:"AM"},{name:"Finance Team",role:"Budget Monitoring",avatar:"FT"}],auditTrail:[{type:"created",action:"Claim Request Created",details:"Diwali festival campaign claim initiated using Claim Management template",user:"Sneha Patil",timestamp:"Oct 7, 2024 9:30 AM"},{type:"assignment",action:"Assigned to Dealer",details:"Dealer Royal Motors Mumbai assigned for document upload",user:"System",timestamp:"Oct 7, 2024 9:31 AM"},{type:"status_change",action:"Workflow Started",details:"Step 1: Dealer document upload phase initiated",user:"System",timestamp:"Oct 7, 2024 9:31 AM"}],tags:["claim-management","dealer-activity","marketing","diwali-campaign","template"]}};function mc(t,s=[],a){const[r,n]=x.useState(null),[i,l]=x.useState(!1),[o,c]=x.useState(!0),[d,m]=x.useState(null),[u,h]=x.useState(null),[g,p]=x.useState(!1),y=(S,k)=>(S||k||"NA").toString().split(" ").map(T=>T[0]).filter(Boolean).join("").slice(0,2).toUpperCase(),f=S=>{const k=(S||"").toUpperCase();return k==="IN_PROGRESS"?"in-review":k==="PENDING"?"pending":k==="APPROVED"?"approved":k==="REJECTED"?"rejected":k==="CLOSED"?"closed":k==="SKIPPED"?"skipped":(S||"").toLowerCase()},b=x.useCallback(async()=>{var S,k,F,T,D,C,P,R,V,I,$,_,N;l(!0);try{const j=await Cs.getWorkflowDetails(t);if(!j){console.warn("[useRequestDetails] No details returned from API");return}const U=j.workflow||{},z=Array.isArray(j.approvals)?j.approvals:[],B=Array.isArray(j.participants)?j.participants:[],X=Array.isArray(j.documents)?j.documents:[],H=j.summary||{},oe=Array.isArray(j.tatAlerts)?j.tatAlerts:[];oe.length>0;const Y=(H==null?void 0:H.currentLevel)||U.currentLevel||1,E=z.map(ae=>{const ne=ae.levelNumber||0,xt=(ae.status||"").toString().toUpperCase(),ve=ae.levelId||ae.level_id;let Fe=f(ae.status);ne>Y&&xt!=="APPROVED"&&xt!=="REJECTED"?Fe="waiting":ne===Y&&xt==="PENDING"&&(Fe="pending");const mt=oe.filter(Ot=>Ot.levelId===ve);return{step:ne,levelId:ve,role:ae.levelName||ae.approverName||"Approver",status:Fe,approver:ae.approverName||ae.approverEmail,approverId:ae.approverId||ae.approver_id,approverEmail:ae.approverEmail,tatHours:Number(ae.tatHours||0),elapsedHours:Number(ae.elapsedHours||0),remainingHours:Number(ae.remainingHours||0),tatPercentageUsed:Number(ae.tatPercentageUsed||0),actualHours:ae.levelEndTime&&ae.levelStartTime?Math.max(0,(new Date(ae.levelEndTime).getTime()-new Date(ae.levelStartTime).getTime())/(1e3*60*60)):void 0,comment:ae.comments||void 0,timestamp:ae.actionDate||void 0,levelStartTime:ae.levelStartTime||ae.tatStartTime,tatAlerts:mt,skipReason:ae.skipReason||void 0,isSkipped:xt==="SKIPPED"||ae.isSkipped||!1}}),O=B.filter(ae=>(ae.participantType||ae.participant_type||"").toUpperCase()==="SPECTATOR").map(ae=>({name:ae.userName||ae.user_name||ae.userEmail||ae.user_email,role:"Spectator",email:ae.userEmail||ae.user_email,avatar:y(ae.userName||ae.user_name,ae.userEmail||ae.user_email)})),L=ae=>{var xt,ve;if(!ae)return;const ne=B.find(Fe=>Fe.userId===ae||Fe.user_id===ae);return ne!=null&&ne.userName||ne!=null&&ne.user_name?ne.userName||ne.user_name:U.initiatorId===ae?((xt=U.initiator)==null?void 0:xt.displayName)||((ve=U.initiator)==null?void 0:ve.email):ae},W=X.map(ae=>{const ne=Number(ae.fileSize||ae.file_size||0),xt=(ne/(1024*1024)).toFixed(2)+" MB";return{documentId:ae.documentId||ae.document_id,name:ae.originalFileName||ae.fileName||ae.file_name,fileType:ae.fileType||ae.file_type||"",size:xt,sizeBytes:ne,uploadedBy:L(ae.uploadedBy||ae.uploaded_by),uploadedAt:ae.uploadedAt||ae.uploaded_at}}),G=Array.isArray(j.activities)?j.activities.filter(ae=>(ae.type||"").toLowerCase()!=="sla_warning"):[];let ee=null;try{ee=await Rd(U.requestId)}catch(ae){console.debug("Pause details not available:",ae)}let ce=null,Pe=null,Oe=null,ie=null;if(U.workflowType==="CLAIM_MANAGEMENT"||U.templateType==="claim-management")try{console.debug("[useRequestDetails] Fetching claim details for requestId:",U.requestId);const ae=await be.get(`/dealer-claims/${U.requestId}`);console.debug("[useRequestDetails] Claim API response:",{status:ae.status,hasData:!!ae.data,dataKeys:ae.data?Object.keys(ae.data):[],fullResponse:ae.data});const ne=((S=ae.data)==null?void 0:S.data)||ae.data;if(console.debug("[useRequestDetails] Extracted claimData:",{hasClaimData:!!ne,claimDataKeys:ne?Object.keys(ne):[],hasClaimDetails:!!(ne!=null&&ne.claimDetails||ne!=null&&ne.claim_details),hasProposalDetails:!!(ne!=null&&ne.proposalDetails||ne!=null&&ne.proposal_details),hasCompletionDetails:!!(ne!=null&&ne.completionDetails||ne!=null&&ne.completion_details),hasInternalOrder:!!(ne!=null&&ne.internalOrder||ne!=null&&ne.internal_order)}),ne){ce=ne.claimDetails||ne.claim_details,Pe=ne.proposalDetails||ne.proposal_details,Oe=ne.completionDetails||ne.completion_details,ie=ne.internalOrder||ne.internal_order||null;const xt=ne.budgetTracking||ne.budget_tracking||null,ve=ne.invoice||null,Fe=ne.creditNote||ne.credit_note||null,mt=ne.completionExpenses||ne.completion_expenses||null;ce&&(ce.budgetTracking=xt,ce.invoice=ve,ce.creditNote=Fe,ce.completionExpenses=mt),console.debug("[useRequestDetails] Extracted details:",{claimDetails:ce?{hasActivityName:!!(ce.activityName||ce.activity_name),hasActivityType:!!(ce.activityType||ce.activity_type),hasLocation:!!ce.location,activityName:ce.activityName||ce.activity_name,activityType:ce.activityType||ce.activity_type,location:ce.location,allKeys:Object.keys(ce)}:null,hasProposalDetails:!!Pe,hasCompletionDetails:!!Oe,hasInternalOrder:!!ie,hasBudgetTracking:!!xt,hasInvoice:!!ve,hasCreditNote:!!Fe,hasCompletionExpenses:Array.isArray(mt)&&mt.length>0})}else console.warn("[useRequestDetails] No claimData found in response")}catch(ae){console.error("[useRequestDetails] Error fetching claim details:",{error:(ae==null?void 0:ae.message)||ae,status:(k=ae==null?void 0:ae.response)==null?void 0:k.status,statusText:(F=ae==null?void 0:ae.response)==null?void 0:F.statusText,responseData:(T=ae==null?void 0:ae.response)==null?void 0:T.data,requestId:U.requestId})}const de={...U,id:U.requestNumber||U.requestId,requestId:U.requestId,requestNumber:U.requestNumber,title:U.title,description:U.description,status:f(U.status),priority:(U.priority||"").toString().toLowerCase(),workflowType:U.workflowType||(U.templateType==="claim-management"?"CLAIM_MANAGEMENT":"NON_TEMPLATIZED"),approvalFlow:E,approvals:z,participants:B,documents:W,spectators:O,summary:H,sla:(H==null?void 0:H.sla)||U.sla||null,initiator:{name:((D=U.initiator)==null?void 0:D.displayName)||((C=U.initiator)==null?void 0:C.email),role:((P=U.initiator)==null?void 0:P.designation)||void 0,department:((R=U.initiator)==null?void 0:R.department)||void 0,email:((V=U.initiator)==null?void 0:V.email)||void 0,phone:((I=U.initiator)==null?void 0:I.phone)||void 0,avatar:y(($=U.initiator)==null?void 0:$.displayName,(_=U.initiator)==null?void 0:_.email)},createdAt:U.createdAt,updatedAt:U.updatedAt,totalSteps:U.totalLevels||1,currentStepRaw:(H==null?void 0:H.currentLevel)||U.currentLevel||1,currentStep:Math.min(Math.max(1,(H==null?void 0:H.currentLevel)||U.currentLevel||1),U.totalLevels||1),auditTrail:G,conclusionRemark:U.conclusionRemark||null,closureDate:U.closureDate||null,pauseInfo:ee||null,claimDetails:ce||null,proposalDetails:Pe||null,completionDetails:Oe||null,internalOrder:ie||null,budgetTracking:(ce==null?void 0:ce.budgetTracking)||null,invoice:(ce==null?void 0:ce.invoice)||null,creditNote:(ce==null?void 0:ce.creditNote)||null,completionExpenses:(ce==null?void 0:ce.completionExpenses)||null};n(de);const je=(N=a==null?void 0:a.email)==null?void 0:N.toLowerCase(),Me=z.find(ae=>{const ne=(ae.status||"").toString().toUpperCase(),xt=(ae.approverEmail||"").toLowerCase(),ve=ae.levelNumber||0;return(ne==="PENDING"||ne==="IN_PROGRESS"||ne==="PAUSED")&&xt===je&&ve===Y});h(Me||null);const ye=a==null?void 0:a.userId;if(ye){const ae=B.some(ne=>(ne.participantType||ne.participant_type||"").toUpperCase()==="SPECTATOR"&&(ne.userId||ne.user_id)===ye);p(ae)}else p(!1)}catch(j){console.error("[useRequestDetails] Error refreshing details:",j),alert("Failed to refresh request details. Please try again.")}finally{l(!1)}},[t,a]);x.useEffect(()=>{if(!t){c(!1);return}let S=!0;return c(!0),m(null),(async()=>{var k,F,T,D,C,P,R,V,I,$,_,N,j,U;try{const z=await Cs.getWorkflowDetails(t);if(!S||!z){S&&c(!1);return}const B=z.workflow||{},X=Array.isArray(z.approvals)?z.approvals:[],H=Array.isArray(z.participants)?z.participants:[],oe=Array.isArray(z.documents)?z.documents:[],Y=z.summary||{},E=Array.isArray(z.tatAlerts)?z.tatAlerts:[],O=(B.priority||"").toString().toLowerCase(),L=(Y==null?void 0:Y.currentLevel)||B.currentLevel||1,W=X.map(ve=>{const Fe=ve.levelNumber||0,mt=(ve.status||"").toString().toUpperCase(),Ot=ve.levelId||ve.level_id;let zt=f(ve.status);mt==="PAUSED"?zt="paused":Fe>L&&mt!=="APPROVED"&&mt!=="REJECTED"?zt="waiting":Fe===L&&(mt==="PENDING"||mt==="IN_PROGRESS")&&(zt=mt==="IN_PROGRESS"?"in-review":"pending");const it=E.filter(Is=>Is.levelId===Ot);return{step:Fe,levelId:Ot,role:ve.levelName||ve.approverName||"Approver",status:zt,approver:ve.approverName||ve.approverEmail,approverId:ve.approverId||ve.approver_id,approverEmail:ve.approverEmail,tatHours:Number(ve.tatHours||0),elapsedHours:Number(ve.elapsedHours||0),remainingHours:Number(ve.remainingHours||0),tatPercentageUsed:Number(ve.tatPercentageUsed||0),actualHours:ve.elapsedHours!==void 0&&ve.elapsedHours!==null?Number(ve.elapsedHours):void 0,comment:ve.comments||void 0,timestamp:ve.actionDate||void 0,levelStartTime:ve.levelStartTime||ve.tatStartTime,tatAlerts:it}}),G=H.filter(ve=>(ve.participantType||"").toUpperCase()==="SPECTATOR").map(ve=>({name:ve.userName||ve.userEmail,role:"Spectator",avatar:y(ve.userName,ve.userEmail)})),ee=ve=>{var mt,Ot;if(!ve)return;const Fe=H.find(zt=>zt.userId===ve);return Fe!=null&&Fe.userName?Fe.userName:B.initiatorId===ve?((mt=B.initiator)==null?void 0:mt.displayName)||((Ot=B.initiator)==null?void 0:Ot.email):ve},ce=oe.map(ve=>{const Fe=Number(ve.fileSize||0),mt=(Fe/(1024*1024)).toFixed(2)+" MB";return{documentId:ve.documentId||ve.document_id,name:ve.originalFileName||ve.fileName,fileType:ve.fileType||ve.file_type||"",size:mt,sizeBytes:Fe,uploadedBy:ee(ve.uploadedBy),uploadedAt:ve.uploadedAt}}),Pe=Array.isArray(z.activities)?z.activities.filter(ve=>(ve.type||"").toLowerCase()!=="sla_warning"):[];let Oe=null;try{Oe=await Rd(B.requestId)}catch(ve){console.debug("Pause details not available:",ve)}let ie=null,de=null,je=null,Me=null;if(B.workflowType==="CLAIM_MANAGEMENT"||B.templateType==="claim-management")try{console.debug("[useRequestDetails] Initial load - Fetching claim details for requestId:",B.requestId);const ve=await be.get(`/dealer-claims/${B.requestId}`);console.debug("[useRequestDetails] Initial load - Claim API response:",{status:ve.status,hasData:!!ve.data,dataKeys:ve.data?Object.keys(ve.data):[]});const Fe=((k=ve.data)==null?void 0:k.data)||ve.data;if(Fe){ie=Fe.claimDetails||Fe.claim_details,de=Fe.proposalDetails||Fe.proposal_details,je=Fe.completionDetails||Fe.completion_details,Me=Fe.internalOrder||Fe.internal_order||null;const mt=Fe.budgetTracking||Fe.budget_tracking||null,Ot=Fe.invoice||null,zt=Fe.creditNote||Fe.credit_note||null,it=Fe.completionExpenses||Fe.completion_expenses||null;ie&&(ie.budgetTracking=mt,ie.invoice=Ot,ie.creditNote=zt,ie.completionExpenses=it),console.debug("[useRequestDetails] Initial load - Extracted details:",{hasClaimDetails:!!ie,claimDetailsKeys:ie?Object.keys(ie):[],hasProposalDetails:!!de,hasCompletionDetails:!!je,hasInternalOrder:!!Me,hasBudgetTracking:!!mt,hasInvoice:!!Ot,hasCreditNote:!!zt,hasCompletionExpenses:Array.isArray(it)&&it.length>0})}}catch(ve){console.error("[useRequestDetails] Initial load - Error fetching claim details:",{error:(ve==null?void 0:ve.message)||ve,status:(F=ve==null?void 0:ve.response)==null?void 0:F.status,requestId:B.requestId})}const ye={id:B.requestNumber||B.requestId,requestId:B.requestId,title:B.title,description:B.description,priority:O,status:f(B.status),workflowType:B.workflowType||(B.templateType==="claim-management"?"CLAIM_MANAGEMENT":"NON_TEMPLATIZED"),summary:Y,initiator:{name:((T=B.initiator)==null?void 0:T.displayName)||((D=B.initiator)==null?void 0:D.email),role:((C=B.initiator)==null?void 0:C.designation)||void 0,department:((P=B.initiator)==null?void 0:P.department)||void 0,email:((R=B.initiator)==null?void 0:R.email)||void 0,phone:((V=B.initiator)==null?void 0:V.phone)||void 0,avatar:y((I=B.initiator)==null?void 0:I.displayName,($=B.initiator)==null?void 0:$.email)},createdAt:B.createdAt,updatedAt:B.updatedAt,totalSteps:B.totalLevels||1,currentStepRaw:(Y==null?void 0:Y.currentLevel)||B.currentLevel||1,currentStep:Math.min(Math.max(1,(Y==null?void 0:Y.currentLevel)||B.currentLevel||1),B.totalLevels||1),approvalFlow:W,approvals:X,documents:ce,spectators:G,auditTrail:Pe,conclusionRemark:B.conclusionRemark||null,closureDate:B.closureDate||null,pauseInfo:Oe||null,claimDetails:ie||null,proposalDetails:de||null,completionDetails:je||null,internalOrder:Me||null,budgetTracking:(ie==null?void 0:ie.budgetTracking)||null,invoice:(ie==null?void 0:ie.invoice)||null,creditNote:(ie==null?void 0:ie.creditNote)||null,completionExpenses:(ie==null?void 0:ie.completionExpenses)||null};n(ye);const ae=(_=a==null?void 0:a.email)==null?void 0:_.toLowerCase(),ne=X.find(ve=>{const Fe=(ve.status||"").toString().toUpperCase(),mt=(ve.approverEmail||"").toLowerCase(),Ot=ve.levelNumber||0;return(Fe==="PENDING"||Fe==="IN_PROGRESS"||Fe==="PAUSED")&&mt===ae&&Ot===L});h(ne||null);const xt=a==null?void 0:a.userId;if(xt){const ve=H.some(Fe=>(Fe.participantType||"").toUpperCase()==="SPECTATOR"&&Fe.userId===xt);p(ve)}else p(!1)}catch(z){if(console.error("[useRequestDetails] Error loading request details:",z),S){if(((N=z==null?void 0:z.response)==null?void 0:N.status)===403){const B=((U=(j=z==null?void 0:z.response)==null?void 0:j.data)==null?void 0:U.message)||"You do not have permission to view this request. Access is restricted to the initiator, approvers, and spectators of this request.";m({denied:!0,message:B})}n(null)}}finally{S&&c(!1)}})(),()=>{S=!1}},[t,a]);const v=x.useMemo(()=>{if(r)return r;const S=qx[t];if(S)return S;const k=_C[t];if(k)return k;const F=s.find(T=>T.id===t||T.requestNumber===t||T.request_number===t);return F||null},[t,s,r]),w=x.useMemo(()=>{var F,T,D;if(!v||!a)return!1;const S=(F=a==null?void 0:a.email)==null?void 0:F.toLowerCase(),k=(D=(T=v.initiator)==null?void 0:T.email)==null?void 0:D.toLowerCase();return S===k},[v,a]),A=x.useMemo(()=>{var k;if(!v)return[];const S=[];return(k=v.initiator)!=null&&k.email&&S.push({email:v.initiator.email.toLowerCase(),participantType:"INITIATOR",name:v.initiator.name}),v.approvalFlow&&Array.isArray(v.approvalFlow)&&v.approvalFlow.forEach(F=>{F.approverEmail&&S.push({email:F.approverEmail.toLowerCase(),participantType:"APPROVER",name:F.approver})}),v.spectators&&Array.isArray(v.spectators)&&v.spectators.forEach(F=>{F.email&&S.push({email:F.email.toLowerCase(),participantType:"SPECTATOR",name:F.name})}),v.participants&&Array.isArray(v.participants)&&v.participants.forEach(F=>{const T=(F.userEmail||F.email||"").toLowerCase(),D=(F.participantType||F.participant_type||"").toUpperCase(),C=F.userName||F.user_name||F.name;T&&D&&!S.find(P=>P.email===T)&&S.push({email:T,participantType:D,name:C})}),S},[v]);return x.useEffect(()=>{if(!t||!r)return;const S=Pr();if(!S)return;const k=F=>{((F==null?void 0:F.requestId)===r.requestId||(F==null?void 0:F.requestNumber)===t)&&b()};return S.on("request:updated",k),()=>{S.off("request:updated",k)}},[t,r,b]),{request:v,apiRequest:r,loading:o,refreshing:i,refreshDetails:b,currentApprovalLevel:u,isSpectator:g,isInitiator:w,existingParticipants:A,accessDenied:d}}function ep(t,s,a,r){const[n,i]=x.useState([]),[l,o]=x.useState(0),[c,d]=x.useState([]);return x.useEffect(()=>{if(!t){console.warn("[useRequestSocket] No requestIdentifier, cannot join socket room");return}let m=!0,u=t;return(async()=>{var y;try{const f=await Cs.getWorkflowDetails(t);(y=f==null?void 0:f.workflow)!=null&&y.requestId&&m&&(u=f.workflow.requestId)}catch(f){console.error("[useRequestSocket] Failed to resolve UUID:",f)}if(!m)return;const h=Pr();if(!h){console.error("[useRequestSocket] Socket not available");return}const g=r==null?void 0:r.userId,p=()=>{Ul(h,u,g)};return h.connected?p():h.on("connect",p),()=>{m&&(h.off("connect",p),sh(h,u))}})(),()=>{m=!1}},[t,r]),x.useEffect(()=>{!t||!s||(async()=>{try{const m=await Rr(t),u=s.auditTrail||[],h=[...m,...u];h.sort((g,p)=>{const y=new Date(g.createdAt||g.created_at||g.timestamp||0).getTime(),f=new Date(p.createdAt||p.created_at||p.timestamp||0).getTime();return y-f}),i(h)}catch(m){console.error("[useRequestSocket] Failed to fetch and merge messages:",m)}})()},[t,s]),x.useEffect(()=>{if(!t)return;const m=Pr();if(!m)return;const u=g=>{a!=="worknotes"&&o(p=>p+1),(async()=>{try{const p=await Rr(t),y=(s==null?void 0:s.auditTrail)||[],f=[...p,...y].sort((b,v)=>{const w=new Date(b.createdAt||b.created_at||b.timestamp||0).getTime(),A=new Date(v.createdAt||v.created_at||v.timestamp||0).getTime();return w-A});i(f)}catch(p){console.error("[useRequestSocket] Failed to refresh messages:",p)}})()},h=g=>{const p=g.type==="breach"?"⏰":g.type==="threshold2"?"⚠️":"⏳";(async()=>{try{const y=await Cs.getWorkflowDetails(t);y&&(Array.isArray(y.tatAlerts)&&y.tatAlerts,"Notification"in window&&Notification.permission==="granted"&&new Notification(`${p} TAT Alert`,{body:g.message,icon:"/favicon.ico",tag:`tat-${g.requestId}-${g.type}`,requireInteraction:!1}))}catch(y){console.error("[useRequestSocket] Failed to refresh after TAT alert:",y)}})()};return m.on("noteHandler",u),m.on("worknote:new",u),m.on("tat:alert",h),()=>{m.off("noteHandler",u),m.off("worknote:new",u),m.off("tat:alert",h)}},[t,a,s]),x.useEffect(()=>{a==="worknotes"&&o(0)},[a]),{mergedMessages:n,unreadWorkNotes:l,workNoteAttachments:c,setWorkNoteAttachments:d}}async function hn(t,s,a="SUPPORTING"){var l;const r=new FormData;r.append("file",t),r.append("requestId",s),r.append("category",a);const n=await be.post("/documents",r,{headers:{"Content-Type":"multipart/form-data"}}),i=((l=n.data)==null?void 0:l.data)||n.data;return{documentId:(i==null?void 0:i.documentId)||(i==null?void 0:i.document_id)||"",storageUrl:(i==null?void 0:i.storageUrl)||(i==null?void 0:i.storage_url),fileName:(i==null?void 0:i.fileName)||(i==null?void 0:i.file_name)||t.name,originalFileName:(i==null?void 0:i.originalFileName)||(i==null?void 0:i.original_file_name)||t.name}}function tp(t,s){const[a,r]=x.useState(!1),[n,i]=x.useState(null),[l,o]=x.useState({maxFileSizeMB:10,allowedFileTypes:["pdf","doc","docx","xls","xlsx","ppt","pptx","jpg","jpeg","png","gif"]}),[c,d]=x.useState({show:!1,errors:[]});x.useEffect(()=>{(async()=>{try{const p=await Vs("DOCUMENT_POLICY"),y={};p.forEach(w=>{y[w.configKey]=w.configValue});const f=parseInt(y.MAX_FILE_SIZE_MB||"10"),v=(y.ALLOWED_FILE_TYPES||"pdf,doc,docx,xls,xlsx,ppt,pptx,jpg,jpeg,png,gif").split(",").map(w=>w.trim().toLowerCase());o({maxFileSizeMB:f,allowedFileTypes:v})}catch(p){console.error("Failed to load document policy:",p)}})()},[]);const m=g=>{const p=l.maxFileSizeMB*1024*1024;if(g.size>p)return{valid:!1,reason:`File size exceeds the maximum allowed size of ${l.maxFileSizeMB}MB. Current size: ${(g.size/(1024*1024)).toFixed(2)}MB`};const y=g.name.toLowerCase(),f=y.substring(y.lastIndexOf(".")+1);return l.allowedFileTypes.includes(f)?{valid:!0}:{valid:!1,reason:`File type "${f}" is not allowed. Allowed types: ${l.allowedFileTypes.join(", ")}`}},u=async g=>{var v,w;const p=g.target.files;if(!p||p.length===0)return;const y=Array.from(p),f=[],b=[];if(y.forEach(A=>{const S=m(A);S.valid?b.push(A):f.push({fileName:A.name,reason:S.reason||"Unknown validation error"})}),f.length>0&&d({show:!0,errors:f}),b.length===0){g.target&&(g.target.value="");return}r(!0);try{const A=b[0],S=t==null?void 0:t.requestId;if(!S){q.error("Request ID not found");return}A&&await hn(A,S,"SUPPORTING"),await s(),b.length<y.length?q.warning(`${b.length} of ${y.length} file(s) were uploaded. ${f.length} file(s) were rejected.`):q.success("Document uploaded successfully")}catch(A){console.error("[useDocumentUpload] Upload error:",A),q.error(((w=(v=A==null?void 0:A.response)==null?void 0:v.data)==null?void 0:w.error)||"Failed to upload document")}finally{r(!1),g.target&&(g.target.value="")}};return{uploadingDocument:a,handleDocumentUpload:u,triggerFileInput:()=>{const g=document.createElement("input");g.type="file",g.accept=l.allowedFileTypes.map(p=>`.${p}`).join(","),g.onchange=u,g.click()},previewDocument:n,setPreviewDocument:i,documentPolicy:l,documentError:c,setDocumentError:d}}function sp(t,s,a,r,n,i,l){const[o,c]=x.useState(""),[d,m]=x.useState(!1),[u,h]=x.useState(!1),[g,p]=x.useState(!1),y=async()=>{try{const{getConclusion:v}=await Zn(async()=>{const{getConclusion:A}=await import("./conclusionApi-DdQ50ahC.js");return{getConclusion:A}},__vite__mapDeps([0,1,2,3,4,5,6,7])),w=await v(t.requestId||s);w&&w.aiGeneratedRemark&&(c(w.finalRemark||w.aiGeneratedRemark),p(!!w.aiGeneratedRemark))}catch{}},f=async()=>{try{m(!0);const{generateConclusion:v}=await Zn(async()=>{const{generateConclusion:A}=await import("./conclusionApi-DdQ50ahC.js");return{generateConclusion:A}},__vite__mapDeps([0,1,2,3,4,5,6,7])),w=await v(t.requestId||s);c(w.aiGeneratedRemark),p(!0)}catch(v){console.error("[useConclusionRemark] AI generation failed:",v),c(""),p(!1)}finally{m(!1)}},b=async()=>{var w,A;const v=o.replace(/<[^>]*>/g,"").trim();if(!v){i==null||i({success:!1,title:"Validation Error",message:"Conclusion remark cannot be empty"}),l==null||l(!0);return}if(v.length>2e3){i==null||i({success:!1,title:"Validation Error",message:"Conclusion remark exceeds 2000 characters limit"}),l==null||l(!0);return}try{h(!0);const{finalizeConclusion:S}=await Zn(async()=>{const{finalizeConclusion:k}=await import("./conclusionApi-DdQ50ahC.js");return{finalizeConclusion:k}},__vite__mapDeps([0,1,2,3,4,5,6,7]));await S(t.requestId||s,o),i==null||i({success:!0,title:"Request Closed with Successful Completion",message:"The request has been finalized and moved to Closed Requests."}),l==null||l(!0),await r(),setTimeout(()=>{n?(n(),setTimeout(()=>{window.location.hash="#/closed-requests"},100)):window.location.hash="#/closed-requests"},2e3)}catch(S){i==null||i({success:!1,title:"Error",message:((A=(w=S.response)==null?void 0:w.data)==null?void 0:A.error)||"Failed to finalize conclusion"}),l==null||l(!0)}finally{h(!1)}};return x.useEffect(()=>{((t==null?void 0:t.status)==="approved"||(t==null?void 0:t.status)==="rejected")&&a&&!o&&y()},[t==null?void 0:t.status,a]),{conclusionRemark:o,setConclusionRemark:c,conclusionLoading:d,conclusionSubmitting:u,aiGenerated:g,handleGenerateConclusion:f,handleFinalizeConclusion:b}}function ap(t,s,a){const[r,n]=x.useState(!1),[i,l]=x.useState(!1),[o,c]=x.useState(!1),[d,m]=x.useState(!1),[u,h]=x.useState(!1),[g,p]=x.useState(!1),[y,f]=x.useState(null),[b,v]=x.useState(null);return{showApproveModal:r,setShowApproveModal:n,showRejectModal:i,setShowRejectModal:l,showAddApproverModal:o,setShowAddApproverModal:c,showAddSpectatorModal:d,setShowAddSpectatorModal:m,showSkipApproverModal:u,setShowSkipApproverModal:h,showActionStatusModal:g,setShowActionStatusModal:p,skipApproverData:y,setSkipApproverData:f,actionStatus:b,setActionStatus:v,handleApproveConfirm:async T=>{var C,P;const D=(s==null?void 0:s.levelId)||(s==null?void 0:s.level_id);if(!D){alert("Approval level not found");return}await dn(t,D,T||""),await new Promise(R=>setTimeout(R,500)),await a(),(C=window==null?void 0:window.closeModal)==null||C.call(window),(P=window==null?void 0:window.toast)==null||P.call(window,"Approved successfully")},handleRejectConfirm:async T=>{var C,P;if(!(T!=null&&T.trim())){alert("Comments & remarks are required");return}const D=(s==null?void 0:s.levelId)||(s==null?void 0:s.level_id);if(!D){alert("Approval level not found");return}await mn(t,D,T.trim(),T.trim()),await a(),(C=window==null?void 0:window.closeModal)==null||C.call(window),(P=window==null?void 0:window.toast)==null||P.call(window,"Rejected successfully")},handleAddApprover:async(T,D,C)=>{var P,R;try{await ch(t,T,D,C),await a(),c(!1),v==null||v({success:!0,title:"Approver Added",message:`Approver added successfully at Level ${C} with ${D}h TAT`}),p==null||p(!0)}catch(V){throw v==null||v({success:!1,title:"Failed to Add Approver",message:((R=(P=V==null?void 0:V.response)==null?void 0:P.data)==null?void 0:R.error)||"Failed to add approver. Please try again."}),p==null||p(!0),V}},handleSkipApprover:async T=>{var D,C;if(y)try{await Jv(t,y.levelId,T),await a(),h(!1),f(null),v==null||v({success:!0,title:"Approver Skipped",message:"Approver skipped successfully. The workflow has moved to the next level."}),p==null||p(!0)}catch(P){throw v==null||v({success:!1,title:"Failed to Skip Approver",message:((C=(D=P==null?void 0:P.response)==null?void 0:D.data)==null?void 0:C.error)||"Failed to skip approver. Please try again."}),p==null||p(!0),P}},handleAddSpectator:async T=>{var D,C;try{await dh(t,T),await a(),m(!1),v==null||v({success:!0,title:"Spectator Added",message:"Spectator added successfully. They can now view this request."}),p==null||p(!0)}catch(P){throw v==null||v({success:!1,title:"Failed to Add Spectator",message:((C=(D=P==null?void 0:P.response)==null?void 0:D.data)==null?void 0:C.error)||"Failed to add spectator. Please try again."}),p==null||p(!0),P}}}}const LC=t=>{const s=(t||"").toLowerCase();return s.includes("image")||s.includes("pdf")||s.includes("jpg")||s.includes("jpeg")||s.includes("png")||s.includes("gif")};function Qm({document:t,onPreview:s,onDownload:a,showPreview:r=!0,testId:n="document-card"}){return e.jsxs("div",{className:"flex items-center justify-between p-4 rounded-lg border border-gray-300 hover:bg-gray-50 transition-colors","data-testid":`${n}-${t.documentId}`,children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-2 bg-blue-100 rounded-lg",children:e.jsx(_e,{className:"w-5 h-5 text-blue-600"})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-gray-900","data-testid":`${n}-name`,children:t.name}),e.jsxs("p",{className:"text-xs text-gray-500","data-testid":`${n}-metadata`,children:[t.size," • Uploaded by ",t.uploadedBy," on ",ns(t.uploadedAt)]})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[r&&LC(t.fileType)&&s&&e.jsx(M,{variant:"ghost",size:"sm",onClick:()=>s({fileName:t.name,fileType:t.fileType,documentId:t.documentId,fileSize:t.sizeBytes}),title:"Preview file","data-testid":`${n}-preview-btn`,children:e.jsx(jt,{className:"w-4 h-4"})}),a&&e.jsx(M,{variant:"ghost",size:"sm",onClick:async()=>{if(!t.documentId){alert("Document ID not available");return}try{await a(t.documentId)}catch{alert("Failed to download document")}},title:"Download file","data-testid":`${n}-download-btn`,children:e.jsx(wt,{className:"w-4 h-4"})})]})]})}function OC({request:t,workNoteAttachments:s,uploadingDocument:a,documentPolicy:r,triggerFileInput:n,setPreviewDocument:i,downloadDocument:l}){return e.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[e.jsxs(te,{children:[e.jsx(ue,{children:e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3 sm:gap-4",children:[e.jsxs("div",{children:[e.jsxs(he,{className:"flex items-center gap-2 text-sm sm:text-base",children:[e.jsx(_e,{className:"w-4 h-4 sm:w-5 sm:h-5 text-blue-600"}),"Request Documents"]}),e.jsx(Te,{className:"text-xs sm:text-sm mt-1",children:"Documents attached while creating the request"})]}),e.jsxs("div",{className:"flex flex-col items-end gap-1",children:[e.jsxs(M,{size:"sm",onClick:n,disabled:a||t.status==="closed",className:"gap-1 sm:gap-2 h-8 sm:h-9 text-xs sm:text-sm shrink-0","data-testid":"upload-document-btn",children:[e.jsx(Ps,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"}),a?"Uploading...":t.status==="closed"?"Closed":"Upload",e.jsx("span",{className:"hidden sm:inline",children:t.status==="closed"?"":"Document"})]}),e.jsxs("p",{className:"text-xs text-gray-500 whitespace-nowrap",children:["Max ",r.maxFileSizeMB,"MB"]})]})]})}),e.jsx(se,{children:t.documents&&t.documents.length>0?e.jsx("div",{className:"space-y-3",children:t.documents.map((o,c)=>e.jsx(Qm,{document:o,onPreview:d=>i(d),onDownload:l,testId:"request-document"},c))}):e.jsx("p",{className:"text-sm text-gray-500 text-center py-8","data-testid":"no-documents",children:"No documents uploaded yet"})})]}),e.jsxs(te,{children:[e.jsxs(ue,{children:[e.jsxs(he,{className:"flex items-center gap-2 text-sm sm:text-base",children:[e.jsx(Hs,{className:"w-4 h-4 sm:w-5 sm:h-5 text-purple-600"}),"Work Note Attachments"]}),e.jsx(Te,{className:"text-xs sm:text-sm",children:"Files shared in work notes discussions"})]}),e.jsx(se,{children:s&&s.length>0?e.jsx("div",{className:"space-y-3",children:s.map((o,c)=>e.jsx(Qm,{document:{documentId:o.attachmentId||"",name:o.name,fileType:o.type||"",size:o.size?`${(o.size/1024).toFixed(1)} KB`:"Unknown size",sizeBytes:o.size,uploadedBy:o.uploadedBy,uploadedAt:o.uploadedAt},onPreview:d=>i(d),onDownload:async d=>{const{downloadWorkNoteAttachment:m}=require("@/services/workflowApi");await m(d)},testId:"worknote-attachment"},o.attachmentId||c))}):e.jsx("p",{className:"text-sm text-gray-500 text-center py-8","data-testid":"no-attachments",children:"No files shared in work notes yet"})})]})]})}const $C=t=>{switch(t){case"express":case"urgent":return{color:"bg-red-100 text-red-800 border-red-200",label:"urgent priority"};case"standard":return{color:"bg-blue-100 text-blue-800 border-blue-200",label:"standard priority"};default:return{color:"bg-gray-100 text-gray-800 border-gray-200",label:"normal priority"}}},UC=t=>{switch(t){case"pending":return{color:"bg-yellow-100 text-yellow-800 border-yellow-200",label:"pending"};case"paused":return{color:"bg-gray-400 text-gray-100 border-gray-500",label:"paused"};case"in-review":return{color:"bg-blue-100 text-blue-800 border-blue-200",label:"in-review"};case"approved":return{color:"bg-green-100 text-green-800 border-green-200",label:"approved"};case"rejected":return{color:"bg-red-100 text-red-800 border-red-200",label:"rejected"};case"closed":return{color:"bg-gray-100 text-gray-800 border-gray-300",label:"closed"};case"skipped":return{color:"bg-orange-100 text-orange-800 border-orange-200",label:"skipped"};default:return{color:"bg-gray-100 text-gray-800 border-gray-200",label:t}}},BC=t=>{switch(t){case"approval":case"approved":return e.jsx(Ce,{className:"w-5 h-5 text-green-600"});case"rejection":case"rejected":return e.jsx(gt,{className:"w-5 h-5 text-red-600"});case"comment":return e.jsx(Hs,{className:"w-5 h-5 text-blue-600"});case"status_change":case"updated":return e.jsx(Bt,{className:"w-5 h-5 text-orange-600"});case"assignment":return e.jsx(Ai,{className:"w-5 h-5 text-purple-600"});case"created":return e.jsx(_e,{className:"w-5 h-5 text-blue-600"});case"reminder":return e.jsx(Ye,{className:"w-5 h-5 text-yellow-600"});case"document_added":return e.jsx(bi,{className:"w-5 h-5 text-indigo-600"});case"sla_warning":return e.jsx(os,{className:"w-5 h-5 text-amber-600"});default:return e.jsx(Gt,{className:"w-5 h-5 text-gray-600"})}};function VC({request:t}){return e.jsxs(te,{children:[e.jsxs(ue,{children:[e.jsxs(he,{className:"flex items-center gap-2 text-sm sm:text-base",children:[e.jsx(Gt,{className:"w-4 h-4 sm:w-5 sm:h-5 text-orange-600"}),"Activity Timeline"]}),e.jsx(Te,{className:"text-xs sm:text-sm",children:"Complete audit trail of all request activities"})]}),e.jsx(se,{children:e.jsx("div",{className:"space-y-4 sm:space-y-6",children:t.auditTrail&&t.auditTrail.length>0?t.auditTrail.map((s,a)=>e.jsxs("div",{className:"flex items-start gap-4","data-testid":`activity-item-${a}`,children:[e.jsx("div",{className:"flex-shrink-0",children:e.jsx("div",{className:"w-10 h-10 rounded-full bg-gray-100 flex items-center justify-center",children:BC(s.type)})}),e.jsx("div",{className:"flex-1 min-w-0",children:e.jsxs("div",{className:"bg-white rounded-lg border border-gray-200 p-4 shadow-sm",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx("h4",{className:"font-semibold text-gray-900",children:s.action}),e.jsx("span",{className:"text-xs text-gray-500 whitespace-nowrap ml-4",children:ns(s.timestamp)})]}),e.jsx("div",{className:"text-sm text-gray-600 leading-relaxed",children:e.jsx("p",{className:"whitespace-pre-line break-words",children:s.details})})]})})]},a)):e.jsxs("div",{className:"text-center py-12","data-testid":"no-activity",children:[e.jsx(Gt,{className:"w-12 h-12 text-gray-400 mx-auto mb-4"}),e.jsx("p",{className:"text-sm text-gray-500",children:"No activity recorded yet"}),e.jsx("p",{className:"text-xs text-gray-400 mt-2",children:"Actions and updates will appear here"})]})})})]})}function rp({open:t,onClose:s,success:a,title:r,message:n}){return e.jsx(ct,{open:t,onOpenChange:s,children:e.jsxs(lt,{className:"sm:max-w-md",children:[e.jsx(dt,{children:e.jsxs(ot,{className:"flex items-center gap-2",children:[a?e.jsx(Ce,{className:"w-5 h-5 text-green-600"}):e.jsx(Ge,{className:"w-5 h-5 text-red-600"}),r||(a?"Success":"Error")]})}),e.jsx("div",{className:"py-6",children:e.jsx("div",{className:"flex flex-col items-center text-center",children:a?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-green-100 flex items-center justify-center mb-4",children:e.jsx(Ce,{className:"w-8 h-8 text-green-600"})}),e.jsx("p",{className:"text-sm text-gray-700",children:n||"Operation completed successfully!"})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-red-100 flex items-center justify-center mb-4",children:e.jsx(gt,{className:"w-8 h-8 text-red-600"})}),e.jsx("p",{className:"text-sm text-gray-700",children:n||"Operation failed. Please try again."})]})})}),e.jsx(Ct,{children:e.jsx(M,{onClick:s,className:`w-full ${a?"bg-green-600 hover:bg-green-700":"bg-gray-600 hover:bg-gray-700"}`,children:"OK"})})]})})}function np({open:t,onClose:s,onConfirm:a,existingParticipants:r=[]}){const[n,i]=x.useState(""),[l,o]=x.useState(!1),[c,d]=x.useState([]),[m,u]=x.useState(!1),[h,g]=x.useState(null),p=x.useRef(null),y=x.useRef(null),[f,b]=x.useState({open:!1,type:"error",email:"",message:""}),[v,w]=x.useState({open:!1,violations:[]}),[A,S]=x.useState({maxApprovalLevels:10,maxParticipants:50,allowSpectators:!0,maxSpectators:20});x.useEffect(()=>{t&&(async()=>{var P;try{const R=await Vs("WORKFLOW_SHARING"),V=await Vs("TAT_SETTINGS"),I=[...R,...V],$={};I.forEach(_=>{$[_.configKey]=_.configValue}),S({maxApprovalLevels:parseInt($.MAX_APPROVAL_LEVELS||"10"),maxParticipants:parseInt($.MAX_PARTICIPANTS_PER_REQUEST||"50"),allowSpectators:((P=$.ALLOW_ADD_SPECTATOR)==null?void 0:P.toLowerCase())==="true",maxSpectators:parseInt($.MAX_SPECTATORS_PER_REQUEST||"20")})}catch(R){console.error("Failed to load system policy:",R)}})()},[t]);const k=async()=>{var N,j;const C=n.trim().toLowerCase();if(!C){b({open:!0,type:"error",email:"",message:"Please enter an email address"});return}if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(C)){b({open:!0,type:"error",email:C,message:"Please enter a valid email address"});return}const R=r.find(U=>(U.email||"").toLowerCase()===C);if(R){const U=((N=R.participantType)==null?void 0:N.toUpperCase())||"PARTICIPANT",z=R.name||C;if(U==="INITIATOR"){b({open:!0,type:"error",email:C,message:`${z} is the request initiator and cannot be added as a spectator.`});return}else if(U==="APPROVER"){b({open:!0,type:"error",email:C,message:`${z} is already an approver on this request and cannot be added as a spectator.`});return}else if(U==="SPECTATOR"){b({open:!0,type:"error",email:C,message:`${z} is already a spectator on this request.`});return}else{b({open:!0,type:"error",email:C,message:`${z} is already a participant on this request.`});return}}const V=[];A.allowSpectators||V.push({type:"Spectators Not Allowed",message:"Adding spectators is not allowed by system policy."});const $=r.filter(U=>(U.participantType||"").toUpperCase()==="SPECTATOR").length;$>=A.maxSpectators&&V.push({type:"Maximum Spectators Exceeded",message:"This request has reached the maximum number of spectators allowed.",currentValue:$,maxValue:A.maxSpectators});const _=r.length+1;if(_>A.maxParticipants&&V.push({type:"Maximum Participants Exceeded",message:"Adding this spectator would exceed the maximum participants limit.",currentValue:_,maxValue:A.maxParticipants}),V.length>0){w({open:!0,violations:V});return}if(!h||h.email.toLowerCase()!==C)try{const z=((j=(await ta(C,1)).data)==null?void 0:j.data)||[];if(z.length===0){b({open:!0,type:"not-found",email:C,message:""});return}const B=z[0];await qs({userId:B.userId,email:B.email,displayName:B.displayName,firstName:B.firstName,lastName:B.lastName,department:B.department,phone:B.phone,mobilePhone:B.mobilePhone,designation:B.designation,jobTitle:B.jobTitle,manager:B.manager,employeeId:B.employeeId,employeeNumber:B.employeeNumber,secondEmail:B.secondEmail,location:B.location})}catch(U){console.error("Failed to validate spectator:",U),b({open:!0,type:"error",email:C,message:"Failed to validate user. Please try again."});return}try{o(!0),await a(C),i(""),g(null),s()}catch(U){console.error("Failed to add spectator:",U)}finally{o(!1)}},F=()=>{l||(i(""),g(null),d([]),u(!1),s())};x.useEffect(()=>{c.length>0&&y.current&&y.current.scrollTo({top:y.current.scrollHeight,behavior:"smooth"})},[c.length]),x.useEffect(()=>()=>{p.current&&clearTimeout(p.current)},[]);const T=C=>{if(i(C),h&&h.email.toLowerCase()!==C.toLowerCase()&&g(null),p.current&&clearTimeout(p.current),!C||!C.startsWith("@")||C.length<2){d([]),u(!1);return}u(!0),p.current=setTimeout(async()=>{var P;try{const R=C.slice(1),I=((P=(await ta(R,10)).data)==null?void 0:P.data)||[];d(I)}catch(R){console.error("Search failed:",R),d([])}finally{u(!1)}},300)},D=async C=>{try{await qs({userId:C.userId,email:C.email,displayName:C.displayName,firstName:C.firstName,lastName:C.lastName,department:C.department,phone:C.phone,mobilePhone:C.mobilePhone,designation:C.designation,jobTitle:C.jobTitle,manager:C.manager,employeeId:C.employeeId,employeeNumber:C.employeeNumber,secondEmail:C.secondEmail,location:C.location}),i(C.email),g(C),d([]),u(!1)}catch(P){console.error("Failed to ensure user exists:",P),b({open:!0,type:"error",email:C.email,message:"Failed to verify user in database. Please try again."})}};return e.jsxs(ct,{open:t,onOpenChange:F,children:[e.jsxs(lt,{className:"sm:max-w-md min-h-[60vh] max-h-[90vh] flex flex-col p-0",children:[e.jsxs("button",{onClick:F,className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none z-50",disabled:l,children:[e.jsx(ht,{className:"h-4 w-4"}),e.jsx("span",{className:"sr-only",children:"Close"})]}),e.jsx(dt,{className:"px-6 pt-6 pb-4 flex-shrink-0",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 bg-purple-100 rounded-lg flex items-center justify-center",children:e.jsx(jt,{className:"w-5 h-5 text-purple-600"})}),e.jsx(ot,{className:"text-xl font-bold text-gray-900",children:"Add Spectator"})]})}),e.jsxs("div",{ref:y,className:"space-y-4 px-6 py-4 pb-8 overflow-y-auto flex-1",children:[e.jsx("p",{className:"text-sm text-gray-600 leading-relaxed",children:"Add a spectator to this request. They will receive notifications but cannot approve or reject."}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"text-sm font-medium text-gray-700",children:"Email Address"}),e.jsxs("div",{className:"relative",children:[e.jsx(Si,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-4 h-4 z-10"}),e.jsx(Se,{type:"text",placeholder:"@username or user@example.com",value:n,onChange:C=>T(C.target.value),className:"pl-10 h-11 border-gray-300",disabled:l,autoFocus:!0}),(m||c.length>0)&&e.jsx("div",{className:"absolute left-0 right-0 top-full mt-1 z-50 border rounded-md bg-white shadow-lg max-h-60 overflow-auto",children:m?e.jsx("div",{className:"p-3 text-sm text-gray-500",children:"Searching users..."}):c.length>0?e.jsx("ul",{className:"divide-y",children:c.map(C=>e.jsx("li",{className:"p-3 cursor-pointer hover:bg-gray-50 transition-colors",onClick:()=>D(C),children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(as,{className:"h-8 w-8",children:e.jsx(rs,{className:"bg-purple-100 text-purple-800 text-xs font-semibold",children:(C.displayName||C.email).split(" ").map(P=>P[0]).join("").slice(0,2).toUpperCase()})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium text-gray-900",children:C.displayName||[C.firstName,C.lastName].filter(Boolean).join(" ")||C.email}),e.jsx("p",{className:"text-xs text-gray-600 truncate",children:C.email}),C.designation&&e.jsx("p",{className:"text-xs text-gray-500",children:C.designation})]})]})},C.userId))}):null})]}),e.jsxs("p",{className:"text-xs text-gray-500",children:["Type ",e.jsx("span",{className:"font-semibold",children:"@username"})," to search for users, or enter email directly."]})]})]}),e.jsxs("div",{className:"flex items-center gap-3 px-6 py-4 border-t flex-shrink-0 bg-white",children:[e.jsx(M,{type:"button",variant:"outline",onClick:F,className:"flex-1 h-11 border-gray-300",disabled:l,children:"Cancel"}),e.jsxs(M,{type:"button",onClick:k,className:"flex-1 h-11 bg-[#1a472a] hover:bg-[#152e1f] text-white",disabled:l||!n.trim(),children:[e.jsx(jt,{className:"w-4 h-4 mr-2"}),l?"Adding...":"Add Spectator"]})]})]}),e.jsx(ct,{open:f.open,onOpenChange:C=>b(P=>({...P,open:C})),children:e.jsxs(lt,{className:"sm:max-w-md",children:[e.jsxs(dt,{children:[e.jsx(ot,{className:"flex items-center gap-2",children:f.type==="not-found"?e.jsxs(e.Fragment,{children:[e.jsx(Ge,{className:"w-5 h-5 text-red-600"}),"User Not Found"]}):e.jsxs(e.Fragment,{children:[e.jsx(Ge,{className:"w-5 h-5 text-red-600"}),"Validation Error"]})}),e.jsx(Lt,{asChild:!0,children:e.jsxs("div",{className:"space-y-3",children:[f.type==="not-found"&&e.jsxs(e.Fragment,{children:[e.jsxs("p",{className:"text-gray-700",children:["User ",e.jsx("strong",{children:f.email})," was not found in the organization directory."]}),e.jsxs("div",{className:"bg-red-50 border border-red-200 rounded-lg p-3 space-y-2",children:[e.jsx("p",{className:"text-sm text-red-800 font-semibold",children:"Please verify:"}),e.jsxs("ul",{className:"text-sm text-red-700 space-y-1 list-disc list-inside",children:[e.jsx("li",{children:"Email address is spelled correctly"}),e.jsx("li",{children:"User exists in Okta/SSO system"}),e.jsx("li",{children:"User has an active account"})]})]}),e.jsx("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-3",children:e.jsxs("p",{className:"text-sm text-blue-800 flex items-center gap-1",children:[e.jsx(Ci,{className:"w-4 h-4"}),e.jsx("strong",{children:"Tip:"})," Use ",e.jsx("span",{className:"font-mono bg-blue-100 px-1 rounded",children:"@"})," sign to search users from the directory."]})})]}),f.type==="error"&&e.jsxs(e.Fragment,{children:[f.email&&e.jsxs("p",{className:"text-gray-700",children:["Failed to validate ",e.jsx("strong",{children:f.email}),"."]}),f.message&&e.jsx("div",{className:"bg-gray-50 border border-gray-200 rounded-lg p-3",children:e.jsx("p",{className:"text-sm text-gray-700",children:f.message})})]})]})})]}),e.jsx(Ct,{children:e.jsx(M,{onClick:()=>b(C=>({...C,open:!1})),className:"w-full sm:w-auto",children:"OK"})})]})}),e.jsx(Fn,{open:v.open,onClose:()=>w({open:!1,violations:[]}),violations:v.violations,policyDetails:{maxApprovalLevels:A.maxApprovalLevels,maxParticipants:A.maxParticipants,allowSpectators:A.allowSpectators,maxSpectators:A.maxSpectators}})]})}function ip({open:t,onClose:s,onConfirm:a,existingParticipants:r=[],currentLevels:n=[],maxApprovalLevels:i,onPolicyViolation:l}){const[o,c]=x.useState(""),[d,m]=x.useState(24),[u,h]=x.useState(null),[g,p]=x.useState(!1),[y,f]=x.useState([]),[b,v]=x.useState(!1),[w,A]=x.useState(null),S=x.useRef(null),k=x.useRef(null),[F,T]=x.useState({open:!1,type:"error",email:"",message:""}),D=n.filter(j=>j&&(j.status==="approved"||j.status==="rejected"||j.status==="skipped")),C=Math.max(1,D.length+1),P=Math.max(1,n.length+1),R=P>=C?Array.from({length:P-C+1},(j,U)=>C+U):[C];x.useEffect(()=>{R.length>0&&u===null&&h(R[0]||null)},[R.length,u]);const V=async()=>{var H,oe;const j=o.trim().toLowerCase();if(!j){T({open:!0,type:"error",email:"",message:"Please enter an email address"});return}if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(j)){T({open:!0,type:"error",email:j,message:"Please enter a valid email address"});return}if(!d||d<=0){T({open:!0,type:"error",email:"",message:"Please enter valid TAT hours (minimum 1 hour)"});return}if(d>720){T({open:!0,type:"error",email:"",message:"TAT hours cannot exceed 720 hours (30 days)"});return}if(!u){T({open:!0,type:"error",email:"",message:"Please select an approval level"});return}if(u<C){T({open:!0,type:"error",email:"",message:`Cannot add approver at level ${u}. Minimum allowed level is ${C} (after completed levels)`});return}const z=n.length>0?Math.max(...n.map(Y=>Y.levelNumber),0):0,B=u>z?u:z+1;if(i&&B>i){l?l([{type:"Maximum Approval Levels Exceeded",message:`Adding an approver at level ${u} would result in ${B} approval levels, which exceeds the maximum allowed (${i}). Please remove an approver or contact your administrator.`,currentValue:B,maxValue:i}]):T({open:!0,type:"error",email:"",message:`Cannot add approver. This would exceed the maximum allowed approval levels (${i}). Current request has ${z} level(s).`});return}const X=r.find(Y=>(Y.email||"").toLowerCase()===j);if(X){const Y=((H=X.participantType)==null?void 0:H.toUpperCase())||"PARTICIPANT",E=X.name||j;if(Y==="INITIATOR"){T({open:!0,type:"error",email:j,message:`${E} is the request initiator and cannot be added as an approver.`});return}else if(Y==="APPROVER"){T({open:!0,type:"error",email:j,message:`${E} is already an approver on this request.`});return}else if(Y==="SPECTATOR"){T({open:!0,type:"error",email:j,message:`${E} is currently a spectator on this request and cannot be added as an approver. Please remove them as spectator first.`});return}else{T({open:!0,type:"error",email:j,message:`${E} is already a participant on this request.`});return}}if(!w||w.email.toLowerCase()!==j)try{const E=((oe=(await ta(j,1)).data)==null?void 0:oe.data)||[];if(E.length===0){T({open:!0,type:"not-found",email:j,message:""});return}const O=E[0];await qs({userId:O.userId,email:O.email,displayName:O.displayName,firstName:O.firstName,lastName:O.lastName,department:O.department,phone:O.phone,mobilePhone:O.mobilePhone,designation:O.designation,jobTitle:O.jobTitle,manager:O.manager,employeeId:O.employeeId,employeeNumber:O.employeeNumber,secondEmail:O.secondEmail,location:O.location})}catch(Y){console.error("Failed to validate approver:",Y),T({open:!0,type:"error",email:j,message:"Failed to validate user. Please try again."});return}try{p(!0),await a(j,d,u),c(""),m(24),h(null),A(null),s()}catch(Y){console.error("Failed to add approver:",Y)}finally{p(!1)}},I=()=>{g||(c(""),m(24),h(null),A(null),f([]),v(!1),s())},$=j=>{const U=j.toLowerCase();return U==="approved"?e.jsx(Ce,{className:"w-4 h-4 text-green-600"}):U==="rejected"?e.jsx(gt,{className:"w-4 h-4 text-red-600"}):U==="skipped"?e.jsx(Ge,{className:"w-4 h-4 text-orange-600"}):U==="in-review"||U==="pending"?e.jsx(Ye,{className:"w-4 h-4 text-blue-600"}):e.jsx(Ye,{className:"w-4 h-4 text-gray-400"})};x.useEffect(()=>{y.length>0&&k.current&&k.current.scrollTo({top:k.current.scrollHeight,behavior:"smooth"})},[y.length]),x.useEffect(()=>()=>{S.current&&clearTimeout(S.current)},[]);const _=j=>{if(c(j),w&&w.email.toLowerCase()!==j.toLowerCase()&&A(null),S.current&&clearTimeout(S.current),!j||!j.startsWith("@")||j.length<2){f([]),v(!1);return}v(!0),S.current=setTimeout(async()=>{var U;try{const z=j.slice(1),X=((U=(await ta(z,10)).data)==null?void 0:U.data)||[];f(X)}catch(z){console.error("Search failed:",z),f([])}finally{v(!1)}},300)},N=async j=>{try{await qs({userId:j.userId,email:j.email,displayName:j.displayName,firstName:j.firstName,lastName:j.lastName,department:j.department,phone:j.phone,mobilePhone:j.mobilePhone,designation:j.designation,jobTitle:j.jobTitle,manager:j.manager,employeeId:j.employeeId,employeeNumber:j.employeeNumber,secondEmail:j.secondEmail,location:j.location}),c(j.email),A(j),f([]),v(!1)}catch(U){console.error("Failed to ensure user exists:",U),T({open:!0,type:"error",email:j.email,message:"Failed to verify user in database. Please try again."})}};return e.jsxs(ct,{open:t,onOpenChange:I,children:[e.jsxs(lt,{className:"sm:max-w-md min-h-[60vh] max-h-[90vh] flex flex-col p-0",children:[e.jsxs("button",{onClick:I,className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none z-50",disabled:g,children:[e.jsx(ht,{className:"h-4 w-4"}),e.jsx("span",{className:"sr-only",children:"Close"})]}),e.jsx(dt,{className:"px-6 pt-6 pb-4 flex-shrink-0",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 bg-blue-100 rounded-lg flex items-center justify-center",children:e.jsx(Mt,{className:"w-5 h-5 text-blue-600"})}),e.jsx(ot,{className:"text-xl font-bold text-gray-900",children:"Add Approver"})]})}),e.jsxs("div",{ref:k,className:"space-y-4 px-6 py-4 pb-8 overflow-y-auto flex-1",children:[e.jsx("p",{className:"text-sm text-gray-600 leading-relaxed",children:"Add a new approver at a specific level. Existing approvers at and after the selected level will be shifted down."}),i&&e.jsx("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-2",children:e.jsxs("p",{className:"text-xs text-blue-800",children:["ℹ️ Max: ",i," level",i!==1?"s":"",n.length>0&&e.jsxs("span",{className:"ml-2",children:["(",Math.max(...n.map(j=>j.levelNumber),0),"/",i,")"]})]})}),n.length>0&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{className:"text-sm font-semibold text-gray-700",children:"Current Approval Levels"}),e.jsx("div",{className:"max-h-40 overflow-y-auto space-y-2 border rounded-lg p-3 bg-gray-50",children:n.map(j=>e.jsxs("div",{className:`flex items-center justify-between p-2 rounded-md ${j.status==="approved"?"bg-green-100 border border-green-200":j.status==="rejected"?"bg-red-100 border border-red-200":j.status==="skipped"?"bg-orange-100 border border-orange-200":"bg-white border border-gray-200"}`,children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-6 h-6 rounded-full bg-blue-600 text-white text-xs font-semibold flex items-center justify-center",children:j.levelNumber}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium text-gray-900",children:j.approverName}),e.jsxs("p",{className:"text-xs text-gray-500",children:[j.tatHours,"h TAT"]})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[$(j.status),e.jsx(le,{variant:"outline",className:`text-xs ${j.status==="approved"?"bg-green-50 text-green-700 border-green-300":j.status==="rejected"?"bg-red-50 text-red-700 border-red-300":j.status==="skipped"?"bg-orange-50 text-orange-700 border-orange-300":"bg-blue-50 text-blue-700 border-blue-300"}`,children:j.status})]})]},j.levelNumber))}),e.jsxs("p",{className:"text-xs text-gray-500",children:["ℹ️ New approver can only be added at level ",C," or higher (after completed levels)"]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{className:"text-sm font-medium text-gray-700",children:"Approval Level *"}),e.jsxs(Be,{value:(u==null?void 0:u.toString())||"",onValueChange:j=>h(Number(j)),disabled:g,children:[e.jsx(ze,{className:"h-11 border-gray-300",children:e.jsx(Ve,{placeholder:"Select level"})}),e.jsx(He,{children:R.map(j=>e.jsx(K,{value:j.toString(),children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ss,{className:"w-4 h-4 text-blue-600"}),e.jsxs("span",{children:["Level ",j]}),j<=n.length&&e.jsxs("span",{className:"text-xs text-gray-500",children:["(will shift existing Level ",j,")"]})]})},j))})]}),e.jsx("p",{className:"text-xs text-gray-500",children:"Choose where to insert the new approver. Existing levels will be automatically shifted."})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{className:"text-sm font-medium text-gray-700",children:"TAT (Turn Around Time) *"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Se,{type:"number",min:"1",max:"720",value:d,onChange:j=>m(Number(j.target.value)),className:"h-11 border-gray-300 flex-1",disabled:g,placeholder:"24"}),e.jsxs("div",{className:"flex items-center gap-1 text-sm text-gray-600 bg-gray-100 px-3 h-11 rounded-md border border-gray-300",children:[e.jsx(Ye,{className:"w-4 h-4"}),"hours"]})]}),e.jsx("p",{className:"text-xs text-gray-500",children:"Maximum time for this approver to respond (1-720 hours)"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"text-sm font-medium text-gray-700",children:"Email Address *"}),e.jsxs("div",{className:"relative",children:[e.jsx(Si,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-4 h-4 z-10"}),e.jsx(Se,{type:"text",placeholder:"@username or user@example.com",value:o,onChange:j=>_(j.target.value),className:"pl-10 h-11 border-gray-300",disabled:g,autoFocus:!0}),(b||y.length>0)&&e.jsx("div",{className:"absolute left-0 right-0 top-full mt-1 z-50 border rounded-md bg-white shadow-lg max-h-60 overflow-auto",children:b?e.jsx("div",{className:"p-3 text-sm text-gray-500",children:"Searching users..."}):y.length>0?e.jsx("ul",{className:"divide-y",children:y.map(j=>e.jsx("li",{className:"p-3 cursor-pointer hover:bg-gray-50 transition-colors",onClick:()=>N(j),children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(as,{className:"h-8 w-8",children:e.jsx(rs,{className:"bg-blue-100 text-blue-800 text-xs font-semibold",children:(j.displayName||j.email).split(" ").map(U=>U[0]).join("").slice(0,2).toUpperCase()})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium text-gray-900",children:j.displayName||[j.firstName,j.lastName].filter(Boolean).join(" ")||j.email}),e.jsx("p",{className:"text-xs text-gray-600 truncate",children:j.email}),j.designation&&e.jsx("p",{className:"text-xs text-gray-500",children:j.designation})]})]})},j.userId))}):null})]}),e.jsxs("p",{className:"text-xs text-gray-500",children:["Type ",e.jsx("span",{className:"font-semibold",children:"@username"})," to search for users, or enter email directly."]})]})]}),e.jsxs("div",{className:"flex items-center gap-3 px-6 py-4 border-t flex-shrink-0 bg-white",children:[e.jsx(M,{type:"button",variant:"outline",onClick:I,className:"flex-1 h-11 border-gray-300",disabled:g,children:"Cancel"}),e.jsxs(M,{type:"button",onClick:V,className:"flex-1 h-11 bg-[#1a472a] hover:bg-[#152e1f] text-white",disabled:g||!o.trim()||!u||!d,children:[e.jsx(Mt,{className:"w-4 h-4 mr-2"}),g?"Adding...":`Add at Level ${u||"?"}`]})]})]}),e.jsx(ct,{open:F.open,onOpenChange:j=>T(U=>({...U,open:j})),children:e.jsxs(lt,{className:"sm:max-w-md",children:[e.jsxs(dt,{children:[e.jsx(ot,{className:"flex items-center gap-2",children:F.type==="not-found"?e.jsxs(e.Fragment,{children:[e.jsx(Ge,{className:"w-5 h-5 text-red-600"}),"User Not Found"]}):e.jsxs(e.Fragment,{children:[e.jsx(Ge,{className:"w-5 h-5 text-red-600"}),"Validation Error"]})}),e.jsx(Lt,{asChild:!0,children:e.jsxs("div",{className:"space-y-3",children:[F.type==="not-found"&&e.jsxs(e.Fragment,{children:[e.jsxs("p",{className:"text-gray-700",children:["User ",e.jsx("strong",{children:F.email})," was not found in the organization directory."]}),e.jsxs("div",{className:"bg-red-50 border border-red-200 rounded-lg p-3 space-y-2",children:[e.jsx("p",{className:"text-sm text-red-800 font-semibold",children:"Please verify:"}),e.jsxs("ul",{className:"text-sm text-red-700 space-y-1 list-disc list-inside",children:[e.jsx("li",{children:"Email address is spelled correctly"}),e.jsx("li",{children:"User exists in Okta/SSO system"}),e.jsx("li",{children:"User has an active account"})]})]}),e.jsx("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-3",children:e.jsxs("p",{className:"text-sm text-blue-800 flex items-center gap-1",children:[e.jsx(Ci,{className:"w-4 h-4"}),e.jsx("strong",{children:"Tip:"})," Use ",e.jsx("span",{className:"font-mono bg-blue-100 px-1 rounded",children:"@"})," sign to search users from the directory."]})})]}),F.type==="error"&&e.jsxs(e.Fragment,{children:[F.email&&e.jsxs("p",{className:"text-gray-700",children:["Failed to validate ",e.jsx("strong",{children:F.email}),"."]}),F.message&&e.jsx("div",{className:"bg-gray-50 border border-gray-200 rounded-lg p-3",children:e.jsx("p",{className:"text-sm text-gray-700",children:F.message})})]})]})})]}),e.jsx(Ct,{children:e.jsx(M,{onClick:()=>T(j=>({...j,open:!1})),className:"w-full sm:w-auto",children:"OK"})})]})})]})}const zC=t=>{switch(t){case"online":return"bg-green-500";case"away":return"bg-yellow-500";case"offline":return"bg-gray-400";default:return"bg-gray-400"}},HC=t=>{switch(t){case"online":return"Online";case"away":return"Away";case"offline":return"Offline";default:return"Unknown"}},WC=t=>t.replace(/@(\w+(?:\s+\w+)?)(?=\s|$|[.,!?;:]|@)/g,(s,a,r,n)=>{const i=r+s.length,l=n[i];return!l||/\s|[.,!?;:]|@/.test(l)?'<span class="inline-flex items-center px-2.5 py-0.5 rounded-md bg-blue-50 text-blue-800 font-black text-base border-2 border-blue-400 shadow-sm">@'+a+"</span>":s}).replace(/\n/g,"<br />"),GC=t=>t<1024?t+" B":t<1024*1024?(t/1024).toFixed(1)+" KB":(t/(1024*1024)).toFixed(1)+" MB",Jm=({type:t})=>{const s="w-4 h-4",a=t.toLowerCase();return a.includes("pdf")?e.jsx(_e,{className:`${s} text-red-600`}):a.includes("excel")||a.includes("spreadsheet")||a.includes("xlsx")?e.jsx(Uf,{className:`${s} text-green-600`}):a.includes("powerpoint")||a.includes("presentation")||a.includes("pptx")?e.jsx(_e,{className:`${s} text-orange-600`}):a.includes("word")||a.includes("document")||a.includes("docx")?e.jsx(_e,{className:`${s} text-blue-600`}):a.includes("image")||a.includes("png")||a.includes("jpg")||a.includes("jpeg")||a.includes("gif")||a.includes("webp")?e.jsx(Yn,{className:`${s} text-purple-600`}):e.jsx(bi,{className:`${s} text-gray-600`})};function lp({requestId:t,messages:s,onSend:a,skipSocketJoin:r=!1,requestTitle:n,onAttachmentsExtracted:i,isInitiator:l=!1,isSpectator:o=!1,currentLevels:c=[],onAddApprover:d,maxApprovalLevels:m,onPolicyViolation:u}){const h=gr(),g=t||h.requestId||"",[p,y]=x.useState(""),[f,b]=x.useState(""),[v,w]=x.useState(!1),[A,S]=x.useState([]),[k,F]=x.useState(!1),[T,D]=x.useState([]),[C,P]=x.useState(null),[R,V]=x.useState(null),[I,$]=x.useState(!1),[_,N]=x.useState(!1),[j,U]=x.useState(!1),[z,B]=x.useState({success:!0,title:"",message:""}),X=x.useRef(null),H=x.useRef(null),oe=x.useRef(null),Y=x.useRef(!1),[E,O]=x.useState({maxFileSizeMB:10,allowedFileTypes:["pdf","doc","docx","xls","xlsx","ppt","pptx","jpg","jpeg","png","gif"]}),[L,W]=x.useState({open:!1,errors:[]}),G=x.useMemo(()=>({id:g,title:n||"Request Details"}),[g,n]),[ee,ce]=x.useState([]),Pe=ee.filter(Q=>Q.status==="online"),Oe=A.filter(Q=>Q.content.toLowerCase().includes(f.toLowerCase())||Q.user.name.toLowerCase().includes(f.toLowerCase())),ie=x.useMemo(()=>o!==void 0?o:!C||ee.length===0?!1:ee.some(Q=>{const ge=Q.userId||Q.user_id,J=(Q.role||"").toString().toUpperCase(),ke=(Q.participantType||Q.participant_type||"").toString().toUpperCase();return ge===C&&(J==="SPECTATOR"||ke==="SPECTATOR")}),[o,C,ee]);x.useEffect(()=>{},[ee]),x.useEffect(()=>{!g||!C||s||(async()=>{try{const Q=await Rr(g),ge=Array.isArray(Q)?Q.map(J=>{const ke=J.userId||J.user_id;return{id:J.noteId||J.id||String(Math.random()),user:{name:J.userName||"User",avatar:(J.userName||"U").slice(0,2).toUpperCase(),role:J.userRole||"Participant"},content:J.message||"",timestamp:J.createdAt||new Date().toISOString(),isCurrentUser:ke===C,attachments:Array.isArray(J.attachments)?J.attachments.map(Re=>({attachmentId:Re.attachmentId||Re.attachment_id,name:Re.fileName||Re.file_name||Re.name,fileName:Re.fileName||Re.file_name||Re.name,url:Re.storageUrl||Re.storage_url||Re.url||"#",type:Re.fileType||Re.file_type||Re.type||"file",fileType:Re.fileType||Re.file_type||Re.type||"file",fileSize:Re.fileSize||Re.file_size})):void 0}}):[];S(ge)}catch(Q){console.error("[WorkNoteChat] Failed to load messages:",Q)}})()},[g,C,s]);const de=x.useMemo(()=>{const Q=[];return A.forEach(ge=>{ge.attachments&&ge.attachments.length>0&&ge.attachments.forEach(J=>{Q.push({attachmentId:J.attachmentId||J.attachment_id,name:J.fileName||J.file_name||J.name||"Untitled",fileName:J.fileName||J.file_name||J.name||"Untitled",size:J.fileSize||J.file_size,type:J.fileType||J.file_type||J.type||"file",uploadedBy:ge.user.name,uploadedAt:ge.timestamp,url:J.storageUrl||J.storage_url||J.url||"#"})})}),Q},[A]);x.useEffect(()=>{i&&de.length>=0&&i(de)},[de,i]);const je=x.useMemo(()=>ee.map(Q=>({email:(Q.email||"").toLowerCase(),participantType:Q.role==="Initiator"?"INITIATOR":Q.role==="Approver"?"APPROVER":Q.role==="Spectator"?"SPECTATOR":"PARTICIPANT",name:Q.name})),[ee]),Me=Q=>{if(!Q)return"Participant";switch(Q.toUpperCase()){case"INITIATOR":return"Initiator";case"APPROVER":return"Approver";case"SPECTATOR":return"Spectator";default:return Q.charAt(0).toUpperCase()+Q.slice(1).toLowerCase()}},ye=()=>{var Q;(Q=X.current)==null||Q.scrollIntoView({behavior:"smooth"})};x.useEffect(()=>{ye()},[A]);const ae=Q=>{switch(Q.toUpperCase()){case"INITIATOR":return"Initiator";case"APPROVER":return"Approver";case"SPECTATOR":return"Spectator";default:return Q.charAt(0).toUpperCase()+Q.slice(1).toLowerCase()}};x.useEffect(()=>{Y.current||g&&(async()=>{try{const Q=await ks(g),ge=Array.isArray(Q==null?void 0:Q.participants)?Q.participants:[];if(ge.length===0)return;const J=ge.map(Ie=>{const Ke=Ie.participantType||Ie.participant_type||"participant",$e=Ie.userId||Ie.user_id||"";return{name:Ie.userName||Ie.user_name||Ie.user_email||Ie.userEmail||"User",avatar:(Ie.userName||Ie.user_name||Ie.user_email||"U").toString().split(" ").map(Qe=>Qe[0]).filter(Boolean).join("").slice(0,2).toUpperCase(),role:ae(Ke.toString()),status:"offline",email:Ie.userEmail||Ie.user_email||"",permissions:["read","write","mention"],userId:$e}});Y.current=!0,ce(J);let ke=0;const Re=3,We=()=>{oe.current&&oe.current.connected?(oe.current.emit("request:online-users",{requestId:g}),ke++,ke<Re&&setTimeout(We,500)):(ke++,ke<Re&&setTimeout(We,200))};setTimeout(We,100)}catch(Q){console.error("[WorkNoteChat] ❌ Failed to load participants:",Q)}})()},[g]),x.useEffect(()=>()=>{g&&(Y.current=!1)},[g]),x.useEffect(()=>{const Q=localStorage.getItem("userData");if(Q)try{const ge=JSON.parse(Q),J=(ge==null?void 0:ge.id)||(ge==null?void 0:ge.userId)||(ge==null?void 0:ge.user_id)||null;P(J)}catch(ge){console.error("[WorkNoteChat] Failed to parse userData:",ge)}},[]),x.useEffect(()=>{(async()=>{try{const ge=await Vs("DOCUMENT_POLICY"),J={};ge.forEach(Ie=>{J[Ie.configKey]=Ie.configValue});const ke=parseInt(J.MAX_FILE_SIZE_MB||"10"),We=(J.ALLOWED_FILE_TYPES||"pdf,doc,docx,xls,xlsx,ppt,pptx,jpg,jpeg,png,gif").split(",").map(Ie=>Ie.trim().toLowerCase());O({maxFileSizeMB:ke,allowedFileTypes:We})}catch(ge){console.error("Failed to load document policy:",ge)}})()},[]),x.useEffect(()=>{if(!C)return;let Q=g;return(async()=>{var ge;try{const J=await ks(g);(ge=J==null?void 0:J.workflow)!=null&&ge.requestId&&(Q=J.workflow.requestId)}catch{}try{const J=Pr();r?ce(at=>at.map(pt=>pt.userId===C?{...pt,status:"online"}:pt)):(Ul(J,Q,C),ce(at=>at.map(pt=>pt.userId===C?{...pt,status:"online"}:pt)));const ke=at=>{const qe=(at==null?void 0:at.note)||at;if(!qe)return;const pt=qe.noteId||qe.id;S(cs=>{if(cs.some(ft=>ft.id===pt))return cs;const Pt=qe.userName||qe.user_name||"User",Ws=qe.userRole||qe.user_role,aa=Me(Ws),ra=qe.userId||qe.user_id,ba={id:pt||String(Date.now()),user:{name:Pt,avatar:Pt.split(" ").map(ft=>ft[0]).filter(Boolean).join("").slice(0,2).toUpperCase(),role:aa},content:qe.message||"",timestamp:qe.createdAt||new Date().toISOString(),isCurrentUser:ra===C,attachments:Array.isArray(qe.attachments)?qe.attachments.map(ft=>({attachmentId:ft.attachmentId||ft.attachment_id,name:ft.fileName||ft.file_name||ft.name,fileName:ft.fileName||ft.file_name||ft.name,url:ft.storageUrl||ft.storage_url||ft.url||"#",type:ft.fileType||ft.file_type||ft.type||"file",fileType:ft.fileType||ft.file_type||ft.type||"file",fileSize:ft.fileSize||ft.file_size})):void 0};return[...cs,ba]})},Re=at=>{ce(qe=>qe.length===0||!qe.find(Pt=>Pt.userId===at.userId)?qe:qe.map(Pt=>Pt.userId===at.userId?{...Pt,status:"online"}:Pt))},We=at=>{at.userId!==C&&ce(qe=>qe.length===0||!qe.find(Pt=>Pt.userId===at.userId)?qe:qe.map(Pt=>Pt.userId===at.userId?{...Pt,status:"offline"}:Pt))},Ie=at=>{ce(qe=>qe.length===0?qe:qe.map(cs=>{const Pt=cs.userId||"";if(Pt===C)return{...cs,status:"online"};const aa=at.userIds.includes(Pt);return{...cs,status:aa?"online":"offline"}}))},Ke=()=>{ce(at=>at.map(pt=>pt.userId===C?{...pt,status:"online"}:pt)),r||Ul(J,Q,C),Y.current&&(J.emit("request:online-users",{requestId:Q}),setTimeout(()=>J.emit("request:online-users",{requestId:Q}),300),setTimeout(()=>J.emit("request:online-users",{requestId:Q}),800))},$e=at=>{console.error("[WorkNoteChat] ❌ Socket error:",at)},Qe=at=>{console.warn("[WorkNoteChat] ⚠️ Socket disconnected:",at),ce(qe=>qe.map(pt=>pt.userId===C?pt:{...pt,status:"offline"}))},gs=at=>{at.includes("presence")||at.includes("worknote")||at.includes("request")};J.on("connect",Ke),J.on("disconnect",Qe),J.on("error",$e),J.on("worknote:new",ke),J.on("presence:join",Re),J.on("presence:leave",We),J.on("presence:online",Ie),J.onAny(gs),oe.current=J,J.connected&&Y.current&&(J.emit("request:online-users",{requestId:Q}),setTimeout(()=>{J.emit("request:online-users",{requestId:Q})},300),setTimeout(()=>{J.emit("request:online-users",{requestId:Q})},800),setTimeout(()=>{J.emit("request:online-users",{requestId:Q})},1500));const Dt=()=>{J.off("connect",Ke),J.off("disconnect",Qe),J.off("error",$e),J.off("worknote:new",ke),J.off("presence:join",Re),J.off("presence:leave",We),J.off("presence:online",Ie),J.offAny(gs),r||sh(J,Q),oe.current=null};window.__wn_cleanup=Dt}catch{}})(),()=>{var ge;try{(ge=window.__wn_cleanup)==null||ge.call(window)}catch{}}},[g,C,r]);const ne=async()=>{if(p.trim()||T.length>0){const Q=sa(p),ge=Q.map(Re=>{const We=ee.find(Ie=>Ie.name.toLowerCase().includes(Re.toLowerCase()));return We==null?void 0:We.userId}).filter(Boolean),J=T.map(Re=>({name:Re.name,url:URL.createObjectURL(Re),type:Re.type.split("/")[1]||"file"})),ke={id:Date.now().toString(),user:{name:"You",avatar:"YO",role:"Current User"},content:p,timestamp:new Date().toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"numeric",hour12:!0}),mentions:Q,isHighPriority:p.includes("!important")||p.includes("urgent"),attachments:J.length>0?J:void 0,isCurrentUser:!0};if(a)try{await a(p,T)}catch{}else try{await oh(g,{message:p,mentions:ge},T);const Re=await Rr(g),We=Array.isArray(Re)?Re.map(Ie=>{const Ke=Ie.userId||Ie.user_id;return{id:Ie.noteId||Ie.id||String(Math.random()),user:{name:Ie.userName||"User",avatar:(Ie.userName||"U").slice(0,2).toUpperCase(),role:Ie.userRole||"Participant"},content:Ie.message||"",timestamp:Ie.createdAt||new Date().toISOString(),isCurrentUser:Ke===C,attachments:Array.isArray(Ie.attachments)?Ie.attachments.map($e=>({attachmentId:$e.attachmentId||$e.attachment_id,name:$e.fileName||$e.file_name||$e.name,fileName:$e.fileName||$e.file_name||$e.name,url:$e.storageUrl||$e.storage_url||$e.url||"#",type:$e.fileType||$e.file_type||$e.type||"file",fileType:$e.fileType||$e.file_type||$e.type||"file",fileSize:$e.fileSize||$e.file_size})):void 0}}):[];S(We)}catch{S(Re=>[...Re,ke])}y(""),D([])}};x.useEffect(()=>{if(s&&Array.isArray(s))try{const ge=s.filter(J=>(J.type||"").toLowerCase()!=="sla_warning").map(J=>{var Re;if(J.type||J.activityType||J.isSystem)return{id:J.id||`activity-${J.timestamp||Date.now()}-${Math.random()}`,user:{name:"System",avatar:"SY",role:"System"},content:J.details||J.action||J.content||"",timestamp:J.timestamp||J.createdAt||J.created_at||new Date().toISOString(),isSystem:!0,isCurrentUser:!1};{const We=J.userName||J.user_name||((Re=J.user)==null?void 0:Re.name)||"User",Ie=J.userRole||J.user_role,Ke=Me(Ie),$e=J.userId||J.user_id;return{id:J.noteId||J.note_id||J.id||String(Math.random()),user:{name:We,avatar:We.split(" ").map(Qe=>Qe[0]).filter(Boolean).join("").slice(0,2).toUpperCase(),role:Ke},content:J.message||J.content||"",timestamp:J.createdAt||J.created_at||J.timestamp||new Date().toISOString(),isSystem:!1,attachments:Array.isArray(J.attachments)?J.attachments.map(Qe=>({attachmentId:Qe.attachmentId||Qe.attachment_id,name:Qe.fileName||Qe.file_name||Qe.name,fileName:Qe.fileName||Qe.file_name||Qe.name,url:Qe.storageUrl||Qe.storage_url||Qe.url||"#",type:Qe.fileType||Qe.file_type||Qe.type||"file",fileType:Qe.fileType||Qe.file_type||Qe.type||"file",fileSize:Qe.fileSize||Qe.file_size})):void 0,isCurrentUser:$e===C}}}).sort((J,ke)=>new Date(J.timestamp).getTime()-new Date(ke.timestamp).getTime());S(ge)}catch(Q){console.error("[WorkNoteChat] Error mapping messages:",Q)}else(async()=>{try{const Q=await Rr(g),ge=Array.isArray(Q)?Q.map(J=>{const ke=J.userName||J.user_name||"User",Re=J.userRole||J.user_role,We=Me(Re),Ie=J.userId||J.user_id;return{id:J.noteId||J.note_id||J.id||String(Math.random()),user:{name:ke,avatar:ke.split(" ").map(Ke=>Ke[0]).filter(Boolean).join("").slice(0,2).toUpperCase(),role:We},content:J.message||"",timestamp:J.createdAt||J.created_at||new Date().toISOString(),attachments:Array.isArray(J.attachments)?J.attachments.map(Ke=>({attachmentId:Ke.attachmentId||Ke.attachment_id,name:Ke.fileName||Ke.file_name||Ke.name,fileName:Ke.fileName||Ke.file_name||Ke.name,url:Ke.storageUrl||Ke.storage_url||Ke.url||"#",type:Ke.fileType||Ke.file_type||Ke.type||"file",fileType:Ke.fileType||Ke.file_type||Ke.type||"file",fileSize:Ke.fileSize||Ke.file_size})):void 0,isCurrentUser:Ie===C}}):[];S(ge)}catch(Q){console.error("[WorkNoteChat] Error loading work notes:",Q)}})()},[s,g,ee]);const xt=Q=>{const ge=E.maxFileSizeMB*1024*1024;if(Q.size>ge)return{valid:!1,reason:`File size exceeds the maximum allowed size of ${E.maxFileSizeMB}MB. Current size: ${(Q.size/(1024*1024)).toFixed(2)}MB`};const J=Q.name.toLowerCase(),ke=J.substring(J.lastIndexOf(".")+1);return E.allowedFileTypes.includes(ke)?{valid:!0}:{valid:!1,reason:`File type "${ke}" is not allowed. Allowed types: ${E.allowedFileTypes.join(", ")}`}},ve=Q=>{if(!Q.target.files||Q.target.files.length===0)return;const ge=Array.from(Q.target.files),J=[],ke=[];ge.forEach(Re=>{const We=xt(Re);We.valid?ke.push(Re):J.push({fileName:Re.name,reason:We.reason||"Unknown validation error"})}),J.length>0&&W({open:!0,errors:J}),ke.length>0&&(D(Re=>[...Re,...ke]),ke.length<ge.length?q.warning(`${ke.length} of ${ge.length} file(s) were added. ${J.length} file(s) were rejected.`):q.success(`${ke.length} file(s) added successfully`)),Q.target&&(Q.target.value="")},Fe=Q=>{D(ge=>ge.filter((J,ke)=>ke!==Q)),H.current&&(H.current.value="")},mt=Q=>{y(ge=>ge+Q),w(!1)},Ot=()=>{var Q;(Q=H.current)==null||Q.click()},zt=async Q=>{var ge,J;try{await dh(g,Q);const ke=await ks(g),Re=Array.isArray(ke==null?void 0:ke.participants)?ke.participants:[];if(Re.length){const We=Re.map(Ie=>{const Ke=Ie.participantType||Ie.participant_type||"participant",$e=Ie.userId||Ie.user_id||"",Qe=Ie.userName||Ie.user_name||Ie.userEmail||Ie.user_email||"User",gs=Ie.userEmail||Ie.user_email||"",Dt=Qe.split(" ").map(at=>at[0]).filter(Boolean).join("").slice(0,2).toUpperCase();return{name:Qe,avatar:Dt,role:ae(Ke),status:"offline",email:gs,lastSeen:void 0,permissions:["read"],userId:$e}});ce(We),oe.current&&oe.current.connected&&oe.current.emit("request:online-users",{requestId:g})}$(!1),B({success:!0,title:"Spectator Added",message:"Spectator added successfully. They can now view this request."}),U(!0)}catch(ke){throw console.error("Failed to add spectator:",ke),B({success:!1,title:"Failed to Add Spectator",message:((J=(ge=ke==null?void 0:ke.response)==null?void 0:ge.data)==null?void 0:J.error)||"Failed to add spectator. Please try again."}),U(!0),ke}},it=async(Q,ge,J)=>{var ke,Re;if(d)await d(Q,ge,J),N(!1);else try{await ch(g,Q,ge,J);const We=await ks(g),Ie=Array.isArray(We==null?void 0:We.participants)?We.participants:[];if(Ie.length){const Ke=Ie.map($e=>{const Qe=$e.participantType||$e.participant_type||"participant",gs=$e.userId||$e.user_id||"",Dt=$e.userName||$e.user_name||$e.userEmail||$e.user_email||"User",at=$e.userEmail||$e.user_email||"",qe=Dt.split(" ").map(pt=>pt[0]).filter(Boolean).join("").slice(0,2).toUpperCase();return{name:Dt,avatar:qe,role:ae(Qe),status:"offline",email:at,lastSeen:void 0,permissions:["read"],userId:gs}});ce(Ke),oe.current&&oe.current.connected&&oe.current.emit("request:online-users",{requestId:g})}N(!1),B({success:!0,title:"Approver Added",message:`Approver added successfully at Level ${J} with ${ge}h TAT`}),U(!0)}catch(We){throw console.error("Failed to add approver:",We),B({success:!1,title:"Failed to Add Approver",message:((Re=(ke=We==null?void 0:We.response)==null?void 0:ke.data)==null?void 0:Re.error)||"Failed to add approver. Please try again."}),U(!0),We}},Is=["😊","😂","🤣","😁","😃","😄","😅","😆","😉","😌","😍","🥰","😘","😗","😙","😚","🙂","🤗","🤩","🤔","🤨","😐","😑","😶","🙄","😏","😒","🙃","😬","🤐","😴","😪","😵","🤯","🤪","😜","😝","😛","🤤","😋","😎","🤓","🧐","😕","😟","🙁","☹️","😮","😯","😲","😳","🥺","😦","😧","😨","😰","😥","😢","😭","😱","😖","😣","😞","😓","😩","😫","🥱","😤","😡","😠","🤬","😈","👿","💀","☠️","💩","🤡","👹","👺","👻","👋","🤚","🖐️","✋","🖖","👌","🤌","🤏","✌️","🤞","🤟","🤘","🤙","👈","👉","👆","🖕","👇","☝️","👍","👎","✊","👊","🤛","🤜","👏","🙌","👐","🤲","🤝","🙏","💪","🦾","🦿","🦵","🦶","👂","🦻","👃","🧠","❤️","🧡","💛","💚","💙","💜","🖤","🤍","🤎","💔","❣️","💕","💞","💓","💗","💖","💘","💝","💟","❤️🔥","💼","📊","📈","📉","💻","⌨️","🖥️","🖨️","🖱️","💾","💿","📱","☎️","📞","📟","📠","📧","✉️","📨","📩","📮","📪","📫","📬","📭","📄","📃","📑","📝","✏️","✒️","🖊️","🖋️","📏","📐","📌","📍","🗂️","📁","📂","✅","✔️","☑️","🎯","🎖️","🏆","🥇","🥈","🥉","⭐","🌟","✨","💫","🔥","💥","⚡","💯","🎉","🎊","🎈","⚠️","🚫","❌","⛔","🚷","🚯","🚱","🚳","🔞","📵","❗","❓","❕","❔","‼️","⁉️","💢","💬","💭","🗯️","⏰","⏱️","⏲️","⏳","⌛","📅","📆","🗓️","📇","🕐","🕑","🕒","🕓","🕔","🕕","🕖","🕗","🕘","🕙","🕚","🚀","🎯","🎲","🎰","🧩","🔍","🔎","🔑","🗝️","🔒","🔓","🔐","🔏","🔔","🔕","📣","📢","💡","🔦","🏮","➕","➖","✖️","➗","♾️","‼️","⁉️","❓","❔","❕","🔄","🔃","🔂","▶️","⏸️","⏯️","⏹️","⏺️","⏭️","⏮️","⏩","⏪","⏫","⏬","◀️","🔼","🔽","➡️","⬅️","⬆️","⬇️","↗️","↘️","↙️","↖️","↕️","↔️","↪️","↩️","⤴️"],sa=Q=>{const ge=/@(\w+(?:\s+\w+)?)(?=\s|$|[.,!?;:]|@)/g,J=[];let ke;for(;(ke=ge.exec(Q))!==null;)if(ke[1]){const Re=ke.index+ke[0].length,We=Q.slice(Re),Ie=Q[Re];(We.startsWith("@")||!Ie||/\s|[.,!?;:]|@/.test(Ie))&&J.push(ke[1].trim())}return J},Ia=Q=>{Q.key==="Enter"&&!Q.shiftKey&&(Q.preventDefault(),ne())},va=(Q,ge)=>{S(J=>J.map(ke=>{if(ke.id===Q){const Re=ke.reactions||[],We=Re.find(Ie=>Ie.emoji===ge);if(We)if(We.users.includes("You")){if(We.users=We.users.filter(Ie=>Ie!=="You"),We.users.length===0)return{...ke,reactions:Re.filter(Ie=>Ie.emoji!==ge)}}else We.users.push("You");else Re.push({emoji:ge,users:["You"]});return{...ke,reactions:Re}}return ke}))};return e.jsxs("div",{className:"h-full flex flex-col bg-gray-50 overflow-hidden",children:[e.jsx("div",{className:"bg-white border-b border-gray-200 px-3 sm:px-6 py-4 flex-shrink-0",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2 sm:gap-4 min-w-0 flex-1",children:[e.jsx("div",{className:"w-10 h-10 sm:w-12 sm:h-12 bg-gradient-to-br from-blue-500 to-purple-600 rounded-xl flex items-center justify-center shadow-lg shrink-0",children:e.jsx(Hs,{className:"w-5 h-5 sm:w-6 sm:h-6 text-white"})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("h1",{className:"text-lg sm:text-2xl font-bold text-gray-900",children:"Work Notes"}),e.jsxs("div",{className:"flex items-center gap-2 mt-1",children:[e.jsx("p",{className:"text-gray-600 text-sm sm:text-base truncate",children:G.title}),e.jsx(le,{variant:"outline",className:"text-xs shrink-0",children:t})]})]})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"flex items-center gap-2 text-sm text-gray-600",children:e.jsxs("div",{className:"flex -space-x-2",children:[Pe.slice(0,3).map((Q,ge)=>e.jsx(as,{className:"h-8 w-8 ring-2 ring-white shadow-sm",children:e.jsx(rs,{className:"bg-blue-500 text-white text-xs font-semibold",children:Q.avatar})},ge)),Pe.length>3&&e.jsxs("div",{className:"h-8 w-8 rounded-full bg-gray-100 ring-2 ring-white flex items-center justify-center text-xs font-medium text-gray-600",children:["+",Pe.length-3]})]})}),e.jsx(M,{variant:"outline",size:"sm",onClick:()=>F(!k),className:"lg:hidden",children:e.jsx(Mt,{className:"h-4 w-4"})})]})]})}),e.jsxs("div",{className:"flex-1 flex overflow-hidden relative",children:[e.jsxs("div",{className:"flex-1 flex flex-col min-w-0",children:[e.jsx("div",{className:"bg-white border-b border-gray-200 px-2 sm:px-3 lg:px-6 py-2 sm:py-3 flex-shrink-0",children:e.jsxs("div",{className:"relative",children:[e.jsx(vs,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-4 h-4"}),e.jsx(Se,{placeholder:"Search messages...",value:f,onChange:Q=>b(Q.target.value),className:"pl-10 bg-gray-50 border-gray-200 h-9 sm:h-10"})]})}),e.jsx("div",{className:"flex-1 overflow-y-auto overflow-x-hidden px-2 sm:px-3 lg:px-6 py-2 sm:py-4 min-h-0",children:e.jsxs("div",{className:"space-y-3 sm:space-y-6 max-w-full",children:[Oe.map(Q=>{const ge=Q.isCurrentUser||!1;return e.jsxs("div",{className:`flex gap-2 sm:gap-3 lg:gap-4 ${Q.isSystem?"justify-center":ge?"justify-end":""}`,children:[!Q.isSystem&&!ge&&e.jsx(as,{className:"h-8 w-8 sm:h-10 sm:w-10 lg:h-12 lg:w-12 flex-shrink-0 ring-1 sm:ring-2 ring-white shadow-sm",children:e.jsx(rs,{className:`text-white font-semibold text-xs sm:text-sm ${Q.user.role==="Initiator"?"bg-green-600":Q.user.role==="Current User"?"bg-blue-500":Q.user.role==="System"?"bg-gray-500":"bg-slate-600"}`,children:Q.user.avatar})}),e.jsx("div",{className:`${ge?"max-w-[70%]":"flex-1"} min-w-0 ${Q.isSystem?"text-center max-w-xs sm:max-w-md mx-auto":""}`,children:Q.isSystem?e.jsxs("div",{className:"inline-flex items-center gap-2 sm:gap-3 px-3 sm:px-4 py-1.5 sm:py-2 bg-gray-100 rounded-full",children:[e.jsx(Gt,{className:"w-3 h-3 sm:w-4 sm:h-4 text-gray-500 flex-shrink-0"}),e.jsx("span",{className:"text-xs sm:text-sm text-gray-700",children:Q.content}),e.jsx("span",{className:"text-xs text-gray-500 hidden sm:inline",children:ns(Q.timestamp)})]}):e.jsxs("div",{children:[e.jsxs("div",{className:`flex items-center gap-2 sm:gap-3 mb-1 sm:mb-2 flex-wrap ${ge?"justify-end":""}`,children:[e.jsxs("span",{className:"font-semibold text-gray-900 text-sm sm:text-base truncate",children:[Q.user.name," ",ge&&e.jsx("span",{className:"text-xs text-gray-500 font-normal",children:"(you)"})]}),e.jsx(le,{variant:"outline",className:"text-xs flex-shrink-0",children:Q.user.role}),e.jsxs("span",{className:"text-xs text-gray-500 flex items-center gap-1 flex-shrink-0",children:[e.jsx(Ye,{className:"w-3 h-3"}),ns(Q.timestamp)]}),Q.isHighPriority&&e.jsxs(le,{variant:"destructive",className:"text-xs flex-shrink-0",children:[e.jsx(Of,{className:"w-3 h-3 mr-1"}),"Priority"]})]}),e.jsxs("div",{className:`rounded-lg border p-3 sm:p-4 shadow-sm ${ge?"bg-blue-50 border-blue-200":"bg-white border-gray-200"}`,children:[e.jsx("div",{className:"text-gray-800 leading-relaxed text-sm sm:text-base",dangerouslySetInnerHTML:{__html:WC(Q.content)}}),Q.attachments&&Q.attachments.length>0&&e.jsx("div",{className:"mt-2 sm:mt-3 pt-2 sm:pt-3 border-t border-gray-100",children:e.jsx("div",{className:"space-y-2",children:Q.attachments.map((J,ke)=>{const Re=J.fileSize||J.file_size,We=J.fileName||J.file_name||J.name,Ie=J.fileType||J.file_type||J.type||"",Ke=J.attachmentId||J.attachment_id;return e.jsxs("div",{className:"flex items-center gap-2 sm:gap-3 p-2 sm:p-3 bg-gray-50 rounded-lg border border-gray-200 hover:bg-gray-100 transition-colors",children:[e.jsx("div",{className:"flex-shrink-0",children:e.jsx(Jm,{type:Ie})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-xs sm:text-sm font-medium text-gray-700 truncate",children:We}),Re&&e.jsx("p",{className:"text-xs text-gray-500",children:GC(Re)})]}),Ke&&(()=>{const $e=(Ie||"").toLowerCase();return $e.includes("image")||$e.includes("pdf")||$e.includes("jpg")||$e.includes("jpeg")||$e.includes("png")||$e.includes("gif")})()&&e.jsx(M,{variant:"ghost",size:"sm",className:"h-6 w-6 sm:h-8 sm:w-8 p-0 flex-shrink-0 hover:bg-purple-100 hover:text-purple-600",onClick:$e=>{$e.preventDefault(),$e.stopPropagation();const Qe=sb(Ke);V({fileName:We,fileType:Ie,fileUrl:Qe,fileSize:Re,attachmentId:Ke})},title:"Preview file",children:e.jsx(jt,{className:"w-3 h-3 sm:w-4 sm:h-4"})}),e.jsx(M,{variant:"ghost",size:"sm",className:"h-6 w-6 sm:h-8 sm:w-8 p-0 flex-shrink-0 hover:bg-blue-100 hover:text-blue-600",onClick:async $e=>{if($e.preventDefault(),$e.stopPropagation(),!Ke){q.error("Cannot download: Attachment ID missing");return}try{await Dd(Ke)}catch{q.error("Failed to download file")}},title:"Download file",children:e.jsx(wt,{className:"w-3 h-3 sm:w-4 sm:h-4"})})]},ke)})})}),Q.reactions&&Q.reactions.length>0&&e.jsxs("div",{className:"flex items-center gap-1 sm:gap-2 mt-2 sm:mt-3 pt-2 sm:pt-3 border-t border-gray-100 flex-wrap",children:[Q.reactions.map((J,ke)=>e.jsxs("button",{onClick:()=>va(Q.id,J.emoji),className:`flex items-center gap-1 px-2 py-1 rounded-full text-xs sm:text-sm transition-colors flex-shrink-0 ${J.users.includes("You")?"bg-blue-100 text-blue-800 border border-blue-200":"bg-gray-100 text-gray-700 hover:bg-gray-200"}`,children:[e.jsx("span",{children:J.emoji}),e.jsx("span",{className:"text-xs font-medium",children:J.users.length})]},ke)),e.jsx(M,{variant:"ghost",size:"sm",className:"h-6 w-6 sm:h-7 sm:w-7 p-0 flex-shrink-0",onClick:()=>w(!v),children:e.jsx(Us,{className:"w-2 h-2 sm:w-3 sm:h-3"})})]})]})]})}),!Q.isSystem&&ge&&e.jsx(as,{className:"h-8 w-8 sm:h-10 sm:w-10 lg:h-12 lg:w-12 flex-shrink-0 ring-1 sm:ring-2 ring-white shadow-sm",children:e.jsx(rs,{className:"bg-blue-500 text-white font-semibold text-xs sm:text-sm",children:Q.user.avatar})})]},Q.id)}),e.jsx("div",{ref:X})]})}),e.jsx("div",{className:"bg-white border-t border-gray-200 p-2 sm:p-3 lg:p-6 flex-shrink-0",children:e.jsxs("div",{className:"max-w-full",children:[e.jsx("input",{type:"file",ref:H,onChange:ve,className:"hidden",multiple:!0,accept:E.allowedFileTypes.map(Q=>`.${Q}`).join(",")}),T.length>0&&e.jsx("div",{className:"mb-3 space-y-2 max-h-32 overflow-y-auto pr-2",children:T.map((Q,ge)=>e.jsxs("div",{className:"flex items-center gap-2 p-2 bg-blue-50 rounded-lg border border-blue-200",children:[e.jsx("div",{className:"flex-shrink-0",children:e.jsx(Jm,{type:Q.type.split("/")[1]||"file"})}),e.jsx("span",{className:"text-sm text-gray-700 flex-1 truncate min-w-0",children:Q.name}),e.jsxs("span",{className:"text-xs text-gray-500 flex-shrink-0",children:[(Q.size/1024).toFixed(1)," KB"]}),e.jsx(M,{variant:"ghost",size:"sm",onClick:()=>Fe(ge),className:"h-6 w-6 p-0 hover:bg-red-100 flex-shrink-0",children:e.jsx(ht,{className:"h-3 w-3 text-red-600"})})]},ge))}),e.jsxs("div",{className:"relative mb-2",children:[(()=>{const Q=p.lastIndexOf("@"),ge=Q>=0;if(!ge)return null;const J=p.slice(Q+1),ke=J.trim(),Re=J.endsWith(" "),We=ke.length>0,Ie=ke.includes(" ")&&!Re,Ke=Re&&We;if(!(ge&&J.length<=20&&!Ie&&!Ke))return null;const Qe=ke.toLowerCase(),gs=ee.filter(Dt=>Dt.userId===C?!1:Qe?Dt.name.toLowerCase().includes(Qe):!0);return e.jsxs("div",{className:"absolute bottom-full left-0 mb-2 bg-white border-2 border-blue-300 rounded-lg shadow-2xl p-3 z-[100] w-full sm:max-w-md",children:[e.jsx("p",{className:"text-sm font-semibold text-gray-900 mb-2",children:"💬 Mention someone"}),e.jsx("div",{className:"max-h-60 overflow-y-auto space-y-1",children:gs.length>0?gs.map((Dt,at)=>e.jsxs("button",{type:"button",onClick:qe=>{qe.preventDefault(),qe.stopPropagation();const pt=p.lastIndexOf("@"),cs=p.slice(0,pt);y(cs+"@"+Dt.name+" ")},className:"w-full flex items-center gap-3 p-3 hover:bg-blue-50 rounded-lg text-left transition-colors border border-transparent hover:border-blue-200",children:[e.jsx(as,{className:"h-10 w-10",children:e.jsx(rs,{className:`text-white text-sm font-semibold ${Dt.role==="Initiator"?"bg-green-600":Dt.role==="Approver"?"bg-purple-600":"bg-blue-500"}`,children:Dt.avatar})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-semibold text-gray-900",children:Dt.name}),e.jsx("p",{className:"text-xs text-gray-600",children:Dt.role})]})]},at)):e.jsx("p",{className:"text-sm text-gray-500 text-center py-4",children:Qe?`No participants found matching "${Qe}"`:"No other participants available"})})]})})(),e.jsx(ps,{placeholder:"Type your message... Use @username to mention someone",value:p,onChange:Q=>y(Q.target.value),onKeyPress:Ia,className:"min-h-[50px] sm:min-h-[60px] resize-none border-gray-200 focus:ring-blue-500 focus:border-blue-500 w-full text-sm",rows:2}),v&&e.jsxs("div",{className:"absolute bottom-full left-0 mb-2 bg-white border border-gray-200 rounded-lg shadow-xl p-3 z-50 w-full sm:w-96 max-h-80 overflow-y-auto",children:[e.jsxs("div",{className:"flex items-center justify-between mb-3 sticky top-0 bg-white pb-2 border-b",children:[e.jsx("span",{className:"text-sm font-semibold text-gray-700",children:"Pick an emoji"}),e.jsx(M,{variant:"ghost",size:"sm",onClick:()=>w(!1),className:"h-6 w-6 p-0",children:e.jsx(ht,{className:"h-3 w-3"})})]}),e.jsx("div",{className:"grid grid-cols-8 sm:grid-cols-10 gap-1",children:Is.map((Q,ge)=>e.jsx("button",{onClick:()=>mt(Q),className:"text-xl sm:text-2xl hover:bg-gray-100 rounded p-1 transition-colors flex items-center justify-center",title:Q,children:Q},ge))})]})]}),e.jsxs("div",{className:"flex items-center justify-between gap-2 flex-shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-1 sm:gap-2 flex-shrink-0",children:[e.jsx(M,{variant:"ghost",size:"sm",className:"text-gray-500 h-8 w-8 p-0 hover:bg-blue-50 hover:text-blue-600 flex-shrink-0",onClick:Ot,title:"Attach file",children:e.jsx(bi,{className:"h-4 w-4"})}),e.jsx(M,{variant:"ghost",size:"sm",className:"text-gray-500 h-8 w-8 p-0 hover:bg-blue-50 hover:text-blue-600 flex-shrink-0",onClick:()=>w(!v),title:"Add emoji",children:e.jsx($f,{className:"h-4 w-4"})}),e.jsx(M,{variant:"ghost",size:"sm",className:"text-gray-500 h-8 w-8 p-0 hover:bg-blue-50 hover:text-blue-600 flex-shrink-0",onClick:()=>y(Q=>Q+"@"),title:"Mention someone",children:e.jsx(Si,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"flex items-center gap-2 ml-auto flex-shrink-0",children:[e.jsxs("span",{className:"text-xs text-gray-500 hidden md:inline whitespace-nowrap",children:[p.length,"/2000"]}),e.jsxs(M,{onClick:ne,disabled:!p.trim()&&T.length===0,className:"bg-blue-600 hover:bg-blue-700 h-8 sm:h-9 px-3 sm:px-4 disabled:opacity-50 disabled:cursor-not-allowed flex-shrink-0",size:"sm",children:[e.jsx(Iu,{className:"h-4 w-4 sm:mr-2"}),e.jsx("span",{className:"hidden sm:inline",children:"Send"})]})]})]})]})})]}),k&&e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 z-40 lg:hidden",onClick:()=>F(!1)}),e.jsxs("div",{className:`
|
||
w-72 sm:w-80 bg-white border-l border-gray-200 flex flex-col
|
||
lg:relative lg:translate-x-0 lg:shadow-none
|
||
${k?"fixed right-0 top-0 bottom-0 z-50 shadow-xl":"hidden lg:flex"}
|
||
`,children:[e.jsxs("div",{className:"p-4 sm:p-6 border-b border-gray-200 flex-1 flex flex-col min-h-0",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4 flex-shrink-0",children:[e.jsx("h3",{className:"text-base sm:text-lg font-semibold text-gray-900",children:"Participants"}),e.jsx(M,{variant:"ghost",size:"sm",onClick:()=>F(!1),className:"lg:hidden h-8 w-8 p-0",children:e.jsx(ht,{className:"h-4 w-4"})})]}),e.jsx("div",{className:"space-y-3 sm:space-y-4 overflow-y-auto flex-1 pr-2",children:ee.map((Q,ge)=>{const J=Q.userId===C;return e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("div",{className:"relative",children:[e.jsx(as,{className:"h-9 w-9 sm:h-10 sm:w-10",children:e.jsx(rs,{className:`text-white font-semibold text-sm ${Q.role==="Initiator"?"bg-green-600":J?"bg-blue-500":"bg-slate-600"}`,children:Q.avatar})}),e.jsx("div",{className:`absolute -bottom-1 -right-1 w-3 h-3 rounded-full border-2 border-white ${zC(Q.status)}`})]}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("p",{className:"font-medium text-gray-900 truncate text-sm sm:text-base",children:[Q.name," ",J&&e.jsx("span",{className:"text-xs text-gray-500 font-normal",children:"(you)"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("p",{className:"text-xs text-gray-500",children:Q.role}),e.jsx("span",{className:"text-xs text-gray-400",children:"•"}),e.jsx("p",{className:"text-xs text-gray-500",children:HC(Q.status)})]}),Q.lastSeen&&Q.status==="offline"&&e.jsx("p",{className:"text-xs text-gray-400",children:Q.lastSeen})]})]},ge)})})]}),!ie&&e.jsxs("div",{className:"p-4 sm:p-6 flex-shrink-0",children:[e.jsx("h4",{className:"font-semibold text-gray-900 mb-3 text-sm sm:text-base",children:"Quick Actions"}),e.jsxs("div",{className:"space-y-2",children:[l&&e.jsxs(M,{variant:"outline",size:"sm",className:"w-full justify-start gap-2 h-9 text-sm",onClick:()=>N(!0),children:[e.jsx(Ai,{className:"h-4 w-4"}),"Add Approver"]}),e.jsxs(M,{variant:"outline",size:"sm",className:"w-full justify-start gap-2 h-9 text-sm",onClick:()=>$(!0),children:[e.jsx(jt,{className:"h-4 w-4"}),"Add Spectator"]})]})]})]})]}),R&&e.jsx(dc,{fileName:R.fileName,fileType:R.fileType,fileUrl:R.fileUrl,fileSize:R.fileSize,attachmentId:R.attachmentId,onDownload:Dd,open:!!R,onClose:()=>V(null)}),!ie&&e.jsx(np,{open:I,onClose:()=>$(!1),onConfirm:zt,requestIdDisplay:g,requestTitle:G.title,existingParticipants:je}),!ie&&l&&e.jsx(ip,{open:_,onClose:()=>N(!1),onConfirm:it,requestIdDisplay:g,requestTitle:G.title,existingParticipants:je,currentLevels:c,maxApprovalLevels:m,onPolicyViolation:u}),e.jsx(ct,{open:L.open,onOpenChange:Q=>W(ge=>({...ge,open:Q})),children:e.jsxs(lt,{className:"sm:max-w-lg",children:[e.jsxs(dt,{children:[e.jsxs(ot,{className:"flex items-center gap-2",children:[e.jsx(Ge,{className:"w-5 h-5 text-red-600"}),"Document Upload Policy Violation"]}),e.jsx(Lt,{asChild:!0,children:e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{className:"text-gray-700",children:"The following file(s) could not be uploaded due to policy violations:"}),e.jsx("div",{className:"space-y-2 max-h-60 overflow-y-auto",children:L.errors.map((Q,ge)=>e.jsxs("div",{className:"bg-red-50 border border-red-200 rounded-lg p-3",children:[e.jsx("p",{className:"font-medium text-red-900 text-sm",children:Q.fileName}),e.jsx("p",{className:"text-xs text-red-700 mt-1",children:Q.reason})]},ge))}),e.jsxs("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-3",children:[e.jsx("p",{className:"text-sm text-blue-800 font-semibold mb-1",children:"Document Policy:"}),e.jsxs("ul",{className:"text-xs text-blue-700 space-y-1 list-disc list-inside",children:[e.jsxs("li",{children:["Maximum file size: ",E.maxFileSizeMB,"MB"]}),e.jsxs("li",{children:["Allowed file types: ",E.allowedFileTypes.join(", ")]})]})]})]})})]}),e.jsx(Ct,{children:e.jsx(M,{onClick:()=>W({open:!1,errors:[]}),className:"w-full sm:w-auto",children:"OK"})})]})}),e.jsx(rp,{open:j,onClose:()=>U(!1),success:z.success,title:z.title,message:z.message})]})}function KC({requestId:t,requestTitle:s,mergedMessages:a,setWorkNoteAttachments:r,isInitiator:n,isSpectator:i,currentLevels:l,onAddApprover:o,maxApprovalLevels:c,onPolicyViolation:d}){return e.jsx("div",{className:"h-[calc(100vh-300px)] min-h-[600px]",children:e.jsx(lp,{requestId:t,requestTitle:s,skipSocketJoin:!0,messages:a,onAttachmentsExtracted:r,isInitiator:n,isSpectator:i,currentLevels:l,onAddApprover:o,maxApprovalLevels:c,onPolicyViolation:d})})}function YC({summary:t,loading:s,onShare:a,isInitiator:r}){const n=o=>{const c=o.toLowerCase();return c==="approved"?e.jsx(Ce,{className:"h-4 w-4 text-green-600"}):c==="rejected"?e.jsx(gt,{className:"h-4 w-4 text-red-600"}):c==="pending"||c==="in progress"?e.jsx(Ye,{className:"h-4 w-4 text-orange-600"}):e.jsx(_e,{className:"h-4 w-4 text-gray-600"})},i=o=>{const c=o.toLowerCase();return c==="approved"?"bg-green-100 text-green-700 border-green-300":c==="rejected"?"bg-red-100 text-red-700 border-red-300":c==="pending"||c==="in progress"?"bg-orange-100 text-orange-700 border-orange-300":"bg-gray-100 text-gray-700 border-gray-300"},l=(o,c)=>o&&o.trim()&&o.trim().toUpperCase()!=="N/A"?o:c&&c.trim()&&c.trim().toUpperCase()!=="N/A"?c:"N/A";return s?e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsxs("div",{className:"text-center",children:[e.jsx(Je,{className:"h-12 w-12 animate-spin text-blue-600 mx-auto mb-4"}),e.jsx("p",{className:"text-gray-600",children:"Loading summary..."})]})}):t?e.jsx("div",{className:"space-y-6",children:e.jsxs("div",{className:"bg-white rounded-lg shadow-sm border border-gray-200",children:[e.jsxs("div",{className:"p-6 border-b border-gray-200",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4 mb-4",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-xl font-semibold text-gray-900 mb-2",children:t.title}),e.jsxs("p",{className:"text-sm text-gray-600",children:["Request #",t.requestNumber]})]}),r&&a?e.jsxs(M,{variant:"outline",size:"sm",onClick:a,className:"flex items-center gap-2",children:[e.jsx(Mr,{className:"w-4 h-4"}),e.jsx("span",{children:"Share"})]}):e.jsxs(le,{className:i(t.workflow.status),children:[n(t.workflow.status),e.jsx("span",{className:"ml-1 capitalize",children:t.workflow.status})]})]}),t.description&&e.jsx("div",{className:"mb-4",children:e.jsx(Qs,{content:t.description,className:"text-gray-700"})})]}),e.jsxs("div",{className:"p-6 border-b border-gray-200",children:[e.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-4",children:"Initiator"}),e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Name"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:t.initiator.name})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Designation"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:l(t.initiator.designation,t.initiator.department)})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Status"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:t.initiator.status})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Time Stamp"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:De(new Date(t.initiator.timestamp),"MMM dd, yy, HH:mm")})]})]})]}),t.approvers&&t.approvers.length>0&&e.jsxs("div",{className:"p-6 border-b border-gray-200",children:[e.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-4",children:"Workflow"}),t.approvers.map((o,c)=>e.jsxs("div",{className:"mb-6 last:mb-0",children:[e.jsx("h4",{className:"text-md font-semibold text-gray-800 mb-3",children:o.levelName||`Approver ${o.levelNumber}`}),e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 mb-3",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Name"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:o.name})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Designation"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:l(o.designation,o.department)})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Status"}),e.jsxs("div",{className:"flex items-center gap-1",children:[n(o.status),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:o.status})]})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Time Stamp"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:De(new Date(o.timestamp),"MMM dd, yy, HH:mm")})]})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Remarks"}),e.jsx("p",{className:"text-sm text-gray-700",children:o.remarks||"—"})]})]},c))]}),e.jsxs("div",{className:"p-6",children:[e.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-4",children:"Closing Remarks (Conclusion)"}),e.jsxs("div",{className:"bg-gray-50 rounded-lg p-4",children:[e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 mb-4",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Name"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:t.initiator.name})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Designation"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:l(t.initiator.designation,t.initiator.department)})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Status"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:"Concluded"})]}),t.isAiGenerated&&e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Source"}),e.jsx(le,{variant:"outline",className:"text-xs",children:"AI Generated"})]})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Remarks"}),t.closingRemarks?e.jsx(Qs,{content:t.closingRemarks,className:"text-sm text-gray-700"}):e.jsx("p",{className:"text-sm text-gray-700",children:"—"})]})]})]})]})}):e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsxs("div",{className:"text-center",children:[e.jsx(_e,{className:"h-12 w-12 text-gray-400 mx-auto mb-4"}),e.jsx("h2",{className:"text-xl font-bold text-gray-900 mb-2",children:"Summary Not Available"}),e.jsx("p",{className:"text-gray-600",children:"Summary has not been generated for this request yet."})]})})}function ZC({sla:t,requestStatus:s,isPaused:a=!1,testId:r="sla-progress"}){if(!(t&&(t.percentageUsed!==void 0||t.elapsedHours!==void 0))||s==="approved"||s==="rejected"||s==="closed")return e.jsxs("div",{className:"flex items-center gap-2","data-testid":`${r}-status-only`,children:[s==="closed"?e.jsx(bn,{className:"h-4 w-4 text-gray-600"}):s==="approved"?e.jsx(Ce,{className:"h-4 w-4 text-green-600"}):s==="rejected"?e.jsx(gt,{className:"h-4 w-4 text-red-600"}):e.jsx(Ye,{className:"h-4 w-4 text-gray-500"}),e.jsx("span",{className:"text-sm font-medium text-gray-700",children:s==="closed"?"Request Closed":s==="approved"?"Request Approved":s==="rejected"?"Request Rejected":"SLA Not Available"})]});const i=t.percentageUsed!==void 0?t.percentageUsed:0,l=t.status||"on_track",c=a?{badge:"bg-gray-500 text-white",progress:"bg-gray-500",text:"text-gray-600",icon:"text-gray-500"}:i>=100?{badge:"bg-red-600 text-white animate-pulse",progress:"bg-red-600",text:"text-red-600",icon:"text-blue-600"}:i>=75?{badge:"bg-orange-500 text-white",progress:"bg-orange-500",text:"text-orange-600",icon:"text-blue-600"}:i>=50?{badge:"bg-amber-500 text-white",progress:"bg-amber-500",text:"text-amber-600",icon:"text-blue-600"}:{badge:"bg-green-600 text-white",progress:"bg-green-600",text:"text-gray-700",icon:"text-blue-600"},d=l==="on_track"||l==="normal"?"normal":l;return e.jsxs("div",{"data-testid":r,children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[a?e.jsx(bn,{className:`h-4 w-4 ${c.icon}`}):e.jsx(Ye,{className:`h-4 w-4 ${c.icon}`}),e.jsx("span",{className:"text-sm font-semibold text-gray-900",children:a?"SLA Progress (Paused)":"SLA Progress"})]}),e.jsxs(le,{className:`text-xs ${c.badge}`,"data-testid":`${r}-badge`,children:[i,"% elapsed ",a&&"(frozen)"]})]}),e.jsx(ea,{value:i,className:"h-3 mb-2",indicatorClassName:c.progress,"data-testid":`${r}-bar`}),e.jsxs("div",{className:"flex items-center justify-between text-xs mb-1",children:[e.jsxs("span",{className:"text-gray-600","data-testid":`${r}-elapsed`,children:[Rt(t.elapsedHours||0)," elapsed"]}),e.jsxs("span",{className:`font-semibold ${d==="breached"||d==="critical"?c.text:"text-gray-700"}`,"data-testid":`${r}-remaining`,children:[Rt(t.remainingHours||0)," remaining"]})]}),t.deadline&&e.jsxs("p",{className:"text-xs text-gray-500","data-testid":`${r}-deadline`,children:["Due: ",ma(t.deadline,!0)," • ",i,"% elapsed"]}),d==="critical"&&e.jsxs("p",{className:"text-xs text-orange-600 font-semibold mt-1 flex items-center gap-1.5","data-testid":`${r}-warning-critical`,children:[e.jsx(os,{className:"h-3.5 w-3.5"}),"Approaching Deadline"]}),d==="breached"&&e.jsxs("p",{className:"text-xs text-red-600 font-semibold mt-1 flex items-center gap-1.5","data-testid":`${r}-warning-breached`,children:[e.jsx(oi,{className:"h-3.5 w-3.5"}),"URGENT - Deadline Passed"]})]})}function XC({request:t,refreshing:s,onBack:a,onRefresh:r,onShareSummary:n,isInitiator:i,slaData:l,isPaused:o=!1}){var m;const c=$C((t==null?void 0:t.priority)||"standard"),d=UC((t==null?void 0:t.status)||"pending");return e.jsxs("div",{className:"bg-white rounded-lg shadow-sm border border-gray-300 mb-4 sm:mb-6","data-testid":"request-detail-header",children:[e.jsxs("div",{className:"p-3 sm:p-4 md:p-6 border-b border-gray-300",children:[e.jsxs("div",{className:"flex items-start sm:items-center justify-between gap-2 sm:gap-4",children:[e.jsxs("div",{className:"flex items-start sm:items-center gap-2 sm:gap-4 min-w-0 flex-1",children:[e.jsx(M,{variant:"ghost",size:"icon",onClick:a,className:"rounded-lg flex-shrink-0 h-8 w-8 sm:h-10 sm:w-10","data-testid":"back-button",children:e.jsx(zs,{className:"h-4 w-4 sm:h-5 sm:h-5"})}),e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center gap-2 sm:gap-3 min-w-0 flex-1",children:[e.jsx("div",{className:"w-8 h-8 sm:w-10 sm:h-10 rounded-full bg-blue-100 flex items-center justify-center flex-shrink-0",children:e.jsx(_e,{className:"w-4 h-4 sm:w-5 sm:h-5 text-blue-600"})}),e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center gap-2 min-w-0 flex-1",children:[e.jsx("h1",{className:"text-sm sm:text-base md:text-lg font-bold text-gray-900 truncate","data-testid":"request-id",children:t.id||"N/A"}),e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 sm:gap-2",children:[e.jsx(le,{className:`${c.color} rounded-full px-2 sm:px-3 text-xs capitalize shrink-0`,variant:"outline","data-testid":"priority-badge",children:c.label}),e.jsx(le,{className:`${d.color} rounded-full px-2 sm:px-3 text-xs capitalize shrink-0`,variant:"outline","data-testid":"status-badge",children:d.label}),(()=>{const u=(t==null?void 0:t.workflowType)||(t==null?void 0:t.workflow_type),h=(t==null?void 0:t.templateType)||(t==null?void 0:t.template_type),g=u==="CLAIM_MANAGEMENT"||h==="claim-management",p=g?"Claim Management":"Custom",y=g?"bg-blue-100 !text-blue-700 border-blue-200":"bg-purple-100 !text-purple-600 border-purple-200";return e.jsx(le,{className:`${y} rounded-full px-2 sm:px-3 text-xs shrink-0`,variant:"outline","data-testid":"template-type-badge",children:p})})()]})]})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[n&&i&&((m=t==null?void 0:t.status)==null?void 0:m.toLowerCase())==="closed"&&e.jsxs(M,{variant:"default",size:"sm",className:"gap-1 sm:gap-2 flex-shrink-0 h-8 sm:h-9",onClick:n,"data-testid":"share-summary-button",children:[e.jsx(Mr,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Share Summary"})]}),e.jsxs(M,{variant:"outline",size:"sm",className:"gap-1 sm:gap-2 flex-shrink-0 h-8 sm:h-9",onClick:r,disabled:s,"data-testid":"refresh-button",children:[e.jsx(Bt,{className:`w-3.5 h-3.5 sm:w-4 sm:h-4 ${s?"animate-spin":""}`}),e.jsx("span",{className:"hidden sm:inline",children:s?"Refreshing...":"Refresh"})]})]})]}),e.jsx("div",{className:"mt-3 ml-0 sm:ml-14",children:e.jsx("h2",{className:"text-base sm:text-lg md:text-xl font-semibold text-gray-900 line-clamp-2","data-testid":"request-title",children:t.title})})]}),l!==void 0&&e.jsx("div",{className:`px-3 sm:px-4 md:px-6 py-3 sm:py-4 border-b border-gray-200 ${o?"bg-gradient-to-r from-gray-100 to-gray-200":"bg-gradient-to-r from-blue-50 to-indigo-50"}`,"data-testid":"sla-section",children:e.jsx(ZC,{sla:l,requestStatus:t.status,isPaused:o,testId:"request-sla"})})]})}async function uc(t){return(await be.get(`/summaries/${t}`)).data.data}async function QC(t,s){return(await be.post(`/summaries/${t}/share`,{userIds:s})).data.data}async function JC(t={}){var n,i;const{page:s=1,limit:a=20}=t,r=await be.get("/summaries/shared",{params:{page:s,limit:a}});return{data:((n=r.data.data)==null?void 0:n.data)||r.data.data||[],pagination:((i=r.data.data)==null?void 0:i.pagination)||{page:s,limit:a,total:0,totalPages:1}}}async function op(t){await be.patch(`/summaries/shared/${t}/view`)}async function cp(t){var s;try{return(await be.get(`/summaries/request/${t}`)).data.data}catch(a){return((s=a==null?void 0:a.response)==null?void 0:s.status)===404,null}}async function qC(t){return(await be.get(`/summaries/${t}/recipients`)).data.data||[]}function e2({activityInfo:t,className:s,createdAt:a,updatedAt:r}){if(!t)return console.warn("[ActivityInformationCard] activityInfo is missing"),e.jsx(te,{className:s,children:e.jsx(se,{className:"py-8 text-center text-gray-500",children:e.jsx("p",{children:"Activity information not available"})})});const n=l=>{const o=typeof l=="string"?parseFloat(l):l;return isNaN(o)?"N/A":`₹${o.toLocaleString("en-IN",{minimumFractionDigits:2,maximumFractionDigits:2})}`},i=l=>{if(!l)return"N/A";try{return De(new Date(l),"MMM d, yyyy")}catch{return l}};return e.jsxs(te,{className:s,children:[e.jsx(ue,{children:e.jsxs(he,{className:"flex items-center gap-2 text-base",children:[e.jsx(ut,{className:"w-5 h-5 text-blue-600"}),"Activity Information"]})}),e.jsxs(se,{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Activity Name"}),e.jsx("p",{className:"text-sm text-gray-900 font-medium mt-1",children:t.activityName})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Activity Type"}),e.jsx("p",{className:"text-sm text-gray-900 font-medium mt-1",children:t.activityType})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Location"}),e.jsxs("p",{className:"text-sm text-gray-900 font-medium mt-1 flex items-center gap-2",children:[e.jsx(fo,{className:"w-4 h-4 text-gray-400"}),t.location]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Requested Date"}),e.jsx("p",{className:"text-sm text-gray-900 font-medium mt-1",children:i(t.requestedDate)})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Estimated Budget"}),e.jsxs("p",{className:"text-sm text-gray-900 font-medium mt-1 flex items-center gap-2",children:[e.jsx(ka,{className:"w-4 h-4 text-green-600"}),t.estimatedBudget?n(t.estimatedBudget):"TBD"]})]}),t.closedExpenses!==void 0&&t.closedExpenses!==null&&e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Closed Expenses"}),e.jsxs("p",{className:"text-sm text-gray-900 font-medium mt-1 flex items-center gap-2",children:[e.jsx(xs,{className:"w-4 h-4 text-blue-600"}),n(t.closedExpenses)]})]}),t.period&&e.jsxs("div",{className:"col-span-2",children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Period"}),e.jsxs("p",{className:"text-sm text-gray-900 font-medium mt-1",children:[i(t.period.startDate)," - ",i(t.period.endDate)]})]})]}),t.closedExpensesBreakdown&&t.closedExpensesBreakdown.length>0&&e.jsxs("div",{className:"pt-4 border-t",children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide mb-3 block",children:"Closed Expenses Breakdown"}),e.jsxs("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-3 space-y-2",children:[t.closedExpensesBreakdown.map((l,o)=>e.jsxs("div",{className:"flex justify-between items-center text-sm",children:[e.jsx("span",{className:"text-gray-700",children:l.description}),e.jsx("span",{className:"font-medium text-gray-900",children:n(l.amount)})]},o)),e.jsxs("div",{className:"pt-2 border-t border-blue-300 flex justify-between items-center",children:[e.jsx("span",{className:"font-semibold text-gray-900",children:"Total"}),e.jsx("span",{className:"font-bold text-blue-600",children:n(t.closedExpensesBreakdown.reduce((l,o)=>l+o.amount,0))})]})]})]}),t.description&&e.jsxs("div",{className:"pt-4 border-t",children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Description"}),e.jsx("div",{className:"mt-2 bg-gray-50 p-3 rounded-lg border border-gray-200",children:e.jsx(Qs,{content:t.description||"",className:"text-sm"})})]}),(a||r)&&e.jsxs("div",{className:"grid grid-cols-2 gap-4 pt-4 border-t border-gray-300",children:[a&&e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Created"}),e.jsx("p",{className:"text-sm text-gray-900 font-medium mt-1",children:ns(a)})]}),r&&e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Last Updated"}),e.jsx("p",{className:"text-sm text-gray-900 font-medium mt-1",children:ns(r)})]})]})]})]})}function t2({dealerInfo:t,className:s}){return t?!t.dealerCode&&!t.dealerName?(console.warn("[DealerInformationCard] Dealer info missing essential fields:",t),e.jsx(te,{className:s,children:e.jsx(se,{className:"py-8 text-center text-gray-500",children:e.jsx("p",{children:"Dealer information incomplete"})})})):e.jsxs(te,{className:s,children:[e.jsx(ue,{children:e.jsxs(he,{className:"flex items-center gap-2 text-base",children:[e.jsx(Ti,{className:"w-5 h-5 text-purple-600"}),"Dealer Information"]})}),e.jsxs(se,{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Dealer Code"}),e.jsx("p",{className:"text-sm text-gray-900 font-medium mt-1",children:t.dealerCode})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Dealer Name"}),e.jsx("p",{className:"text-sm text-gray-900 font-medium mt-1",children:t.dealerName})]})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Contact Information"}),e.jsxs("div",{className:"mt-2 space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm text-gray-700",children:[e.jsx(Ta,{className:"w-4 h-4 text-gray-400"}),e.jsx("span",{children:t.email})]}),e.jsxs("div",{className:"flex items-center gap-2 text-sm text-gray-700",children:[e.jsx(Ni,{className:"w-4 h-4 text-gray-400"}),e.jsx("span",{children:t.phone})]}),e.jsxs("div",{className:"flex items-start gap-2 text-sm text-gray-700",children:[e.jsx(fo,{className:"w-4 h-4 text-gray-400 mt-0.5"}),e.jsx("span",{children:t.address})]})]})]})]})]}):(console.warn("[DealerInformationCard] dealerInfo is missing"),e.jsx(te,{className:s,children:e.jsx(se,{className:"py-8 text-center text-gray-500",children:e.jsx("p",{children:"Dealer information not available"})})}))}function s2({ioDetails:t,dmsDetails:s,claimAmount:a,estimatedBudgetBreakdown:r,closedExpensesBreakdown:n,visibility:i,onEditClaimAmount:l,className:o}){const c=h=>h==null||Number.isNaN(h)?"₹0.00":`₹${h.toLocaleString("en-IN",{minimumFractionDigits:2,maximumFractionDigits:2})}`,d=h=>{if(!h)return"";try{return De(new Date(h),"MMM d, yyyy, h:mm a")}catch{return h||""}},m=h=>!h||h.length===0?0:h.reduce((g,p)=>g+(p.amount??0),0);return i.showIODetails&&t||i.showDMSDetails&&s||i.showClaimAmount&&a&&a.amount!==void 0&&a.amount!==null||r&&r.length>0||n&&n.length>0?e.jsxs(te,{className:`bg-gradient-to-br from-blue-50 to-purple-50 border-2 border-blue-200 ${o}`,children:[e.jsxs(ue,{children:[e.jsxs(he,{className:"text-base flex items-center gap-2",children:[e.jsx(Gt,{className:"w-4 h-4 text-blue-600"}),"Process Details"]}),e.jsx(Te,{children:"Workflow reference numbers"})]}),e.jsxs(se,{className:"space-y-3",children:[i.showIODetails&&t&&e.jsxs("div",{className:"bg-white rounded-lg p-3 border border-blue-200",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(xs,{className:"w-4 h-4 text-blue-600"}),e.jsx(re,{className:"text-xs font-semibold text-blue-900 uppercase tracking-wide",children:"IO Number"})]}),e.jsx("p",{className:"font-bold text-gray-900 mb-2",children:t.ioNumber}),t.remarks&&e.jsxs("div",{className:"pt-2 border-t border-blue-100",children:[e.jsx("p",{className:"text-xs text-gray-600 mb-1",children:"Remark:"}),e.jsx("p",{className:"text-xs text-gray-900",children:t.remarks})]}),(t.availableBalance!==void 0||t.blockedAmount!==void 0)&&e.jsxs("div",{className:"pt-2 border-t border-blue-100 mt-2 space-y-1",children:[t.availableBalance!==void 0&&e.jsxs("div",{className:"flex justify-between text-xs",children:[e.jsx("span",{className:"text-gray-600",children:"Available Balance:"}),e.jsx("span",{className:"font-medium text-gray-900",children:c(t.availableBalance)})]}),t.blockedAmount!==void 0&&e.jsxs("div",{className:"flex justify-between text-xs",children:[e.jsx("span",{className:"text-gray-600",children:"Blocked Amount:"}),e.jsx("span",{className:"font-medium text-blue-700",children:c(t.blockedAmount)})]}),t.remainingBalance!==void 0&&e.jsxs("div",{className:"flex justify-between text-xs",children:[e.jsx("span",{className:"text-gray-600",children:"Remaining Balance:"}),e.jsx("span",{className:"font-medium text-green-700",children:c(t.remainingBalance)})]})]}),e.jsxs("div",{className:"pt-2 border-t border-blue-100 mt-2",children:[e.jsxs("p",{className:"text-xs text-gray-500",children:["By ",t.blockedByName]}),e.jsx("p",{className:"text-xs text-gray-500",children:d(t.blockedAt)})]})]}),i.showDMSDetails&&s&&e.jsxs("div",{className:"bg-white rounded-lg p-3 border border-purple-200",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(Gt,{className:"w-4 h-4 text-purple-600"}),e.jsx(re,{className:"text-xs font-semibold text-purple-900 uppercase tracking-wide",children:"DMS Number"})]}),e.jsx("p",{className:"font-bold text-gray-900 mb-2",children:s.dmsNumber}),s.remarks&&e.jsxs("div",{className:"pt-2 border-t border-purple-100",children:[e.jsx("p",{className:"text-xs text-gray-600 mb-1",children:"Remarks:"}),e.jsx("p",{className:"text-xs text-gray-900",children:s.remarks})]}),e.jsxs("div",{className:"pt-2 border-t border-purple-100 mt-2",children:[e.jsxs("p",{className:"text-xs text-gray-500",children:["By ",s.createdByName]}),e.jsx("p",{className:"text-xs text-gray-500",children:d(s.createdAt)})]})]}),i.showClaimAmount&&a&&e.jsxs("div",{className:"bg-white rounded-lg p-3 border border-green-200",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2 mb-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ka,{className:"w-4 h-4 text-green-600"}),e.jsx(re,{className:"text-xs font-semibold text-green-900 uppercase tracking-wide",children:"Claim Amount"})]}),i.canEditClaimAmount&&l&&e.jsxs(M,{variant:"outline",size:"sm",onClick:l,className:"h-7 px-2 text-xs border-green-300 hover:bg-green-50",children:[e.jsx(Eu,{className:"w-3 h-3 mr-1 text-green-700"}),"Edit"]})]}),e.jsx("p",{className:"text-2xl font-bold text-green-700",children:c(a.amount)}),a.lastUpdatedBy&&e.jsxs("div",{className:"mt-2 pt-2 border-t border-green-100",children:[e.jsxs("p",{className:"text-xs text-gray-500",children:["Last updated by ",a.lastUpdatedBy]}),a.lastUpdatedAt&&e.jsx("p",{className:"text-xs text-gray-500",children:d(a.lastUpdatedAt)})]})]}),r&&r.length>0&&e.jsxs("div",{className:"bg-white rounded-lg p-3 border border-amber-200",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(xs,{className:"w-4 h-4 text-amber-600"}),e.jsx(re,{className:"text-xs font-semibold text-amber-900 uppercase tracking-wide",children:"Estimated Budget Breakdown"})]}),e.jsxs("div",{className:"space-y-1.5 pt-1",children:[r.map((h,g)=>e.jsxs("div",{className:"flex justify-between items-center text-xs",children:[e.jsx("span",{className:"text-gray-700",children:h.description}),e.jsx("span",{className:"font-medium text-gray-900",children:c(h.amount)})]},g)),e.jsxs("div",{className:"pt-2 border-t border-amber-200 flex justify-between items-center",children:[e.jsx("span",{className:"font-semibold text-gray-900 text-xs",children:"Total"}),e.jsx("span",{className:"font-bold text-amber-700",children:c(m(r))})]})]})]}),n&&n.length>0&&e.jsxs("div",{className:"bg-white rounded-lg p-3 border border-indigo-200",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(xs,{className:"w-4 h-4 text-indigo-600"}),e.jsx(re,{className:"text-xs font-semibold text-indigo-900 uppercase tracking-wide",children:"Closed Expenses Breakdown"})]}),e.jsxs("div",{className:"space-y-1.5 pt-1",children:[n.map((h,g)=>e.jsxs("div",{className:"flex justify-between items-center text-xs",children:[e.jsx("span",{className:"text-gray-700",children:h.description}),e.jsx("span",{className:"font-medium text-gray-900",children:c(h.amount)})]},g)),e.jsxs("div",{className:"pt-2 border-t border-indigo-200 flex justify-between items-center",children:[e.jsx("span",{className:"font-semibold text-gray-900 text-xs",children:"Total"}),e.jsx("span",{className:"font-bold text-indigo-700",children:c(m(n))})]})]})]})]})]}):null}function a2({proposalDetails:t,className:s}){const r=t.estimatedBudgetTotal!==void 0&&t.estimatedBudgetTotal!==null?t.estimatedBudgetTotal:t.costBreakup&&t.costBreakup.length>0?t.costBreakup.reduce((c,d)=>{const m=d.amount||0;return c+(Number.isNaN(m)?0:m)},0):0,n=o=>o==null||Number.isNaN(o)?"₹0.00":`₹${o.toLocaleString("en-IN",{minimumFractionDigits:2,maximumFractionDigits:2})}`,i=o=>{if(!o)return"";try{return De(new Date(o),"MMM d, yyyy, h:mm a")}catch{return o||""}},l=o=>{if(!o)return"-";try{return De(new Date(o),"MMM d, yyyy")}catch{return o||"-"}};return e.jsxs(te,{className:s,children:[e.jsxs(ue,{children:[e.jsxs(he,{className:"flex items-center gap-2 text-base",children:[e.jsx(xs,{className:"w-5 h-5 text-green-600"}),"Proposal Details"]}),t.submittedOn&&e.jsxs(Te,{children:["Submitted on ",i(t.submittedOn)]})]}),e.jsxs(se,{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide mb-3 block",children:"Cost Breakup"}),e.jsx("div",{className:"border rounded-lg overflow-hidden",children:e.jsxs("table",{className:"w-full",children:[e.jsx("thead",{className:"bg-gray-50",children:e.jsxs("tr",{children:[e.jsx("th",{className:"px-4 py-2 text-left text-xs font-semibold text-gray-700 uppercase tracking-wide",children:"Item Description"}),e.jsx("th",{className:"px-4 py-2 text-right text-xs font-semibold text-gray-700 uppercase tracking-wide",children:"Amount"})]})}),e.jsxs("tbody",{className:"divide-y divide-gray-200",children:[(t.costBreakup||[]).map((o,c)=>e.jsxs("tr",{className:"hover:bg-gray-50",children:[e.jsx("td",{className:"px-4 py-3 text-sm text-gray-900",children:o.description}),e.jsx("td",{className:"px-4 py-3 text-sm text-gray-900 text-right font-medium",children:n(o.amount)})]},c)),e.jsxs("tr",{className:"bg-green-50 font-semibold",children:[e.jsx("td",{className:"px-4 py-3 text-sm text-gray-900",children:"Estimated Budget (Total)"}),e.jsx("td",{className:"px-4 py-3 text-sm text-green-700 text-right",children:n(r)})]})]})]})})]}),e.jsxs("div",{className:"pt-2",children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Timeline for Closure"}),e.jsx("div",{className:"mt-2 bg-blue-50 border border-blue-200 rounded-lg p-3",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ut,{className:"w-4 h-4 text-blue-600"}),e.jsxs("span",{className:"text-sm font-medium text-gray-900",children:["Expected completion by: ",l(t.timelineForClosure)]})]})})]}),t.dealerComments&&e.jsxs("div",{className:"pt-2",children:[e.jsx("label",{className:"text-xs font-medium text-gray-500 uppercase tracking-wide",children:"Dealer Comments"}),e.jsx("p",{className:"text-sm text-gray-700 mt-2 bg-gray-50 p-3 rounded-lg whitespace-pre-line",children:t.dealerComments})]})]})]})}function r2({initiatorInfo:t,className:s}){const a=r=>r.split(" ").map(n=>n[0]).join("").toUpperCase().slice(0,2);return e.jsxs(te,{className:s,children:[e.jsx(ue,{children:e.jsx(he,{className:"text-base",children:"Request Initiator"})}),e.jsx(se,{children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx(as,{className:"h-14 w-14 ring-2 ring-white shadow-md",children:e.jsx(rs,{className:"bg-gray-700 text-white font-semibold text-lg",children:a(t.name)})}),e.jsxs("div",{className:"flex-1",children:[e.jsx("h3",{className:"font-semibold text-gray-900",children:t.name}),t.role&&e.jsx("p",{className:"text-sm text-gray-600",children:t.role}),t.department&&e.jsx("p",{className:"text-sm text-gray-500",children:t.department}),e.jsxs("div",{className:"mt-3 space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm text-gray-600",children:[e.jsx(Ta,{className:"w-4 h-4"}),e.jsx("span",{children:t.email})]}),t.phone&&e.jsxs("div",{className:"flex items-center gap-2 text-sm text-gray-600",children:[e.jsx(Ni,{className:"w-4 h-4"}),e.jsx("span",{children:t.phone})]})]})]})]})})]})}function Bi(t){return t?t.workflowType==="CLAIM_MANAGEMENT"||t.templateType==="claim-management"||t.template==="claim-management"||t.templateName==="Claim Management"||t.templateCode==="CLAIM_MANAGEMENT":!1}function dp(t,s){var a,r;try{if(!Bi(t))return null;const n=t.claimDetails||{},i=t.proposalDetails||{},l=t.completionDetails||{},o=t.internalOrder||t.internal_order||{},c=t.budgetTracking||t.budget_tracking||{},d=t.invoice||{},m=t.creditNote||t.credit_note||{},u=t.completionExpenses||t.completion_expenses||[];console.debug("[claimDataMapper] Raw claimDetails:",n),console.debug("[claimDataMapper] Raw apiRequest:",{hasClaimDetails:!!t.claimDetails,hasProposalDetails:!!t.proposalDetails,hasCompletionDetails:!!t.completionDetails,hasBudgetTracking:!!c,hasInvoice:!!d,hasCreditNote:!!m,hasCompletionExpenses:Array.isArray(u)&&u.length>0,workflowType:t.workflowType});const h=n.periodStartDate||n.period_start_date,g=n.periodEndDate||n.period_end_date,p=n.activityName||n.activity_name||"",y=n.activityType||n.activity_type||"",f=n.location||"";console.debug("[claimDataMapper] Mapped activity fields:",{activityName:p,activityType:y,location:f,hasActivityName:!!p,hasActivityType:!!y,hasLocation:!!f});const b=c.proposalEstimatedBudget||c.proposal_estimated_budget||c.initialEstimatedBudget||c.initial_estimated_budget||n.estimatedBudget||n.estimated_budget,v=(c==null?void 0:c.closedExpenses)||(c==null?void 0:c.closed_expenses)||(l==null?void 0:l.totalClosedExpenses)||(l==null?void 0:l.total_closed_expenses)||(n==null?void 0:n.closedExpenses)||(n==null?void 0:n.closed_expenses),w=v!=null?Number(v):void 0,A=Array.isArray(u)&&u.length>0?u.map(R=>({description:R.description||R.itemDescription||"",amount:Number(R.amount)||0})):(l==null?void 0:l.closedExpenses)||(l==null?void 0:l.closed_expenses)||(l==null?void 0:l.closedExpensesBreakdown)||[],S={activityName:p,activityType:y,requestedDate:n.activityDate||n.activity_date||t.createdAt,location:f,period:h&&g?{startDate:h,endDate:g}:void 0,estimatedBudget:b,closedExpenses:w,closedExpensesBreakdown:A,description:t.description||""},k={dealerCode:(n==null?void 0:n.dealerCode)||(n==null?void 0:n.dealer_code)||(n==null?void 0:n.DealerCode)||"",dealerName:(n==null?void 0:n.dealerName)||(n==null?void 0:n.dealer_name)||(n==null?void 0:n.DealerName)||"",email:(n==null?void 0:n.dealerEmail)||(n==null?void 0:n.dealer_email)||(n==null?void 0:n.DealerEmail)||"",phone:(n==null?void 0:n.dealerPhone)||(n==null?void 0:n.dealer_phone)||(n==null?void 0:n.DealerPhone)||"",address:(n==null?void 0:n.dealerAddress)||(n==null?void 0:n.dealer_address)||(n==null?void 0:n.DealerAddress)||""};(!k.dealerCode||!k.dealerName)&&console.warn("[claimDataMapper] Dealer information is missing from claimDetails:",{hasClaimDetails:!!n,dealerCode:k.dealerCode,dealerName:k.dealerName,rawClaimDetails:n,availableKeys:n?Object.keys(n):[]});const F=(i==null?void 0:i.expectedCompletionDate)||(i==null?void 0:i.expected_completion_date),T=i?{proposalDocumentUrl:i.proposalDocumentUrl||i.proposal_document_url,costBreakup:i.costBreakup||i.cost_breakup||[],totalEstimatedBudget:i.totalEstimatedBudget||i.total_estimated_budget||0,timelineMode:i.timelineMode||i.timeline_mode,expectedCompletionDate:F,expectedCompletionDays:i.expectedCompletionDays||i.expected_completion_days,timelineForClosure:F,dealerComments:i.dealerComments||i.dealer_comments,submittedOn:i.submittedAt||i.submitted_at||i.submittedOn}:void 0,D={ioNumber:o.ioNumber||o.io_number||n.ioNumber||n.io_number,ioRemark:o.ioRemark||o.io_remark||"",availableBalance:o.ioAvailableBalance||o.io_available_balance||n.ioAvailableBalance||n.io_available_balance,blockedAmount:o.ioBlockedAmount||o.io_blocked_amount||n.ioBlockedAmount||n.io_blocked_amount,remainingBalance:o.ioRemainingBalance||o.io_remaining_balance||n.ioRemainingBalance||n.io_remaining_balance,organizedBy:((a=o.organizer)==null?void 0:a.displayName)||((r=o.organizer)==null?void 0:r.name)||o.organizedBy||"",organizedAt:o.organizedAt||o.organized_at||""},C={eInvoiceNumber:d.invoiceNumber||d.invoice_number||n.eInvoiceNumber||n.e_invoice_number,eInvoiceDate:d.invoiceDate||d.invoice_date||n.eInvoiceDate||n.e_invoice_date,dmsNumber:d.dmsNumber||d.dms_number||n.dmsNumber||n.dms_number,creditNoteNumber:m.creditNoteNumber||m.credit_note_number||n.creditNoteNumber||n.credit_note_number,creditNoteDate:m.creditNoteDate||m.credit_note_date||n.creditNoteDate||n.credit_note_date,creditNoteAmount:m.creditNoteAmount?Number(m.creditNoteAmount):m.credit_note_amount?Number(m.credit_note_amount):m.creditNoteAmount?Number(m.creditNoteAmount):n.creditNoteAmount?Number(n.creditNoteAmount):n.credit_note_amount?Number(n.credit_note_amount):void 0},P={estimated:S.estimatedBudget||0,closed:S.closedExpenses||0};return{activityInfo:S,dealerInfo:k,proposalDetails:T,ioDetails:Object.keys(D).some(R=>D[R])?D:void 0,dmsDetails:Object.keys(C).some(R=>C[R])?C:void 0,claimAmount:P}}catch(n){return console.error("[claimDataMapper] Error mapping claim data:",n),null}}function mp(t,s){var a,r;try{if(t.initiatorId===s||((a=t.initiator)==null?void 0:a.userId)===s||((r=t.requestedBy)==null?void 0:r.userId)===s)return"INITIATOR";if((t.participants||[]).find(d=>{var m;return(d.userId===s||((m=d.user)==null?void 0:m.userId)===s)&&(d.participantType==="DEALER"||d.type==="DEALER")}))return"DEALER";const l=t.approvalLevels||[];return l.find(d=>{var m;return d.levelNumber===3&&(d.approverId===s||((m=d.approver)==null?void 0:m.userId)===s)})?"DEPARTMENT_LEAD":l.find(d=>{var m;return(d.approverId===s||((m=d.approver)==null?void 0:m.userId)===s)&&d.status==="PENDING"})?"APPROVER":"SPECTATOR"}catch(n){return console.error("[claimDataMapper] Error determining user role:",n),"SPECTATOR"}}function up(t){switch(t){case"INITIATOR":return{showDealerInfo:!0,showProposalDetails:!0,showIODetails:!0,showDMSDetails:!0,showClaimAmount:!0,canEditClaimAmount:!1};case"DEALER":return{showDealerInfo:!0,showProposalDetails:!0,showIODetails:!1,showDMSDetails:!1,showClaimAmount:!0,canEditClaimAmount:!1};case"DEPARTMENT_LEAD":return{showDealerInfo:!0,showProposalDetails:!0,showIODetails:!0,showDMSDetails:!0,showClaimAmount:!0,canEditClaimAmount:!1};case"APPROVER":return{showDealerInfo:!0,showProposalDetails:!0,showIODetails:!0,showDMSDetails:!0,showClaimAmount:!0,canEditClaimAmount:!1};case"SPECTATOR":default:return{showDealerInfo:!1,showProposalDetails:!1,showIODetails:!1,showDMSDetails:!1,showClaimAmount:!1,canEditClaimAmount:!1}}}function n2({request:t,isInitiator:s,isSpectator:a,currentApprovalLevel:r,onAddApprover:n,onAddSpectator:i,onApprove:l,onReject:o,onPause:c,onResume:d,onRetrigger:m,summaryId:u,refreshTrigger:h,pausedByUserId:g,currentUserId:p,apiRequest:y,onEditClaimAmount:f}){var _,N,j,U,z;const{user:b}=Zt(),[v,w]=x.useState([]),[A,S]=x.useState(!1),[k,F]=x.useState(!1),T=(t==null?void 0:t.status)==="closed",D=((_=t==null?void 0:t.pauseInfo)==null?void 0:_.isPaused)||!1,C=g||((j=(N=t==null?void 0:t.pauseInfo)==null?void 0:N.pausedBy)==null?void 0:j.userId),P=p||(b==null?void 0:b.userId)||"",R=!D&&!T&&(r||s),V=D&&d&&(r||s),I=D&&s&&C&&C!==P&&m;x.useEffect(()=>{if(!D||!r||!(t!=null&&t.requestId)){F(!1);return}(async()=>{var X;try{const Y=(((X=(await Oa.list({page:1,limit:50,unreadOnly:!0})).data)==null?void 0:X.notifications)||[]).some(E=>E.requestId===t.requestId&&E.notificationType==="pause_retrigger_request");F(Y)}catch(H){console.error("Failed to check retrigger notifications:",H),F(!1)}})()},[D,r,t==null?void 0:t.requestId,h]),x.useEffect(()=>{(async()=>{if(!T||!u||!s){w([]);return}try{S(!0);const X=await qC(u);w(X)}catch(X){console.error("Failed to fetch shared recipients:",X),w([])}finally{S(!1)}})()},[T,u,s,h]);const $=x.useMemo(()=>{if(!y||!Bi(y))return null;const B=dp(y);if(!B)return null;const X=mp(y,P),H=up(X);return{claimRequest:B,visibility:H}},[y,P]);return e.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[!a&&t.status!=="closed"&&e.jsxs(te,{"data-testid":"quick-actions-card",children:[e.jsx(ue,{className:"pb-2",children:e.jsx(he,{className:"text-sm sm:text-base",children:"Quick Actions"})}),e.jsxs(se,{className:"space-y-2",children:[s&&t.status!=="closed"&&e.jsxs(M,{variant:"outline",className:"w-full justify-start gap-2 bg-white text-gray-700 border-gray-300 hover:bg-gray-50 hover:text-gray-900 h-9 sm:h-10 text-xs sm:text-sm",onClick:n,"data-testid":"add-approver-button",children:[e.jsx(Ai,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"}),"Add Approver"]}),t.status!=="closed"&&e.jsxs(M,{variant:"outline",className:"w-full justify-start gap-2 bg-white text-gray-700 border-gray-300 hover:bg-gray-50 hover:text-gray-900 h-9 sm:h-10 text-xs sm:text-sm",onClick:i,"data-testid":"add-spectator-button",children:[e.jsx(jt,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"}),"Add Spectator"]}),R&&c&&e.jsxs(M,{variant:"outline",className:"w-full justify-start gap-2 bg-white text-orange-700 border-orange-300 hover:bg-orange-50 hover:text-orange-900 h-9 sm:h-10 text-xs sm:text-sm",onClick:c,"data-testid":"pause-workflow-button",children:[e.jsx(Ua,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"}),"Pause Workflow"]}),V&&e.jsxs(M,{variant:"outline",className:"w-full justify-start gap-2 bg-white text-green-700 border-green-300 hover:bg-green-50 hover:text-green-900 h-9 sm:h-10 text-xs sm:text-sm",onClick:d,"data-testid":"resume-workflow-button",children:[e.jsx(li,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"}),"Resume Workflow"]}),I&&e.jsxs(M,{variant:"outline",className:"w-full justify-start gap-2 bg-white text-orange-700 border-orange-300 hover:bg-orange-50 hover:text-orange-900 h-9 sm:h-10 text-xs sm:text-sm",onClick:m,"data-testid":"request-resume-button",children:[e.jsx(Ge,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"}),"Request Resume"]}),e.jsxs("div",{className:"pt-3 sm:pt-4 space-y-2",children:[r&&!D&&e.jsxs(e.Fragment,{children:[e.jsxs(M,{className:"w-full bg-green-600 hover:bg-green-700 text-white h-9 sm:h-10 text-xs sm:text-sm",onClick:l,"data-testid":"approve-request-button",children:[e.jsx(Ce,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 mr-2"}),"Approve Request"]}),e.jsxs(M,{variant:"destructive",className:"w-full h-9 sm:h-10 text-xs sm:text-sm",onClick:o,"data-testid":"reject-request-button",children:[e.jsx(gt,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 mr-2"}),"Reject Request"]})]}),D&&e.jsx("div",{className:"bg-orange-50 border border-orange-200 rounded-lg p-3 text-center",children:C===P?e.jsxs(e.Fragment,{children:[e.jsxs("p",{className:"text-xs text-orange-800 font-medium flex items-center justify-center gap-1.5",children:[k&&e.jsx(Ge,{className:"w-3.5 h-3.5"}),k?"Initiator has requested you to resume":"You paused this workflow"]}),e.jsx("p",{className:"text-xs text-orange-600 mt-1",children:k?"Please review and resume if appropriate":'Click "Resume Workflow" to continue'})]}):r&&C!==P&&k?e.jsxs(e.Fragment,{children:[e.jsxs("p",{className:"text-xs text-orange-800 font-medium flex items-center justify-center gap-1.5",children:[e.jsx(Ge,{className:"w-3.5 h-3.5"}),"Initiator has requested resume"]}),e.jsx("p",{className:"text-xs text-orange-600 mt-1",children:"Please review and resume if appropriate"})]}):r&&C!==P?e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"text-xs text-orange-800 font-medium",children:"Workflow is paused"}),e.jsx("p",{className:"text-xs text-orange-600 mt-1",children:"You can resume to continue approval"})]}):s&&C&&C!==P?e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"text-xs text-orange-800 font-medium",children:"Approver has paused this workflow"}),e.jsx("p",{className:"text-xs text-orange-600 mt-1",children:I?'Click "Request Resume" to notify approver':"Resume request sent - Waiting for approver"})]}):e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"text-xs text-orange-800 font-medium",children:"Workflow is paused"}),e.jsx("p",{className:"text-xs text-orange-600 mt-1",children:"Actions are disabled until resumed"})]})})]})]})]}),e.jsxs(te,{"data-testid":"spectators-card",children:[e.jsx(ue,{className:"pb-2",children:e.jsx(he,{className:"text-sm sm:text-base",children:"Spectators"})}),e.jsx(se,{className:"space-y-3",children:t.spectators&&t.spectators.length>0?t.spectators.map((B,X)=>e.jsxs("div",{className:"flex items-center gap-3","data-testid":`spectator-${X}`,children:[e.jsx(as,{className:"h-8 w-8",children:e.jsx(rs,{className:"bg-blue-100 text-blue-800 text-xs font-semibold",children:B.avatar})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium text-gray-900",children:B.name}),e.jsx("p",{className:"text-xs text-gray-500 truncate",children:B.role})]})]},X)):e.jsx("div",{className:"py-4 text-center",children:e.jsx("p",{className:"text-sm text-gray-500",children:"No spectators added"})})})]}),T&&s&&e.jsxs(te,{"data-testid":"shared-recipients-card",children:[e.jsx(ue,{className:"pb-2",children:e.jsxs(he,{className:"text-sm sm:text-base flex items-center gap-2",children:[e.jsx(Mr,{className:"w-4 h-4"}),"Summary Shared With"]})}),e.jsx(se,{className:"space-y-3",children:A?e.jsx("div",{className:"py-4 text-center",children:e.jsx("p",{className:"text-sm text-gray-500",children:"Loading..."})}):v.length>0?v.map((B,X)=>{const H=(B.displayName||"NA").split(" ").map(oe=>oe[0]).join("").slice(0,2).toUpperCase();return e.jsxs("div",{className:"flex items-center gap-3","data-testid":`shared-recipient-${X}`,children:[e.jsx(as,{className:"h-8 w-8",children:e.jsx(rs,{className:"bg-green-100 text-green-800 text-xs font-semibold",children:H})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium text-gray-900",children:B.displayName}),e.jsx("p",{className:"text-xs text-gray-500 truncate",children:B.email}),B.isRead&&e.jsx("p",{className:"text-xs text-green-600 mt-0.5",children:"Viewed"})]})]},B.userId||X)}):e.jsx("div",{className:"py-4 text-center",children:e.jsx("p",{className:"text-sm text-gray-500",children:"Summary not shared yet"})})})]}),$&&e.jsx(s2,{ioDetails:$.claimRequest.ioDetails,dmsDetails:$.claimRequest.dmsDetails,claimAmount:{amount:$.claimRequest.claimAmount.closed||$.claimRequest.claimAmount.estimated||0},estimatedBudgetBreakdown:(U=$.claimRequest.proposalDetails)==null?void 0:U.costBreakup,closedExpensesBreakdown:(z=$.claimRequest.activityInfo)==null?void 0:z.closedExpensesBreakdown,visibility:$.visibility,onEditClaimAmount:f})]})}function i2({open:t,onClose:s,onConfirm:a,defaultDescription:r="",title:n="Approve Request",requestIdDisplay:i,requestTitle:l}){const[o,c]=x.useState(r),[d,m]=x.useState(!1),u=(o==null?void 0:o.length)||0,h=x.useMemo(()=>o.slice(0,500),[o]),g=async()=>{try{m(!0),await a(h),s()}finally{m(!1)}};return e.jsx(ct,{open:t,onOpenChange:p=>!p&&s(),children:e.jsxs(lt,{className:"sm:max-w-[640px] bg-white",children:[e.jsx(dt,{children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-full bg-green-100 flex items-center justify-center",children:e.jsx(Ce,{className:"w-7 h-7 text-green-600"})}),e.jsxs("div",{children:[e.jsx(ot,{className:"text-lg",children:n}),e.jsx("p",{className:"text-sm text-gray-500 mt-1",children:"Please provide your approval comments and remarks"})]})]})}),e.jsxs("div",{className:"border rounded-lg p-4 bg-white",children:[e.jsxs("div",{className:"flex items-center justify-between mb-3",children:[e.jsx("span",{className:"text-xs font-bold text-gray-800",children:"Request ID"}),e.jsx("span",{className:"text-xs bg-gray-100 border border-gray-300 text-gray-800 rounded-full px-2 py-0.5",children:i||"—"})]}),e.jsxs("div",{className:"mb-3",children:[e.jsx("span",{className:"text-xs font-bold text-gray-800 block",children:"Title"}),e.jsx("p",{className:"text-sm text-gray-600 mt-1 truncate",children:l||"—"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-xs font-bold text-gray-800",children:"Action"}),e.jsx(le,{className:"bg-green-100 text-green-800 border-green-200",variant:"outline",children:"APPROVE"})]})]}),e.jsxs("div",{className:"space-y-2 mt-4",children:[e.jsx("label",{className:"text-sm font-semibold text-gray-800",children:"Comments & Remarks *"}),e.jsx(ps,{value:h,onChange:p=>c(p.target.value),rows:5,placeholder:"Enter your approval comments and any conditions or notes...",className:"border-gray-300"}),e.jsxs("div",{className:"flex items-center justify-between text-xs text-gray-500",children:[e.jsx("span",{children:"Comments are required and will be visible to all participants"}),e.jsxs("span",{children:[Math.min(u,500),"/500"]})]})]}),e.jsxs("div",{className:"mt-4 border rounded-lg p-3 bg-green-50 border-green-200 text-green-900 flex items-start gap-2",children:[e.jsx("div",{className:"mt-0.5",children:e.jsx(Ce,{className:"w-4 h-4"})}),e.jsxs("div",{className:"text-sm",children:[e.jsx("div",{className:"font-semibold",children:"Approval Confirmation"}),e.jsx("div",{children:"This request will be forwarded to the next approver or completed if this is the final step."})]})]}),e.jsxs(Ct,{className:"mt-4",children:[e.jsx(M,{variant:"outline",onClick:s,disabled:d,children:"Cancel"}),e.jsxs(M,{onClick:g,disabled:d,className:"bg-green-600 hover:bg-green-700",children:[e.jsx(Ce,{className:"w-4 h-4 mr-2"}),d?"Approving...":"Approve Request"]})]})]})})}function l2({open:t,onClose:s,onConfirm:a,defaultDescription:r="",title:n="Reject Request",requestIdDisplay:i,requestTitle:l}){const[o,c]=x.useState(r),[d,m]=x.useState(!1),u=(o==null?void 0:o.length)||0,h=x.useMemo(()=>o.slice(0,500),[o]),g=async()=>{if(!h.trim()){alert("Comments & remarks are required");return}try{m(!0),await a(h),s()}finally{m(!1)}};return e.jsx(ct,{open:t,onOpenChange:p=>!p&&s(),children:e.jsxs(lt,{className:"sm:max-w-[640px] bg-white",children:[e.jsx(dt,{children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-full bg-red-100 flex items-center justify-center",children:e.jsx(gt,{className:"w-7 h-7 text-red-600"})}),e.jsxs("div",{children:[e.jsx(ot,{className:"text-lg",children:n}),e.jsx("p",{className:"text-sm text-gray-500 mt-1",children:"Please provide detailed reasons for rejection"})]})]})}),e.jsxs("div",{className:"border rounded-lg p-4 bg-white",children:[e.jsxs("div",{className:"flex items-center justify-between mb-3",children:[e.jsx("span",{className:"text-xs font-bold text-gray-800",children:"Request ID"}),e.jsx("span",{className:"text-xs bg-gray-100 border border-gray-300 text-gray-800 rounded-full px-2 py-0.5",children:i||"—"})]}),e.jsxs("div",{className:"mb-3",children:[e.jsx("span",{className:"text-xs font-bold text-gray-800 block",children:"Title"}),e.jsx("p",{className:"text-sm text-gray-600 mt-1 truncate",children:l||"—"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-xs font-bold text-gray-800",children:"Action"}),e.jsx(le,{className:"bg-red-100 text-red-800 border-red-200",variant:"outline",children:"REJECT"})]})]}),e.jsxs("div",{className:"space-y-3 mt-4",children:[e.jsx("label",{className:"text-sm font-semibold text-gray-800",children:"Comments & Remarks *"}),e.jsx(ps,{value:h,onChange:p=>c(p.target.value),rows:5,placeholder:"Enter detailed reasons for rejection and any suggestions for improvement...",className:"border-gray-300"}),e.jsxs("div",{className:"flex items-center justify-between text-xs text-gray-500",children:[e.jsx("span",{children:"Comments are required and will be visible to all participants"}),e.jsxs("span",{children:[Math.min(u,500),"/500"]})]})]}),e.jsxs("div",{className:"mt-4 border rounded-lg p-3 bg-red-50 border-red-200 text-red-900 flex items-start gap-2",children:[e.jsx("div",{className:"mt-0.5",children:e.jsx(Ge,{className:"w-4 h-4"})}),e.jsxs("div",{className:"text-sm",children:[e.jsx("div",{className:"font-semibold",children:"Rejection Guidelines"}),e.jsx("div",{children:"Please provide specific, actionable feedback to help the initiator improve their request."})]})]}),e.jsxs(Ct,{className:"mt-4",children:[e.jsx(M,{variant:"outline",onClick:s,disabled:d,children:"Cancel"}),e.jsxs(M,{variant:"destructive",onClick:g,disabled:d,children:[e.jsx(gt,{className:"w-4 h-4 mr-2"}),d?"Rejecting...":"Reject Request"]})]})]})})}function o2({open:t,onClose:s,onConfirm:a,approverName:r,levelNumber:n,requestIdDisplay:i,requestTitle:l}){const[o,c]=x.useState(""),[d,m]=x.useState(!1),u=async()=>{if(o.trim())try{m(!0),await a(o.trim()),c(""),s()}catch(g){console.error("Failed to skip approver:",g)}finally{m(!1)}},h=()=>{d||(c(""),s())};return e.jsx(ct,{open:t,onOpenChange:h,children:e.jsxs(lt,{className:"sm:max-w-md max-h-[90vh] flex flex-col p-0",children:[e.jsxs("button",{onClick:h,className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none z-50",disabled:d,children:[e.jsx(ht,{className:"h-4 w-4"}),e.jsx("span",{className:"sr-only",children:"Close"})]}),e.jsx(dt,{className:"px-6 pt-6 pb-4 flex-shrink-0",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 bg-orange-100 rounded-lg flex items-center justify-center",children:e.jsx(Ge,{className:"w-5 h-5 text-orange-600"})}),e.jsx(ot,{className:"text-xl font-bold text-gray-900",children:"Skip Approver"})]})}),e.jsxs("div",{className:"space-y-4 px-6 py-4 overflow-y-auto flex-1",children:[e.jsx("div",{className:"bg-orange-50 border border-orange-200 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(Ge,{className:"w-5 h-5 text-orange-600 flex-shrink-0 mt-0.5"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("p",{className:"text-sm font-semibold text-orange-900 mb-1",children:"Important Notice"}),e.jsx("p",{className:"text-sm text-orange-800",children:"You are about to skip the current approver. The request will be moved to the next approval level."})]})]})}),(i||l)&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{className:"text-sm font-semibold text-gray-700",children:"Request Details"}),e.jsxs("div",{className:"bg-gray-50 border border-gray-200 rounded-lg p-3 space-y-1",children:[i&&e.jsxs("p",{className:"text-sm text-gray-900",children:[e.jsx("span",{className:"font-medium",children:"Request ID:"})," ",i]}),l&&e.jsxs("p",{className:"text-sm text-gray-700",children:[e.jsx("span",{className:"font-medium",children:"Title:"})," ",l]})]})]}),(r||n)&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{className:"text-sm font-semibold text-gray-700",children:"Approver Being Skipped"}),e.jsxs("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-3 space-y-1",children:[n&&e.jsxs("p",{className:"text-sm text-blue-900",children:[e.jsx("span",{className:"font-medium",children:"Level:"})," ",n]}),r&&e.jsxs("p",{className:"text-sm text-blue-900",children:[e.jsx("span",{className:"font-medium",children:"Approver:"})," ",r]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"skip-reason",className:"text-sm font-semibold text-gray-700",children:"Reason for Skipping *"}),e.jsx(ps,{id:"skip-reason",placeholder:"Please provide a detailed reason for skipping this approver (e.g., 'Approver is on leave until [date]', 'Approver unavailable - escalating to next level')",value:o,onChange:g=>c(g.target.value),className:"min-h-[100px] border-2 border-gray-300 focus:border-orange-500",disabled:d,autoFocus:!0}),e.jsx("p",{className:"text-xs text-gray-500",children:"This reason will be recorded in the activity log and all participants will be notified."})]})]}),e.jsxs("div",{className:"flex items-center gap-3 px-6 py-4 border-t flex-shrink-0 bg-white",children:[e.jsx(M,{type:"button",variant:"outline",onClick:h,className:"flex-1 h-11 border-gray-300",disabled:d,children:"Cancel"}),e.jsxs(M,{type:"button",onClick:u,className:"flex-1 h-11 bg-orange-600 hover:bg-orange-700 text-white",disabled:d||!o.trim(),children:[e.jsx(Ge,{className:"w-4 h-4 mr-2"}),d?"Skipping...":"Skip Approver"]})]})]})})}function c2({showApproveModal:t,showRejectModal:s,showAddApproverModal:a,showAddSpectatorModal:r,showSkipApproverModal:n,showActionStatusModal:i,previewDocument:l,documentError:o,request:c,skipApproverData:d,actionStatus:m,existingParticipants:u,currentLevels:h,maxApprovalLevels:g,onPolicyViolation:p,setShowApproveModal:y,setShowRejectModal:f,setShowAddApproverModal:b,setShowAddSpectatorModal:v,setShowSkipApproverModal:w,setShowActionStatusModal:A,setPreviewDocument:S,setDocumentError:k,setSkipApproverData:F,setActionStatus:T,handleApproveConfirm:D,handleRejectConfirm:C,handleAddApprover:P,handleAddSpectator:R,handleSkipApprover:V,downloadDocument:I,documentPolicy:$}){return e.jsxs(e.Fragment,{children:[e.jsx(i2,{open:t,onClose:()=>y(!1),onConfirm:D,requestIdDisplay:c.id,requestTitle:c.title}),e.jsx(l2,{open:s,onClose:()=>f(!1),onConfirm:C,requestIdDisplay:c.id,requestTitle:c.title}),e.jsx(ip,{open:a,onClose:()=>b(!1),onConfirm:P,requestIdDisplay:c.id,requestTitle:c.title,existingParticipants:u,currentLevels:h,maxApprovalLevels:g,onPolicyViolation:p}),e.jsx(np,{open:r,onClose:()=>v(!1),onConfirm:R,requestIdDisplay:c.id,requestTitle:c.title,existingParticipants:u}),e.jsx(o2,{open:n,onClose:()=>{w(!1),F(null)},onConfirm:V,approverName:d==null?void 0:d.approverName,levelNumber:d==null?void 0:d.levelNumber,requestIdDisplay:c.id,requestTitle:c.title}),l&&e.jsx(dc,{fileName:l.fileName,fileType:l.fileType,fileUrl:To(l.documentId),fileSize:l.fileSize,attachmentId:l.documentId,onDownload:I,open:!!l,onClose:()=>S(null)}),m&&e.jsx(rp,{open:i,onClose:()=>{A(!1),T(null)},success:m.success,title:m.title,message:m.message}),e.jsx(ct,{open:o.show,onOpenChange:_=>k(N=>({...N,show:_})),children:e.jsxs(lt,{className:"sm:max-w-lg",children:[e.jsxs(dt,{children:[e.jsxs(ot,{className:"flex items-center gap-2",children:[e.jsx(Ge,{className:"w-5 h-5 text-red-600"}),"Document Upload Policy Violation"]}),e.jsx(Lt,{asChild:!0,children:e.jsxs("div",{className:"space-y-3",children:[e.jsx("p",{className:"text-gray-700",children:"The following file(s) could not be uploaded due to policy violations:"}),e.jsx("div",{className:"space-y-2 max-h-60 overflow-y-auto",children:o.errors.map((_,N)=>e.jsxs("div",{className:"bg-red-50 border border-red-200 rounded-lg p-3",children:[e.jsx("p",{className:"font-medium text-red-900 text-sm",children:_.fileName}),e.jsx("p",{className:"text-xs text-red-700 mt-1",children:_.reason})]},N))}),e.jsxs("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-3",children:[e.jsx("p",{className:"text-sm text-blue-800 font-semibold mb-1",children:"Document Policy:"}),e.jsxs("ul",{className:"text-xs text-blue-700 space-y-1 list-disc list-inside",children:[e.jsxs("li",{children:["Maximum file size: ",$.maxFileSizeMB,"MB"]}),e.jsxs("li",{children:["Allowed file types: ",$.allowedFileTypes.join(", ")]})]})]})]})})]}),e.jsx(Ct,{children:e.jsx(M,{onClick:()=>k({show:!1,errors:[]}),className:"w-full sm:w-auto",children:"OK"})})]})})]})}const hp={DocumentsTab:OC,ActivityTab:VC,WorkNotesTab:KC,SummaryTab:YC,RequestDetailHeader:XC,QuickActionsSidebar:n2,RequestDetailModals:c2};function hc({className:t,...s}){return e.jsx(Wg,{"data-slot":"checkbox",className:we("peer border bg-input-background dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",t),...s,children:e.jsx(Gg,{"data-slot":"checkbox-indicator",className:"flex items-center justify-center text-current transition-none",children:e.jsx(Fr,{className:"size-3.5"})})})}function xp({isOpen:t,onClose:s,summaryId:a,requestTitle:r,onSuccess:n}){const[i,l]=x.useState(""),[o,c]=x.useState([]),[d,m]=x.useState(new Set),[u,h]=x.useState(!1),[g,p]=x.useState(!1);x.useEffect(()=>{if(!t){c([]);return}if(!i||!i.startsWith("@")||i.length<2){c([]),h(!1);return}const v=setTimeout(async()=>{var w;try{h(!0);const A=i.slice(1),S=await ta(A,10),k=((w=S==null?void 0:S.data)==null?void 0:w.data)||(S==null?void 0:S.data)||[];c(Array.isArray(k)?k:[])}catch(A){console.error("Failed to search users:",A),q.error("Failed to search users")}finally{h(!1)}},300);return()=>clearTimeout(v)},[i,t]);const y=v=>{m(w=>{const A=new Set(w);return A.has(v)?A.delete(v):A.add(v),A})},f=async()=>{var v,w;if(d.size===0){q.error("Please select at least one user to share with");return}try{p(!0),await QC(a,Array.from(d)),q.success(`Summary shared with ${d.size} user(s)`),m(new Set),l(""),c([]),n==null||n(),s()}catch(A){console.error("Failed to share summary:",A),q.error(((w=(v=A==null?void 0:A.response)==null?void 0:v.data)==null?void 0:w.message)||"Failed to share summary")}finally{p(!1)}},b=()=>{m(new Set),l(""),c([]),s()};return e.jsx(ct,{open:t,onOpenChange:b,children:e.jsxs(lt,{className:"sm:max-w-[500px]",children:[e.jsx(dt,{children:e.jsx(ot,{children:"Share Summary"})}),e.jsxs("div",{className:"space-y-4 py-4",children:[e.jsxs("div",{children:[e.jsx(re,{className:"text-sm font-medium text-gray-700",children:"Request"}),e.jsx("p",{className:"text-sm text-gray-600 mt-1",children:r})]}),e.jsxs("div",{children:[e.jsx(re,{htmlFor:"user-search",className:"text-sm font-medium text-gray-700",children:"Search Users"}),e.jsxs("div",{className:"relative mt-1",children:[e.jsx(vs,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-gray-400"}),e.jsx(Se,{id:"user-search",placeholder:"Type @ to search users...",value:i,onChange:v=>l(v.target.value),className:"pl-10"})]}),i&&!i.startsWith("@")&&e.jsx("p",{className:"text-xs text-gray-500 mt-1 ml-1",children:"Start with @ to search users (e.g., @john)"})]}),u&&e.jsx("div",{className:"flex items-center justify-center py-4",children:e.jsx(Je,{className:"h-5 w-5 animate-spin text-blue-600"})}),!u&&o.length>0&&e.jsx("div",{className:"border rounded-lg max-h-[300px] overflow-y-auto",children:o.map(v=>{const w=d.has(v.userId);return e.jsxs("div",{className:"flex items-center gap-3 p-3 hover:bg-gray-50 border-b last:border-b-0 cursor-pointer",onClick:()=>y(v.userId),children:[e.jsx("div",{onClick:A=>A.stopPropagation(),onMouseDown:A=>A.stopPropagation(),className:"flex items-center",children:e.jsx(hc,{checked:w,onCheckedChange:()=>y(v.userId)})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(kt,{className:"h-4 w-4 text-gray-400 flex-shrink-0"}),e.jsx("p",{className:"text-sm font-medium text-gray-900 truncate",children:v.displayName||v.email})]}),(v.designation||v.department)&&e.jsx("p",{className:"text-xs text-gray-500 mt-0.5",children:v.designation||v.department}),e.jsx("p",{className:"text-xs text-gray-400 truncate",children:v.email})]})]},v.userId)})}),!u&&i&&i.startsWith("@")&&o.length===0&&e.jsx("div",{className:"text-center py-8 text-gray-500 text-sm",children:"No users found"}),!u&&i&&!i.startsWith("@")&&e.jsx("div",{className:"text-center py-8 text-gray-500 text-sm",children:"Start typing with @ to search users"}),d.size>0&&e.jsxs("div",{className:"border rounded-lg p-3 bg-blue-50",children:[e.jsxs("p",{className:"text-sm font-medium text-gray-700 mb-2",children:["Selected (",d.size,")"]}),e.jsx("div",{className:"flex flex-wrap gap-2",children:Array.from(d).map(v=>{const w=o.find(A=>A.userId===v);return e.jsxs("div",{className:"flex items-center gap-1 bg-white px-2 py-1 rounded-full text-xs",children:[e.jsx("span",{children:(w==null?void 0:w.displayName)||(w==null?void 0:w.email)||v}),e.jsx("button",{onClick:()=>y(v),className:"ml-1 hover:text-red-600",children:e.jsx(ht,{className:"h-3 w-3"})})]},v)})})]})]}),e.jsxs(Ct,{children:[e.jsx(M,{variant:"outline",onClick:b,disabled:g,children:"Cancel"}),e.jsx(M,{onClick:f,disabled:g||d.size===0,children:g?e.jsxs(e.Fragment,{children:[e.jsx(Je,{className:"h-4 w-4 mr-2 animate-spin"}),"Sharing..."]}):`Share with ${d.size} user(s)`})]})]})})}function pp({isOpen:t,onClose:s,requestId:a,levelId:r,onSuccess:n}){const[i,l]=x.useState(""),[o,c]=x.useState(""),[d,m]=x.useState(!1),u=()=>$t().add(1,"month").format("YYYY-MM-DD"),h=()=>$t().add(1,"month").format("YYYY-MM-DD"),g=()=>$t().add(1,"day").format("YYYY-MM-DD");x.useEffect(()=>{t&&!o&&c(u())},[t]);const p=async()=>{var w,A,S,k;if(!i.trim()){q.error("Please provide a reason for pausing");return}if(!o){q.error("Please select a resume date");return}const f=$t(o),b=$t().add(1,"month"),v=$t().add(1,"day");if(f.isAfter(b)){q.error("Resume date cannot be more than 1 month from now");return}if(f.isBefore(v,"day")){q.error("Resume date must be at least 1 day from now");return}try{m(!0),await qv(a,r,i.trim(),f.toDate()),q.success("Workflow paused successfully"),n&&await n(),l(""),c(u()),s()}catch(F){console.error("Failed to pause workflow:",F),q.error(((A=(w=F==null?void 0:F.response)==null?void 0:w.data)==null?void 0:A.error)||((k=(S=F==null?void 0:F.response)==null?void 0:S.data)==null?void 0:k.message)||"Failed to pause workflow")}finally{m(!1)}},y=()=>{d||(l(""),c(u()),s())};return e.jsx(ct,{open:t,onOpenChange:y,children:e.jsxs(lt,{className:"sm:max-w-[500px]",children:[e.jsx(dt,{children:e.jsxs(ot,{className:"flex items-center gap-2",children:[e.jsx(Ua,{className:"w-5 h-5 text-orange-600"}),"Pause Workflow"]})}),e.jsxs("div",{className:"space-y-4 py-4",children:[e.jsx("div",{className:"bg-orange-50 border border-orange-200 rounded-lg p-3",children:e.jsxs("p",{className:"text-sm text-orange-800",children:[e.jsx("strong",{children:"Note:"})," Pausing will temporarily halt TAT calculations and notifications. The workflow will automatically resume on the selected date."]})}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(re,{htmlFor:"pause-reason",className:"text-sm font-medium",children:["Reason for Pausing ",e.jsx("span",{className:"text-red-500",children:"*"})]}),e.jsx(ps,{id:"pause-reason",value:i,onChange:f=>l(f.target.value),placeholder:"Enter the reason for pausing this workflow...",className:"min-h-[100px] text-sm",disabled:d}),e.jsxs("p",{className:"text-xs text-gray-500",children:[i.length," / 1000 characters"]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(re,{htmlFor:"resume-date",className:"text-sm font-medium",children:["Resume Date ",e.jsx("span",{className:"text-red-500",children:"*"})]}),e.jsx(Se,{id:"resume-date",type:"date",value:o,onChange:f=>c(f.target.value),min:g(),max:h(),className:"text-sm",disabled:d}),e.jsx("p",{className:"text-xs text-gray-500",children:"Maximum 1 month from today. The workflow will automatically resume on this date."})]})]}),e.jsxs(Ct,{children:[e.jsx(M,{variant:"outline",onClick:y,disabled:d,children:"Cancel"}),e.jsx(M,{onClick:p,disabled:d||!i.trim()||!o,className:"bg-orange-600 hover:bg-orange-700 text-white",children:d?e.jsxs(e.Fragment,{children:[e.jsx(Je,{className:"w-4 h-4 mr-2 animate-spin"}),"Pausing..."]}):e.jsxs(e.Fragment,{children:[e.jsx(Ua,{className:"w-4 h-4 mr-2"}),"Pause Workflow"]})})]})]})})}function gp({isOpen:t,onClose:s,requestId:a,onSuccess:r}){const[n,i]=x.useState(""),[l,o]=x.useState(!1),c=async()=>{var m,u,h,g;try{o(!0),await eb(a,n.trim()||void 0),q.success("Workflow resumed successfully"),r&&await r(),i(""),s()}catch(p){console.error("Failed to resume workflow:",p),q.error(((u=(m=p==null?void 0:p.response)==null?void 0:m.data)==null?void 0:u.error)||((g=(h=p==null?void 0:p.response)==null?void 0:h.data)==null?void 0:g.message)||"Failed to resume workflow")}finally{o(!1)}},d=()=>{l||(i(""),s())};return e.jsx(ct,{open:t,onOpenChange:d,children:e.jsxs(lt,{className:"sm:max-w-[500px]",children:[e.jsx(dt,{children:e.jsxs(ot,{className:"flex items-center gap-2",children:[e.jsx(li,{className:"w-5 h-5 text-green-600"}),"Resume Workflow"]})}),e.jsxs("div",{className:"space-y-4 py-4",children:[e.jsx("div",{className:"bg-green-50 border border-green-200 rounded-lg p-3",children:e.jsxs("p",{className:"text-sm text-green-800",children:[e.jsx("strong",{children:"Note:"})," Resuming will restart TAT calculations and notifications. The workflow will continue from where it was paused."]})}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"resume-notes",className:"text-sm font-medium",children:"Notes (Optional)"}),e.jsx(ps,{id:"resume-notes",value:n,onChange:m=>i(m.target.value),placeholder:"Add any notes about why you're resuming this workflow...",className:"min-h-[100px] text-sm",disabled:l}),e.jsxs("p",{className:"text-xs text-gray-500",children:[n.length," / 1000 characters"]})]})]}),e.jsxs(Ct,{children:[e.jsx(M,{variant:"outline",onClick:d,disabled:l,children:"Cancel"}),e.jsx(M,{onClick:c,disabled:l,className:"bg-green-600 hover:bg-green-700 text-white",children:l?e.jsxs(e.Fragment,{children:[e.jsx(Je,{className:"w-4 h-4 mr-2 animate-spin"}),"Resuming..."]}):e.jsxs(e.Fragment,{children:[e.jsx(li,{className:"w-4 h-4 mr-2"}),"Resume Workflow"]})})]})]})})}function fp({isOpen:t,onClose:s,requestId:a,approverName:r,onSuccess:n}){const[i,l]=x.useState(!1),o=async()=>{var c,d,m,u;try{l(!0),await tb(a),q.success("Retrigger request sent to approver"),n&&await n(),s()}catch(h){console.error("Failed to retrigger pause:",h),q.error(((d=(c=h==null?void 0:h.response)==null?void 0:c.data)==null?void 0:d.error)||((u=(m=h==null?void 0:h.response)==null?void 0:m.data)==null?void 0:u.message)||"Failed to send retrigger request")}finally{l(!1)}};return e.jsx(ct,{open:t,onOpenChange:s,children:e.jsxs(lt,{className:"sm:max-w-[450px]",children:[e.jsx(dt,{children:e.jsxs(ot,{className:"flex items-center gap-2",children:[e.jsx(Ge,{className:"w-5 h-5 text-orange-600"}),"Request Resume"]})}),e.jsxs("div",{className:"py-4",children:[e.jsxs("p",{className:"text-sm text-gray-700 mb-4",children:["You are requesting the approver",r?` (${r})`:""," to cancel the pause and resume work on this request."]}),e.jsx("div",{className:"bg-orange-50 border border-orange-200 rounded-lg p-3",children:e.jsx("p",{className:"text-sm text-orange-800",children:"A notification will be sent to the approver who paused this workflow, requesting them to resume it."})})]}),e.jsxs(Ct,{children:[e.jsx(M,{variant:"outline",onClick:s,disabled:i,children:"Cancel"}),e.jsx(M,{onClick:o,disabled:i,className:"bg-orange-600 hover:bg-orange-700 text-white",children:i?e.jsxs(e.Fragment,{children:[e.jsx(Je,{className:"w-4 h-4 mr-2 animate-spin"}),"Sending..."]}):e.jsxs(e.Fragment,{children:[e.jsx(Ge,{className:"w-4 h-4 mr-2"}),"Send Request"]})})]})]})})}const{DocumentsTab:d2,ActivityTab:m2,WorkNotesTab:u2,SummaryTab:h2,RequestDetailHeader:x2,QuickActionsSidebar:p2,RequestDetailModals:g2}=hp;let f2=class extends x.Component{constructor(s){super(s),this.state={hasError:!1,error:null}}static getDerivedStateFromError(s){return{hasError:!0,error:s}}componentDidCatch(s,a){console.error("Custom RequestDetail Error:",s,a)}render(){var s;return this.state.hasError?e.jsx("div",{className:"min-h-screen bg-gray-50 flex items-center justify-center p-6",children:e.jsxs("div",{className:"max-w-md w-full bg-white rounded-lg shadow-lg p-8 text-center",children:[e.jsx(os,{className:"w-16 h-16 text-red-500 mx-auto mb-4"}),e.jsx("h2",{className:"text-2xl font-bold mb-2",children:"Error Loading Request"}),e.jsx("p",{className:"text-gray-600 mb-4",children:((s=this.state.error)==null?void 0:s.message)||"An unexpected error occurred"}),e.jsx(M,{onClick:()=>window.location.reload(),className:"mr-2",children:"Reload Page"}),e.jsx(M,{variant:"outline",onClick:()=>window.history.back(),children:"Go Back"})]})}):this.props.children}};function y2({requestId:t,onBack:s,dynamicRequests:a=[]}){var ft,Ka,Ya,Za,Xa,Qa,Ja,qa;const n=gr().requestId||t||"",l=new URLSearchParams(window.location.search).get("tab")||"overview",[o,c]=x.useState(l),[d,m]=x.useState(!1),[u,h]=x.useState(null),[g,p]=x.useState(null),[y,f]=x.useState(!1),[b,v]=x.useState(0),[w,A]=x.useState(!1),[S,k]=x.useState(!1),[F,T]=x.useState(!1),[D,C]=x.useState({maxApprovalLevels:10,maxParticipants:50,allowSpectators:!0,maxSpectators:20}),[P,R]=x.useState({open:!1,violations:[]}),{user:V}=Zt(),{request:I,apiRequest:$,loading:_,refreshing:N,refreshDetails:j,currentApprovalLevel:U,isSpectator:z,isInitiator:B,existingParticipants:X,accessDenied:H}=mc(n,a,V),{mergedMessages:oe,unreadWorkNotes:Y,workNoteAttachments:E,setWorkNoteAttachments:O}=ep(n,$,o,V),{uploadingDocument:L,triggerFileInput:W,previewDocument:G,setPreviewDocument:ee,documentPolicy:ce,documentError:Pe,setDocumentError:Oe}=tp($,j),{showApproveModal:ie,setShowApproveModal:de,showRejectModal:je,setShowRejectModal:Me,showAddApproverModal:ye,setShowAddApproverModal:ae,showAddSpectatorModal:ne,setShowAddSpectatorModal:xt,showSkipApproverModal:ve,setShowSkipApproverModal:Fe,showActionStatusModal:mt,setShowActionStatusModal:Ot,skipApproverData:zt,setSkipApproverData:it,actionStatus:Is,setActionStatus:sa,handleApproveConfirm:Ia,handleRejectConfirm:va,handleAddApprover:Q,handleSkipApprover:ge,handleAddSpectator:J}=ap(n,U,j),{conclusionRemark:ke,setConclusionRemark:Re,conclusionLoading:We,conclusionSubmitting:Ie,aiGenerated:Ke,handleGenerateConclusion:$e,handleFinalizeConclusion:Qe}=sp(I,n,B,j,s,sa,Ot);x.useEffect(()=>{(async()=>{var us;try{const Gs=await Vs("SYSTEM_SETTINGS"),yr=await Vs("WORKFLOW_SHARING"),er=[...Gs,...yr],Es={};er.forEach(Ea=>{Es[Ea.configKey]=Ea.configValue}),C({maxApprovalLevels:parseInt(Es.MAX_APPROVAL_LEVELS||"10"),maxParticipants:parseInt(Es.MAX_PARTICIPANTS_PER_REQUEST||"50"),allowSpectators:((us=Es.ALLOW_ADD_SPECTATOR)==null?void 0:us.toLowerCase())==="true",maxSpectators:parseInt(Es.MAX_SPECTATORS_PER_REQUEST||"20")})}catch(Gs){console.error("Failed to load system policy:",Gs)}})()},[]),x.useEffect(()=>{const us=new URLSearchParams(window.location.search).get("tab");us&&c(us)},[n]);const gs=()=>{j()},Dt=()=>{A(!0)},at=()=>{k(!0)},qe=async()=>{await j()},pt=()=>{T(!0)},cs=async()=>{await j()},Pt=async()=>{await j()},Ws=async()=>{if(!($!=null&&$.requestId)){q.error("Request ID not found");return}if(!u){q.error("Summary not available. Please ensure the request is closed and the summary has been generated.");return}m(!0)},aa=((I==null?void 0:I.status)==="approved"||(I==null?void 0:I.status)==="rejected")&&B,ra=(I==null?void 0:I.status)==="closed"||(I==null?void 0:I.status)==="approved"&&!B||(I==null?void 0:I.status)==="rejected"&&!B;x.useEffect(()=>{(async()=>{if(!ra||!($!=null&&$.requestId)){p(null),h(null);return}try{f(!0);const us=await cp($.requestId);if(us!=null&&us.summaryId){h(us.summaryId);try{const Gs=await uc(us.summaryId);p(Gs)}catch(Gs){console.error("Failed to fetch summary details:",Gs),p(null),h(null)}}else p(null),h(null)}catch{p(null),h(null)}finally{f(!1)}})()},[ra,$==null?void 0:$.requestId]);const ba=((I==null?void 0:I.approvalFlow)||[]).filter(It=>It&&typeof It.step=="number").map(It=>({levelNumber:It.step||0,approverName:It.approver||"Unknown",status:It.status||"pending",tatHours:It.tatHours||24}));return _&&!I&&!$?e.jsx("div",{className:"flex items-center justify-center h-screen bg-gray-50","data-testid":"loading-state",children:e.jsxs("div",{className:"text-center",children:[e.jsx(Bt,{className:"w-12 h-12 text-blue-600 animate-spin mx-auto mb-4"}),e.jsx("p",{className:"text-gray-600",children:"Loading custom request details..."})]})}):H!=null&&H.denied?e.jsx("div",{className:"min-h-screen bg-gray-50 flex items-center justify-center p-6","data-testid":"access-denied-state",children:e.jsxs("div",{className:"max-w-lg w-full bg-white rounded-2xl shadow-xl p-8 text-center",children:[e.jsx("div",{className:"w-20 h-20 bg-red-100 rounded-full flex items-center justify-center mx-auto mb-6",children:e.jsx(Mu,{className:"w-10 h-10 text-red-500"})}),e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-3",children:"Access Denied"}),e.jsx("p",{className:"text-gray-600 mb-6 leading-relaxed",children:H.message}),e.jsxs("div",{className:"flex gap-3 justify-center",children:[e.jsxs(M,{variant:"outline",onClick:s||(()=>window.history.back()),className:"flex items-center gap-2",children:[e.jsx(zs,{className:"w-4 h-4"}),"Go Back"]}),e.jsx(M,{onClick:()=>window.location.href="/dashboard",className:"bg-blue-600 hover:bg-blue-700",children:"Go to Dashboard"})]})]})}):I?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"min-h-screen bg-gray-50","data-testid":"custom-request-detail-page",children:e.jsxs("div",{className:"max-w-7xl mx-auto",children:[e.jsx(x2,{request:I,refreshing:N,onBack:s||(()=>window.history.back()),onRefresh:gs,onShareSummary:Ws,isInitiator:B,slaData:((ft=I==null?void 0:I.summary)==null?void 0:ft.sla)||(I==null?void 0:I.sla)||null,isPaused:((Ka=I==null?void 0:I.pauseInfo)==null?void 0:Ka.isPaused)||!1}),e.jsxs(Vr,{value:o,onValueChange:c,className:"w-full","data-testid":"custom-request-detail-tabs",children:[e.jsx("div",{className:"mb-4 sm:mb-6",children:e.jsxs(zr,{className:"grid grid-cols-3 sm:grid-cols-6 lg:flex lg:flex-row h-auto bg-gray-100 p-1.5 sm:p-1 rounded-lg gap-1.5 sm:gap-1",children:[e.jsxs(vt,{value:"overview",className:"flex items-center justify-center gap-1 sm:gap-1.5 rounded-md px-2 sm:px-3 py-2.5 sm:py-1.5 text-xs sm:text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-400 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-white data-[state=active]:text-gray-900 data-[state=active]:shadow-sm text-gray-600 data-[state=active]:text-gray-900","data-testid":"tab-overview",children:[e.jsx(Fu,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 flex-shrink-0"}),e.jsx("span",{className:"truncate",children:"Overview"})]}),ra&&g&&e.jsxs(vt,{value:"summary",className:"flex items-center justify-center gap-1 sm:gap-1.5 rounded-md px-2 sm:px-3 py-2.5 sm:py-1.5 text-xs sm:text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-400 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-white data-[state=active]:text-gray-900 data-[state=active]:shadow-sm text-gray-600 data-[state=active]:text-gray-900","data-testid":"tab-summary",children:[e.jsx(yo,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 flex-shrink-0"}),e.jsx("span",{className:"truncate",children:"Summary"})]}),e.jsxs(vt,{value:"workflow",className:"flex items-center justify-center gap-1 sm:gap-1.5 rounded-md px-2 sm:px-3 py-2.5 sm:py-1.5 text-xs sm:text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-400 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-white data-[state=active]:text-gray-900 data-[state=active]:shadow-sm text-gray-600 data-[state=active]:text-gray-900","data-testid":"tab-workflow",children:[e.jsx(Bs,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 flex-shrink-0"}),e.jsx("span",{className:"truncate",children:"Workflow"})]}),e.jsxs(vt,{value:"documents",className:"flex items-center justify-center gap-1 sm:gap-1.5 rounded-md px-2 sm:px-3 py-2.5 sm:py-1.5 text-xs sm:text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-400 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-white data-[state=active]:text-gray-900 data-[state=active]:shadow-sm text-gray-600 data-[state=active]:text-gray-900","data-testid":"tab-documents",children:[e.jsx(_e,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 flex-shrink-0"}),e.jsx("span",{className:"truncate",children:"Docs"})]}),e.jsxs(vt,{value:"activity",className:"flex items-center justify-center gap-1 sm:gap-1.5 rounded-md px-2 sm:px-3 py-2.5 sm:py-1.5 text-xs sm:text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-400 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-white data-[state=active]:text-gray-900 data-[state=active]:shadow-sm text-gray-600 data-[state=active]:text-gray-900 col-span-1 sm:col-span-1","data-testid":"tab-activity",children:[e.jsx(Gt,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 flex-shrink-0"}),e.jsx("span",{className:"truncate",children:"Activity"})]}),e.jsxs(vt,{value:"worknotes",className:"flex items-center justify-center gap-1 sm:gap-1.5 rounded-md px-2 sm:px-3 py-2.5 sm:py-1.5 text-xs sm:text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-400 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-white data-[state=active]:text-gray-900 data-[state=active]:shadow-sm text-gray-600 data-[state=active]:text-gray-900 relative col-span-2 sm:col-span-1","data-testid":"tab-worknotes",children:[e.jsx(Hs,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 flex-shrink-0"}),e.jsx("span",{className:"truncate",children:"Work Notes"}),Y>0&&e.jsx(le,{className:"absolute -top-1 -right-1 h-5 w-5 rounded-full bg-red-500 text-white text-[10px] flex items-center justify-center p-0","data-testid":"worknotes-unread-badge",children:Y>9?"9+":Y})]})]})}),e.jsxs("div",{className:o==="worknotes"?"":"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[e.jsxs("div",{className:o==="worknotes"?"":"lg:col-span-2",children:[e.jsx(bt,{value:"overview",className:"mt-0","data-testid":"overview-tab-content",children:e.jsx(db,{request:I,isInitiator:B,needsClosure:aa,conclusionRemark:ke,setConclusionRemark:Re,conclusionLoading:We,conclusionSubmitting:Ie,aiGenerated:Ke,handleGenerateConclusion:$e,handleFinalizeConclusion:Qe,onPause:Dt,onResume:at,onRetrigger:pt,currentUserIsApprover:!!U,pausedByUserId:(Za=(Ya=I==null?void 0:I.pauseInfo)==null?void 0:Ya.pausedBy)==null?void 0:Za.userId,currentUserId:V==null?void 0:V.userId})}),ra&&e.jsx(bt,{value:"summary",className:"mt-0","data-testid":"summary-tab-content",children:e.jsx(h2,{summary:g,loading:y,onShare:Ws,isInitiator:B})}),e.jsx(bt,{value:"workflow",className:"mt-0",children:e.jsx(xb,{request:I,user:V,isInitiator:B,onSkipApprover:It=>{if(!It.levelId){alert("Level ID not available");return}it(It),Fe(!0)},onRefresh:j})}),e.jsx(bt,{value:"documents",className:"mt-0",children:e.jsx(d2,{request:I,workNoteAttachments:E,uploadingDocument:L,documentPolicy:ce,triggerFileInput:W,setPreviewDocument:ee,downloadDocument:pr})}),e.jsx(bt,{value:"activity",className:"mt-0",children:e.jsx(m2,{request:I})}),e.jsx(bt,{value:"worknotes",className:"mt-0",forceMount:!0,hidden:o!=="worknotes",children:e.jsx(u2,{requestId:n,requestTitle:I.title,mergedMessages:oe,setWorkNoteAttachments:O,isInitiator:B,isSpectator:z,currentLevels:ba,onAddApprover:Q,maxApprovalLevels:D.maxApprovalLevels,onPolicyViolation:It=>R({open:!0,violations:It})})})]}),o!=="worknotes"&&e.jsx(p2,{request:I,isInitiator:B,isSpectator:z,currentApprovalLevel:U,onAddApprover:()=>ae(!0),onAddSpectator:()=>xt(!0),onApprove:()=>de(!0),onReject:()=>Me(!0),onPause:Dt,onResume:at,onRetrigger:pt,summaryId:u,refreshTrigger:b,pausedByUserId:(Qa=(Xa=I==null?void 0:I.pauseInfo)==null?void 0:Xa.pausedBy)==null?void 0:Qa.userId,currentUserId:V==null?void 0:V.userId,apiRequest:$})]})]})]})}),d&&u&&e.jsx(xp,{isOpen:d,onClose:()=>m(!1),summaryId:u,requestTitle:(I==null?void 0:I.title)||"N/A",onSuccess:()=>{j(),v(It=>It+1)}}),w&&($==null?void 0:$.requestId)&&e.jsx(pp,{isOpen:w,onClose:()=>A(!1),requestId:$.requestId,levelId:(U==null?void 0:U.levelId)||null,onSuccess:cs}),S&&($==null?void 0:$.requestId)&&e.jsx(gp,{isOpen:S,onClose:()=>k(!1),requestId:$.requestId,onSuccess:qe}),F&&($==null?void 0:$.requestId)&&e.jsx(fp,{isOpen:F,onClose:()=>T(!1),requestId:$.requestId,approverName:(qa=(Ja=I==null?void 0:I.pauseInfo)==null?void 0:Ja.pausedBy)==null?void 0:qa.name,onSuccess:Pt}),e.jsx(g2,{showApproveModal:ie,showRejectModal:je,showAddApproverModal:ye,showAddSpectatorModal:ne,showSkipApproverModal:ve,showActionStatusModal:mt,previewDocument:G,documentError:Pe,request:I,skipApproverData:zt,actionStatus:Is,existingParticipants:X,currentLevels:ba,maxApprovalLevels:D.maxApprovalLevels,onPolicyViolation:It=>R({open:!0,violations:It}),setShowApproveModal:de,setShowRejectModal:Me,setShowAddApproverModal:ae,setShowAddSpectatorModal:xt,setShowSkipApproverModal:Fe,setShowActionStatusModal:Ot,setPreviewDocument:ee,setDocumentError:Oe,setSkipApproverData:it,setActionStatus:sa,handleApproveConfirm:Ia,handleRejectConfirm:va,handleAddApprover:Q,handleAddSpectator:J,handleSkipApprover:ge,downloadDocument:pr,documentPolicy:ce}),e.jsx(Fn,{open:P.open,onClose:()=>R({open:!1,violations:[]}),violations:P.violations,policyDetails:{maxApprovalLevels:D.maxApprovalLevels,maxParticipants:D.maxParticipants,allowSpectators:D.allowSpectators,maxSpectators:D.maxSpectators}})]}):e.jsx("div",{className:"min-h-screen bg-gray-50 flex items-center justify-center p-6","data-testid":"not-found-state",children:e.jsxs("div",{className:"max-w-md w-full bg-white rounded-2xl shadow-xl p-8 text-center",children:[e.jsx("div",{className:"w-20 h-20 bg-gray-100 rounded-full flex items-center justify-center mx-auto mb-6",children:e.jsx(_e,{className:"w-10 h-10 text-gray-400"})}),e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-3",children:"Custom Request Not Found"}),e.jsx("p",{className:"text-gray-600 mb-6",children:"The custom request you're looking for doesn't exist or may have been deleted."}),e.jsxs("div",{className:"flex gap-3 justify-center",children:[e.jsxs(M,{variant:"outline",onClick:s||(()=>window.history.back()),className:"flex items-center gap-2",children:[e.jsx(zs,{className:"w-4 h-4"}),"Go Back"]}),e.jsx(M,{onClick:()=>window.location.href="/dashboard",className:"bg-blue-600 hover:bg-blue-700",children:"Go to Dashboard"})]})]})})}function v2(t){return e.jsx(f2,{children:e.jsx(y2,{...t})})}function b2({searchTerm:t,statusFilter:s,priorityFilter:a,templateTypeFilter:r,sortBy:n,sortOrder:i,onSearchChange:l,onStatusFilterChange:o,onPriorityFilterChange:c,onTemplateTypeFilterChange:d,onSortByChange:m,onSortOrderChange:u,onClearFilters:h,activeFiltersCount:g}){return e.jsxs(te,{className:"shadow-lg border-0",children:[e.jsx(ue,{className:"pb-3 sm:pb-4 px-3 sm:px-6",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2 sm:gap-3",children:[e.jsx("div",{className:"p-1.5 sm:p-2 bg-blue-100 rounded-lg",children:e.jsx(Ha,{className:"h-4 w-4 sm:h-5 sm:w-5 text-blue-600"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-base sm:text-lg",children:"Filters & Search"}),e.jsx(Te,{className:"text-xs sm:text-sm",children:g>0&&e.jsxs("span",{className:"text-blue-600 font-medium",children:[g," filter",g>1?"s":""," active"]})})]})]}),g>0&&e.jsxs(M,{variant:"ghost",size:"sm",onClick:h,className:"text-red-600 hover:bg-red-50 gap-1 h-8 sm:h-9 px-2 sm:px-3",children:[e.jsx(ht,{className:"w-3 h-3 sm:w-3.5 sm:h-3.5"}),e.jsx("span",{className:"text-xs sm:text-sm",children:"Clear"})]})]})}),e.jsx(se,{className:"space-y-3 sm:space-y-4 px-3 sm:px-6",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-5 gap-3 sm:gap-4",children:[e.jsxs("div",{className:"relative",children:[e.jsx(vs,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-3.5 h-3.5 sm:w-4 sm:h-4"}),e.jsx(Se,{placeholder:"Search requests, IDs...",value:t,onChange:p=>l(p.target.value),className:"pl-9 sm:pl-10 h-9 sm:h-10 md:h-11 text-sm sm:text-base bg-gray-50 border-gray-200 focus:bg-white focus:border-blue-400 focus:ring-1 focus:ring-blue-200 transition-colors"})]}),e.jsxs(Be,{value:a,onValueChange:c,children:[e.jsx(ze,{className:"h-9 sm:h-10 md:h-11 text-sm sm:text-base bg-gray-50 border-gray-200 focus:bg-white focus:border-blue-400 focus:ring-1 focus:ring-blue-200",children:e.jsx(Ve,{placeholder:"All Priorities"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Priorities"}),e.jsx(K,{value:"express",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ha,{className:"w-4 h-4 text-orange-600"}),e.jsx("span",{children:"Express"})]})}),e.jsx(K,{value:"standard",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(_t,{className:"w-4 h-4 text-blue-600"}),e.jsx("span",{children:"Standard"})]})})]})]}),e.jsxs(Be,{value:s,onValueChange:o,children:[e.jsx(ze,{className:"h-9 sm:h-10 md:h-11 text-sm sm:text-base bg-gray-50 border-gray-200 focus:bg-white focus:border-blue-400 focus:ring-1 focus:ring-blue-200",children:e.jsx(Ve,{placeholder:"All Statuses"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Statuses"}),e.jsx(K,{value:"pending",children:"Pending (In Approval)"}),e.jsx(K,{value:"approved",children:"Approved (Needs Closure)"})]})]}),e.jsxs(Be,{value:r,onValueChange:d,children:[e.jsx(ze,{className:"h-9 sm:h-10 md:h-11 text-sm sm:text-base bg-gray-50 border-gray-200 focus:bg-white focus:border-blue-400 focus:ring-1 focus:ring-blue-200",children:e.jsx(Ve,{placeholder:"All Templates"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Templates"}),e.jsx(K,{value:"CUSTOM",children:"Custom"}),e.jsx(K,{value:"DEALER CLAIM",children:"Dealer Claim"})]})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(Be,{value:n,onValueChange:p=>m(p),children:[e.jsx(ze,{className:"h-9 sm:h-10 md:h-11 text-sm sm:text-base bg-gray-50 border-gray-200 focus:bg-white focus:border-blue-400 focus:ring-1 focus:ring-blue-200",children:e.jsx(Ve,{placeholder:"Sort by"})}),e.jsxs(He,{children:[e.jsx(K,{value:"due",children:"Due Date"}),e.jsx(K,{value:"created",children:"Date Created"}),e.jsx(K,{value:"priority",children:"Priority"}),e.jsx(K,{value:"sla",children:"SLA Progress"})]})]}),e.jsx(M,{variant:"outline",size:"sm",onClick:()=>u(i==="asc"?"desc":"asc"),className:"px-2 sm:px-3 h-9 sm:h-10 md:h-11",children:i==="asc"?e.jsx(ki,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"}):e.jsx(Ri,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"})})]})]})})]})}function j2({searchTerm:t,priorityFilter:s,statusFilter:a,templateTypeFilter:r,sortBy:n,sortOrder:i,activeFiltersCount:l,onSearchChange:o,onPriorityChange:c,onStatusChange:d,onTemplateTypeChange:m,onSortByChange:u,onSortOrderChange:h,onClearFilters:g}){return e.jsxs(te,{className:"shadow-lg border-0","data-testid":"closed-requests-filters",children:[e.jsx(ue,{className:"pb-3 sm:pb-4 px-3 sm:px-6",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2 sm:gap-3",children:[e.jsx("div",{className:"p-1.5 sm:p-2 bg-blue-100 rounded-lg",children:e.jsx(Ha,{className:"h-4 w-4 sm:h-5 sm:w-5 text-blue-600"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-base sm:text-lg",children:"Filters & Search"}),e.jsx(Te,{className:"text-xs sm:text-sm",children:l>0&&e.jsxs("span",{className:"text-blue-600 font-medium",children:[l," filter",l>1?"s":""," active"]})})]})]}),l>0&&e.jsxs(M,{variant:"ghost",size:"sm",onClick:g,className:"text-red-600 hover:bg-red-50 gap-1 h-8 sm:h-9 px-2 sm:px-3","data-testid":"closed-requests-clear-filters",children:[e.jsx(ht,{className:"w-3 h-3 sm:w-3.5 sm:h-3.5"}),e.jsx("span",{className:"text-xs sm:text-sm",children:"Clear"})]})]})}),e.jsx(se,{className:"space-y-3 sm:space-y-4 px-3 sm:px-6",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-5 gap-3 sm:gap-4",children:[e.jsxs("div",{className:"relative",children:[e.jsx(vs,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-3.5 h-3.5 sm:w-4 sm:h-4"}),e.jsx(Se,{placeholder:"Search requests, IDs...",value:t,onChange:p=>o(p.target.value),className:"pl-9 sm:pl-10 h-9 sm:h-10 md:h-11 text-sm sm:text-base bg-gray-50 border-gray-200 focus:bg-white transition-colors","data-testid":"closed-requests-search"})]}),e.jsxs(Be,{value:s,onValueChange:c,children:[e.jsx(ze,{className:"h-9 sm:h-10 md:h-11 text-sm sm:text-base bg-gray-50 border-gray-200 focus:bg-white","data-testid":"closed-requests-priority-filter",children:e.jsx(Ve,{placeholder:"All Priorities"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Priorities"}),e.jsx(K,{value:"express",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ha,{className:"w-4 h-4 text-orange-600"}),e.jsx("span",{children:"Express"})]})}),e.jsx(K,{value:"standard",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(_t,{className:"w-4 h-4 text-blue-600"}),e.jsx("span",{children:"Standard"})]})})]})]}),e.jsxs(Be,{value:a,onValueChange:d,children:[e.jsx(ze,{className:"h-9 sm:h-10 md:h-11 text-sm sm:text-base bg-gray-50 border-gray-200 focus:bg-white","data-testid":"closed-requests-status-filter",children:e.jsx(Ve,{placeholder:"Closure Type"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Closures"}),e.jsx(K,{value:"approved",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ce,{className:"w-4 h-4 text-green-600"}),e.jsx("span",{children:"Closed After Approval"})]})}),e.jsx(K,{value:"rejected",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(gt,{className:"w-4 h-4 text-red-600"}),e.jsx("span",{children:"Closed After Rejection"})]})})]})]}),e.jsxs(Be,{value:r,onValueChange:m,children:[e.jsx(ze,{className:"h-9 sm:h-10 md:h-11 text-sm sm:text-base bg-gray-50 border-gray-200 focus:bg-white","data-testid":"closed-requests-template-type-filter",children:e.jsx(Ve,{placeholder:"All Templates"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Templates"}),e.jsx(K,{value:"CUSTOM",children:"Custom"}),e.jsx(K,{value:"DEALER CLAIM",children:"Dealer Claim"})]})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(Be,{value:n,onValueChange:p=>u(p),children:[e.jsx(ze,{className:"h-9 sm:h-10 md:h-11 text-sm sm:text-base bg-gray-50 border-gray-200 focus:bg-white","data-testid":"closed-requests-sort-by",children:e.jsx(Ve,{placeholder:"Sort by"})}),e.jsxs(He,{children:[e.jsx(K,{value:"due",children:"Due Date"}),e.jsx(K,{value:"created",children:"Date Created"}),e.jsx(K,{value:"priority",children:"Priority"})]})]}),e.jsx(M,{variant:"outline",size:"sm",onClick:h,className:"px-2 sm:px-3 h-9 sm:h-10 md:h-11","data-testid":"closed-requests-sort-order",children:i==="asc"?e.jsx(ki,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"}):e.jsx(Ri,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"})})]})]})})]})}function N2({searchTerm:t,statusFilter:s,priorityFilter:a,templateTypeFilter:r,departmentFilter:n,slaComplianceFilter:i,initiatorFilter:l,approverFilter:o,approverFilterType:c,dateRange:d,customStartDate:m,customEndDate:u,showCustomDatePicker:h,departments:g,loadingDepartments:p,initiatorSearch:y,approverSearch:f,onSearchChange:b,onStatusChange:v,onPriorityChange:w,onTemplateTypeChange:A,onDepartmentChange:S,onSlaComplianceChange:k,onInitiatorChange:F,onApproverChange:T,onApproverTypeChange:D,onDateRangeChange:C,onCustomStartDateChange:P,onCustomEndDateChange:R,onShowCustomDatePickerChange:V,onApplyCustomDate:I,onClearFilters:$,hasActiveFilters:_}){return e.jsx(te,{className:"border-gray-200 shadow-md","data-testid":"user-all-requests-filters",children:e.jsx(se,{className:"p-4 sm:p-6",children:e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ha,{className:"w-5 h-5 text-muted-foreground"}),e.jsx("h3",{className:"font-semibold text-gray-900",children:"Advanced Filters"}),_&&e.jsx(le,{variant:"outline",className:"bg-blue-50 text-blue-700 border-blue-200",children:"Active"})]}),_&&e.jsxs(M,{variant:"ghost",size:"sm",onClick:$,className:"gap-2",children:[e.jsx(Bt,{className:"w-4 h-4"}),"Clear All"]})]}),e.jsx(Vt,{}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 lg:grid-cols-6 gap-3 sm:gap-4",children:[e.jsxs("div",{className:"relative md:col-span-3 lg:col-span-1",children:[e.jsx(vs,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-4 h-4"}),e.jsx(Se,{placeholder:"Search requests...",value:t,onChange:N=>b(N.target.value),className:"pl-10 h-10","data-testid":"search-input"})]}),e.jsxs(Be,{value:s,onValueChange:v,children:[e.jsx(ze,{className:"h-10","data-testid":"status-filter",children:e.jsx(Ve,{placeholder:"All Status"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Status"}),e.jsx(K,{value:"pending",children:"Pending"}),e.jsx(K,{value:"paused",children:"Paused"}),e.jsx(K,{value:"approved",children:"Approved"}),e.jsx(K,{value:"rejected",children:"Rejected"}),e.jsx(K,{value:"closed",children:"Closed"})]})]}),e.jsxs(Be,{value:a,onValueChange:w,children:[e.jsx(ze,{className:"h-10","data-testid":"priority-filter",children:e.jsx(Ve,{placeholder:"All Priority"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Priority"}),e.jsx(K,{value:"express",children:"Express"}),e.jsx(K,{value:"standard",children:"Standard"})]})]}),e.jsxs(Be,{value:r,onValueChange:A,children:[e.jsx(ze,{className:"h-10","data-testid":"template-type-filter",children:e.jsx(Ve,{placeholder:"All Templates"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Templates"}),e.jsx(K,{value:"CUSTOM",children:"Custom"}),e.jsx(K,{value:"DEALER CLAIM",children:"Dealer Claim"})]})]}),e.jsxs(Be,{value:n,onValueChange:S,disabled:p||g.length===0,children:[e.jsx(ze,{className:"h-10","data-testid":"department-filter",children:e.jsx(Ve,{placeholder:p?"Loading...":"All Departments"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Departments"}),g.map(N=>e.jsx(K,{value:N,children:N},N))]})]}),e.jsxs(Be,{value:i,onValueChange:k,children:[e.jsx(ze,{className:"h-10","data-testid":"sla-compliance-filter",children:e.jsx(Ve,{placeholder:"All SLA Status"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All SLA Status"}),e.jsx(K,{value:"compliant",children:"Compliant"}),e.jsx(K,{value:"on-track",children:"On Track"}),e.jsx(K,{value:"approaching",children:"Approaching"}),e.jsx(K,{value:"critical",children:"Critical"}),e.jsx(K,{value:"breached",children:"Breached"})]})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3 sm:gap-4",children:[e.jsxs("div",{className:"flex flex-col",children:[e.jsx(re,{className:"text-sm font-medium text-gray-700 mb-2",children:"Initiator"}),e.jsx("div",{className:"relative",children:y.selectedUser?e.jsxs("div",{className:"flex items-center gap-2 h-10 px-3 bg-white border border-gray-300 rounded-md",children:[e.jsx("span",{className:"flex-1 text-sm text-gray-900 truncate",children:y.selectedUser.displayName||y.selectedUser.email}),e.jsx(M,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:y.handleClear,children:e.jsx(ht,{className:"h-3 w-3"})})]}):e.jsxs(e.Fragment,{children:[e.jsx(Se,{placeholder:"Search initiator...",value:y.searchQuery,onChange:N=>y.handleSearch(N.target.value),onFocus:()=>{y.searchResults.length>0&&y.setShowResults(!0)},onBlur:()=>setTimeout(()=>y.setShowResults(!1),200),className:"h-10","data-testid":"initiator-search-input"}),y.showResults&&y.searchResults.length>0&&e.jsx("div",{className:"absolute z-50 w-full mt-1 bg-white border border-gray-300 rounded-md shadow-lg max-h-60 overflow-y-auto",children:y.searchResults.map(N=>e.jsx("button",{type:"button",onClick:()=>y.handleSelect(N),className:"w-full px-4 py-2 text-left hover:bg-gray-50",children:e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"text-sm font-medium text-gray-900",children:N.displayName||N.email}),N.displayName&&e.jsx("span",{className:"text-xs text-gray-500",children:N.email})]})},N.userId))})]})})]}),e.jsxs("div",{className:"flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx(re,{className:"text-sm font-medium text-gray-700",children:"Approver"}),o!=="all"&&D&&e.jsxs(Be,{value:c,onValueChange:N=>D(N),children:[e.jsx(ze,{className:"h-7 w-32 text-xs",children:e.jsx(Ve,{})}),e.jsxs(He,{children:[e.jsx(K,{value:"current",children:"Current Only"}),e.jsx(K,{value:"any",children:"Any Approver"})]})]})]}),e.jsx("div",{className:"relative",children:f.selectedUser?e.jsxs("div",{className:"flex items-center gap-2 h-10 px-3 bg-white border border-gray-300 rounded-md",children:[e.jsx("span",{className:"flex-1 text-sm text-gray-900 truncate",children:f.selectedUser.displayName||f.selectedUser.email}),e.jsx(M,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:f.handleClear,children:e.jsx(ht,{className:"h-3 w-3"})})]}):e.jsxs(e.Fragment,{children:[e.jsx(Se,{placeholder:"Search approver...",value:f.searchQuery,onChange:N=>f.handleSearch(N.target.value),onFocus:()=>{f.searchResults.length>0&&f.setShowResults(!0)},onBlur:()=>setTimeout(()=>f.setShowResults(!1),200),className:"h-10","data-testid":"approver-search-input"}),f.showResults&&f.searchResults.length>0&&e.jsx("div",{className:"absolute z-50 w-full mt-1 bg-white border border-gray-300 rounded-md shadow-lg max-h-60 overflow-y-auto",children:f.searchResults.map(N=>e.jsx("button",{type:"button",onClick:()=>f.handleSelect(N),className:"w-full px-4 py-2 text-left hover:bg-gray-50",children:e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"text-sm font-medium text-gray-900",children:N.displayName||N.email}),N.displayName&&e.jsx("span",{className:"text-xs text-gray-500",children:N.email})]})},N.userId))})]})})]})]}),e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx(ut,{className:"w-4 h-4 text-muted-foreground"}),e.jsxs(Be,{value:d,onValueChange:N=>C(N),children:[e.jsx(ze,{className:"w-[160px] h-10",children:e.jsx(Ve,{placeholder:"Date Range"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Time"}),e.jsx(K,{value:"today",children:"Today"}),e.jsx(K,{value:"week",children:"This Week"}),e.jsx(K,{value:"month",children:"This Month"}),e.jsx(K,{value:"last7days",children:"Last 7 Days"}),e.jsx(K,{value:"last30days",children:"Last 30 Days"}),e.jsx(K,{value:"custom",children:"Custom Range"})]})]}),d==="custom"&&e.jsxs(oa,{open:h,onOpenChange:V,children:[e.jsx(ca,{asChild:!0,children:e.jsxs(M,{variant:"outline",size:"sm",className:"gap-2",children:[e.jsx(ut,{className:"w-4 h-4"}),m&&u?`${De(m,"MMM d, yyyy")} - ${De(u,"MMM d, yyyy")}`:"Select dates"]})}),e.jsx(da,{className:"w-auto p-4",align:"start",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"start-date",children:"Start Date"}),e.jsx(Se,{id:"start-date",type:"date",value:m?De(m,"yyyy-MM-dd"):"",onChange:N=>{const j=N.target.value?new Date(N.target.value):void 0;j?(P==null||P(j),u&&j>u&&(R==null||R(j))):P==null||P(void 0)},max:De(new Date,"yyyy-MM-dd"),className:"w-full"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"end-date",children:"End Date"}),e.jsx(Se,{id:"end-date",type:"date",value:u?De(u,"yyyy-MM-dd"):"",onChange:N=>{const j=N.target.value?new Date(N.target.value):void 0;j?(R==null||R(j),m&&j<m&&(P==null||P(j))):R==null||R(void 0)},min:m?De(m,"yyyy-MM-dd"):void 0,max:De(new Date,"yyyy-MM-dd"),className:"w-full"})]})]}),e.jsxs("div",{className:"flex gap-2 pt-2 border-t",children:[e.jsx(M,{size:"sm",onClick:I,disabled:!m||!u,className:"flex-1 bg-re-green hover:bg-re-green/90",children:"Apply"}),e.jsx(M,{size:"sm",variant:"outline",onClick:()=>{V==null||V(!1),P==null||P(void 0),R==null||R(void 0),C("month")},children:"Cancel"})]})]})})]})]})]})})})}function w2({request:t,apiRequest:s,currentUserId:a,isInitiator:r,onEditClaimAmount:n,className:i="",needsClosure:l=!1,conclusionRemark:o="",setConclusionRemark:c,conclusionLoading:d=!1,conclusionSubmitting:m=!1,aiGenerated:u=!1,handleGenerateConclusion:h,handleFinalizeConclusion:g}){var v,w,A,S,k,F,T,D,C,P,R,V,I,$,_;if(!Bi(s))return e.jsx("div",{className:"text-center py-8 text-gray-500",children:e.jsx("p",{children:"This is not a claim management request."})});const p=dp(s);if(!p)return console.warn("[ClaimManagementOverviewTab] Failed to map claim data:",{apiRequest:s,hasClaimDetails:!!(s!=null&&s.claimDetails),hasProposalDetails:!!(s!=null&&s.proposalDetails),hasCompletionDetails:!!(s!=null&&s.completionDetails)}),e.jsxs("div",{className:"text-center py-8 text-gray-500",children:[e.jsx("p",{children:"Unable to load claim management data."}),e.jsx("p",{className:"text-xs mt-2",children:"Please ensure the request has been properly initialized."})]});console.debug("[ClaimManagementOverviewTab] Mapped claim data:",{activityInfo:p.activityInfo,dealerInfo:p.dealerInfo,hasProposalDetails:!!p.proposalDetails,closedExpenses:(v=p.activityInfo)==null?void 0:v.closedExpenses,closedExpensesBreakdown:(w=p.activityInfo)==null?void 0:w.closedExpensesBreakdown,hasDealerCode:!!((A=p.dealerInfo)!=null&&A.dealerCode),hasDealerName:!!((S=p.dealerInfo)!=null&&S.dealerName)});const y=mp(s,a),f=up(y);console.debug("[ClaimManagementOverviewTab] User role and visibility:",{userRole:y,visibility:f,currentUserId:a,showDealerInfo:f.showDealerInfo,dealerInfoPresent:!!((k=p.dealerInfo)!=null&&k.dealerCode||(F=p.dealerInfo)!=null&&F.dealerName)});const b={name:((T=s.initiator)==null?void 0:T.name)||((D=s.initiator)==null?void 0:D.displayName)||((C=s.initiator)==null?void 0:C.email)||"Unknown",role:((P=s.initiator)==null?void 0:P.role)||((R=s.initiator)==null?void 0:R.designation)||"Initiator",department:((V=s.initiator)==null?void 0:V.department)||s.department||"",email:((I=s.initiator)==null?void 0:I.email)||"N/A",phone:(($=s.initiator)==null?void 0:$.phone)||((_=s.initiator)==null?void 0:_.mobile)};return console.debug("[ClaimManagementOverviewTab] Closure setup check:",{needsClosure:l,requestStatus:s==null?void 0:s.status,requestStatusLower:((s==null?void 0:s.status)||"").toLowerCase(),hasConclusionRemark:!!o,conclusionRemarkLength:(o==null?void 0:o.length)||0,conclusionLoading:d,conclusionSubmitting:m,aiGenerated:u,hasHandleGenerate:!!h,hasHandleFinalize:!!g,hasSetConclusion:!!c}),e.jsxs("div",{className:`space-y-6 ${i}`,children:[e.jsx(e2,{activityInfo:p.activityInfo,createdAt:s==null?void 0:s.createdAt,updatedAt:s==null?void 0:s.updatedAt}),e.jsx(t2,{dealerInfo:p.dealerInfo}),f.showProposalDetails&&p.proposalDetails&&e.jsx(a2,{proposalDetails:p.proposalDetails}),e.jsx(r2,{initiatorInfo:b}),(s==null?void 0:s.status)==="closed"&&(s==null?void 0:s.conclusionRemark)&&e.jsxs(te,{children:[e.jsxs(ue,{children:[e.jsxs(he,{className:"flex items-center gap-2 text-base",children:[e.jsx(Ce,{className:"w-5 h-5 text-gray-600"}),"Conclusion Remark"]}),e.jsx(Te,{className:"mt-1 text-xs sm:text-sm",children:"Final summary of this closed request"})]}),e.jsxs(se,{className:"pt-4",children:[e.jsx("div",{className:"bg-gray-50 border border-gray-200 rounded-lg p-4",children:e.jsx(Qs,{content:s.conclusionRemark||"",className:"text-sm"})}),s.closureDate&&e.jsxs("div",{className:"mt-3 flex items-center justify-between text-xs text-gray-500 border-t border-gray-200 pt-3",children:[e.jsxs("span",{children:["Request closed on ",ns(s.closureDate)]}),e.jsxs("span",{children:["By ",b.name]})]})]})]}),l&&e.jsxs(te,{"data-testid":"conclusion-remark-card",children:[e.jsx(ue,{className:`bg-gradient-to-r border-b ${((s==null?void 0:s.status)||"").toLowerCase()==="rejected"?"from-red-50 to-rose-50 border-red-200":"from-green-50 to-emerald-50 border-green-200"}`,children:e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3",children:[e.jsxs("div",{children:[e.jsxs(he,{className:`flex items-center gap-2 text-base sm:text-lg ${((s==null?void 0:s.status)||"").toLowerCase()==="rejected"?"text-red-700":"text-green-700"}`,children:[e.jsx(Ce,{className:`w-5 h-5 ${((s==null?void 0:s.status)||"").toLowerCase()==="rejected"?"text-red-600":"text-green-600"}`}),"Conclusion Remark - Final Step"]}),e.jsx(Te,{className:"mt-1 text-xs sm:text-sm",children:((s==null?void 0:s.status)||"").toLowerCase()==="rejected"?"This request was rejected. Please review the AI-generated closure remark and finalize it to close this request.":"All approvals are complete. Please review and finalize the conclusion to close this request."})]}),h&&e.jsxs(M,{variant:"outline",size:"sm",onClick:h,disabled:d,className:"gap-2 shrink-0","data-testid":"generate-ai-conclusion-button",children:[e.jsx(Bt,{className:`w-3.5 h-3.5 ${d?"animate-spin":""}`}),u?"Regenerate":"Generate with AI"]})]})}),e.jsx(se,{className:"pt-4",children:d?e.jsx("div",{className:"flex items-center justify-center py-8","data-testid":"conclusion-loading",children:e.jsxs("div",{className:"text-center",children:[e.jsx(Je,{className:"w-8 h-8 text-blue-600 animate-spin mx-auto mb-2"}),e.jsx("p",{className:"text-sm text-gray-600",children:"Preparing conclusion remark..."})]})}):e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx("label",{className:"text-sm font-medium text-gray-700",children:"Conclusion Remark"}),u&&e.jsx("span",{className:"text-xs text-blue-600","data-testid":"ai-generated-label",children:"✓ System-generated suggestion (editable)"})]}),c&&e.jsx(Fi,{value:o,onChange:N=>c(N),placeholder:"Enter a professional conclusion remark summarizing the request outcome, key decisions, and approvals...",className:"text-sm",minHeight:"160px","data-testid":"conclusion-remark-textarea"}),e.jsx("p",{className:"text-xs text-blue-600 mt-1",children:"💡 Tip: You can paste formatted content (lists, tables) and the formatting will be preserved."}),e.jsxs("div",{className:"flex items-center justify-between mt-2",children:[e.jsx("p",{className:"text-xs text-gray-500",children:"This will be the final summary for this request"}),e.jsxs("p",{className:"text-xs text-gray-500","data-testid":"character-count",children:[o?o.replace(/<[^>]*>/g,"").length:0," / 2000 characters"]})]})]}),e.jsxs("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-3",children:[e.jsx("p",{className:"text-xs sm:text-sm font-semibold text-blue-900 mb-1.5",children:"Finalizing this request will:"}),e.jsxs("ul",{className:"text-xs sm:text-sm text-blue-800 space-y-0.5 pl-4",children:[e.jsx("li",{className:"list-disc",children:'Change request status to "CLOSED"'}),e.jsx("li",{className:"list-disc",children:"Notify all participants of closure"}),e.jsx("li",{className:"list-disc",children:"Move request to Closed Requests"}),e.jsx("li",{className:"list-disc",children:"Save conclusion remark permanently"})]})]}),g&&e.jsx("div",{className:"flex gap-3 justify-end pt-3 border-t",children:e.jsx(M,{onClick:g,disabled:m||!o.trim(),className:"bg-green-600 hover:bg-green-700 text-white","data-testid":"finalize-close-button",children:m?e.jsxs(e.Fragment,{children:[e.jsx(Je,{className:"w-4 h-4 mr-2 animate-spin"}),"Finalizing..."]}):e.jsxs(e.Fragment,{children:[e.jsx(Ce,{className:"w-4 h-4 mr-2"}),"Finalize & Close Request"]})})})]})})]})]})}function C2({isOpen:t,onClose:s,onApprove:a,onReject:r,requestTitle:n="Request",requestDescription:i="",requestId:l,levelName:o="Approval Level",approverName:c="Approver"}){const[d,m]=x.useState(""),[u,h]=x.useState(!1),[g,p]=x.useState(null),y=async()=>{if(!d.trim()){q.error("Please provide approval comments");return}try{h(!0),p("approve"),await a(d),b(),s()}catch(w){console.error("Failed to approve request:",w),q.error("Failed to approve request. Please try again.")}finally{h(!1),p(null)}},f=async()=>{if(!d.trim()){q.error("Please provide rejection reason");return}try{h(!0),p("reject"),await r(d),b(),s()}catch(w){console.error("Failed to reject request:",w),q.error("Failed to reject request. Please try again.")}finally{h(!1),p(null)}},b=()=>{m(""),p(null)},v=()=>{u||(b(),s())};return t?e.jsx(ct,{open:t,onOpenChange:v,children:e.jsxs(lt,{className:"dealer-proposal-modal overflow-hidden flex flex-col max-w-3xl",children:[e.jsxs(dt,{className:"flex-shrink-0 pb-3 lg:pb-4 px-6 pt-4 lg:pt-6 border-b",children:[e.jsxs(ot,{className:"flex items-center gap-2 text-lg lg:text-xl",children:[e.jsx(Ce,{className:"w-4 h-4 lg:w-5 lg:h-5 text-blue-600"}),"Review Request"]}),e.jsxs(Lt,{className:"text-xs lg:text-sm",children:[o,": Review request details and make a decision"]}),e.jsx("div",{className:"space-y-1 mt-2 text-xs text-gray-600",children:e.jsxs("div",{className:"flex flex-wrap gap-x-4 gap-y-1",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Request ID:"})," ",l||"N/A"]}),e.jsxs("div",{children:[e.jsx("strong",{children:"Approver:"})," ",c]})]})})]}),e.jsx("div",{className:"flex-1 overflow-y-auto overflow-x-hidden py-3 lg:py-4 px-6",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:"flex items-center gap-2",children:e.jsxs("h3",{className:"font-semibold text-sm lg:text-base flex items-center gap-2",children:[e.jsx(_e,{className:"w-4 h-4 text-blue-600"}),"Request Title"]})}),e.jsx("div",{className:"border rounded-lg p-2.5 lg:p-3 bg-gray-50",children:e.jsx("p",{className:"text-sm lg:text-base font-medium text-gray-900",children:n})})]}),i&&e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:"flex items-center gap-2",children:e.jsxs("h3",{className:"font-semibold text-sm lg:text-base flex items-center gap-2",children:[e.jsx(Hs,{className:"w-4 h-4 text-blue-600"}),"Request Description"]})}),e.jsx("div",{className:"border rounded-lg p-2.5 lg:p-3 bg-gray-50 max-h-[200px] overflow-y-auto",children:e.jsx(Qs,{content:i,className:"text-xs lg:text-sm text-gray-700"})})]}),e.jsxs("div",{className:"space-y-2 border-t pt-3 lg:pt-3",children:[e.jsx("h3",{className:"font-semibold text-sm lg:text-base",children:"Your Decision & Comments"}),e.jsx(ps,{placeholder:"Provide your evaluation comments, approval conditions, or rejection reasons...",value:d,onChange:w=>m(w.target.value),className:"min-h-[80px] lg:min-h-[90px] text-xs lg:text-sm"}),e.jsxs("p",{className:"text-xs text-gray-500",children:[d.length," characters"]})]}),!d.trim()&&e.jsxs("div",{className:"bg-amber-50 border border-amber-200 rounded-lg p-2 flex items-start gap-2",children:[e.jsx(gt,{className:"w-3.5 h-3.5 text-amber-600 flex-shrink-0 mt-0.5"}),e.jsx("p",{className:"text-xs text-amber-800",children:"Please provide comments before making a decision. Comments are required and will be visible to all participants."})]})]})}),e.jsxs(Ct,{className:"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end px-6 pb-6 pt-3 lg:pt-4 flex-shrink-0 border-t bg-gray-50",children:[e.jsx(M,{variant:"outline",onClick:v,disabled:u,className:"border-2",children:"Cancel"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(M,{onClick:f,disabled:!d.trim()||u,variant:"destructive",className:"bg-red-600 hover:bg-red-700",children:u&&g==="reject"?"Rejecting...":e.jsxs(e.Fragment,{children:[e.jsx(gt,{className:"w-4 h-4 mr-2"}),"Reject"]})}),e.jsx(M,{onClick:y,disabled:!d.trim()||u,className:"bg-green-600 hover:bg-green-700 text-white",children:u&&g==="approve"?"Approving...":e.jsxs(e.Fragment,{children:[e.jsx(Ce,{className:"w-4 h-4 mr-2"}),"Approve"]})})]})]})]})}):null}function A2({isOpen:t,onClose:s,onDownload:a,onSendToDealer:r,creditNoteData:n,dealerInfo:i,activityName:l,requestNumber:o,requestId:c,dueDate:d}){const[m,u]=x.useState(!1),[h,g]=x.useState(!1),p=(n==null?void 0:n.creditNoteNumber)&&(n==null?void 0:n.creditNoteNumber)!=="",y=(n==null?void 0:n.creditNoteNumber)||"",f=n!=null&&n.creditNoteDate?ns(n.creditNoteDate,{includeTime:!1,format:"short"}):"",b=(n==null?void 0:n.creditNoteAmount)||0,v=(n==null?void 0:n.status)||"PENDING",w=(i==null?void 0:i.dealerName)||"Jaipur Royal Enfield",A=(i==null?void 0:i.dealerCode)||"RE-JP-009",S=l||"Activity",k=o||"RE-REQ-2024-CM-101",F=d?ns(d,{includeTime:!1,format:"short"}):"Jan 4, 2026",T=async()=>{if(a)try{u(!0),await a(),q.success("Credit note downloaded successfully")}catch(P){console.error("Failed to download credit note:",P),q.error("Failed to download credit note. Please try again.")}finally{u(!1)}else q.info("Credit note will be automatically saved to Documents tab")},D=async()=>{if(r)try{g(!0),await r(),q.success("Credit note sent to dealer successfully"),s()}catch(P){console.error("Failed to send credit note to dealer:",P),q.error("Failed to send credit note. Please try again.")}finally{g(!1)}else q.info("Email notification will be sent to dealer with credit note attachment")},C=P=>`₹${P.toLocaleString("en-IN",{minimumFractionDigits:0,maximumFractionDigits:0})}`;return e.jsx(ct,{open:t,onOpenChange:s,children:e.jsxs(lt,{className:"sm:max-w-lg lg:max-w-[1000px] max-w-4xl max-h-[90vh] overflow-y-auto",children:[e.jsxs(dt,{children:[e.jsxs(ot,{className:"font-semibold flex items-center gap-2 text-2xl",children:[e.jsx(xs,{className:"w-6 h-6 text-[--re-green]"}),"Credit Note from SAP"]}),e.jsx(Lt,{className:"text-base",children:"Review and send credit note to dealer"})]}),e.jsxs("div",{className:"space-y-5 py-4",children:[p?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"bg-gradient-to-r from-green-50 to-emerald-50 border-2 border-green-200 rounded-lg p-6",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold text-green-900 text-xl mb-1",children:"Royal Enfield"}),e.jsx("p",{className:"text-sm text-green-700",children:"Credit Note Document"})]}),e.jsxs(le,{className:"bg-green-600 text-white px-4 py-2 text-base",children:[e.jsx(Ce,{className:"w-4 h-4 mr-2"}),v==="APPROVED"?"Approved":v==="ISSUED"?"Issued":v==="SENT"?"Sent":"Pending"]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4 mt-4",children:[e.jsxs("div",{className:"bg-white rounded-lg p-3 border border-green-100",children:[e.jsxs(re,{className:"font-medium text-xs text-gray-600 uppercase tracking-wider flex items-center gap-1",children:[e.jsx(Bf,{className:"w-3 h-3"}),"Credit Note Number"]}),e.jsx("p",{className:"font-bold text-gray-900 mt-1 text-lg",children:y})]}),e.jsxs("div",{className:"bg-white rounded-lg p-3 border border-green-100",children:[e.jsxs(re,{className:"font-medium text-xs text-gray-600 uppercase tracking-wider flex items-center gap-1",children:[e.jsx(ut,{className:"w-3 h-3"}),"Issue Date"]}),e.jsx("p",{className:"font-semibold text-gray-900 mt-1",children:f})]})]})]}),e.jsxs("div",{className:"bg-blue-50 border-2 border-blue-200 rounded-lg p-5",children:[e.jsxs(re,{className:"font-medium text-xs text-gray-600 uppercase tracking-wider flex items-center gap-1 mb-3",children:[e.jsx(ka,{className:"w-4 h-4"}),"Credit Note Amount"]}),e.jsx("p",{className:"text-4xl font-bold text-blue-700",children:C(b)})]})]}):e.jsx("div",{className:"bg-gray-50 border-2 border-gray-300 rounded-lg p-8 text-center",children:e.jsxs("div",{className:"flex flex-col items-center justify-center space-y-4",children:[e.jsx("div",{className:"w-16 h-16 bg-gray-200 rounded-full flex items-center justify-center",children:e.jsx(xs,{className:"w-8 h-8 text-gray-400"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold text-gray-700 mb-2",children:"No Credit Note Available"}),e.jsx("p",{className:"text-sm text-gray-500",children:"Credit note has not been generated yet. Please wait for the credit note to be generated from DMS."})]})]})}),e.jsxs("div",{className:"bg-purple-50 border-2 border-purple-200 rounded-lg p-5",children:[e.jsxs("h3",{className:"font-semibold text-purple-900 mb-4 flex items-center gap-2",children:[e.jsx(Ti,{className:"w-5 h-5"}),"Dealer Information"]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"bg-white rounded-lg p-3 border border-purple-100",children:[e.jsx(re,{className:"flex items-center gap-2 font-medium text-xs text-gray-600 uppercase tracking-wider",children:"Dealer Name"}),e.jsx("p",{className:"font-semibold text-gray-900 mt-1",children:w})]}),e.jsxs("div",{className:"bg-white rounded-lg p-3 border border-purple-100",children:[e.jsx(re,{className:"flex items-center gap-2 font-medium text-xs text-gray-600 uppercase tracking-wider",children:"Dealer Code"}),e.jsx("p",{className:"font-semibold text-gray-900 mt-1",children:A})]}),e.jsxs("div",{className:"bg-white rounded-lg p-3 border border-purple-100",children:[e.jsx(re,{className:"flex items-center gap-2 font-medium text-xs text-gray-600 uppercase tracking-wider",children:"Activity"}),e.jsx("p",{className:"font-semibold text-gray-900 mt-1",children:S})]})]})]}),e.jsxs("div",{className:"bg-gray-50 border border-gray-200 rounded-lg p-4",children:[e.jsxs("h3",{className:"font-semibold text-gray-900 mb-3 flex items-center gap-2",children:[e.jsx(_e,{className:"w-4 h-4"}),"Reference Details"]}),e.jsxs("div",{className:"grid grid-cols-2 gap-3 text-sm",children:[e.jsxs("div",{children:[e.jsx(re,{className:"flex items-center gap-2 font-medium text-xs text-gray-600",children:"Request ID"}),e.jsx("p",{className:"font-medium text-gray-900 mt-1",children:k})]}),e.jsxs("div",{children:[e.jsx(re,{className:"flex items-center gap-2 font-medium text-xs text-gray-600",children:"Due Date"}),e.jsx("p",{className:"font-medium text-gray-900 mt-1",children:F})]})]})]}),e.jsxs("div",{className:"bg-blue-50 border border-blue-200 rounded-lg p-4 flex items-start gap-3",children:[e.jsx(_e,{className:"w-5 h-5 text-blue-600 flex-shrink-0 mt-0.5"}),e.jsxs("div",{className:"text-sm text-blue-800",children:[e.jsx("p",{className:"font-semibold mb-2",children:"Available Actions"}),e.jsxs("ul",{className:"list-disc list-inside space-y-1 text-xs",children:[e.jsxs("li",{children:[e.jsx("strong",{children:"Download:"})," Credit note will be automatically saved to Documents tab"]}),e.jsxs("li",{children:[e.jsx("strong",{children:"Send to Dealer:"})," Email notification will be sent to dealer with credit note attachment"]}),e.jsx("li",{children:"All actions will be recorded in activity trail for audit purposes"})]})]})]})]}),e.jsxs(Ct,{className:"flex-col-reverse gap-2 sm:flex-row flex items-center justify-between sm:justify-between",children:[e.jsx(M,{variant:"outline",onClick:s,disabled:m||h,className:"border-2",children:"Close"}),e.jsx("div",{className:"flex gap-2",children:p&&e.jsxs(e.Fragment,{children:[e.jsxs(M,{variant:"outline",onClick:T,disabled:m||h,className:"border-blue-600 text-blue-600 hover:bg-blue-50",children:[e.jsx(wt,{className:"w-4 h-4 mr-2"}),m?"Downloading...":"Download"]}),e.jsxs(M,{onClick:D,disabled:m||h,className:"bg-green-600 hover:bg-green-700 text-white shadow-md",children:[e.jsx(Iu,{className:"w-4 h-4 mr-2"}),h?"Sending...":"Send to Dealer"]})]})})]})]})})}function S2({isOpen:t,onClose:s,onSubmit:a,dealerName:r="Jaipur Royal Enfield",activityName:n="Activity",requestId:i}){var Pe,Oe;const[l,o]=x.useState(""),[c,d]=x.useState(""),[m,u]=x.useState([]),[h,g]=x.useState([]),[p,y]=x.useState([]),[f,b]=x.useState([]),[v,w]=x.useState(null),[A,S]=x.useState(""),[k,F]=x.useState(!1),[T,D]=x.useState(null),C=x.useRef(null),P=x.useRef(null),R=x.useRef(null),V=x.useRef(null),I=ie=>{const de=ie.type.toLowerCase(),je=ie.name.toLowerCase();return de.includes("image")||de.includes("pdf")||je.endsWith(".pdf")||je.endsWith(".jpg")||je.endsWith(".jpeg")||je.endsWith(".png")||je.endsWith(".gif")||je.endsWith(".webp")};x.useEffect(()=>()=>{T!=null&&T.url&&URL.revokeObjectURL(T.url)},[T]);const $=ie=>{if(!I(ie)){q.error("Preview is only available for images and PDF files");return}T!=null&&T.url&&URL.revokeObjectURL(T.url);const de=URL.createObjectURL(ie);D({file:ie,url:de})},_=ie=>{const de=URL.createObjectURL(ie),je=document.createElement("a");je.href=de,je.download=ie.name,document.body.appendChild(je),je.click(),document.body.removeChild(je),URL.revokeObjectURL(de)},N=x.useMemo(()=>m.reduce((ie,de)=>ie+(de.amount||0),0),[m]),j=x.useMemo(()=>{const ie=l!=="",de=h.length>0,je=p.length>0,Me=A.trim().length>0;return ie&&de&&je&&Me},[l,h,p,A]),U=new Date().toISOString().split("T")[0],z=()=>{u([...m,{id:Date.now().toString(),description:"",amount:0}])},B=(ie,de,je)=>{u(m.map(Me=>Me.id===ie?{...Me,[de]:je}:Me))},X=ie=>{u(m.filter(de=>de.id!==ie))},H=ie=>{const de=Array.from(ie.target.files||[]);if(de.length>0){const je=[".pdf",".doc",".docx",".zip",".rar"];if(de.filter(ye=>!je.some(ae=>ye.name.toLowerCase().endsWith(ae))).length>0){q.error("Please upload PDF, DOC, DOCX, ZIP, or RAR files only");return}g([...h,...de])}},oe=ie=>{g(h.filter((de,je)=>je!==ie))},Y=ie=>{const de=Array.from(ie.target.files||[]);if(de.length>0){if(de.filter(Me=>!Me.type.startsWith("image/")).length>0){q.error("Please upload image files only (JPG, PNG, etc.)");return}y([...p,...de])}},E=ie=>{y(p.filter((de,je)=>je!==ie))},O=ie=>{const de=Array.from(ie.target.files||[]);if(de.length>0){const je=[".pdf",".jpg",".jpeg",".png"];if(de.filter(ye=>!je.some(ae=>ye.name.toLowerCase().endsWith(ae))).length>0){q.error("Please upload PDF, JPG, or PNG files only");return}b([...f,...de])}},L=ie=>{b(f.filter((de,je)=>je!==ie))},W=ie=>{var je,Me;const de=(je=ie.target.files)==null?void 0:je[0];if(de){const ye=[".pdf",".xlsx",".xls",".csv"],ae="."+((Me=de.name.split(".").pop())==null?void 0:Me.toLowerCase());if(!ye.includes(ae)){q.error("Please upload PDF, Excel, or CSV files only");return}w(de)}},G=async()=>{if(!j){q.error("Please fill all required fields");return}const ie=m.filter(de=>de.description.trim()!==""&&de.amount>0);try{F(!0),await a({activityCompletionDate:l,numberOfParticipants:c?parseInt(c):void 0,closedExpenses:ie,totalClosedExpenses:N,completionDocuments:h,activityPhotos:p,invoicesReceipts:f.length>0?f:void 0,attendanceSheet:v||void 0,completionDescription:A}),ee(),s()}catch(de){console.error("Failed to submit completion documents:",de),q.error("Failed to submit completion documents. Please try again.")}finally{F(!1)}},ee=()=>{T!=null&&T.url&&URL.revokeObjectURL(T.url),D(null),o(""),d(""),u([]),g([]),y([]),b([]),w(null),S(""),C.current&&(C.current.value=""),P.current&&(P.current.value=""),R.current&&(R.current.value=""),V.current&&(V.current.value="")},ce=()=>{k||(ee(),s())};return e.jsxs(ct,{open:t,onOpenChange:ce,children:[e.jsxs(lt,{className:"dealer-completion-documents-modal overflow-hidden flex flex-col",children:[e.jsxs(dt,{className:"px-6 pt-6 pb-3 flex-shrink-0",children:[e.jsxs(ot,{className:"font-semibold flex items-center gap-2 text-xl sm:text-2xl",children:[e.jsx(Ps,{className:"w-5 h-5 sm:w-6 sm:h-6 text-[--re-green]"}),"Activity Completion Documents"]}),e.jsx(Lt,{className:"text-sm sm:text-base",children:"Step 5: Upload completion proof and final documents"}),e.jsxs("div",{className:"space-y-1 mt-2 text-xs sm:text-sm text-gray-600",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Dealer:"})," ",r]}),e.jsxs("div",{children:[e.jsx("strong",{children:"Activity:"})," ",n]}),e.jsx("div",{className:"mt-2",children:"Please upload completion documents, photos, and provide details about the completed activity."})]})]}),e.jsx("div",{className:"flex-1 overflow-y-auto overflow-x-hidden px-6 py-3",children:e.jsxs("div",{className:"space-y-5 sm:space-y-6 max-w-4xl mx-auto",children:[e.jsxs("div",{className:"space-y-1.5 sm:space-y-2",children:[e.jsxs(re,{className:"text-sm sm:text-base font-semibold flex items-center gap-2",htmlFor:"completionDate",children:[e.jsx(ut,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"}),"Activity Completion Date *"]}),e.jsx(Se,{type:"date",id:"completionDate",max:U,value:l,onChange:ie=>o(ie.target.value),onClick:ie=>{ie.currentTarget.showPicker&&ie.currentTarget.showPicker()},className:"w-full max-w-[280px] text-left pr-10 cursor-pointer"})]}),e.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"font-semibold text-base sm:text-lg",children:"Closed Expenses"}),e.jsx(le,{className:"bg-secondary text-secondary-foreground text-xs",children:"Optional"})]}),e.jsxs(M,{type:"button",onClick:z,className:"bg-[#2d4a3e] hover:bg-[#1f3329] text-white",size:"sm",children:[e.jsx(Us,{className:"w-4 h-4 mr-1"}),"Add Expense"]})]}),e.jsxs("div",{className:"space-y-2 sm:space-y-3",children:[m.map(ie=>e.jsxs("div",{className:"flex gap-2 items-start",children:[e.jsx("div",{className:"flex-1",children:e.jsx(Se,{placeholder:"Item name (e.g., Venue rental, Refreshments, Printing)",value:ie.description,onChange:de=>B(ie.id,"description",de.target.value),className:"text-sm"})}),e.jsx("div",{className:"w-32 sm:w-40",children:e.jsx(Se,{type:"number",placeholder:"Amount",min:"0",step:"0.01",value:ie.amount||"",onChange:de=>B(ie.id,"amount",parseFloat(de.target.value)||0),className:"text-sm"})}),e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:"mt-0.5 hover:bg-red-100 hover:text-red-700 h-9 w-9 p-0",onClick:()=>X(ie.id),children:e.jsx(ht,{className:"w-4 h-4"})})]},ie.id)),m.length===0&&e.jsx("p",{className:"text-xs sm:text-sm text-gray-500 italic",children:'No expenses added. Click "Add Expense" to add expense items.'}),m.length>0&&N>0&&e.jsx("div",{className:"pt-2 border-t",children:e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("span",{className:"font-semibold text-sm sm:text-base",children:"Total Closed Expenses:"}),e.jsxs("span",{className:"font-semibold text-base sm:text-lg",children:["₹",N.toLocaleString("en-IN",{minimumFractionDigits:2,maximumFractionDigits:2})]})]})})]})]}),e.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"font-semibold text-base sm:text-lg",children:"Completion Evidence"}),e.jsx(le,{variant:"outline",className:"text-xs border-red-500 text-red-700 bg-red-50 font-medium",children:"Required"})]}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4 sm:gap-6",children:[e.jsxs("div",{children:[e.jsxs(re,{className:"text-sm sm:text-base font-semibold flex items-center gap-2",children:[e.jsx(_e,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"}),"Completion Documents *"]}),e.jsx("p",{className:"text-xs sm:text-sm text-gray-600 mb-2",children:"Upload documents proving activity completion (reports, certificates, etc.) - Can upload multiple files or ZIP folder"}),e.jsxs("div",{className:`border-2 border-dashed rounded-lg p-3 sm:p-4 transition-all duration-200 ${h.length>0?"border-green-500 bg-green-50 hover:border-green-600":"border-gray-300 hover:border-blue-500 bg-white"}`,children:[e.jsx("input",{ref:C,type:"file",multiple:!0,accept:".pdf,.doc,.docx,.zip,.rar",className:"hidden",id:"completionDocs",onChange:H}),e.jsx("label",{htmlFor:"completionDocs",className:"cursor-pointer flex flex-col items-center gap-2",children:h.length>0?e.jsxs(e.Fragment,{children:[e.jsx(Os,{className:"w-8 h-8 text-green-600"}),e.jsxs("div",{className:"flex flex-col items-center gap-1",children:[e.jsxs("span",{className:"text-sm font-semibold text-green-700",children:[h.length," document",h.length!==1?"s":""," selected"]}),e.jsx("span",{className:"text-xs text-green-600",children:"Click to add more documents"})]})]}):e.jsxs(e.Fragment,{children:[e.jsx(Ps,{className:"w-8 h-8 text-gray-400"}),e.jsx("span",{className:"text-sm text-gray-600",children:"Click to upload documents (PDF, DOC, ZIP - multiple files allowed)"})]})})]}),h.length>0&&e.jsxs("div",{className:"mt-3 space-y-2",children:[e.jsxs("p",{className:"text-xs font-medium text-gray-600 mb-1",children:["Selected Documents (",h.length,"):"]}),h.map((ie,de)=>e.jsxs("div",{className:"flex items-start justify-between bg-gradient-to-r from-green-50 to-emerald-50 border border-green-200 p-2 sm:p-3 rounded-lg text-xs sm:text-sm shadow-sm hover:shadow-md transition-shadow w-full",children:[e.jsxs("div",{className:"flex items-start gap-2 flex-1 min-w-0 pr-2",children:[e.jsx(_e,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 text-green-600 flex-shrink-0 mt-0.5"}),e.jsx("span",{className:"text-gray-800 font-medium break-words break-all",children:ie.name})]}),e.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0 ml-2",children:[I(ie)&&e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:"h-7 w-7 p-0 hover:bg-green-100 hover:text-green-700",onClick:()=>$(ie),title:"Preview file",children:e.jsx(jt,{className:"w-3.5 h-3.5"})}),e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:"h-7 w-7 p-0 hover:bg-blue-100 hover:text-blue-700",onClick:()=>_(ie),title:"Download file",children:e.jsx(wt,{className:"w-3.5 h-3.5"})}),e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:"h-7 w-7 p-0 hover:bg-red-100 hover:text-red-700",onClick:()=>oe(de),title:"Remove document",children:e.jsx(ht,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"})})]})]},de))]})]}),e.jsxs("div",{children:[e.jsxs(re,{className:"text-sm sm:text-base font-semibold flex items-center gap-2",children:[e.jsx(Yn,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"}),"Activity Photos *"]}),e.jsx("p",{className:"text-xs sm:text-sm text-gray-600 mb-2",children:"Upload photos from the completed activity (event photos, installations, etc.)"}),e.jsxs("div",{className:`border-2 border-dashed rounded-lg p-3 sm:p-4 transition-all duration-200 ${p.length>0?"border-green-500 bg-green-50 hover:border-green-600":"border-gray-300 hover:border-blue-500 bg-white"}`,children:[e.jsx("input",{ref:P,type:"file",multiple:!0,accept:"image/*",className:"hidden",id:"completionPhotos",onChange:Y}),e.jsx("label",{htmlFor:"completionPhotos",className:"cursor-pointer flex flex-col items-center gap-2",children:p.length>0?e.jsxs(e.Fragment,{children:[e.jsx(Os,{className:"w-8 h-8 text-green-600"}),e.jsxs("div",{className:"flex flex-col items-center gap-1",children:[e.jsxs("span",{className:"text-sm font-semibold text-green-700",children:[p.length," photo",p.length!==1?"s":""," selected"]}),e.jsx("span",{className:"text-xs text-green-600",children:"Click to add more photos"})]})]}):e.jsxs(e.Fragment,{children:[e.jsx(Yn,{className:"w-8 h-8 text-gray-400"}),e.jsx("span",{className:"text-sm text-gray-600",children:"Click to upload photos (JPG, PNG - multiple files allowed)"})]})})]}),p.length>0&&e.jsxs("div",{className:"mt-3 space-y-2",children:[e.jsxs("p",{className:"text-xs font-medium text-gray-600 mb-1",children:["Selected Photos (",p.length,"):"]}),p.map((ie,de)=>e.jsxs("div",{className:"flex items-start justify-between bg-gradient-to-r from-green-50 to-emerald-50 border border-green-200 p-2 sm:p-3 rounded-lg text-xs sm:text-sm shadow-sm hover:shadow-md transition-shadow w-full",children:[e.jsxs("div",{className:"flex items-start gap-2 flex-1 min-w-0 pr-2",children:[e.jsx(Yn,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 text-green-600 flex-shrink-0 mt-0.5"}),e.jsx("span",{className:"text-gray-800 font-medium break-words break-all",children:ie.name})]}),e.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0 ml-2",children:[I(ie)&&e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:"h-7 w-7 p-0 hover:bg-green-100 hover:text-green-700",onClick:()=>$(ie),title:"Preview photo",children:e.jsx(jt,{className:"w-3.5 h-3.5"})}),e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:"h-7 w-7 p-0 hover:bg-blue-100 hover:text-blue-700",onClick:()=>_(ie),title:"Download photo",children:e.jsx(wt,{className:"w-3.5 h-3.5"})}),e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:"h-7 w-7 p-0 hover:bg-red-100 hover:text-red-700",onClick:()=>E(de),title:"Remove photo",children:e.jsx(ht,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"})})]})]},de))]})]})]})]}),e.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"font-semibold text-base sm:text-lg",children:"Supporting Documents"}),e.jsx(le,{className:"bg-secondary text-secondary-foreground text-xs",children:"Optional"})]}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4 sm:gap-6",children:[e.jsxs("div",{children:[e.jsxs(re,{className:"text-sm sm:text-base font-semibold flex items-center gap-2",children:[e.jsx(xs,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"}),"Invoices / Receipts"]}),e.jsx("p",{className:"text-xs sm:text-sm text-gray-600 mb-2",children:"Upload invoices and receipts for expenses incurred"}),e.jsxs("div",{className:`border-2 border-dashed rounded-lg p-3 sm:p-4 transition-all duration-200 ${f.length>0?"border-blue-500 bg-blue-50 hover:border-blue-600":"border-gray-300 hover:border-blue-500 bg-white"}`,children:[e.jsx("input",{ref:R,type:"file",multiple:!0,accept:".pdf,.jpg,.jpeg,.png",className:"hidden",id:"invoiceReceipts",onChange:O}),e.jsx("label",{htmlFor:"invoiceReceipts",className:"cursor-pointer flex flex-col items-center gap-2",children:f.length>0?e.jsxs(e.Fragment,{children:[e.jsx(Os,{className:"w-8 h-8 text-blue-600"}),e.jsxs("div",{className:"flex flex-col items-center gap-1",children:[e.jsxs("span",{className:"text-sm font-semibold text-blue-700",children:[f.length," document",f.length!==1?"s":""," selected"]}),e.jsx("span",{className:"text-xs text-blue-600",children:"Click to add more documents"})]})]}):e.jsxs(e.Fragment,{children:[e.jsx(xs,{className:"w-8 h-8 text-gray-400"}),e.jsx("span",{className:"text-sm text-gray-600",children:"Click to upload invoices/receipts (PDF, JPG, PNG)"})]})})]}),f.length>0&&e.jsxs("div",{className:"mt-3 space-y-2",children:[e.jsxs("p",{className:"text-xs font-medium text-gray-600 mb-1",children:["Selected Documents (",f.length,"):"]}),f.map((ie,de)=>e.jsxs("div",{className:"flex items-start justify-between bg-gradient-to-r from-blue-50 to-indigo-50 border border-blue-200 p-2 sm:p-3 rounded-lg text-xs sm:text-sm shadow-sm hover:shadow-md transition-shadow w-full",children:[e.jsxs("div",{className:"flex items-start gap-2 flex-1 min-w-0 pr-2",children:[e.jsx(xs,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 text-blue-600 flex-shrink-0 mt-0.5"}),e.jsx("span",{className:"text-gray-800 font-medium break-words break-all",children:ie.name})]}),e.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0 ml-2",children:[I(ie)&&e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:"h-7 w-7 p-0 hover:bg-blue-100 hover:text-blue-700",onClick:()=>$(ie),title:"Preview file",children:e.jsx(jt,{className:"w-3.5 h-3.5"})}),e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:"h-7 w-7 p-0 hover:bg-green-100 hover:text-green-700",onClick:()=>_(ie),title:"Download file",children:e.jsx(wt,{className:"w-3.5 h-3.5"})}),e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:"h-7 w-7 p-0 hover:bg-red-100 hover:text-red-700",onClick:()=>L(de),title:"Remove document",children:e.jsx(ht,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"})})]})]},de))]})]}),e.jsxs("div",{children:[e.jsx(re,{className:"text-sm sm:text-base font-semibold",children:"Attendance Sheet / Participant List"}),e.jsx("p",{className:"text-xs sm:text-sm text-gray-600 mb-2",children:"Upload attendance records or participant lists (if applicable)"}),e.jsxs("div",{className:`border-2 border-dashed rounded-lg p-3 sm:p-4 transition-all duration-200 ${v?"border-blue-500 bg-blue-50 hover:border-blue-600":"border-gray-300 hover:border-blue-500 bg-white"}`,children:[e.jsx("input",{ref:V,type:"file",accept:".pdf,.xlsx,.xls,.csv",className:"hidden",id:"attendanceDoc",onChange:W}),e.jsx("label",{htmlFor:"attendanceDoc",className:"cursor-pointer flex flex-col items-center gap-2",children:v?e.jsxs(e.Fragment,{children:[e.jsx(Os,{className:"w-8 h-8 text-blue-600"}),e.jsxs("div",{className:"flex flex-col items-center gap-1 w-full max-w-full px-2",children:[e.jsx("span",{className:"text-sm font-semibold text-blue-700 break-words text-center w-full max-w-full",children:v.name}),e.jsx("span",{className:"text-xs text-blue-600",children:"Document selected"})]})]}):e.jsxs(e.Fragment,{children:[e.jsx(Ps,{className:"w-8 h-8 text-gray-400"}),e.jsx("span",{className:"text-sm text-gray-600",children:"Click to upload attendance sheet (Excel, PDF, CSV)"})]})})]}),v&&e.jsxs("div",{className:"mt-3",children:[e.jsx("p",{className:"text-xs font-medium text-gray-600 mb-2",children:"Selected Document:"}),e.jsxs("div",{className:"flex items-start justify-between bg-gradient-to-r from-blue-50 to-indigo-50 border border-blue-200 p-2 sm:p-3 rounded-lg text-xs sm:text-sm shadow-sm hover:shadow-md transition-shadow w-full",children:[e.jsxs("div",{className:"flex items-start gap-2 flex-1 min-w-0 pr-2",children:[e.jsx(_e,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 text-blue-600 flex-shrink-0 mt-0.5"}),e.jsx("span",{className:"text-gray-800 font-medium break-words break-all",children:v.name})]}),e.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0 ml-2",children:[I(v)&&e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:"h-7 w-7 p-0 hover:bg-blue-100 hover:text-blue-700",onClick:()=>$(v),title:"Preview file",children:e.jsx(jt,{className:"w-3.5 h-3.5"})}),e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:"h-7 w-7 p-0 hover:bg-green-100 hover:text-green-700",onClick:()=>_(v),title:"Download file",children:e.jsx(wt,{className:"w-3.5 h-3.5"})}),e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:"h-7 w-7 p-0 hover:bg-red-100 hover:text-red-700",onClick:()=>{w(null),V.current&&(V.current.value="")},title:"Remove document",children:e.jsx(ht,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"})})]})]})]})]})]})]}),e.jsxs("div",{className:"space-y-1.5 sm:space-y-2 max-w-3xl",children:[e.jsx(re,{className:"text-sm sm:text-base font-semibold flex items-center gap-2",htmlFor:"completionDescription",children:"Brief Description of Completion *"}),e.jsx(ps,{id:"completionDescription",placeholder:"Provide a brief description of the completed activity, including key highlights, outcomes, challenges faced, and any relevant observations...",value:A,onChange:ie=>S(ie.target.value),className:"min-h-[100px] sm:min-h-[120px] text-sm"}),e.jsxs("p",{className:"text-xs text-gray-500",children:[A.length," characters"]})]}),!j&&e.jsxs("div",{className:"bg-amber-50 border border-amber-200 rounded-lg p-3 sm:p-4 flex items-start gap-2 sm:gap-3",children:[e.jsx(Ge,{className:"w-4 h-4 sm:w-5 sm:h-5 text-amber-600 flex-shrink-0 mt-0.5"}),e.jsxs("div",{className:"text-xs sm:text-sm text-amber-800",children:[e.jsx("p",{className:"font-semibold mb-1",children:"Missing Required Information"}),e.jsx("p",{children:"Please ensure completion date, at least one document/photo, and description are provided before submitting."})]})]})]})}),e.jsxs(Ct,{className:"flex flex-col-reverse sm:flex-row sm:justify-end gap-2 px-6 pt-3 pb-6 border-t flex-shrink-0",children:[e.jsx(M,{variant:"outline",onClick:ce,disabled:k,className:"border-2",children:"Cancel"}),e.jsx(M,{onClick:G,disabled:k||!j,className:"bg-[#2d4a3e] hover:bg-[#1f3329] text-white disabled:bg-gray-300 disabled:text-gray-500",children:k?"Submitting...":"Submit Documents"})]})]}),T&&e.jsx(ct,{open:!!T,onOpenChange:()=>{T!=null&&T.url&&URL.revokeObjectURL(T.url),D(null)},children:e.jsx(lt,{className:"file-preview-dialog p-3 sm:p-6",children:e.jsxs("div",{className:"file-preview-content",children:[e.jsx(dt,{className:"pb-4 flex-shrink-0 pr-8",children:e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-1 min-w-0",children:[e.jsx(jt,{className:"w-5 h-5 text-blue-600 flex-shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx(ot,{className:"text-base sm:text-lg font-bold text-gray-900 truncate pr-2",children:T.file.name}),e.jsxs("p",{className:"text-xs sm:text-sm text-gray-500",children:[T.file.type||"Unknown type"," • ",(T.file.size/1024).toFixed(1)," KB"]})]})]}),e.jsx("div",{className:"flex items-center gap-2 flex-wrap mr-2",children:e.jsxs(M,{variant:"outline",size:"sm",onClick:()=>_(T.file),className:"gap-2 h-9",children:[e.jsx(wt,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Download"})]})})]})}),e.jsx("div",{className:"file-preview-body bg-gray-100 rounded-lg p-2 sm:p-4",children:(Pe=T.file.type)!=null&&Pe.includes("image")?e.jsx("div",{className:"flex items-center justify-center h-full",children:e.jsx("img",{src:T.url,alt:T.file.name,style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain"},className:"rounded-lg shadow-lg"})}):(Oe=T.file.type)!=null&&Oe.includes("pdf")||T.file.name.toLowerCase().endsWith(".pdf")?e.jsx("div",{className:"w-full h-full flex items-center justify-center",children:e.jsx("iframe",{src:T.url,className:"w-full h-full rounded-lg border-0",title:T.file.name,style:{minHeight:"70vh",height:"100%"}})}):e.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-center",children:[e.jsx("div",{className:"w-20 h-20 bg-gray-200 rounded-full flex items-center justify-center mb-4",children:e.jsx(jt,{className:"w-10 h-10 text-gray-400"})}),e.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Preview Not Available"}),e.jsx("p",{className:"text-sm text-gray-600 mb-6",children:"This file type cannot be previewed. Please download to view."}),e.jsxs(M,{onClick:()=>_(T.file),className:"gap-2",children:[e.jsx(wt,{className:"h-4 w-4"}),"Download ",T.file.name]})]})})]})})})]})}function T2({isOpen:t,onClose:s,onSubmit:a,dealerName:r="Jaipur Royal Enfield",activityName:n="Activity",requestId:i}){var Y,E;const[l,o]=x.useState(null),[c,d]=x.useState([{id:"1",description:"",amount:0}]),[m,u]=x.useState("date"),[h,g]=x.useState(""),[p,y]=x.useState(""),[f,b]=x.useState([]),[v,w]=x.useState(""),[A,S]=x.useState(!1),[k,F]=x.useState(null),T=x.useRef(null),D=x.useRef(null),C=O=>{const L=O.type.toLowerCase(),W=O.name.toLowerCase();return L.includes("image")||L.includes("pdf")||W.endsWith(".pdf")||W.endsWith(".jpg")||W.endsWith(".jpeg")||W.endsWith(".png")||W.endsWith(".gif")||W.endsWith(".webp")};x.useEffect(()=>()=>{k!=null&&k.url&&URL.revokeObjectURL(k.url)},[k]);const P=O=>{if(!C(O)){q.error("Preview is only available for images and PDF files");return}k!=null&&k.url&&URL.revokeObjectURL(k.url);const L=URL.createObjectURL(O);F({file:O,url:L})},R=O=>{const L=URL.createObjectURL(O),W=document.createElement("a");W.href=L,W.download=O.name,document.body.appendChild(W),W.click(),document.body.removeChild(W),URL.revokeObjectURL(L)},V=x.useMemo(()=>c.reduce((O,L)=>O+(L.amount||0),0),[c]),I=x.useMemo(()=>{const O=l!==null,L=c.length>0&&c.every(ee=>ee.description.trim()!==""&&ee.amount>0),W=m==="date"?h!=="":p!==""&&parseInt(p)>0,G=v.trim().length>0;return O&&L&&W&&G},[l,c,m,h,p,v]),$=O=>{var W,G;const L=(W=O.target.files)==null?void 0:W[0];if(L){const ee=[".pdf",".doc",".docx"],ce="."+((G=L.name.split(".").pop())==null?void 0:G.toLowerCase());if(!ee.includes(ce)){q.error("Please upload a PDF, DOC, or DOCX file");return}o(L)}},_=O=>{const L=Array.from(O.target.files||[]);b(W=>[...W,...L])},N=()=>{d(O=>[...O,{id:Date.now().toString(),description:"",amount:0}])},j=O=>{c.length>1&&d(L=>L.filter(W=>W.id!==O))},U=(O,L,W)=>{d(G=>G.map(ee=>ee.id===O?{...ee,[L]:L==="amount"?parseFloat(W.toString())||0:W}:ee))},z=O=>{b(L=>L.filter((W,G)=>G!==O))},B=async()=>{if(!I){q.error("Please fill all required fields");return}let O=h||"";if(m==="days"&&p){const L=parseInt(p),W=new Date;W.setDate(W.getDate()+L),O=W.toISOString().split("T")[0]}try{S(!0),await a({proposalDocument:l,costBreakup:c.filter(L=>L.description.trim()!==""&&L.amount>0),expectedCompletionDate:O,otherDocuments:f,dealerComments:v}),X(),s()}catch(L){console.error("Failed to submit proposal:",L),q.error("Failed to submit proposal. Please try again.")}finally{S(!1)}},X=()=>{k!=null&&k.url&&URL.revokeObjectURL(k.url),F(null),o(null),d([{id:"1",description:"",amount:0}]),u("date"),g(""),y(""),b([]),w(""),T.current&&(T.current.value=""),D.current&&(D.current.value="")},H=()=>{A||(X(),s())},oe=new Date().toISOString().split("T")[0];return e.jsxs(ct,{open:t,onOpenChange:H,children:[e.jsxs(lt,{className:"dealer-proposal-modal overflow-hidden flex flex-col",children:[e.jsxs(dt,{className:"flex-shrink-0 pb-3 lg:pb-4",children:[e.jsxs(ot,{className:"flex items-center gap-2 text-xl lg:text-2xl",children:[e.jsx(Ps,{className:"w-5 h-5 lg:w-6 lg:h-6 text-[--re-green]"}),"Dealer Proposal Submission"]}),e.jsx(Lt,{className:"text-sm lg:text-base",children:"Step 1: Upload proposal and planning details"}),e.jsxs("div",{className:"space-y-1 mt-2 text-xs lg:text-sm text-gray-600",children:[e.jsxs("div",{className:"flex flex-wrap gap-x-4 gap-y-1",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Dealer:"})," ",r]}),e.jsxs("div",{children:[e.jsx("strong",{children:"Activity:"})," ",n]})]}),e.jsx("div",{className:"mt-1",children:"Please upload proposal document, provide cost breakdown, timeline, and detailed comments."})]})]}),e.jsx("div",{className:"flex-1 overflow-y-auto overflow-x-hidden py-3 lg:py-4",children:e.jsxs("div",{className:"space-y-4 lg:space-y-0 lg:grid lg:grid-cols-2 lg:gap-6 lg:items-start lg:content-start",children:[e.jsxs("div",{className:"space-y-4 lg:space-y-4 flex flex-col",children:[e.jsxs("div",{className:"space-y-2 lg:space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"font-semibold text-base lg:text-lg",children:"Proposal Document"}),e.jsx(le,{variant:"outline",className:"text-xs border-red-500 text-red-700 bg-red-50 font-medium",children:"Required"})]}),e.jsxs("div",{children:[e.jsx(re,{className:"text-sm lg:text-base font-semibold flex items-center gap-2",children:"Proposal Document *"}),e.jsx("p",{className:"text-xs lg:text-sm text-gray-600 mb-2",children:"Detailed proposal with activity details and requested information"}),e.jsxs("div",{className:`border-2 border-dashed rounded-lg p-3 lg:p-4 transition-all duration-200 ${l?"border-green-500 bg-green-50 hover:border-green-600":"border-gray-300 hover:border-blue-500 bg-white"}`,children:[e.jsx("input",{ref:T,type:"file",accept:".pdf,.doc,.docx",className:"hidden",id:"proposalDoc",onChange:$}),e.jsx("label",{htmlFor:"proposalDoc",className:"cursor-pointer flex flex-col items-center gap-2",children:l?e.jsxs("div",{className:"flex flex-col items-center gap-2 w-full",children:[e.jsx(Os,{className:"w-8 h-8 text-green-600"}),e.jsxs("div",{className:"flex flex-col items-center gap-1 w-full max-w-full px-2",children:[e.jsx("span",{className:"text-sm font-semibold text-green-700 break-words text-center w-full max-w-full",children:l.name}),e.jsx("span",{className:"text-xs text-green-600 mb-2",children:"Document selected"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[C(l)&&e.jsxs(M,{type:"button",variant:"outline",size:"sm",onClick:()=>P(l),className:"h-8 text-xs",children:[e.jsx(jt,{className:"w-3.5 h-3.5 mr-1"}),"Preview"]}),e.jsxs(M,{type:"button",variant:"outline",size:"sm",onClick:()=>R(l),className:"h-8 text-xs",children:[e.jsx(wt,{className:"w-3.5 h-3.5 mr-1"}),"Download"]})]})]}):e.jsxs(e.Fragment,{children:[e.jsx(Ps,{className:"w-8 h-8 text-gray-400"}),e.jsx("span",{className:"text-sm text-gray-600",children:"Click to upload proposal (PDF, DOC, DOCX)"})]})})]})]})]}),e.jsxs("div",{className:"space-y-2 lg:space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"font-semibold text-base lg:text-lg",children:"Other Supporting Documents"}),e.jsx(le,{variant:"outline",className:"text-xs border-gray-300 text-gray-600 bg-gray-50 font-medium",children:"Optional"})]}),e.jsxs("div",{children:[e.jsx(re,{className:"flex items-center gap-2 text-sm lg:text-base font-semibold",children:"Additional Documents"}),e.jsx("p",{className:"text-xs lg:text-sm text-gray-600 mb-2",children:"Any other supporting documents (invoices, receipts, photos, etc.)"}),e.jsxs("div",{className:`border-2 border-dashed rounded-lg p-3 lg:p-4 transition-all duration-200 ${f.length>0?"border-blue-500 bg-blue-50 hover:border-blue-600":"border-gray-300 hover:border-blue-500 bg-white"}`,children:[e.jsx("input",{ref:D,type:"file",multiple:!0,className:"hidden",id:"otherDocs",onChange:_}),e.jsx("label",{htmlFor:"otherDocs",className:"cursor-pointer flex flex-col items-center gap-2",children:f.length>0?e.jsxs(e.Fragment,{children:[e.jsx(Os,{className:"w-8 h-8 text-blue-600"}),e.jsxs("div",{className:"flex flex-col items-center gap-1",children:[e.jsxs("span",{className:"text-sm font-semibold text-blue-700",children:[f.length," document",f.length!==1?"s":""," selected"]}),e.jsx("span",{className:"text-xs text-blue-600",children:"Click to add more documents"})]})]}):e.jsxs(e.Fragment,{children:[e.jsx(Ps,{className:"w-8 h-8 text-gray-400"}),e.jsx("span",{className:"text-sm text-gray-600",children:"Click to upload additional documents (multiple files allowed)"})]})})]}),f.length>0&&e.jsxs("div",{className:"mt-2 lg:mt-3 space-y-2 max-h-[150px] lg:max-h-[140px] overflow-y-auto",children:[e.jsxs("p",{className:"text-xs font-medium text-gray-600 mb-1",children:["Selected Documents (",f.length,"):"]}),f.map((O,L)=>e.jsxs("div",{className:"flex items-start justify-between bg-gradient-to-r from-blue-50 to-indigo-50 border border-blue-200 p-2 lg:p-3 rounded-lg text-xs lg:text-sm shadow-sm hover:shadow-md transition-shadow w-full",children:[e.jsxs("div",{className:"flex items-start gap-2 flex-1 min-w-0 pr-2",children:[e.jsx(_e,{className:"w-4 h-4 text-blue-600 flex-shrink-0 mt-0.5"}),e.jsx("span",{className:"text-gray-800 font-medium break-words break-all",children:O.name})]}),e.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0 ml-2",children:[C(O)&&e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:"h-7 w-7 p-0 hover:bg-blue-100 hover:text-blue-700",onClick:()=>P(O),title:"Preview file",children:e.jsx(jt,{className:"w-3.5 h-3.5"})}),e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:"h-7 w-7 p-0 hover:bg-green-100 hover:text-green-700",onClick:()=>R(O),title:"Download file",children:e.jsx(wt,{className:"w-3.5 h-3.5"})}),e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:"h-7 w-7 p-0 hover:bg-red-100 hover:text-red-700",onClick:()=>z(L),title:"Remove document",children:e.jsx(ht,{className:"w-4 h-4"})})]})]},L))]})]})]})]}),e.jsxs("div",{className:"space-y-4 lg:space-y-4 flex flex-col",children:[e.jsxs("div",{className:"space-y-2 lg:space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"font-semibold text-base lg:text-lg",children:"Cost Breakup"}),e.jsx(le,{variant:"outline",className:"text-xs border-red-500 text-red-700 bg-red-50 font-medium",children:"Required"})]}),e.jsxs(M,{type:"button",onClick:N,className:"bg-[#2d4a3e] hover:bg-[#1f3329] text-white",size:"sm",children:[e.jsx(Us,{className:"w-3 h-3 lg:w-4 lg:h-4 mr-1"}),e.jsx("span",{className:"hidden sm:inline",children:"Add Item"}),e.jsx("span",{className:"sm:hidden",children:"Add"})]})]}),e.jsx("div",{className:"space-y-2 lg:space-y-2 max-h-[200px] lg:max-h-[180px] overflow-y-auto",children:c.map(O=>e.jsxs("div",{className:"flex gap-2 items-start w-full",children:[e.jsx("div",{className:"flex-1 min-w-0",children:e.jsx(Se,{placeholder:"Item description (e.g., Banner printing, Event setup)",value:O.description,onChange:L=>U(O.id,"description",L.target.value),className:"w-full"})}),e.jsx("div",{className:"w-32 lg:w-36 flex-shrink-0",children:e.jsx(Se,{type:"number",placeholder:"Amount",min:"0",step:"0.01",value:O.amount||"",onChange:L=>U(O.id,"amount",L.target.value),className:"w-full"})}),e.jsx(M,{type:"button",variant:"ghost",size:"sm",className:"mt-0.5 hover:bg-red-100 hover:text-red-700 flex-shrink-0",onClick:()=>j(O.id),disabled:c.length===1,children:e.jsx(ht,{className:"w-4 h-4"})})]},O.id))}),e.jsx("div",{className:"border-2 border-gray-300 rounded-lg p-3 lg:p-4 bg-white",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Fl,{className:"w-4 h-4 lg:w-5 lg:h-5 text-gray-700"}),e.jsx("span",{className:"font-semibold text-sm lg:text-base text-gray-900",children:"Estimated Budget"})]}),e.jsxs("div",{className:"text-xl lg:text-2xl font-bold text-gray-900",children:["₹",V.toLocaleString("en-IN",{minimumFractionDigits:2,maximumFractionDigits:2})]})]})})]}),e.jsxs("div",{className:"space-y-2 lg:space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"font-semibold text-base lg:text-lg",children:"Timeline for Closure"}),e.jsx(le,{variant:"outline",className:"text-xs border-red-500 text-red-700 bg-red-50 font-medium",children:"Required"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(M,{type:"button",onClick:()=>u("date"),className:m==="date"?"bg-[#2d4a3e] hover:bg-[#1f3329] text-white":"border-2 hover:bg-gray-50",size:"sm",children:[e.jsx(ut,{className:"w-4 h-4 mr-1"}),"Specific Date"]}),e.jsx(M,{type:"button",onClick:()=>u("days"),className:m==="days"?"bg-[#2d4a3e] hover:bg-[#1f3329] text-white":"border-2 hover:bg-gray-50",size:"sm",children:"Number of Days"})]}),m==="date"?e.jsxs("div",{className:"w-full",children:[e.jsx(re,{className:"text-xs lg:text-sm font-medium mb-1.5 lg:mb-2 block",children:"Expected Completion Date"}),e.jsx(Se,{type:"date",min:oe,value:h,onChange:O=>g(O.target.value),onClick:O=>{O.currentTarget.showPicker&&O.currentTarget.showPicker()},className:"h-9 lg:h-10 w-full text-left pr-10 cursor-pointer"})]}):e.jsxs("div",{className:"w-full",children:[e.jsx(re,{className:"text-xs lg:text-sm font-medium mb-1.5 lg:mb-2 block",children:"Number of Days"}),e.jsx(Se,{type:"number",placeholder:"Enter number of days",min:"1",value:p,onChange:O=>y(O.target.value),className:"h-9 lg:h-10 w-full"})]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"dealerComments",className:"text-sm lg:text-base font-semibold flex items-center gap-2",children:"Dealer Comments / Details *"}),e.jsx(ps,{id:"dealerComments",placeholder:"Provide detailed comments about this claim request, including any special considerations, execution details, or additional information...",value:v,onChange:O=>w(O.target.value),className:"min-h-[80px] lg:min-h-[100px] text-sm w-full"}),e.jsxs("p",{className:"text-xs text-gray-500",children:[v.length," characters"]})]})]}),!I&&e.jsxs("div",{className:"bg-amber-50 border border-amber-200 rounded-lg p-3 lg:p-4 flex items-start gap-2 lg:gap-3 lg:col-span-2",children:[e.jsx(Ge,{className:"w-4 h-4 lg:w-5 lg:h-5 text-amber-600 flex-shrink-0 mt-0.5"}),e.jsxs("div",{className:"text-xs lg:text-sm text-amber-800",children:[e.jsx("p",{className:"font-semibold mb-1",children:"Missing Required Information"}),e.jsx("p",{children:"Please ensure proposal document, cost breakup, timeline, and dealer comments are provided before submitting."})]})]})]})}),e.jsxs(Ct,{className:"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end flex-shrink-0 pt-3 lg:pt-4 border-t",children:[e.jsx(M,{variant:"outline",onClick:H,disabled:A,className:"border-2",children:"Cancel"}),e.jsx(M,{onClick:B,disabled:!I||A,className:"bg-[#2d4a3e] hover:bg-[#1f3329] text-white disabled:bg-gray-300 disabled:text-gray-500",children:A?"Submitting...":"Submit Documents"})]})]}),k&&e.jsx(ct,{open:!!k,onOpenChange:()=>{k!=null&&k.url&&URL.revokeObjectURL(k.url),F(null)},children:e.jsx(lt,{className:"file-preview-dialog p-3 sm:p-6",children:e.jsxs("div",{className:"file-preview-content",children:[e.jsx(dt,{className:"pb-4 flex-shrink-0 pr-8",children:e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-1 min-w-0",children:[e.jsx(jt,{className:"w-5 h-5 text-blue-600 flex-shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx(ot,{className:"text-base sm:text-lg font-bold text-gray-900 truncate pr-2",children:k.file.name}),e.jsxs("p",{className:"text-xs sm:text-sm text-gray-500",children:[k.file.type||"Unknown type"," • ",(k.file.size/1024).toFixed(1)," KB"]})]})]}),e.jsx("div",{className:"flex items-center gap-2 flex-wrap mr-2",children:e.jsxs(M,{variant:"outline",size:"sm",onClick:()=>R(k.file),className:"gap-2 h-9",children:[e.jsx(wt,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Download"})]})})]})}),e.jsx("div",{className:"file-preview-body bg-gray-100 rounded-lg p-2 sm:p-4",children:(Y=k.file.type)!=null&&Y.includes("image")?e.jsx("div",{className:"flex items-center justify-center h-full",children:e.jsx("img",{src:k.url,alt:k.file.name,style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain"},className:"rounded-lg shadow-lg"})}):(E=k.file.type)!=null&&E.includes("pdf")||k.file.name.toLowerCase().endsWith(".pdf")?e.jsx("div",{className:"w-full h-full flex items-center justify-center",children:e.jsx("iframe",{src:k.url,className:"w-full h-full rounded-lg border-0",title:k.file.name,style:{minHeight:"70vh",height:"100%"}})}):e.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-center",children:[e.jsx("div",{className:"w-20 h-20 bg-gray-200 rounded-full flex items-center justify-center mb-4",children:e.jsx(jt,{className:"w-10 h-10 text-gray-400"})}),e.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Preview Not Available"}),e.jsx("p",{className:"text-sm text-gray-600 mb-6",children:"This file type cannot be previewed. Please download to view."}),e.jsxs(M,{onClick:()=>R(k.file),className:"gap-2",children:[e.jsx(wt,{className:"h-4 w-4"}),"Download ",k.file.name]})]})})]})})})]})}function k2({isOpen:t,onClose:s,onApprove:a,onReject:r,requestTitle:n,requestId:i,preFilledIONumber:l,preFilledIORemark:o,preFilledBlockedAmount:c,preFilledRemainingBalance:d}){const[m,u]=x.useState("approve"),[h,g]=x.useState(""),[p,y]=x.useState(""),[f,b]=x.useState(!1),v=l||"";x.useEffect(()=>{t&&(g(o||""),y(""),u("approve"))},[t,o]);const w=h.length,A=p.length,S=300,k=500,F=x.useMemo(()=>(m==="reject"||v.trim().length>0&&h.trim().length>0)&&p.trim().length>0,[m,v,h,p]),T=async()=>{if(!F){if(m==="approve"){if(!v.trim()){q.error("IO number is required. Please block amount from IO tab first.");return}if(!h.trim()){q.error("Please enter IO remark");return}}if(!p.trim()){q.error("Please provide comments");return}return}try{b(!0),m==="approve"?await a({ioNumber:v.trim(),ioRemark:h.trim(),comments:p.trim()}):await r(p.trim()),D(),s()}catch(P){console.error(`Failed to ${m} request:`,P),q.error(`Failed to ${m} request. Please try again.`)}finally{b(!1)}},D=()=>{u("approve"),g(""),y("")},C=()=>{f||(D(),s())};return e.jsx(ct,{open:t,onOpenChange:C,children:e.jsxs(lt,{className:"dept-lead-io-modal overflow-hidden flex flex-col",children:[e.jsxs(dt,{className:"flex-shrink-0 px-6 pt-6 pb-3",children:[e.jsxs("div",{className:"flex items-center gap-2 lg:gap-3 mb-2",children:[e.jsx("div",{className:"p-1.5 lg:p-2 rounded-lg bg-green-100",children:e.jsx(Ce,{className:"w-5 h-5 lg:w-6 lg:h-6 text-green-600"})}),e.jsxs("div",{className:"flex-1",children:[e.jsx(ot,{className:"font-semibold text-lg lg:text-xl",children:"Approve and Organise IO"}),e.jsx(Lt,{className:"text-xs lg:text-sm mt-1",children:"Review IO details and provide your approval comments"})]})]}),e.jsxs("div",{className:"space-y-2 lg:space-y-3 p-3 lg:p-4 bg-gray-50 rounded-lg border",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"font-medium text-sm lg:text-base text-gray-900",children:"Workflow Step:"}),e.jsx(le,{variant:"outline",className:"font-mono text-xs",children:"Step 3"})]}),e.jsxs("div",{children:[e.jsx("span",{className:"font-medium text-sm lg:text-base text-gray-900",children:"Title:"}),e.jsx("p",{className:"text-xs lg:text-sm text-gray-700 mt-1",children:n||"—"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-medium text-sm lg:text-base text-gray-900",children:"Action:"}),e.jsxs(le,{className:"bg-green-100 text-green-800 border-green-200 text-xs",children:[e.jsx(Ce,{className:"w-3 h-3 mr-1"}),"APPROVE"]})]})]})]}),e.jsx("div",{className:"flex-1 overflow-y-auto overflow-x-hidden py-3 lg:py-4 px-6",children:e.jsxs("div",{className:"space-y-3 lg:space-y-4",children:[e.jsxs("div",{className:"flex gap-2 p-1 bg-gray-100 rounded-lg",children:[e.jsxs(M,{type:"button",onClick:()=>u("approve"),className:`flex-1 text-sm lg:text-base ${m==="approve"?"bg-green-600 text-white shadow-sm":"text-gray-700 hover:bg-gray-200"}`,variant:m==="approve"?"default":"ghost",children:[e.jsx(Ce,{className:"w-4 h-4 mr-1"}),"Approve"]}),e.jsxs(M,{type:"button",onClick:()=>u("reject"),className:`flex-1 text-sm lg:text-base ${m==="reject"?"bg-red-600 text-white shadow-sm":"text-gray-700 hover:bg-gray-200"}`,variant:m==="reject"?"destructive":"ghost",children:[e.jsx(gt,{className:"w-4 h-4 mr-1"}),"Reject"]})]}),e.jsxs("div",{className:"space-y-3 lg:space-y-0 lg:grid lg:grid-cols-2 lg:gap-6",children:[m==="approve"&&e.jsxs("div",{className:"p-3 lg:p-4 bg-blue-50 border border-blue-200 rounded-lg space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(xs,{className:"w-4 h-4 lg:w-5 lg:h-5 text-blue-600"}),e.jsx("h4",{className:"font-semibold text-sm lg:text-base text-blue-900",children:"IO Organisation Details"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsxs(re,{htmlFor:"ioNumber",className:"text-xs lg:text-sm font-semibold text-gray-900 flex items-center gap-2",children:["IO Number ",e.jsx("span",{className:"text-red-500",children:"*"})]}),e.jsx(Se,{id:"ioNumber",value:v||"—",disabled:!0,readOnly:!0,className:"bg-gray-100 h-8 lg:h-9 cursor-not-allowed text-xs lg:text-sm"}),!v&&e.jsx("p",{className:"text-xs text-red-600 mt-1",children:"⚠️ IO number not found. Please block amount from IO tab first."}),v&&e.jsx("p",{className:"text-xs text-blue-600 mt-1",children:"✓ Loaded from IO table"})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-2",children:[c!==void 0&&c>0&&e.jsx("div",{className:"p-2 bg-green-50 border border-green-200 rounded",children:e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"text-xs font-semibold text-gray-700",children:"Blocked Amount:"}),e.jsxs("span",{className:"text-xs lg:text-sm font-bold text-green-700 mt-1",children:["₹",c.toLocaleString("en-IN",{minimumFractionDigits:2,maximumFractionDigits:2})]})]})}),d!=null&&e.jsx("div",{className:"p-2 bg-blue-50 border border-blue-200 rounded",children:e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"text-xs font-semibold text-gray-700",children:"Remaining Balance:"}),e.jsxs("span",{className:"text-xs lg:text-sm font-bold text-blue-700 mt-1",children:["₹",d.toLocaleString("en-IN",{minimumFractionDigits:2,maximumFractionDigits:2})]})]})})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsxs(re,{htmlFor:"ioRemark",className:"text-xs lg:text-sm font-semibold text-gray-900 flex items-center gap-2",children:["IO Remark ",e.jsx("span",{className:"text-red-500",children:"*"})]}),e.jsx(ps,{id:"ioRemark",placeholder:"Enter remarks about IO organization",value:h||"—",disabled:!0,readOnly:!0,rows:3,className:"bg-gray-100 text-xs lg:text-sm min-h-[80px] lg:min-h-[100px] resize-none cursor-not-allowed"}),e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[o?e.jsx("span",{className:"text-blue-600",children:"✓ Loaded from IO tab"}):e.jsx("span",{className:"text-red-600",children:"⚠️ IO remark not found. Please add remark in IO tab first."}),e.jsxs("span",{className:"text-gray-600",children:[w,"/",S]})]})]})]}),e.jsxs("div",{className:`space-y-1.5 ${m==="approve"?"":"lg:col-span-2"}`,children:[e.jsxs(re,{htmlFor:"comment",className:"text-xs lg:text-sm font-semibold text-gray-900 flex items-center gap-2",children:["Comments & Remarks ",e.jsx("span",{className:"text-red-500",children:"*"})]}),e.jsx(ps,{id:"comment",placeholder:m==="approve"?"Enter your approval comments and any conditions or notes...":"Enter detailed reasons for rejection...",value:p,onChange:P=>{const R=P.target.value;R.length<=k&&y(R)},rows:4,className:"text-xs lg:text-sm min-h-[80px] lg:min-h-[100px] resize-none"}),e.jsxs("div",{className:"flex items-center justify-between text-xs text-gray-500",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(os,{className:"w-3 h-3"}),"Required and visible to all"]}),e.jsxs("span",{children:[A,"/",k]})]})]})]})]})}),e.jsxs(Ct,{className:"flex-shrink-0 flex flex-col-reverse sm:flex-row sm:justify-end gap-2 px-6 pb-6 pt-3 border-t",children:[e.jsx(M,{variant:"outline",onClick:C,disabled:f,className:"text-sm lg:text-base",children:"Cancel"}),e.jsx(M,{onClick:T,disabled:!F||f,className:`text-sm lg:text-base ${m==="approve"?"bg-green-600 hover:bg-green-700":"bg-red-600 hover:bg-red-700"} text-white`,children:f?`${m==="approve"?"Approving":"Rejecting"}...`:e.jsxs(e.Fragment,{children:[e.jsx(Ce,{className:"w-4 h-4 mr-2"}),m==="approve"?"Approve Request":"Reject Request"]})})]})]})})}function R2({isOpen:t,onClose:s,onPush:a,completionDetails:r,ioDetails:n,requestTitle:i,requestNumber:l}){const[o,c]=x.useState(""),[d,m]=x.useState(!1),u=o.length,h=500,g=x.useMemo(()=>r!=null&&r.totalClosedExpenses?r.totalClosedExpenses:r!=null&&r.closedExpenses&&Array.isArray(r.closedExpenses)?r.closedExpenses.reduce((w,A)=>{const S=typeof A=="object"&&A.amount||0;return w+(Number(S)||0)},0):0,[r]),p=w=>{if(!w)return"—";try{return new Date(w).toLocaleDateString("en-IN",{year:"numeric",month:"long",day:"numeric"})}catch{return w}},y=w=>`₹${w.toLocaleString("en-IN",{minimumFractionDigits:2,maximumFractionDigits:2})}`,f=async()=>{if(!o.trim()){q.error("Please provide comments before pushing to DMS");return}try{m(!0),await a(o.trim()),b(),s()}catch(w){console.error("Failed to push to DMS:",w),q.error("Failed to push to DMS. Please try again.")}finally{m(!1)}},b=()=>{c("")},v=()=>{d||(b(),s())};return e.jsx(ct,{open:t,onOpenChange:v,children:e.jsxs(lt,{className:"dms-push-modal overflow-hidden flex flex-col",children:[e.jsxs(dt,{className:"px-6 pt-6 pb-3 flex-shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-2 sm:gap-3 mb-2",children:[e.jsx("div",{className:"p-1.5 sm:p-2 rounded-lg bg-indigo-100",children:e.jsx(Gt,{className:"w-4 h-4 sm:w-5 sm:h-5 sm:w-6 sm:h-6 text-indigo-600"})}),e.jsxs("div",{className:"flex-1",children:[e.jsx(ot,{className:"font-semibold text-lg sm:text-xl",children:"Push to DMS - Verification"}),e.jsx(Lt,{className:"text-xs sm:text-sm mt-1",children:"Review completion details and expenses before pushing to DMS for e-invoice generation"})]})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-3 sm:gap-4 p-3 sm:p-4 bg-gray-50 rounded-lg border",children:[e.jsxs("div",{className:"flex items-center justify-between sm:flex-col sm:items-start sm:gap-1",children:[e.jsx("span",{className:"font-medium text-xs sm:text-sm text-gray-600",children:"Workflow Step:"}),e.jsx(le,{variant:"outline",className:"font-mono text-xs",children:"Requestor Claim Approval"})]}),l&&e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("span",{className:"font-medium text-xs sm:text-sm text-gray-600",children:"Request Number:"}),e.jsx("p",{className:"text-gray-700 font-mono text-xs sm:text-sm",children:l})]}),e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("span",{className:"font-medium text-xs sm:text-sm text-gray-600",children:"Title:"}),e.jsx("p",{className:"text-gray-700 text-xs sm:text-sm line-clamp-2",children:i||"—"})]}),e.jsxs("div",{className:"flex items-center gap-2 sm:flex-col sm:items-start sm:gap-1",children:[e.jsx("span",{className:"font-medium text-xs sm:text-sm text-gray-600",children:"Action:"}),e.jsxs(le,{className:"bg-indigo-100 text-indigo-800 border-indigo-200 text-xs",children:[e.jsx(Gt,{className:"w-3 h-3 mr-1"}),"PUSH TO DMS"]})]})]})]}),e.jsx("div",{className:"flex-1 overflow-y-auto overflow-x-hidden px-6 py-3",children:e.jsxs("div",{className:"space-y-3 sm:space-y-4 max-w-7xl mx-auto",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 sm:gap-6",children:[r&&e.jsxs(te,{children:[e.jsxs(ue,{className:"pb-3",children:[e.jsxs(he,{className:"flex items-center gap-2 text-base sm:text-lg",children:[e.jsx(Os,{className:"w-4 h-4 sm:w-5 sm:h-5 text-green-600"}),"Completion Details"]}),e.jsx(Te,{className:"text-xs sm:text-sm",children:"Review activity completion information"})]}),e.jsxs(se,{className:"space-y-2 sm:space-y-3",children:[r.activityCompletionDate&&e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-1 py-1.5 sm:py-2 border-b",children:[e.jsx("span",{className:"text-xs sm:text-sm text-gray-600",children:"Activity Completion Date:"}),e.jsx("span",{className:"text-xs sm:text-sm font-semibold text-gray-900",children:p(r.activityCompletionDate)})]}),r.numberOfParticipants!==void 0&&e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-1 py-1.5 sm:py-2 border-b",children:[e.jsx("span",{className:"text-xs sm:text-sm text-gray-600",children:"Number of Participants:"}),e.jsx("span",{className:"text-xs sm:text-sm font-semibold text-gray-900",children:r.numberOfParticipants})]}),r.completionDescription&&e.jsxs("div",{className:"pt-2",children:[e.jsx("p",{className:"text-xs text-gray-600 mb-1",children:"Completion Description:"}),e.jsx("p",{className:"text-xs sm:text-sm text-gray-900 line-clamp-3",children:r.completionDescription})]})]})]}),n&&n.ioNumber&&e.jsxs(te,{children:[e.jsxs(ue,{className:"pb-3",children:[e.jsxs(he,{className:"flex items-center gap-2 text-base sm:text-lg",children:[e.jsx(xs,{className:"w-4 h-4 sm:w-5 sm:h-5 text-purple-600"}),"IO Details"]}),e.jsx(Te,{className:"text-xs sm:text-sm",children:"Internal Order information for budget reference"})]}),e.jsxs(se,{className:"space-y-2 sm:space-y-3",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-1 py-1.5 sm:py-2 border-b",children:[e.jsx("span",{className:"text-xs sm:text-sm text-gray-600",children:"IO Number:"}),e.jsx("span",{className:"text-xs sm:text-sm font-semibold text-gray-900 font-mono",children:n.ioNumber})]}),n.blockedAmount!==void 0&&n.blockedAmount>0&&e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-1 py-1.5 sm:py-2 border-b",children:[e.jsx("span",{className:"text-xs sm:text-sm text-gray-600",children:"Blocked Amount:"}),e.jsx("span",{className:"text-xs sm:text-sm font-bold text-green-700",children:y(n.blockedAmount)})]}),n.remainingBalance!==void 0&&n.remainingBalance!==null&&e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-1 py-1.5 sm:py-2",children:[e.jsx("span",{className:"text-xs sm:text-sm text-gray-600",children:"Remaining Balance:"}),e.jsx("span",{className:"text-xs sm:text-sm font-semibold text-gray-900",children:y(n.remainingBalance)})]})]})]}),(r==null?void 0:r.closedExpenses)&&r.closedExpenses.length>0&&e.jsxs(te,{children:[e.jsxs(ue,{className:"pb-3",children:[e.jsxs(he,{className:"flex items-center gap-2 text-base sm:text-lg",children:[e.jsx(ka,{className:"w-4 h-4 sm:w-5 sm:h-5 text-blue-600"}),"Expense Breakdown"]}),e.jsx(Te,{className:"text-xs sm:text-sm",children:"Review closed expenses before pushing to DMS"})]}),e.jsxs(se,{children:[e.jsx("div",{className:"space-y-1.5 sm:space-y-2 max-h-[200px] overflow-y-auto",children:r.closedExpenses.map((w,A)=>e.jsxs("div",{className:"flex items-center justify-between py-1.5 sm:py-2 px-2 sm:px-3 bg-gray-50 rounded border",children:[e.jsx("div",{className:"flex-1 min-w-0 pr-2",children:e.jsx("p",{className:"text-xs sm:text-sm font-medium text-gray-900 truncate",children:w.description||`Expense ${A+1}`})}),e.jsx("div",{className:"ml-2 flex-shrink-0",children:e.jsx("p",{className:"text-xs sm:text-sm font-semibold text-gray-900",children:y(typeof w=="object"&&w.amount||0)})})]},A))}),e.jsxs("div",{className:"flex items-center justify-between py-2 sm:py-3 px-2 sm:px-3 bg-blue-50 rounded border-2 border-blue-200 mt-2 sm:mt-3",children:[e.jsx("span",{className:"text-xs sm:text-sm font-semibold text-gray-900",children:"Total:"}),e.jsx("span",{className:"text-sm sm:text-base font-bold text-blue-700",children:y(g)})]})]})]})]}),e.jsx("div",{className:"p-2.5 sm:p-3 bg-yellow-50 border border-yellow-200 rounded-lg",children:e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(os,{className:"w-4 h-4 sm:w-5 sm:h-5 text-yellow-600 flex-shrink-0 mt-0.5"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs sm:text-sm font-semibold text-yellow-900",children:"Please verify all details before pushing to DMS"}),e.jsx("p",{className:"text-xs text-yellow-700 mt-1",children:"Once pushed, the system will automatically generate an e-invoice and log it as an activity."})]})]})}),e.jsxs("div",{className:"space-y-1.5 max-w-2xl",children:[e.jsxs(re,{htmlFor:"comment",className:"text-xs sm:text-sm font-semibold text-gray-900 flex items-center gap-2",children:["Comments & Remarks ",e.jsx("span",{className:"text-red-500",children:"*"})]}),e.jsx(ps,{id:"comment",placeholder:"Enter your comments about pushing to DMS (e.g., verified expenses, ready for invoice generation)...",value:o,onChange:w=>{const A=w.target.value;A.length<=h&&c(A)},rows:4,className:"text-sm min-h-[80px] resize-none"}),e.jsxs("div",{className:"flex items-center justify-between text-xs text-gray-500",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(os,{className:"w-3 h-3"}),"Required and visible to all"]}),e.jsxs("span",{children:[u,"/",h]})]})]})]})}),e.jsxs(Ct,{className:"flex flex-col-reverse sm:flex-row sm:justify-end gap-2 px-6 pt-3 pb-6 border-t flex-shrink-0",children:[e.jsx(M,{variant:"outline",onClick:v,disabled:d,children:"Cancel"}),e.jsx(M,{onClick:f,disabled:!o.trim()||d,className:"bg-indigo-600 hover:bg-indigo-700 text-white",children:d?"Pushing to DMS...":e.jsxs(e.Fragment,{children:[e.jsx(Gt,{className:"w-4 h-4 mr-2"}),"Push to DMS"]})})]})]})})}function D2({isOpen:t,onClose:s,stepNumber:a,stepName:r,requestNumber:n="RE-REQ-2024-CM-101",recipientEmail:i="system@royalenfield.com",subject:l,emailBody:o}){const c=`System Notification: Activity Created - ${n}`,d=l||c,m=`System Notification
|
||
|
||
Activity has been automatically created for claim ${n}.
|
||
|
||
All stakeholders have been notified.
|
||
|
||
This is an automated message.`,u=o||m;return e.jsx(ct,{open:t,onOpenChange:s,children:e.jsxs(lt,{className:"sm:max-w-2xl lg:max-w-[1000px] max-w-2xl",children:[e.jsx(dt,{children:e.jsx("div",{className:"flex items-center justify-between",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-full bg-blue-100 flex items-center justify-center",children:e.jsx(Ta,{className:"w-5 h-5 text-blue-600"})}),e.jsxs("div",{children:[e.jsx(ot,{className:"text-lg leading-none font-semibold",children:"Email Notification Template"}),e.jsxs(Lt,{className:"text-sm",children:["Step ",a,": ",r]})]})]})})}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{className:"bg-gradient-to-r from-blue-50 to-purple-50 rounded-lg p-4 border border-blue-200",children:e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(kt,{className:"w-4 h-4 text-gray-600 mt-0.5 flex-shrink-0"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("p",{className:"text-xs text-gray-600",children:"To:"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:i})]})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(Ta,{className:"w-4 h-4 text-gray-600 mt-0.5 flex-shrink-0"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("p",{className:"text-xs text-gray-600",children:"Subject:"}),e.jsx("p",{className:"text-sm font-semibold text-gray-900",children:d})]})]})]})}),e.jsx("div",{className:"bg-white rounded-lg border border-gray-200 p-6",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-2 pb-3 border-b border-gray-200",children:[e.jsx(Ti,{className:"w-5 h-5 text-purple-600"}),e.jsx("span",{className:"font-semibold text-gray-900",children:"Royal Enfield"})]}),e.jsx("div",{className:"prose prose-sm max-w-none",children:e.jsx("pre",{className:"whitespace-pre-wrap font-sans text-sm text-gray-700 leading-relaxed bg-transparent p-0 border-0",children:u})}),e.jsx("div",{className:"pt-3 border-t border-gray-200",children:e.jsxs("div",{className:"flex items-center gap-2 text-xs text-gray-500",children:[e.jsx(ut,{className:"w-3 h-3"}),e.jsx("span",{children:"Automated email • Royal Enfield Claims Portal"})]})})]})}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(le,{className:"bg-blue-50 text-blue-700 border-blue-200",children:["Step ",a]}),e.jsx(le,{className:"bg-purple-50 text-purple-700 border-purple-200",children:"Auto-triggered"})]})]}),e.jsx("div",{className:"flex justify-end gap-2 pt-2",children:e.jsxs(M,{variant:"outline",onClick:s,className:"h-9",children:[e.jsx(ht,{className:"w-4 h-4 mr-2"}),"Close"]})})]})})}function P2({isOpen:t,onClose:s,onApprove:a,onReject:r,proposalData:n,dealerName:i="Dealer",activityName:l="Activity",requestId:o}){var C,P;const[c,d]=x.useState(""),[m,u]=x.useState(!1),[h,g]=x.useState(null),[p,y]=x.useState(null),[f,b]=x.useState(!1),v=x.useMemo(()=>{if(!(n!=null&&n.costBreakup))return 0;const R=Array.isArray(n.costBreakup)?n.costBreakup:typeof n.costBreakup=="string"?JSON.parse(n.costBreakup):[];return Array.isArray(R)?R.reduce((V,I)=>{const $=typeof I=="object"&&I.amount||0;return V+(Number($)||0)},0):0},[n]),w=R=>{if(!R)return"—";try{return new Date(R).toLocaleDateString("en-IN",{year:"numeric",month:"long",day:"numeric"})}catch{return R}},A=R=>{if(!R.name)return!1;const V=R.name.toLowerCase();return V.endsWith(".pdf")||V.endsWith(".jpg")||V.endsWith(".jpeg")||V.endsWith(".png")||V.endsWith(".gif")||V.endsWith(".webp")},S=async R=>{if(!R.id){q.error("Document preview not available - document ID missing");return}b(!0);try{const V=To(R.id),I=R.name.toLowerCase(),$=I.endsWith(".pdf"),_=I.match(/\.(jpg|jpeg|png|gif|webp)$/i),N=!0,j=N?null:localStorage.getItem("accessToken"),z=await fetch(V,{headers:{Accept:$?"application/pdf":"*/*"},credentials:"include",mode:"cors"});if(!z.ok)throw new Error(`Failed to load file: ${z.status} ${z.statusText}`);const B=await z.blob();if(B.size===0)throw new Error("File is empty or could not be loaded");const X=window.URL.createObjectURL(B);y({name:R.name,url:X,type:B.type||($?"application/pdf":_?"image":void 0),size:B.size})}catch(V){console.error("Failed to load document preview:",V),q.error("Failed to load document preview")}finally{b(!1)}};x.useEffect(()=>()=>{p!=null&&p.url&&p.url.startsWith("blob:")&&window.URL.revokeObjectURL(p.url)},[p]);const k=async()=>{if(!c.trim()){q.error("Please provide approval comments");return}try{u(!0),g("approve"),await a(c),T(),s()}catch(R){console.error("Failed to approve proposal:",R),q.error("Failed to approve proposal. Please try again.")}finally{u(!1),g(null)}},F=async()=>{if(!c.trim()){q.error("Please provide rejection reason");return}try{u(!0),g("reject"),await r(c),T(),s()}catch(R){console.error("Failed to reject proposal:",R),q.error("Failed to reject proposal. Please try again.")}finally{u(!1),g(null)}},T=()=>{d(""),g(null)},D=()=>{m||(T(),s())};return t?e.jsxs(ct,{open:t,onOpenChange:D,children:[e.jsxs(lt,{className:"dealer-proposal-modal overflow-hidden flex flex-col",children:[e.jsxs(dt,{className:"flex-shrink-0 pb-3 lg:pb-4 px-6 pt-4 lg:pt-6 border-b",children:[e.jsxs(ot,{className:"flex items-center gap-2 text-lg lg:text-xl",children:[e.jsx(Ce,{className:"w-4 h-4 lg:w-5 lg:h-5 text-green-600"}),"Requestor Evaluation & Confirmation"]}),e.jsx(Lt,{className:"text-xs lg:text-sm",children:"Step 2: Review dealer proposal and make a decision"}),e.jsxs("div",{className:"space-y-1 mt-2 text-xs text-gray-600",children:[e.jsxs("div",{className:"flex flex-wrap gap-x-4 gap-y-1",children:[e.jsxs("div",{children:[e.jsx("strong",{children:"Dealer:"})," ",i]}),e.jsxs("div",{children:[e.jsx("strong",{children:"Activity:"})," ",l]})]}),e.jsxs("div",{className:"mt-1 text-amber-600 font-medium",children:["Decision: ",e.jsx("strong",{children:"Confirms?"})," (YES → Continue to Dept Lead / NO → Request is cancelled)"]})]})]}),e.jsx("div",{className:"flex-1 overflow-y-auto overflow-x-hidden py-3 lg:py-4 px-6",children:e.jsxs("div",{className:"space-y-4 lg:space-y-0 lg:grid lg:grid-cols-2 lg:gap-6 lg:items-start lg:content-start",children:[e.jsxs("div",{className:"space-y-4 lg:space-y-4 flex flex-col",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:"flex items-center gap-2",children:e.jsxs("h3",{className:"font-semibold text-sm lg:text-base flex items-center gap-2",children:[e.jsx(_e,{className:"w-4 h-4 text-blue-600"}),"Proposal Document"]})}),n!=null&&n.proposalDocument?e.jsxs("div",{className:"border rounded-lg p-2.5 lg:p-3 bg-gray-50 flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 lg:gap-3 min-w-0 flex-1",children:[e.jsx(_e,{className:"w-5 h-5 lg:w-6 lg:h-6 text-blue-600 flex-shrink-0"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("p",{className:"font-medium text-xs lg:text-sm text-gray-900 truncate",title:n.proposalDocument.name,children:n.proposalDocument.name}),(n==null?void 0:n.submittedAt)&&e.jsxs("p",{className:"text-xs text-gray-500 truncate",children:["Submitted on ",w(n.submittedAt)]})]})]}),e.jsx("div",{className:"flex items-center gap-2 flex-shrink-0",children:n.proposalDocument.id&&e.jsxs(e.Fragment,{children:[A(n.proposalDocument)&&e.jsx("button",{type:"button",onClick:()=>S(n.proposalDocument),disabled:f,className:"p-2 hover:bg-gray-200 rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:"Preview document",children:f?e.jsx(Je,{className:"w-5 h-5 text-blue-600 animate-spin"}):e.jsx(jt,{className:"w-5 h-5 text-blue-600"})}),e.jsx("button",{type:"button",onClick:async()=>{var R;try{(R=n.proposalDocument)!=null&&R.id&&await pr(n.proposalDocument.id)}catch(V){console.error("Failed to download document:",V),q.error("Failed to download document")}},className:"p-2 hover:bg-gray-200 rounded-lg transition-colors",title:"Download document",children:e.jsx(wt,{className:"w-5 h-5 text-gray-600"})})]})})]}):e.jsx("p",{className:"text-xs text-gray-500 italic",children:"No proposal document available"})]}),(n==null?void 0:n.otherDocuments)&&n.otherDocuments.length>0&&e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("h3",{className:"font-semibold text-sm lg:text-base flex items-center gap-2",children:[e.jsx(_e,{className:"w-4 h-4 text-gray-600"}),"Other Supporting Documents"]}),e.jsxs(le,{variant:"secondary",className:"text-xs",children:[n.otherDocuments.length," file(s)"]})]}),e.jsx("div",{className:"space-y-2 max-h-[150px] lg:max-h-[140px] overflow-y-auto",children:n.otherDocuments.map((R,V)=>e.jsxs("div",{className:"border rounded-lg p-2 lg:p-3 bg-gray-50 flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 lg:gap-3 min-w-0 flex-1",children:[e.jsx(_e,{className:"w-4 h-4 lg:w-5 lg:h-5 text-gray-600 flex-shrink-0"}),e.jsx("p",{className:"text-xs lg:text-sm font-medium text-gray-900 truncate",title:R.name,children:R.name})]}),R.id&&e.jsxs("div",{className:"flex items-center gap-1 flex-shrink-0",children:[A(R)&&e.jsx("button",{type:"button",onClick:()=>S(R),disabled:f,className:"p-2 hover:bg-gray-200 rounded-lg transition-colors disabled:opacity-50 disabled:cursor-not-allowed",title:"Preview document",children:f?e.jsx(Je,{className:"w-5 h-5 text-blue-600 animate-spin"}):e.jsx(jt,{className:"w-5 h-5 text-blue-600"})}),e.jsx("button",{type:"button",onClick:async()=>{try{R.id&&await pr(R.id)}catch(I){console.error("Failed to download document:",I),q.error("Failed to download document")}},className:"p-2 hover:bg-gray-200 rounded-lg transition-colors",title:"Download document",children:e.jsx(wt,{className:"w-5 h-5 text-gray-600"})})]})]},V))})]})]}),e.jsxs("div",{className:"space-y-4 lg:space-y-4 flex flex-col",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:"flex items-center gap-2",children:e.jsxs("h3",{className:"font-semibold text-sm lg:text-base flex items-center gap-2",children:[e.jsx(Fl,{className:"w-4 h-4 text-green-600"}),"Cost Breakup"]})}),(()=>{const R=n!=null&&n.costBreakup?Array.isArray(n.costBreakup)?n.costBreakup:typeof n.costBreakup=="string"?JSON.parse(n.costBreakup):[]:[];return R&&Array.isArray(R)&&R.length>0?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"border rounded-lg overflow-hidden max-h-[200px] lg:max-h-[180px] overflow-y-auto",children:[e.jsx("div",{className:"bg-gray-50 px-3 lg:px-4 py-2 border-b sticky top-0",children:e.jsxs("div",{className:"grid grid-cols-2 gap-4 text-xs lg:text-sm font-semibold text-gray-700",children:[e.jsx("div",{children:"Item Description"}),e.jsx("div",{className:"text-right",children:"Amount"})]})}),e.jsx("div",{className:"divide-y",children:R.map((V,I)=>e.jsxs("div",{className:"px-3 lg:px-4 py-2 lg:py-3 grid grid-cols-2 gap-4",children:[e.jsx("div",{className:"text-xs lg:text-sm text-gray-700",children:(V==null?void 0:V.description)||"N/A"}),e.jsxs("div",{className:"text-xs lg:text-sm font-semibold text-gray-900 text-right",children:["₹",(Number(V==null?void 0:V.amount)||0).toLocaleString("en-IN",{minimumFractionDigits:2,maximumFractionDigits:2})]})]},(V==null?void 0:V.id)||(V==null?void 0:V.description)||I))})]}),e.jsx("div",{className:"border-2 border-[--re-green] rounded-lg p-2.5 lg:p-3",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Fl,{className:"w-4 h-4 text-[--re-green]"}),e.jsx("span",{className:"font-semibold text-xs lg:text-sm text-gray-700",children:"Total Estimated Budget"})]}),e.jsxs("div",{className:"text-lg lg:text-xl font-bold text-[--re-green]",children:["₹",v.toLocaleString("en-IN",{minimumFractionDigits:2,maximumFractionDigits:2})]})]})})]}):e.jsx("p",{className:"text-xs text-gray-500 italic",children:"No cost breakdown available"})})()]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:"flex items-center gap-2",children:e.jsxs("h3",{className:"font-semibold text-sm lg:text-base flex items-center gap-2",children:[e.jsx(ut,{className:"w-4 h-4 text-purple-600"}),"Expected Completion Date"]})}),e.jsx("div",{className:"border rounded-lg p-2.5 lg:p-3 bg-gray-50",children:e.jsx("p",{className:"text-sm lg:text-base font-semibold text-gray-900",children:n!=null&&n.expectedCompletionDate?w(n.expectedCompletionDate):"Not specified"})})]})]}),e.jsx("div",{className:"space-y-2 border-t pt-3 lg:pt-3 lg:col-span-2 mt-2",children:e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4 lg:gap-6",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:"flex items-center gap-2",children:e.jsxs("h3",{className:"font-semibold text-sm lg:text-base flex items-center gap-2",children:[e.jsx(Hs,{className:"w-4 h-4 text-blue-600"}),"Dealer Comments"]})}),e.jsx("div",{className:"border rounded-lg p-2.5 lg:p-3 bg-gray-50 max-h-[150px] lg:max-h-[140px] overflow-y-auto",children:e.jsx("p",{className:"text-xs text-gray-700 whitespace-pre-wrap",children:(n==null?void 0:n.dealerComments)||"No comments provided"})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("h3",{className:"font-semibold text-sm lg:text-base",children:"Your Decision & Comments"}),e.jsx(ps,{placeholder:"Provide your evaluation comments, approval conditions, or rejection reasons...",value:c,onChange:R=>d(R.target.value),className:"min-h-[150px] lg:min-h-[140px] text-xs lg:text-sm w-full"}),e.jsxs("p",{className:"text-xs text-gray-500",children:[c.length," characters"]})]})]})}),!c.trim()&&e.jsxs("div",{className:"bg-amber-50 border border-amber-200 rounded-lg p-2 flex items-start gap-2 lg:col-span-2",children:[e.jsx(gt,{className:"w-3.5 h-3.5 text-amber-600 flex-shrink-0 mt-0.5"}),e.jsx("p",{className:"text-xs text-amber-800",children:"Please provide comments before making a decision. Comments are required and will be visible to all participants."})]})]})}),e.jsxs(Ct,{className:"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end px-6 pb-6 pt-3 lg:pt-4 flex-shrink-0 border-t bg-gray-50",children:[e.jsx(M,{variant:"outline",onClick:D,disabled:m,className:"border-2",children:"Cancel"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(M,{onClick:F,disabled:!c.trim()||m,variant:"destructive",className:"bg-red-600 hover:bg-red-700",children:m&&h==="reject"?"Rejecting...":e.jsxs(e.Fragment,{children:[e.jsx(gt,{className:"w-4 h-4 mr-2"}),"Reject (Cancel Request)"]})}),e.jsx(M,{onClick:k,disabled:!c.trim()||m,className:"bg-green-600 hover:bg-green-700 text-white",children:m&&h==="approve"?"Approving...":e.jsxs(e.Fragment,{children:[e.jsx(Ce,{className:"w-4 h-4 mr-2"}),"Approve (Continue to Dept Lead)"]})})]})]})]}),p&&e.jsx(ct,{open:!!p,onOpenChange:()=>y(null),children:e.jsx(lt,{className:"file-preview-dialog p-3 sm:p-6",children:e.jsxs("div",{className:"file-preview-content",children:[e.jsx(dt,{className:"pb-4 flex-shrink-0 pr-8",children:e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-1 min-w-0",children:[e.jsx(jt,{className:"w-5 h-5 text-blue-600 flex-shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx(ot,{className:"text-base sm:text-lg font-bold text-gray-900 truncate pr-2",children:p.name}),p.type&&e.jsxs("p",{className:"text-xs sm:text-sm text-gray-500",children:[p.type," ",p.size&&`• ${(p.size/1024).toFixed(1)} KB`]})]})]}),e.jsx("div",{className:"flex items-center gap-2 flex-wrap mr-2",children:e.jsxs(M,{variant:"outline",size:"sm",onClick:()=>{const R=document.createElement("a");R.href=p.url,R.download=p.name,R.click()},className:"gap-2 h-9",children:[e.jsx(wt,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Download"})]})})]})}),e.jsx("div",{className:"file-preview-body bg-gray-100 rounded-lg p-2 sm:p-4",children:f?e.jsx("div",{className:"flex items-center justify-center h-full min-h-[70vh]",children:e.jsxs("div",{className:"text-center",children:[e.jsx(Je,{className:"w-8 h-8 animate-spin text-blue-600 mx-auto mb-2"}),e.jsx("p",{className:"text-sm text-gray-600",children:"Loading preview..."})]})}):p.name.toLowerCase().endsWith(".pdf")||(C=p.type)!=null&&C.includes("pdf")?e.jsx("div",{className:"w-full h-full flex items-center justify-center",children:e.jsx("iframe",{src:p.url,className:"w-full h-full rounded-lg border-0",title:p.name,style:{minHeight:"70vh",height:"100%"}})}):p.name.match(/\.(jpg|jpeg|png|gif|webp)$/i)||(P=p.type)!=null&&P.includes("image")?e.jsx("div",{className:"flex items-center justify-center h-full",children:e.jsx("img",{src:p.url,alt:p.name,style:{maxWidth:"100%",maxHeight:"100%",objectFit:"contain"},className:"rounded-lg shadow-lg"})}):e.jsxs("div",{className:"flex flex-col items-center justify-center h-full text-center",children:[e.jsx("div",{className:"w-20 h-20 bg-gray-200 rounded-full flex items-center justify-center mb-4",children:e.jsx(jt,{className:"w-10 h-10 text-gray-400"})}),e.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Preview Not Available"}),e.jsx("p",{className:"text-sm text-gray-600 mb-6",children:"This file type cannot be previewed. Please download to view."}),e.jsxs(M,{onClick:()=>{const R=document.createElement("a");R.href=p.url,R.download=p.name,R.click()},className:"gap-2",children:[e.jsx(wt,{className:"h-4 w-4"}),"Download ",p.name]})]})})]})})})]}):null}async function I2(t){var s;try{const a=await be.post("/dealer-claims",t);return((s=a.data)==null?void 0:s.data)||a.data}catch(a){throw console.error("[DealerClaimAPI] Error creating claim request:",a),a}}async function E2(t){var s;try{const a=await be.get(`/dealer-claims/${t}`);return((s=a.data)==null?void 0:s.data)||a.data}catch(a){throw console.error("[DealerClaimAPI] Error fetching claim details:",a),a}}async function M2(t,s){var a;try{const r=new FormData;s.proposalDocument&&r.append("proposalDocument",s.proposalDocument),s.costBreakup&&r.append("costBreakup",JSON.stringify(s.costBreakup)),s.totalEstimatedBudget!==void 0&&r.append("totalEstimatedBudget",s.totalEstimatedBudget.toString()),s.timelineMode&&r.append("timelineMode",s.timelineMode),s.expectedCompletionDate&&r.append("expectedCompletionDate",s.expectedCompletionDate),s.expectedCompletionDays!==void 0&&r.append("expectedCompletionDays",s.expectedCompletionDays.toString()),s.dealerComments&&r.append("dealerComments",s.dealerComments);const n=await be.post(`/dealer-claims/${t}/proposal`,r,{headers:{"Content-Type":"multipart/form-data"}});return((a=n.data)==null?void 0:a.data)||n.data}catch(r){throw console.error("[DealerClaimAPI] Error submitting proposal:",r),r}}async function F2(t,s){var a;try{const r=new FormData;r.append("activityCompletionDate",s.activityCompletionDate),s.numberOfParticipants!==void 0&&r.append("numberOfParticipants",s.numberOfParticipants.toString()),s.closedExpenses&&r.append("closedExpenses",JSON.stringify(s.closedExpenses)),s.totalClosedExpenses!==void 0&&r.append("totalClosedExpenses",s.totalClosedExpenses.toString()),s.completionDocuments&&s.completionDocuments.forEach(i=>{r.append("completionDocuments",i)}),s.activityPhotos&&s.activityPhotos.forEach(i=>{r.append("activityPhotos",i)});const n=await be.post(`/dealer-claims/${t}/completion`,r,{headers:{"Content-Type":"multipart/form-data"}});return((a=n.data)==null?void 0:a.data)||n.data}catch(r){throw console.error("[DealerClaimAPI] Error submitting completion:",r),r}}async function _2(t,s){var a;try{const r=await be.get(`/dealer-claims/${t}/io/validate`,{params:{ioNumber:s}});return((a=r.data)==null?void 0:a.data)||r.data}catch(r){throw console.error("[DealerClaimAPI] Error validating IO:",r),r}}async function oo(t,s){var a;try{const r={ioNumber:s.ioNumber,ioRemark:s.ioRemark||""};s.ioAvailableBalance!==void 0&&(r.availableBalance=s.ioAvailableBalance),s.ioBlockedAmount!==void 0&&(r.blockedAmount=s.ioBlockedAmount),s.ioRemainingBalance!==void 0&&(r.remainingBalance=s.ioRemainingBalance);const n=await be.put(`/dealer-claims/${t}/io`,r);return((a=n.data)==null?void 0:a.data)||n.data}catch(r){throw console.error("Error updating IO details:",r),r}}async function L2(t,s){var a;try{const r=await be.put(`/dealer-claims/${t}/e-invoice`,s);return((a=r.data)==null?void 0:a.data)||r.data}catch(r){throw console.error("[DealerClaimAPI] Error updating e-invoice:",r),r}}async function O2(t){var s;try{const a=await be.post(`/dealer-claims/${t}/credit-note/send`);return((s=a.data)==null?void 0:s.data)||a.data}catch(a){throw console.error("[DealerClaimAPI] Error sending credit note to dealer:",a),a}}async function $2(t,s,a){var r;try{const n={};t&&(n.dateRange=t),s&&(n.startDate=s),a&&(n.endDate=a);const i=await be.get("/dealer-claims/dashboard",{params:n});return((r=i.data)==null?void 0:r.data)||i.data}catch(n){throw console.error("[DealerClaimAPI] Error fetching dealer dashboard:",n),n}}const Wn=t=>{if(!t)return"";try{return ns(t)}catch{try{return new Date(t).toLocaleString("en-IN",{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"numeric",hour12:!0})}catch{return t}}},U2=t=>{switch(t){case"approved":return e.jsx(Ce,{className:"w-5 h-5 text-green-600"});case"pending":return e.jsx(Ye,{className:"w-5 h-5 text-blue-600"});case"rejected":return e.jsx(Ce,{className:"w-5 h-5 text-red-600"});default:return e.jsx(Ye,{className:"w-5 h-5 text-gray-400"})}},B2=t=>{switch(t){case"approved":return"bg-green-100 text-green-800 border-green-200";case"pending":return"bg-purple-100 text-purple-800 border-purple-200";case"rejected":return"bg-red-100 text-red-800 border-red-200";default:return"bg-gray-100 text-gray-800 border-gray-200"}},V2=(t,s)=>s&&(t==="pending"||t==="in_progress")?"border-purple-500 bg-purple-50 shadow-md":t==="approved"?"border-green-500 bg-green-50":t==="rejected"?"border-red-500 bg-red-50":"border-gray-200 bg-white",z2=t=>{switch(t){case"approved":return"bg-green-100";case"pending":return"bg-purple-100";case"rejected":return"bg-red-100";default:return"bg-gray-100"}};function H2({request:t,user:s,isInitiator:a,onSkipApprover:r,onRefresh:n}){var Ia,va,Q,ge,J,ke,Re,We,Ie,Ke,$e,Qe,gs,Dt,at,qe,pt,cs,Pt,Ws,aa,ra,ba,ft,Ka,Ya,Za,Xa,Qa,Ja,qa,It,us,Gs,yr,er,Es,Ea,Hr,Wr,Gr,Kr,Yr,Zr,Xr,Qr,Jr,et,Xt,As,Ks,vr,na,Ma,qr,en,tn,Sc,Tc,kc,Rc,Dc,Pc,Ic,Ec,Mc,Fc,_c,Lc,Oc,$c,Uc,Bc,Vc,zc,Hc,Wc,Gc,Kc,Yc,Zc,Xc,Qc,Jc,qc,ed,td,sd,ad,rd,nd,id,ld,od,cd;const[i,l]=x.useState(!1),[o,c]=x.useState(!1),[d,m]=x.useState(!1),[u,h]=x.useState(!1),[g,p]=x.useState(!1),[y,f]=x.useState(!1),[b,v]=x.useState(!1),[w,A]=x.useState(null),[S,k]=x.useState(!1),[F,T]=x.useState(null),[D,C]=x.useState([]),[P,R]=x.useState(0);x.useEffect(()=>{(async()=>{if(t!=null&&t.id||t!=null&&t.requestId){const Le=t.id||t.requestId;try{const pe=await ks(Le),me=(pe==null?void 0:pe.approvalLevels)||(pe==null?void 0:pe.approvals)||[];if(me&&me.length>0){const fe=me.map(xe=>{var Ue;return{step:xe.levelNumber||xe.level_number||0,levelNumber:xe.levelNumber||xe.level_number||0,levelName:xe.levelName||xe.level_name,approver:xe.approverName||xe.approver_name||"",approverEmail:(xe.approverEmail||xe.approver_email||"").toLowerCase(),status:((Ue=xe.status)==null?void 0:Ue.toLowerCase())||"waiting",tatHours:xe.tatHours||xe.tat_hours||24,elapsedHours:xe.elapsedHours||xe.elapsed_hours,approvedAt:xe.actionDate||xe.action_date,comment:xe.comments||xe.comment,levelId:xe.levelId||xe.level_id}}).sort((xe,Ue)=>(xe.levelNumber||0)-(Ue.levelNumber||0));C(xe=>xe.length!==fe.length||xe.some((tt,Ae)=>{const is=fe[Ae];return!is||tt.levelNumber!==is.levelNumber||tt.levelName!==is.levelName||tt.approverEmail!==is.approverEmail||tt.status!==is.status})?fe:xe)}else C([])}catch(pe){console.warn("Failed to load approval flows from API:",pe),t!=null&&t.approvalFlow&&t.approvalFlow.length>0&&C(t.approvalFlow)}}else t!=null&&t.approvalFlow&&t.approvalFlow.length>0&&C(t.approvalFlow)})()},[t==null?void 0:t.id,t==null?void 0:t.requestId,t==null?void 0:t.totalLevels,P]),x.useEffect(()=>{if(t!=null&&t.id||t!=null&&t.requestId){const Z=t.id||t.requestId;(async()=>{try{const pe=await ks(Z),me=(pe==null?void 0:pe.approvalLevels)||(pe==null?void 0:pe.approvals)||[];if(me&&me.length>0){const fe=me.map(xe=>{var Ue;return{step:xe.levelNumber||xe.level_number||0,levelNumber:xe.levelNumber||xe.level_number||0,levelName:xe.levelName||xe.level_name,approver:xe.approverName||xe.approver_name||"",approverEmail:(xe.approverEmail||xe.approver_email||"").toLowerCase(),status:((Ue=xe.status)==null?void 0:Ue.toLowerCase())||"waiting",tatHours:xe.tatHours||xe.tat_hours||24,elapsedHours:xe.elapsedHours||xe.elapsed_hours,approvedAt:xe.actionDate||xe.action_date,comment:xe.comments||xe.comment,levelId:xe.levelId||xe.level_id}}).sort((xe,Ue)=>(xe.levelNumber||0)-(Ue.levelNumber||0));C(fe)}}catch(pe){console.warn("Failed to load approval flows from API:",pe)}})()}},[t==null?void 0:t.currentStep,t==null?void 0:t.totalLevels]);const V=async()=>{R(Z=>Z+1),await new Promise(Z=>setTimeout(Z,500)),n==null||n()},I=(Z,Le,pe)=>{if(Le&&Le.trim())return Le.toLowerCase().includes("additional approver"),Le;const me={1:"Dealer - Proposal Submission",2:"Requestor Evaluation & Confirmation",3:"Department Lead Approval",4:"Activity Creation",5:"Dealer - Completion Documents",6:"Requestor - Claim Approval",7:"E-Invoice Generation",8:"Credit Note from SAP"};return me[Z]?me[Z]:pe&&pe!=="Unknown"&&pe!=="System"?`Additional Approver - ${pe}`:`Additional Approver - Step ${Z}`},$=(Z,Le,pe)=>{if(Le&&Le.toLowerCase().includes("additional approver"))return pe&&pe!=="Unknown"&&pe!=="System"?`${pe} will review and approve this request as an additional approver.`:"Additional approver will review and approve this request.";if(Le&&Le.trim()){const xe=Le.toLowerCase();if(xe.includes("dealer")&&xe.includes("proposal"))return"Dealer submits the proposal for the activity with comments including proposal document with requested details, cost break-up, timeline for closure, and other requests";if(xe.includes("requestor")&&(xe.includes("evaluation")||xe.includes("confirmation")))return"Requestor evaluates the request and confirms with comments. Decision point: Confirms? (YES → Continue to Dept Lead / NO → Request is cancelled)";if(xe.includes("department lead"))return"Department Lead approval. Decision point: Approved? (YES → Budget is blocked in the respective IO for the activity / NO → More clarification required → Request is cancelled)";if(xe.includes("activity creation"))return"Activity is created. Activity confirmation email is auto-triggered to dealer / requestor / Lead. IO confirmation to be made.";if(xe.includes("dealer")&&(xe.includes("completion")||xe.includes("documents")))return"Dealer submits the necessary documents upon completion of the activity including document attachments (Zip Folder) and brief description";if(xe.includes("requestor")&&(xe.includes("claim")||xe.includes("approval")))return"Requestor approves the claim in full or can modify the amount. If more information is required, can request additional details from dealer.";if(xe.includes("e-invoice")||xe.includes("invoice generation"))return"E-invoice will be generated through DMS.";if(xe.includes("credit note")||xe.includes("sap"))return"Got credit note from SAP. Review and send to dealer to complete the claim management process."}const fe={1:"Dealer submits the proposal for the activity with comments including proposal document with requested details, cost break-up, timeline for closure, and other requests",2:"Requestor evaluates the request and confirms with comments. Decision point: Confirms? (YES → Continue to Dept Lead / NO → Request is cancelled)",3:"Department Lead approval. Decision point: Approved? (YES → Budget is blocked in the respective IO for the activity / NO → More clarification required → Request is cancelled)",4:"Activity is created. Activity confirmation email is auto-triggered to dealer / requestor / Lead. IO confirmation to be made.",5:"Dealer submits the necessary documents upon completion of the activity including document attachments (Zip Folder) and brief description",6:"Requestor approves the claim in full or can modify the amount. If more information is required, can request additional details from dealer.",7:"E-invoice will be generated through DMS.",8:"Got credit note from SAP. Review and send to dealer to complete the claim management process."};return fe[Z]?fe[Z]:pe&&pe!=="Unknown"&&pe!=="System"?`${pe} will review and approve this request.`:`Step ${Z} approval required.`},_=(t==null?void 0:t.currentLevel)||(t==null?void 0:t.current_level)||(t==null?void 0:t.currentStep),N=_!=null?Number(_):null,j=D.map((Z,Le)=>{var St,ja,Ms,Ne;const pe=Number(Z.levelNumber||Z.level_number||Z.step||Le+1),me=Z.levelName||Z.level_name,fe=(St=t==null?void 0:t.approvals)==null?void 0:St.find(Ee=>Ee.levelId===Z.levelId);let xe;if(me&&me.toLowerCase().includes("department lead")||pe===3){const Ee=(t==null?void 0:t.internalOrder)||(t==null?void 0:t.internal_order);if(Ee!=null&&Ee.ioNumber||Ee!=null&&Ee.io_number){const Qt=Ee.ioRemark||Ee.io_remark||Ee.IORemark||Ee.IO_Remark||(Ee==null?void 0:Ee.ioRemark)||(Ee==null?void 0:Ee.io_remark)||"";xe={ioNumber:Ee.ioNumber||Ee.io_number||"",ioRemark:Qt&&typeof Qt=="string"&&Qt.trim()?Qt.trim():"N/A",blockedAmount:Ee.ioBlockedAmount||Ee.io_blocked_amount||0,availableBalance:Ee.ioAvailableBalance||Ee.io_available_balance||0,remainingBalance:Ee.ioRemainingBalance||Ee.io_remaining_balance||0,organizedBy:((ja=Ee.organizer)==null?void 0:ja.displayName)||((Ms=Ee.organizer)==null?void 0:Ms.name)||Ee.organizedBy||Z.approver||"N/A",organizedAt:Ee.organizedAt||Ee.organized_at||Z.approvedAt||(t==null?void 0:t.updatedAt)||""}}}let tt;pe===6&&(fe!=null&&fe.dmsDetails?tt={dmsNumber:fe.dmsDetails.dmsNumber||"",dmsRemarks:fe.dmsDetails.dmsRemarks||"",pushedBy:fe.dmsDetails.pushedBy||Z.approver,pushedAt:fe.dmsDetails.pushedAt||Z.approvedAt||""}:t!=null&&t.dmsNumber&&(tt={dmsNumber:t.dmsNumber||"",dmsRemarks:t.dmsRemarks||((Ne=t.dmsDetails)==null?void 0:Ne.dmsRemarks)||"",pushedBy:Z.approver,pushedAt:Z.approvedAt||t.updatedAt||""}));let Ae;if(N!==null&&N>0)if(pe>N)Ae="waiting";else if(pe<N)if(fe!=null&&fe.status){const Ee=fe.status.toLowerCase();Ee==="approved"?Ae="approved":Ee==="rejected"?Ae="rejected":Ae="waiting"}else Ae="waiting";else if(fe!=null&&fe.status){const Ee=fe.status.toLowerCase();Ee==="approved"?Ae="approved":Ee==="rejected"?Ae="rejected":Ae="in_progress"}else{const Ee=(Z.status||"pending").toLowerCase();Ee==="in-review"||Ee==="in_review"||Ee==="in review"||Ee==="pending"?Ae="in_progress":Ae=Ee}else if(fe!=null&&fe.status){const Ee=fe.status.toLowerCase();Ee==="approved"?Ae="approved":Ee==="rejected"?Ae="rejected":Ee==="pending"||Ee==="in_progress"||Ee==="in-progress"?Ae="in_progress":Ae=(Z.status||"waiting").toLowerCase()}else{const Ee=(Z.status||"waiting").toLowerCase();Ee==="in-review"||Ee==="in_review"||Ee==="in review"||Ee==="pending"?Ae="in_progress":Ae=Ee}const Ht=Ae==="waiting"?0:Z.elapsedHours||0,xa=Z.approver||Z.approverName||"Unknown";return{step:pe,title:I(pe,me,xa),approver:xa,description:$(pe,me,xa)||Z.description||"",tatHours:Z.tatHours||24,status:Ae,comment:Z.comment||(fe==null?void 0:fe.comment),approvedAt:Z.approvedAt||(fe==null?void 0:fe.timestamp),elapsedHours:Ht,ioDetails:xe,dmsDetails:tt,einvoiceUrl:pe===7?fe==null?void 0:fe.einvoiceUrl:void 0,emailTemplateUrl:(fe==null?void 0:fe.emailTemplateUrl)||void 0}}),U=N!==null?j.find(Z=>Z.step===N):null,z=U&&(U.status==="pending"||U.status==="in_progress")?U:j.find(Z=>{var pe;const Le=((pe=Z.status)==null?void 0:pe.toLowerCase())||"";return Le==="pending"||Le==="in_progress"||Le==="in-review"||Le==="in_review"}),B=z?z.step:N||(t==null?void 0:t.currentStep)||1,X=((Ia=s==null?void 0:s.email)==null?void 0:Ia.toLowerCase())||"",H=((va=t==null?void 0:t.dealerEmail)==null?void 0:va.toLowerCase())||((ge=(Q=t==null?void 0:t.dealer)==null?void 0:Q.email)==null?void 0:ge.toLowerCase())||((ke=(J=t==null?void 0:t.claimDetails)==null?void 0:J.dealerEmail)==null?void 0:ke.toLowerCase())||((We=(Re=t==null?void 0:t.claimDetails)==null?void 0:Re.dealer_email)==null?void 0:We.toLowerCase())||"",oe=H&&X===H,Y=D.find(Z=>(Z.step||Z.levelNumber||Z.level_number)===B),E=((Y==null?void 0:Y.approverEmail)||"").toLowerCase(),O=E&&X===E,L=((Ke=(Ie=t==null?void 0:t.initiator)==null?void 0:Ie.email)==null?void 0:Ke.toLowerCase())||(($e=t==null?void 0:t.initiatorEmail)==null?void 0:$e.toLowerCase())||"",W=D.find(Z=>{const Le=(Z.approverEmail||"").toLowerCase(),pe=(Z.levelName||"").toLowerCase();return L&&Le===L||pe.includes("requestor evaluation")||pe.includes("requestor")&&pe.includes("confirmation")}),G=W&&(W.step||W.levelNumber||W.level_number)||2,ee=W||D.find(Z=>(Z.step||Z.levelNumber||Z.level_number)===2),ce=((ee==null?void 0:ee.approverEmail)||"").toLowerCase(),Pe=ce&&X===ce,Oe=D.find(Z=>(Z.step||Z.levelNumber||Z.level_number)===1),ie=((Oe==null?void 0:Oe.approverEmail)||"").toLowerCase(),de=ie&&X===ie,je=D.find(Z=>(Z.levelName||"").toLowerCase().includes("department lead")),Me=((je==null?void 0:je.approverEmail)||"").toLowerCase(),ye=Me&&X===Me,ae=async Z=>{var Le,pe;try{if(!(t!=null&&t.id)&&!(t!=null&&t.requestId))throw new Error("Request ID not found");const me=t.id||t.requestId;Z.proposalDocument&&await hn(Z.proposalDocument,me,"APPROVAL");for(const xe of Z.otherDocuments)await hn(xe,me,"SUPPORTING");const fe=Z.costBreakup.reduce((xe,Ue)=>xe+Ue.amount,0);await M2(me,{proposalDocument:Z.proposalDocument||void 0,costBreakup:Z.costBreakup.map(xe=>({description:xe.description,amount:xe.amount})),totalEstimatedBudget:fe,expectedCompletionDate:Z.expectedCompletionDate,dealerComments:Z.dealerComments}),q.success("Proposal submitted successfully"),V()}catch(me){console.error("Failed to submit proposal:",me);const fe=((pe=(Le=me==null?void 0:me.response)==null?void 0:Le.data)==null?void 0:pe.message)||(me==null?void 0:me.message)||"Failed to submit proposal. Please try again.";throw q.error(fe),me}},ne=async Z=>{var Le,pe,me,fe,xe;try{if(!(t!=null&&t.id)&&!(t!=null&&t.requestId))throw new Error("Request ID not found");const Ue=t.id||t.requestId,tt=await ks(Ue),Ae=(tt==null?void 0:tt.approvalLevels)||(tt==null?void 0:tt.approvals)||[],is=((pe=(Le=t==null?void 0:t.initiator)==null?void 0:Le.email)==null?void 0:pe.toLowerCase())||((me=t==null?void 0:t.initiatorEmail)==null?void 0:me.toLowerCase())||"",Ht=Ae.find(St=>{const ja=(St.approverEmail||St.approver_email||"").toLowerCase(),Ms=(St.levelName||St.level_name||"").toLowerCase(),Ne=St.levelNumber||St.level_number;return is&&ja===is||Ms.includes("requestor evaluation")||Ms.includes("requestor")&&Ms.includes("confirmation")||Ne===G})||Ae.find(St=>(St.levelNumber||St.level_number)===2);if(!(Ht!=null&&Ht.levelId)&&!(Ht!=null&&Ht.level_id))throw new Error("Initiator approval level not found");const xa=Ht.levelId||Ht.level_id;await dn(Ue,xa,Z),q.success("Proposal approved successfully"),V()}catch(Ue){console.error("Failed to approve proposal:",Ue);const tt=((xe=(fe=Ue==null?void 0:Ue.response)==null?void 0:fe.data)==null?void 0:xe.message)||(Ue==null?void 0:Ue.message)||"Failed to approve proposal. Please try again.";throw q.error(tt),Ue}},xt=async Z=>{var Le,pe,me,fe,xe;try{if(!(t!=null&&t.id)&&!(t!=null&&t.requestId))throw new Error("Request ID not found");const Ue=t.id||t.requestId,tt=await ks(Ue),Ae=(tt==null?void 0:tt.approvalLevels)||(tt==null?void 0:tt.approvals)||[],is=((pe=(Le=t==null?void 0:t.initiator)==null?void 0:Le.email)==null?void 0:pe.toLowerCase())||((me=t==null?void 0:t.initiatorEmail)==null?void 0:me.toLowerCase())||"",Ht=Ae.find(St=>{const ja=(St.approverEmail||St.approver_email||"").toLowerCase(),Ms=(St.levelName||St.level_name||"").toLowerCase(),Ne=St.levelNumber||St.level_number;return is&&ja===is||Ms.includes("requestor evaluation")||Ms.includes("requestor")&&Ms.includes("confirmation")||Ne===G})||Ae.find(St=>(St.levelNumber||St.level_number)===2);if(!(Ht!=null&&Ht.levelId)&&!(Ht!=null&&Ht.level_id))throw new Error("Initiator approval level not found");const xa=Ht.levelId||Ht.level_id;await mn(Ue,xa,"Proposal rejected by requestor",Z),q.success("Proposal rejected. Request has been cancelled."),V()}catch(Ue){console.error("Failed to reject proposal:",Ue);const tt=((xe=(fe=Ue==null?void 0:Ue.response)==null?void 0:fe.data)==null?void 0:xe.message)||(Ue==null?void 0:Ue.message)||"Failed to reject proposal. Please try again.";throw q.error(tt),Ue}},ve=async Z=>{var Le,pe;try{if(!(t!=null&&t.id)&&!(t!=null&&t.requestId))throw new Error("Request ID not found");const me=t.id||t.requestId,fe=await ks(me),xe=(fe==null?void 0:fe.approvalLevels)||(fe==null?void 0:fe.approvals)||[],Ue=xe.find(Ae=>(Ae.levelName||Ae.level_name||"").toLowerCase().includes("department lead"))||xe.find(Ae=>(Ae.levelNumber||Ae.level_number)===3);if(!(Ue!=null&&Ue.levelId)&&!(Ue!=null&&Ue.level_id))throw new Error("Department Lead approval level not found");const tt=Ue.levelId||Ue.level_id;await oo(me,{ioNumber:Z.ioNumber,ioRemark:Z.ioRemark}),await dn(me,tt,Z.comments),q.success("Request approved and IO organized successfully"),V()}catch(me){console.error("Failed to approve and organize IO:",me);const fe=((pe=(Le=me==null?void 0:me.response)==null?void 0:Le.data)==null?void 0:pe.message)||(me==null?void 0:me.message)||"Failed to approve request. Please try again.";throw q.error(fe),me}},Fe=async Z=>{var Le,pe;try{if(!(t!=null&&t.id)&&!(t!=null&&t.requestId))throw new Error("Request ID not found");const me=t.id||t.requestId,fe=Z.closedExpenses.map(xe=>({description:xe.description,amount:xe.amount}));if(await F2(me,{activityCompletionDate:Z.activityCompletionDate,numberOfParticipants:Z.numberOfParticipants,closedExpenses:fe,totalClosedExpenses:Z.totalClosedExpenses,completionDocuments:Z.completionDocuments,activityPhotos:Z.activityPhotos}),Z.invoicesReceipts&&Z.invoicesReceipts.length>0)for(const xe of Z.invoicesReceipts)await hn(xe,me,"SUPPORTING");Z.attendanceSheet&&await hn(Z.attendanceSheet,me,"SUPPORTING"),q.success("Completion documents submitted successfully"),V()}catch(me){console.error("Failed to submit completion documents:",me);const fe=((pe=(Le=me==null?void 0:me.response)==null?void 0:Le.data)==null?void 0:pe.message)||(me==null?void 0:me.message)||"Failed to submit completion documents. Please try again.";throw q.error(fe),me}},mt=async Z=>{var Le,pe;try{if(!(t!=null&&t.id)&&!(t!=null&&t.requestId))throw new Error("Request ID not found");const me=t.id||t.requestId,fe=new Date().toISOString().slice(0,10);await L2(me,{eInvoiceDate:fe}),q.success("Pushed to DMS successfully. E-invoice will be generated automatically."),V()}catch(me){console.error("[DealerClaimWorkflowTab] Error pushing to DMS:",me);const fe=((pe=(Le=me==null?void 0:me.response)==null?void 0:Le.data)==null?void 0:pe.message)||(me==null?void 0:me.message)||"Failed to push to DMS. Please try again.";throw q.error(fe),me}},Ot=async Z=>{var Le,pe;try{if(!(t!=null&&t.id)&&!(t!=null&&t.requestId))throw new Error("Request ID not found");const me=t.id||t.requestId,fe=await ks(me),xe=(fe==null?void 0:fe.approvalLevels)||(fe==null?void 0:fe.approvals)||[],Ue=xe.find(Ae=>(Ae.levelName||Ae.level_name||"").toLowerCase().includes("department lead"))||xe.find(Ae=>(Ae.levelNumber||Ae.level_number)===3);if(!(Ue!=null&&Ue.levelId)&&!(Ue!=null&&Ue.level_id))throw new Error("Department Lead approval level not found");const tt=Ue.levelId||Ue.level_id;await mn(me,tt,"Dept Lead rejected - More clarification required",Z),q.success("Request rejected. Request has been cancelled."),V()}catch(me){console.error("Failed to reject request:",me);const fe=((pe=(Le=me==null?void 0:me.response)==null?void 0:Le.data)==null?void 0:pe.message)||(me==null?void 0:me.message)||"Failed to reject request. Please try again.";throw q.error(fe),me}},[zt,it]=x.useState(null);x.useEffect(()=>{if(!t){it(null);return}(async()=>{try{const Le=t.id||t.requestId;if(!Le){it(null);return}const pe=await ks(Le),me=(pe==null?void 0:pe.documents)||[],fe=t.proposalDetails||(pe==null?void 0:pe.proposalDetails)||{},xe=me.find(Ae=>Ae.category==="APPROVAL"||Ae.type==="proposal"||Ae.documentCategory==="APPROVAL"),Ue=me.filter(Ae=>Ae.category==="SUPPORTING"||Ae.type==="supporting"||Ae.documentCategory==="SUPPORTING");let tt=fe.costBreakup||[];if(typeof tt=="string")try{tt=JSON.parse(tt)}catch(Ae){console.warn("Failed to parse costBreakup JSON:",Ae),tt=[]}Array.isArray(tt)||(tt=[]),it({proposalDocument:xe?{name:xe.fileName||xe.file_name||xe.name,id:xe.documentId||xe.document_id||xe.id}:void 0,costBreakup:tt,expectedCompletionDate:fe.expectedCompletionDate||"",otherDocuments:Ue.map(Ae=>({name:Ae.fileName||Ae.file_name||Ae.name,id:Ae.documentId||Ae.document_id||Ae.id})),dealerComments:fe.dealerComments||"",submittedAt:fe.submittedAt})}catch(Le){console.warn("Failed to load proposal data:",Le);const pe=t.proposalDetails||{};let me=pe.costBreakup||[];if(typeof me=="string")try{me=JSON.parse(me)}catch(fe){console.warn("Failed to parse costBreakup JSON:",fe),me=[]}Array.isArray(me)||(me=[]),it({proposalDocument:void 0,costBreakup:me,expectedCompletionDate:pe.expectedCompletionDate||"",otherDocuments:[],dealerComments:pe.dealerComments||"",submittedAt:pe.submittedAt})}})()},[t]);const Is=((Qe=t==null?void 0:t.claimDetails)==null?void 0:Qe.dealerName)||((gs=t==null?void 0:t.dealerInfo)==null?void 0:gs.name)||"Dealer",sa=((Dt=t==null?void 0:t.claimDetails)==null?void 0:Dt.activityName)||((at=t==null?void 0:t.activityInfo)==null?void 0:at.activityName)||(t==null?void 0:t.title)||"Activity";return e.jsxs(e.Fragment,{children:[e.jsxs(te,{children:[e.jsx(ue,{children:e.jsx("div",{className:"flex items-center justify-between",children:e.jsxs("div",{children:[e.jsxs(he,{className:"flex items-center gap-2",children:[e.jsx(Bs,{className:"w-5 h-5 text-purple-600"}),"Claim Management Workflow"]}),e.jsx(Te,{className:"mt-2",children:"Approval process for dealer claim management"})]})})}),e.jsx(se,{children:e.jsx("div",{className:"space-y-4",children:j.map((Z,Le)=>{var Ht,xa,St,ja,Ms;const pe=((Ht=Z.status)==null?void 0:Ht.toLowerCase())||"",me=pe==="pending"||pe==="in_progress",fe=Z.step===B,xe=me&&fe,Ue=Z.status==="approved",tt=D.find(Ne=>(Ne.step||Ne.levelNumber||Ne.level_number)===Z.step),Ae=tt!=null&&tt.levelId?(xa=t==null?void 0:t.approvals)==null?void 0:xa.find(Ne=>Ne.levelId===tt.levelId||Ne.level_id===tt.levelId):null,is=(Ae==null?void 0:Ae.status)==="PAUSED"||((St=t==null?void 0:t.pauseInfo)==null?void 0:St.isPaused)&&(((ja=t==null?void 0:t.pauseInfo)==null?void 0:ja.levelId)===(Ae==null?void 0:Ae.levelId)||((Ms=t==null?void 0:t.pauseInfo)==null?void 0:Ms.level_id)===(Ae==null?void 0:Ae.levelId));return e.jsx("div",{className:`relative p-5 rounded-lg border-2 transition-all ${V2(Z.status,xe)}`,children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:`p-3 rounded-xl ${z2(Z.status)}`,children:U2(Z.status)}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4 mb-2",children:[e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("h4",{className:"font-semibold text-gray-900",children:Z.title}),e.jsx(le,{className:B2(Z.status),children:Z.status.toLowerCase()}),Z.emailTemplateUrl&&Z.status==="approved"&&e.jsx(M,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0 hover:bg-blue-100",title:"View email template",onClick:()=>{A({stepNumber:Z.step,stepName:Z.title}),v(!0)},children:e.jsx(Ta,{className:"w-3.5 h-3.5 text-blue-600"})}),Z.step===7&&Z.einvoiceUrl&&Ue&&e.jsx(M,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0 hover:bg-green-100",title:"Download E-Invoice",onClick:()=>window.open(Z.einvoiceUrl,"_blank"),children:e.jsx(wt,{className:"w-3.5 h-3.5 text-green-600"})})]}),e.jsx("p",{className:"text-sm text-gray-600",children:Z.approver}),e.jsx("p",{className:"text-sm text-gray-500 mt-2 italic",children:Z.description})]}),e.jsxs("div",{className:"text-right",children:[e.jsxs("p",{className:"text-xs text-gray-500",children:["TAT: ",Rt(Z.tatHours)]}),Z.elapsedHours&&(xe||Ue)&&e.jsxs("p",{className:"text-xs text-gray-600 font-medium",children:["Elapsed: ",Rt(Z.elapsedHours)]})]})]}),Z.comment&&e.jsx("div",{className:"mt-3 p-3 bg-white rounded-lg border border-gray-200",children:e.jsx("p",{className:"text-sm text-gray-700",children:Z.comment})}),xe&&(Ae==null?void 0:Ae.sla)&&e.jsxs("div",{className:"mt-3 space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsx("span",{className:"text-gray-600",children:"Due by:"}),e.jsx("span",{className:"font-medium text-gray-900",children:Ae.sla.deadline?ma(Ae.sla.deadline,!0):"Not set"})]}),e.jsxs("div",{className:`border rounded-lg p-3 ${is?"bg-gray-100 border-gray-300":(Ae.sla.percentageUsed||0)>=100?"bg-red-50 border-red-200":(Ae.sla.percentageUsed||0)>=75?"bg-orange-50 border-orange-200":(Ae.sla.percentageUsed||0)>=50?"bg-amber-50 border-amber-200":"bg-green-50 border-green-200"}`,children:[e.jsxs("p",{className:"text-xs font-semibold text-gray-900 mb-3 flex items-center gap-2",children:[e.jsx(Ye,{className:"w-4 h-4"}),"Current Approver - Time Tracking ",is&&"(Paused)"]}),e.jsxs("div",{className:"space-y-2 text-xs mb-3",children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-gray-600",children:"Time elapsed since assigned:"}),e.jsx("span",{className:"font-medium text-gray-900",children:Ae.sla.elapsedText||"0 hours"})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-gray-600",children:"Time used:"}),e.jsxs("span",{className:"font-medium text-gray-900",children:[Ae.sla.elapsedText||"0 hours"," / ",Rt(Z.tatHours)," allocated"]})]})]}),e.jsxs("div",{className:"space-y-2",children:[(()=>{const Ne=Ae.sla.percentageUsed||0,Ee=()=>is?"bg-gray-500":Ne>=100?"bg-red-600":Ne>=75?"bg-orange-500":Ne>=50?"bg-amber-500":"bg-green-600",Qt=()=>is?"text-gray-600":Ne>=100?"text-red-600":Ne>=75?"text-orange-600":Ne>=50?"text-amber-600":"text-green-600";return e.jsxs(e.Fragment,{children:[e.jsx(ea,{value:Ne,className:"h-3",indicatorClassName:Ee()}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("span",{className:`text-xs font-semibold ${Qt()}`,children:["Progress: ",Math.min(100,Ne),"% of TAT used"]}),e.jsxs("span",{className:"text-xs font-medium text-gray-700",children:[Ae.sla.remainingText||"0 hours"," remaining"]})]})]})})(),Ae.sla.status==="breached"&&e.jsxs("p",{className:"text-xs font-semibold text-center text-red-600 flex items-center justify-center gap-1.5",children:[e.jsx(oi,{className:"w-4 h-4"}),"Deadline Breached"]}),Ae.sla.status==="critical"&&e.jsxs("p",{className:"text-xs font-semibold text-center text-orange-600 flex items-center justify-center gap-1.5",children:[e.jsx(os,{className:"w-4 h-4"}),"Approaching Deadline"]})]})]})]}),(()=>{const Ne=Z.levelName||Z.level_name;return(Ne&&Ne.toLowerCase().includes("department lead")||Z.title&&Z.title.toLowerCase().includes("department lead"))&&Z.status==="approved"&&Z.ioDetails&&Z.ioDetails.ioNumber&&e.jsxs("div",{className:"mt-3 p-3 bg-blue-50 rounded-lg border border-blue-200",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(xs,{className:"w-4 h-4 text-blue-600"}),e.jsx("p",{className:"text-xs font-semibold text-blue-900 uppercase tracking-wide",children:"IO Organisation Details"})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-xs text-gray-600",children:"IO Number:"}),e.jsx("span",{className:"text-sm font-semibold text-gray-900",children:Z.ioDetails.ioNumber})]}),Z.ioDetails.blockedAmount!==void 0&&Z.ioDetails.blockedAmount>0&&e.jsxs("div",{className:"flex items-center justify-between pt-1.5 border-t border-blue-100",children:[e.jsx("span",{className:"text-xs text-gray-600",children:"Blocked Amount:"}),e.jsxs("span",{className:"text-sm font-bold text-green-700",children:["₹",Z.ioDetails.blockedAmount.toLocaleString("en-IN",{minimumFractionDigits:2,maximumFractionDigits:2})]})]}),Z.ioDetails.remainingBalance!==void 0&&Z.ioDetails.remainingBalance!==null&&e.jsxs("div",{className:"flex items-center justify-between pt-1.5 border-t border-blue-100",children:[e.jsx("span",{className:"text-xs text-gray-600",children:"Remaining Balance:"}),e.jsxs("span",{className:"text-sm font-semibold text-blue-700",children:["₹",Z.ioDetails.remainingBalance.toLocaleString("en-IN",{minimumFractionDigits:2,maximumFractionDigits:2})]})]}),e.jsxs("div",{className:"pt-1.5 border-t border-blue-100",children:[e.jsx("p",{className:"text-xs text-gray-600 mb-1",children:"IO Remark:"}),e.jsx("p",{className:"text-sm text-gray-900",children:Z.ioDetails.ioRemark||"N/A"})]}),e.jsxs("div",{className:"pt-1.5 border-t border-blue-100 text-xs text-gray-500",children:["Organised by ",Z.ioDetails.organizedBy||Z.approver||"N/A"," on"," ",Z.ioDetails.organizedAt?Wn(Z.ioDetails.organizedAt):Z.approvedAt?Wn(Z.approvedAt):"N/A"]})]})]})})(),Z.step===6&&Z.dmsDetails&&Z.dmsDetails.dmsNumber&&e.jsxs("div",{className:"mt-3 p-3 bg-purple-50 rounded-lg border border-purple-200",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(Gt,{className:"w-4 h-4 text-purple-600"}),e.jsx("p",{className:"text-xs font-semibold text-purple-900 uppercase tracking-wide",children:"DMS Processing Details"})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-xs text-gray-600",children:"DMS Number:"}),e.jsx("span",{className:"text-sm font-semibold text-gray-900",children:Z.dmsDetails.dmsNumber})]}),Z.dmsDetails.dmsRemarks&&e.jsxs("div",{className:"pt-1.5 border-t border-purple-100",children:[e.jsx("p",{className:"text-xs text-gray-600 mb-1",children:"DMS Remarks:"}),e.jsx("p",{className:"text-sm text-gray-900",children:Z.dmsDetails.dmsRemarks})]}),Z.dmsDetails.pushedAt&&e.jsxs("div",{className:"pt-1.5 border-t border-purple-100 text-xs text-gray-500",children:["Pushed by ",Z.dmsDetails.pushedBy," on"," ",Wn(Z.dmsDetails.pushedAt)]})]})]}),(()=>{const Ne=D.find(yt=>(yt.step||yt.levelNumber||yt.level_number)===Z.step),Ee=((Ne==null?void 0:Ne.approverEmail)||"").toLowerCase(),Qt=Ee&&X===Ee,ia=Z.step===1||(Ne==null?void 0:Ne.levelName)&&Ne.levelName.toLowerCase().includes("dealer");return xe&&(Qt||ia&&oe)})()&&e.jsxs("div",{className:"mt-4 flex gap-2",children:[Z.step===1&&(oe||de)&&e.jsxs(M,{className:"bg-purple-600 hover:bg-purple-700",onClick:()=>{l(!0)},children:[e.jsx(Ps,{className:"w-4 h-4 mr-2"}),"Submit Proposal"]}),Z.step===G&&(a||Pe)&&e.jsxs(M,{className:"bg-blue-600 hover:bg-blue-700",onClick:()=>{c(!0)},children:[e.jsx(Ce,{className:"w-4 h-4 mr-2"}),"Review Request"]}),(()=>{const Ne=D.find(Et=>(Et.levelName||"").toLowerCase().includes("department lead"));if(!(Ne&&Z.step===(Ne.step||Ne.levelNumber||Ne.level_number)))return null;const Qt=((Ne==null?void 0:Ne.approverEmail)||"").toLowerCase();if(!(Qt&&X===Qt||ye||O))return null;const nt=(t==null?void 0:t.internalOrder)||(t==null?void 0:t.internal_order),yt=(nt==null?void 0:nt.ioNumber)||(nt==null?void 0:nt.io_number)||(t==null?void 0:t.ioNumber)||"",Jt=yt&&yt.trim()!=="";return e.jsxs("div",{className:"space-y-1",children:[e.jsxs(M,{className:"bg-green-600 hover:bg-green-700 disabled:opacity-50 disabled:cursor-not-allowed",onClick:()=>{m(!0)},disabled:!Jt,children:[e.jsx(Ce,{className:"w-4 h-4 mr-2"}),"Approve and Organise IO"]}),!Jt&&e.jsx("p",{className:"text-xs text-amber-600",children:"Please add an IO number in the IO tab before approving this step."})]})})(),(()=>{const Ne=D.find(yt=>(yt.step||yt.levelNumber||yt.level_number)===Z.step),Ee=((Ne==null?void 0:Ne.approverEmail)||"").toLowerCase(),Qt=oe&&Ee===H,ia=((Ne==null?void 0:Ne.levelName)||Z.title||"").toLowerCase(),nt=ia.includes("dealer completion")||ia.includes("completion documents");return Qt&&nt})()&&e.jsxs(M,{className:"bg-purple-600 hover:bg-purple-700",onClick:()=>{h(!0)},children:[e.jsx(Ps,{className:"w-4 h-4 mr-2"}),"Upload Completion Docs"]}),(()=>{const Ne=D.find(nt=>{const yt=(nt.levelName||"").toLowerCase();return yt.includes("requestor claim")||yt.includes("requestor - claim")});if(!(Ne&&Z.step===(Ne.step||Ne.levelNumber||Ne.level_number)))return null;const Qt=((Ne==null?void 0:Ne.approverEmail)||"").toLowerCase();return a||Qt&&X===Qt?e.jsxs(M,{className:"bg-indigo-600 hover:bg-indigo-700",onClick:()=>{p(!0)},children:[e.jsx(Gt,{className:"w-4 h-4 mr-2"}),"Push to DMS"]}):null})(),Z.step===8&&(()=>{var yt;const Ne=D.find(Jt=>(Jt.step||Jt.levelNumber||Jt.level_number)===8),Ee=((Ne==null?void 0:Ne.approverEmail)||"").toLowerCase(),Qt=Ee&&X===Ee,ia=((yt=s==null?void 0:s.role)==null?void 0:yt.toUpperCase())||"";return Qt||(ia==="FINANCE"||ia==="ADMIN")})()&&e.jsxs(M,{className:"bg-green-600 hover:bg-green-700",onClick:()=>{f(!0)},children:[e.jsx(xs,{className:"w-4 h-4 mr-2"}),"View & Send Credit Note"]}),(()=>{const Ne=D.find(nt=>(nt.step||nt.levelNumber||nt.level_number)===Z.step),Qt=((Ne==null?void 0:Ne.levelName)||Z.title||"").toLowerCase().includes("additional approver"),ia=Z.step===1||Z.step===G||(()=>{const nt=D.find(yt=>(yt.levelName||"").toLowerCase().includes("department lead"));return nt&&Z.step===(nt.step||nt.levelNumber||nt.level_number)})()||(()=>{const nt=D.find(zi=>(zi.step||zi.levelNumber||zi.level_number)===Z.step),yt=((nt==null?void 0:nt.approverEmail)||"").toLowerCase(),Jt=oe&&yt===H,Et=((nt==null?void 0:nt.levelName)||Z.title||"").toLowerCase(),Na=Et.includes("dealer completion")||Et.includes("completion documents");return Jt&&Na})()||(()=>{const nt=D.find(yt=>{const Jt=(yt.levelName||"").toLowerCase();return Jt.includes("requestor claim")||Jt.includes("requestor - claim")});return nt&&Z.step===(nt.step||nt.levelNumber||nt.level_number)})()||Z.step===8;if(Qt||!ia){const nt=(Ne==null?void 0:Ne.levelId)||(Ne==null?void 0:Ne.level_id);if(nt){const yt=(Ne==null?void 0:Ne.levelName)||(Ne==null?void 0:Ne.level_name)||Z.title||"Approval Level",Jt=(Ne==null?void 0:Ne.approverName)||(Ne==null?void 0:Ne.approver_name)||Z.approver||"Approver";return e.jsxs(M,{className:"bg-blue-600 hover:bg-blue-700",onClick:()=>{T({levelId:nt,levelName:yt,approverName:Jt}),k(!0)},children:[e.jsx(Ce,{className:"w-4 h-4 mr-2"}),"Review Request"]})}return e.jsxs(e.Fragment,{children:[e.jsxs(M,{className:"bg-green-600 hover:bg-green-700",onClick:async()=>{var yt,Jt;try{if(!(t!=null&&t.id)&&!(t!=null&&t.requestId))throw new Error("Request ID not found");const Et=t.id||t.requestId;if(!nt){q.error("Approval level not found");return}await dn(Et,nt,""),q.success("Request approved successfully"),V()}catch(Et){console.error("Failed to approve:",Et);const Na=((Jt=(yt=Et==null?void 0:Et.response)==null?void 0:yt.data)==null?void 0:Jt.message)||(Et==null?void 0:Et.message)||"Failed to approve request. Please try again.";q.error(Na)}},children:[e.jsx(Ce,{className:"w-4 h-4 mr-2"}),"Approve"]}),e.jsxs(M,{variant:"destructive",onClick:async()=>{var yt,Jt;try{if(!(t!=null&&t.id)&&!(t!=null&&t.requestId))throw new Error("Request ID not found");const Et=t.id||t.requestId;if(!nt){q.error("Approval level not found");return}const Na=prompt("Please provide a reason for rejection:");if(Na===null)return;await mn(Et,nt,"Request rejected",Na),q.success("Request rejected successfully"),V()}catch(Et){console.error("Failed to reject:",Et);const Na=((Jt=(yt=Et==null?void 0:Et.response)==null?void 0:yt.data)==null?void 0:Jt.message)||(Et==null?void 0:Et.message)||"Failed to reject request. Please try again.";q.error(Na)}},children:[e.jsx(gt,{className:"w-4 h-4 mr-2"}),"Reject"]})]})}return null})()]}),Z.approvedAt&&e.jsxs("p",{className:"text-xs text-gray-500 mt-2",children:["Approved on ",Wn(Z.approvedAt)]})]})]})},Le)})})})]}),e.jsx(T2,{isOpen:i,onClose:()=>l(!1),onSubmit:ae,dealerName:Is,activityName:sa,requestId:(t==null?void 0:t.id)||(t==null?void 0:t.requestId)}),e.jsx(P2,{isOpen:o,onClose:()=>{c(!1)},onApprove:ne,onReject:xt,proposalData:zt,dealerName:Is,activityName:sa,requestId:(t==null?void 0:t.id)||(t==null?void 0:t.requestId)}),e.jsx(k2,{isOpen:d,onClose:()=>m(!1),onApprove:ve,onReject:Ot,requestTitle:t==null?void 0:t.title,requestId:(t==null?void 0:t.id)||(t==null?void 0:t.requestId),preFilledIONumber:((qe=t==null?void 0:t.internalOrder)==null?void 0:qe.ioNumber)||((pt=t==null?void 0:t.internalOrder)==null?void 0:pt.io_number)||((cs=t==null?void 0:t.internal_order)==null?void 0:cs.ioNumber)||((Pt=t==null?void 0:t.internal_order)==null?void 0:Pt.io_number)||void 0,preFilledIORemark:((Ws=t==null?void 0:t.internalOrder)==null?void 0:Ws.ioRemark)||((aa=t==null?void 0:t.internalOrder)==null?void 0:aa.io_remark)||((ra=t==null?void 0:t.internal_order)==null?void 0:ra.ioRemark)||((ba=t==null?void 0:t.internal_order)==null?void 0:ba.io_remark)||void 0,preFilledBlockedAmount:((ft=t==null?void 0:t.internalOrder)==null?void 0:ft.ioBlockedAmount)||((Ka=t==null?void 0:t.internalOrder)==null?void 0:Ka.io_blocked_amount)||((Ya=t==null?void 0:t.internal_order)==null?void 0:Ya.ioBlockedAmount)||((Za=t==null?void 0:t.internal_order)==null?void 0:Za.io_blocked_amount)||void 0,preFilledRemainingBalance:((Xa=t==null?void 0:t.internalOrder)==null?void 0:Xa.ioRemainingBalance)||((Qa=t==null?void 0:t.internalOrder)==null?void 0:Qa.io_remaining_balance)||((Ja=t==null?void 0:t.internal_order)==null?void 0:Ja.ioRemainingBalance)||((qa=t==null?void 0:t.internal_order)==null?void 0:qa.io_remaining_balance)||void 0}),e.jsx(S2,{isOpen:u,onClose:()=>h(!1),onSubmit:Fe,dealerName:Is,activityName:sa,requestId:(t==null?void 0:t.id)||(t==null?void 0:t.requestId)}),e.jsx(R2,{isOpen:g,onClose:()=>p(!1),onPush:mt,completionDetails:{activityCompletionDate:((It=t==null?void 0:t.completionDetails)==null?void 0:It.activityCompletionDate)||((us=t==null?void 0:t.completionDetails)==null?void 0:us.activity_completion_date),numberOfParticipants:((Gs=t==null?void 0:t.completionDetails)==null?void 0:Gs.numberOfParticipants)||((yr=t==null?void 0:t.completionDetails)==null?void 0:yr.number_of_participants),closedExpenses:(t==null?void 0:t.completionExpenses)||(t==null?void 0:t.completion_expenses)||((er=t==null?void 0:t.completionDetails)==null?void 0:er.closedExpenses)||((Es=t==null?void 0:t.completionDetails)==null?void 0:Es.closed_expenses),totalClosedExpenses:((Ea=t==null?void 0:t.budgetTracking)==null?void 0:Ea.closedExpenses)||((Hr=t==null?void 0:t.budgetTracking)==null?void 0:Hr.closed_expenses)||((Wr=t==null?void 0:t.completionDetails)==null?void 0:Wr.totalClosedExpenses)||((Gr=t==null?void 0:t.completionDetails)==null?void 0:Gr.total_closed_expenses),completionDescription:((Kr=t==null?void 0:t.completionDetails)==null?void 0:Kr.completionDescription)||((Yr=t==null?void 0:t.completionDetails)==null?void 0:Yr.completion_description)},ioDetails:{ioNumber:((Zr=t==null?void 0:t.internalOrder)==null?void 0:Zr.ioNumber)||((Xr=t==null?void 0:t.internalOrder)==null?void 0:Xr.io_number)||((Qr=t==null?void 0:t.internal_order)==null?void 0:Qr.ioNumber)||((Jr=t==null?void 0:t.internal_order)==null?void 0:Jr.io_number),blockedAmount:((et=t==null?void 0:t.internalOrder)==null?void 0:et.ioBlockedAmount)||((Xt=t==null?void 0:t.internalOrder)==null?void 0:Xt.io_blocked_amount)||((As=t==null?void 0:t.internal_order)==null?void 0:As.ioBlockedAmount)||((Ks=t==null?void 0:t.internal_order)==null?void 0:Ks.io_blocked_amount),availableBalance:((vr=t==null?void 0:t.internalOrder)==null?void 0:vr.ioAvailableBalance)||((na=t==null?void 0:t.internalOrder)==null?void 0:na.io_available_balance)||((Ma=t==null?void 0:t.internal_order)==null?void 0:Ma.ioAvailableBalance)||((qr=t==null?void 0:t.internal_order)==null?void 0:qr.io_available_balance),remainingBalance:((en=t==null?void 0:t.internalOrder)==null?void 0:en.ioRemainingBalance)||((tn=t==null?void 0:t.internalOrder)==null?void 0:tn.io_remaining_balance)||((Sc=t==null?void 0:t.internal_order)==null?void 0:Sc.ioRemainingBalance)||((Tc=t==null?void 0:t.internal_order)==null?void 0:Tc.io_remaining_balance)},requestTitle:t==null?void 0:t.title,requestNumber:(t==null?void 0:t.requestNumber)||(t==null?void 0:t.request_number)||(t==null?void 0:t.id)}),e.jsx(A2,{isOpen:y,onClose:()=>f(!1),onDownload:async()=>{q.info("Download functionality will be implemented")},onSendToDealer:async()=>{var Z,Le;try{const pe=(t==null?void 0:t.requestId)||(t==null?void 0:t.id);if(!pe){q.error("Request ID not found");return}await O2(pe),q.success("Credit note sent to dealer successfully. Step 8 has been approved."),n&&n()}catch(pe){console.error("Failed to send credit note to dealer:",pe);const me=((Le=(Z=pe==null?void 0:pe.response)==null?void 0:Z.data)==null?void 0:Le.message)||(pe==null?void 0:pe.message)||"Failed to send credit note to dealer";q.error(me)}},creditNoteData:{creditNoteNumber:((kc=t==null?void 0:t.creditNote)==null?void 0:kc.creditNoteNumber)||((Rc=t==null?void 0:t.creditNote)==null?void 0:Rc.credit_note_number)||((Pc=(Dc=t==null?void 0:t.claimDetails)==null?void 0:Dc.creditNote)==null?void 0:Pc.creditNoteNumber)||((Ic=t==null?void 0:t.claimDetails)==null?void 0:Ic.creditNoteNumber)||((Ec=t==null?void 0:t.claimDetails)==null?void 0:Ec.credit_note_number),creditNoteDate:((Mc=t==null?void 0:t.creditNote)==null?void 0:Mc.creditNoteDate)||((Fc=t==null?void 0:t.creditNote)==null?void 0:Fc.credit_note_date)||((Lc=(_c=t==null?void 0:t.claimDetails)==null?void 0:_c.creditNote)==null?void 0:Lc.creditNoteDate)||((Oc=t==null?void 0:t.claimDetails)==null?void 0:Oc.creditNoteDate)||(($c=t==null?void 0:t.claimDetails)==null?void 0:$c.credit_note_date),creditNoteAmount:(Uc=t==null?void 0:t.creditNote)!=null&&Uc.creditNoteAmount?Number((Bc=t==null?void 0:t.creditNote)==null?void 0:Bc.creditNoteAmount):(Vc=t==null?void 0:t.creditNote)!=null&&Vc.credit_note_amount?Number((zc=t==null?void 0:t.creditNote)==null?void 0:zc.credit_note_amount):(Wc=(Hc=t==null?void 0:t.claimDetails)==null?void 0:Hc.creditNote)!=null&&Wc.creditNoteAmount?Number((Kc=(Gc=t==null?void 0:t.claimDetails)==null?void 0:Gc.creditNote)==null?void 0:Kc.creditNoteAmount):(Yc=t==null?void 0:t.claimDetails)!=null&&Yc.creditNoteAmount?Number((Zc=t==null?void 0:t.claimDetails)==null?void 0:Zc.creditNoteAmount):(Xc=t==null?void 0:t.claimDetails)!=null&&Xc.credit_note_amount?Number((Qc=t==null?void 0:t.claimDetails)==null?void 0:Qc.credit_note_amount):void 0,status:((Jc=t==null?void 0:t.creditNote)==null?void 0:Jc.status)||((ed=(qc=t==null?void 0:t.claimDetails)==null?void 0:qc.creditNote)==null?void 0:ed.status)||((td=t==null?void 0:t.creditNote)!=null&&td.creditNoteNumber?"CONFIRMED":"PENDING")},dealerInfo:{dealerName:((sd=t==null?void 0:t.claimDetails)==null?void 0:sd.dealerName)||((ad=t==null?void 0:t.claimDetails)==null?void 0:ad.dealer_name),dealerCode:((rd=t==null?void 0:t.claimDetails)==null?void 0:rd.dealerCode)||((nd=t==null?void 0:t.claimDetails)==null?void 0:nd.dealer_code),dealerEmail:((id=t==null?void 0:t.claimDetails)==null?void 0:id.dealerEmail)||((ld=t==null?void 0:t.claimDetails)==null?void 0:ld.dealer_email)},activityName:((od=t==null?void 0:t.claimDetails)==null?void 0:od.activityName)||((cd=t==null?void 0:t.claimDetails)==null?void 0:cd.activity_name),requestNumber:(t==null?void 0:t.requestNumber)||(t==null?void 0:t.id),requestId:(t==null?void 0:t.requestId)||(t==null?void 0:t.id),dueDate:t==null?void 0:t.dueDate}),e.jsx(D2,{isOpen:b,onClose:()=>{v(!1),A(null)},stepNumber:(w==null?void 0:w.stepNumber)||4,stepName:(w==null?void 0:w.stepName)||"Activity Creation",requestNumber:(t==null?void 0:t.requestNumber)||(t==null?void 0:t.id)||(t==null?void 0:t.request_number),recipientEmail:"system@royalenfield.com"}),F&&e.jsx(C2,{isOpen:S,onClose:()=>{k(!1),T(null)},onApprove:async Z=>{var Le,pe;try{if(!(t!=null&&t.id)&&!(t!=null&&t.requestId))throw new Error("Request ID not found");const me=t.id||t.requestId,fe=F.levelId;if(!fe){q.error("Approval level not found");return}await dn(me,fe,Z),q.success("Request approved successfully"),V(),k(!1),T(null)}catch(me){console.error("Failed to approve:",me);const fe=((pe=(Le=me==null?void 0:me.response)==null?void 0:Le.data)==null?void 0:pe.message)||(me==null?void 0:me.message)||"Failed to approve request. Please try again.";throw q.error(fe),me}},onReject:async Z=>{var Le,pe;try{if(!(t!=null&&t.id)&&!(t!=null&&t.requestId))throw new Error("Request ID not found");const me=t.id||t.requestId,fe=F.levelId;if(!fe){q.error("Approval level not found");return}await mn(me,fe,"Request rejected",Z),q.success("Request rejected successfully"),V(),k(!1),T(null)}catch(me){console.error("Failed to reject:",me);const fe=((pe=(Le=me==null?void 0:me.response)==null?void 0:Le.data)==null?void 0:pe.message)||(me==null?void 0:me.message)||"Failed to reject request. Please try again.";throw q.error(fe),me}},requestTitle:(t==null?void 0:t.title)||"Request",requestDescription:(t==null?void 0:t.description)||"",requestId:(t==null?void 0:t.id)||(t==null?void 0:t.requestId),levelName:F.levelName,approverName:F.approverName})]})}function W2({request:t,apiRequest:s,onRefresh:a}){const{user:r}=Zt(),n=(s==null?void 0:s.requestId)||(t==null?void 0:t.requestId),i=(s==null?void 0:s.internalOrder)||(s==null?void 0:s.internal_order)||null,l=(i==null?void 0:i.ioNumber)||(i==null?void 0:i.io_number)||(t==null?void 0:t.ioNumber)||"",o=(i==null?void 0:i.ioRemark)||(i==null?void 0:i.io_remark)||"",c=(i==null?void 0:i.ioBlockedAmount)||(i==null?void 0:i.io_blocked_amount)||0,d=(i==null?void 0:i.ioAvailableBalance)||(i==null?void 0:i.io_available_balance)||0,m=(i==null?void 0:i.ioRemainingBalance)||(i==null?void 0:i.io_remaining_balance)||0,u=(i==null?void 0:i.sapDocumentNumber)||(i==null?void 0:i.sap_document_number)||"",h=(i==null?void 0:i.organizer)||null,[g,p]=x.useState(l),[y,f]=x.useState(o),[b,v]=x.useState(!1),[w,A]=x.useState(null),[S,k]=x.useState(""),[F,T]=x.useState(null),[D,C]=x.useState(!1),P=300,R=y.length;x.useEffect(()=>{if(i&&l){const _=Number(d)||0,N=(h==null?void 0:h.displayName)||(h==null?void 0:h.display_name)||(h==null?void 0:h.name)||(h!=null&&h.firstName&&(h!=null&&h.lastName)?`${h.firstName} ${h.lastName}`.trim():null)||(h==null?void 0:h.email)||"Unknown User";if(p(l),f(o),c>0){const j=Number(c)||0,U=Number(m)||0,z=_-j;console.log("[IOTab] Loading existing IO block:",{availableBeforeBlock:_,blockedAmount:j,expectedRemaining:z,backendRemaining:U}),Math.abs(U-z)>.01&&console.warn("[IOTab] ⚠️ Remaining balance calculation issue detected!",{availableBalance:_,blockedAmount:j,expectedRemaining:z,backendRemaining:U,difference:U-z}),T({ioNumber:l,blockedAmount:j,availableBalance:_,remainingBalance:U,blockedDate:i.organizedAt||i.organized_at||new Date().toISOString(),blockedBy:N,sapDocumentNumber:u,ioRemark:o,status:i.status==="BLOCKED"?"blocked":i.status==="RELEASED"?"released":"blocked"}),_>0&&A(_)}}},[i,l,o,c,d,m,u,h]);const V=async()=>{var _,N;if(!g.trim()){q.error("Please enter an IO number");return}if(!n){q.error("Request ID not found");return}v(!0);try{const j=await _2(n,g.trim());j.isValid&&j.availableBalance>0?(A(j.availableBalance),k(String(j.availableBalance)),q.success(`IO fetched from SAP. Available balance: ₹${j.availableBalance.toLocaleString("en-IN",{minimumFractionDigits:2,maximumFractionDigits:2})}`)):(q.error("Invalid IO number or no available balance found"),A(null),k(""))}catch(j){console.error("Failed to fetch IO budget:",j);const U=((N=(_=j==null?void 0:j.response)==null?void 0:_.data)==null?void 0:N.message)||(j==null?void 0:j.message)||"Failed to validate IO number or fetch budget from SAP";q.error(U),A(null)}finally{v(!1)}},I=async()=>{var _,N;if(!g.trim()){q.error("Please enter an IO number");return}if(!y.trim()){q.error("Please enter an IO remark");return}if(!n){q.error("Request ID not found");return}C(!0);try{const j={ioNumber:g.trim(),ioRemark:y.trim()};await oo(n,j),q.success("IO details saved successfully"),a==null||a()}catch(j){console.error("Failed to save IO details:",j);const U=((N=(_=j==null?void 0:j.response)==null?void 0:_.data)==null?void 0:N.message)||(j==null?void 0:j.message)||"Failed to save IO details";q.error(U)}finally{C(!1)}},$=async()=>{var j,U;if(!g.trim()||w===null){q.error("Please fetch IO amount first");return}if(!y.trim()){q.error("Please enter IO remark before blocking the amount");return}if(!n){q.error("Request ID not found");return}const _=parseFloat(S);if(!S||isNaN(_)||_<=0){q.error("Please enter a valid amount to block");return}const N=Math.round(_*100)/100;if(N>w){q.error("Amount to block exceeds available IO budget");return}console.log("[IOTab] Blocking budget:",{ioNumber:g.trim(),originalInput:S,parsedAmount:_,roundedAmount:N,fetchedAmount:w,calculatedRemaining:w-N}),C(!0);try{const z={ioNumber:g.trim(),ioRemark:y.trim(),ioAvailableBalance:w,ioBlockedAmount:N,ioRemainingBalance:w-N};console.log("[IOTab] Sending to backend:",z),await oo(n,z);const B=await E2(n),X=(B==null?void 0:B.internalOrder)||(B==null?void 0:B.internal_order);if(X){const H=Number(X.ioBlockedAmount||X.io_blocked_amount||N),oe=Number(X.ioRemainingBalance||X.io_remaining_balance||0),Y=w-H;console.log("[IOTab] Blocking result:",{sentAmount:N,savedBlockedAmount:H,availableBalance:w,expectedRemaining:Y,backendRemaining:oe,difference:H-N,remainingDifference:w-oe}),Math.abs(H-N)>.01&&console.warn("[IOTab] ⚠️ Amount mismatch! Sent:",N,"Saved:",H),Math.abs(oe-Y)>.01&&console.warn("[IOTab] ⚠️ Remaining balance calculation issue detected!",{availableBalance:w,blockedAmount:H,expectedRemaining:Y,backendRemaining:oe,difference:oe-Y});const E=r,O=(E==null?void 0:E.displayName)||(E==null?void 0:E.display_name)||(E==null?void 0:E.name)||(E!=null&&E.firstName&&(E!=null&&E.lastName)?`${E.firstName} ${E.lastName}`.trim():null)||(E==null?void 0:E.email)||"Current User",L=X.ioRemark||X.io_remark||y.trim(),W={ioNumber:X.ioNumber||X.io_number||g,blockedAmount:H,availableBalance:w,remainingBalance:oe,blockedDate:X.organizedAt||X.organized_at||new Date().toISOString(),blockedBy:O,sapDocumentNumber:X.sapDocumentNumber||X.sap_document_number||"",ioRemark:L,status:"blocked"};T(W),k(""),q.success("IO budget blocked successfully in SAP"),a==null||a()}else q.error("IO blocked but failed to fetch updated details"),a==null||a()}catch(z){console.error("Failed to block IO budget:",z);const B=((U=(j=z==null?void 0:z.response)==null?void 0:j.data)==null?void 0:U.message)||(z==null?void 0:z.message)||"Failed to block IO budget in SAP";q.error(B)}finally{C(!1)}};return e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[e.jsxs(te,{children:[e.jsxs(ue,{children:[e.jsxs(he,{className:"flex items-center gap-2",children:[e.jsx(ka,{className:"w-5 h-5 text-[#2d4a3e]"}),"IO Budget Management"]}),e.jsx(Te,{children:"Enter IO number to fetch available budget from SAP"})]}),e.jsxs(se,{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsx(re,{htmlFor:"ioNumber",children:"IO Number *"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(Se,{id:"ioNumber",placeholder:"Enter IO number (e.g., IO-2024-12345)",value:g,onChange:_=>p(_.target.value),disabled:b||!!F,className:"flex-1"}),e.jsxs(M,{onClick:V,disabled:!g.trim()||b||!!F,className:"bg-[#2d4a3e] hover:bg-[#1f3329]",children:[e.jsx(wt,{className:"w-4 h-4 mr-2"}),b?"Fetching...":"Fetch Amount"]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(re,{htmlFor:"ioRemark",className:"text-sm font-medium text-gray-900",children:["IO Remark ",e.jsx("span",{className:"text-red-500",children:"*"})]}),e.jsx(ps,{id:"ioRemark",placeholder:"Enter remarks about IO organization (required before blocking amount)",value:y,onChange:_=>{const N=_.target.value;N.length<=P&&f(N)},rows:3,disabled:!!F,className:`bg-white text-sm min-h-[80px] resize-none ${w!==null&&!y.trim()&&!F?"border-red-300 focus:border-red-500 focus:ring-red-500":""}`,required:!0}),e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("div",{children:w!==null&&!y.trim()&&!F&&e.jsx("p",{className:"text-xs text-red-600",children:"IO remark is mandatory before blocking the amount"})}),e.jsx("div",{className:"text-xs text-gray-600",children:e.jsxs("span",{children:[R,"/",P]})})]})]}),!w&&!F&&g.trim()&&e.jsx(M,{onClick:I,disabled:D||!g.trim()||!y.trim(),variant:"outline",className:"w-full border-[#2d4a3e] text-[#2d4a3e] hover:bg-[#2d4a3e] hover:text-white",children:D?"Saving...":"Save IO Details"}),w!==null&&!F&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"bg-green-50 border-2 border-green-200 rounded-lg p-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-600 uppercase tracking-wide mb-1",children:"Available Amount"}),e.jsxs("p",{className:"text-2xl font-bold text-green-700",children:["₹",w.toLocaleString("en-IN",{minimumFractionDigits:2,maximumFractionDigits:2})]})]}),e.jsx(Ce,{className:"w-8 h-8 text-green-600"})]}),e.jsxs("div",{className:"mt-3 pt-3 border-t border-green-200",children:[e.jsxs("p",{className:"text-xs text-gray-600",children:[e.jsx("strong",{children:"IO Number:"})," ",g]}),e.jsxs("p",{className:"text-xs text-gray-600 mt-1",children:[e.jsx("strong",{children:"Fetched from:"})," SAP System"]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(re,{htmlFor:"blockAmount",children:"Amount to Block *"}),e.jsxs("div",{className:"relative",children:[e.jsx("span",{className:"absolute left-3 top-1/2 -translate-y-1/2 text-gray-500",children:"₹"}),e.jsx(Se,{type:"number",id:"blockAmount",placeholder:"Enter amount to block",min:"0",step:"0.01",value:S,onChange:_=>k(_.target.value),className:"pl-8"})]})]}),e.jsxs(M,{onClick:$,disabled:D||!S||parseFloat(S)<=0||parseFloat(S)>w||!y.trim(),className:"w-full bg-[#2d4a3e] hover:bg-[#1f3329]",children:[e.jsx(_t,{className:"w-4 h-4 mr-2"}),D?"Blocking in SAP...":"Block IO in SAP"]}),!y.trim()&&e.jsx("p",{className:"text-xs text-red-600 mt-1",children:"Please enter IO remark before blocking the amount"})]})]})]}),e.jsxs(te,{children:[e.jsxs(ue,{children:[e.jsxs(he,{className:"flex items-center gap-2",children:[e.jsx(Ce,{className:"w-5 h-5 text-green-600"}),"IO Blocked Details"]}),e.jsx(Te,{children:"Details of IO blocked in SAP system"})]}),e.jsx(se,{children:F?e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{className:"bg-green-50 border-2 border-green-500 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(Ce,{className:"w-6 h-6 text-green-600 flex-shrink-0 mt-0.5"}),e.jsxs("div",{children:[e.jsx("p",{className:"font-semibold text-green-900",children:"IO Blocked Successfully"}),e.jsx("p",{className:"text-sm text-green-700 mt-1",children:"Budget has been reserved in SAP system"})]})]})}),e.jsxs("div",{className:"border rounded-lg divide-y",children:[e.jsxs("div",{className:"p-4",children:[e.jsx("p",{className:"text-xs text-gray-500 uppercase tracking-wide mb-1",children:"IO Number"}),e.jsx("p",{className:"text-sm font-semibold text-gray-900",children:F.ioNumber})]}),e.jsxs("div",{className:"p-4",children:[e.jsx("p",{className:"text-xs text-gray-500 uppercase tracking-wide mb-1",children:"SAP Document Number"}),e.jsx("p",{className:"text-sm font-semibold text-gray-900",children:F.sapDocumentNumber||"N/A"})]}),F.ioRemark&&e.jsxs("div",{className:"p-4",children:[e.jsx("p",{className:"text-xs text-gray-500 uppercase tracking-wide mb-1",children:"IO Remark"}),e.jsx("p",{className:"text-sm font-medium text-gray-900 whitespace-pre-wrap",children:F.ioRemark})]}),e.jsxs("div",{className:"p-4 bg-green-50",children:[e.jsx("p",{className:"text-xs text-gray-500 uppercase tracking-wide mb-1",children:"Blocked Amount"}),e.jsxs("p",{className:"text-xl font-bold text-green-700",children:["₹",F.blockedAmount.toLocaleString("en-IN",{minimumFractionDigits:2,maximumFractionDigits:2})]})]}),e.jsxs("div",{className:"p-4",children:[e.jsx("p",{className:"text-xs text-gray-500 uppercase tracking-wide mb-1",children:"Available Amount (Before Block)"}),e.jsxs("p",{className:"text-sm font-medium text-gray-900",children:["₹",F.availableBalance.toLocaleString("en-IN",{minimumFractionDigits:2,maximumFractionDigits:2})]})]}),e.jsxs("div",{className:"p-4 bg-blue-50",children:[e.jsx("p",{className:"text-xs text-gray-500 uppercase tracking-wide mb-1",children:"Remaining Amount (After Block)"}),e.jsxs("p",{className:"text-sm font-bold text-blue-700",children:["₹",F.remainingBalance.toLocaleString("en-IN",{minimumFractionDigits:2,maximumFractionDigits:2})]})]}),e.jsxs("div",{className:"p-4",children:[e.jsx("p",{className:"text-xs text-gray-500 uppercase tracking-wide mb-1",children:"Blocked By"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:F.blockedBy})]}),e.jsxs("div",{className:"p-4",children:[e.jsx("p",{className:"text-xs text-gray-500 uppercase tracking-wide mb-1",children:"Blocked At"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:new Date(F.blockedDate).toLocaleString("en-IN",{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"numeric",hour12:!0})})]}),e.jsxs("div",{className:"p-4 bg-gray-50",children:[e.jsx("p",{className:"text-xs text-gray-500 uppercase tracking-wide mb-1",children:"Status"}),e.jsxs(le,{className:"bg-green-100 text-green-800 border-green-200",children:[e.jsx(Ce,{className:"w-3 h-3 mr-1"}),"Blocked"]})]})]})]}):e.jsxs("div",{className:"text-center py-12",children:[e.jsx(ka,{className:"w-16 h-16 text-gray-300 mx-auto mb-4"}),e.jsx("p",{className:"text-sm text-gray-500 mb-2",children:"No IO blocked yet"}),e.jsx("p",{className:"text-xs text-gray-400",children:"Enter IO number and fetch amount to block budget"})]})})]})]})}var Xe=function(){return Xe=Object.assign||function(s){for(var a,r=1,n=arguments.length;r<n;r++){a=arguments[r];for(var i in a)Object.prototype.hasOwnProperty.call(a,i)&&(s[i]=a[i])}return s},Xe.apply(this,arguments)};function G2(t,s){var a={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&s.indexOf(r)<0&&(a[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,r=Object.getOwnPropertySymbols(t);n<r.length;n++)s.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(t,r[n])&&(a[r[n]]=t[r[n]]);return a}function yp(t,s,a){for(var r=0,n=s.length,i;r<n;r++)(i||!(r in s))&&(i||(i=Array.prototype.slice.call(s,0,r)),i[r]=s[r]);return t.concat(i||Array.prototype.slice.call(s))}function _n(t){return t.mode==="multiple"}function Ln(t){return t.mode==="range"}function Vi(t){return t.mode==="single"}var K2={root:"rdp",multiple_months:"rdp-multiple_months",with_weeknumber:"rdp-with_weeknumber",vhidden:"rdp-vhidden",button_reset:"rdp-button_reset",button:"rdp-button",caption:"rdp-caption",caption_start:"rdp-caption_start",caption_end:"rdp-caption_end",caption_between:"rdp-caption_between",caption_label:"rdp-caption_label",caption_dropdowns:"rdp-caption_dropdowns",dropdown:"rdp-dropdown",dropdown_month:"rdp-dropdown_month",dropdown_year:"rdp-dropdown_year",dropdown_icon:"rdp-dropdown_icon",months:"rdp-months",month:"rdp-month",table:"rdp-table",tbody:"rdp-tbody",tfoot:"rdp-tfoot",head:"rdp-head",head_row:"rdp-head_row",head_cell:"rdp-head_cell",nav:"rdp-nav",nav_button:"rdp-nav_button",nav_button_previous:"rdp-nav_button_previous",nav_button_next:"rdp-nav_button_next",nav_icon:"rdp-nav_icon",row:"rdp-row",weeknumber:"rdp-weeknumber",cell:"rdp-cell",day:"rdp-day",day_today:"rdp-day_today",day_outside:"rdp-day_outside",day_selected:"rdp-day_selected",day_disabled:"rdp-day_disabled",day_hidden:"rdp-day_hidden",day_range_start:"rdp-day_range_start",day_range_end:"rdp-day_range_end",day_range_middle:"rdp-day_range_middle"};function Y2(t,s){return De(t,"LLLL y",s)}function Z2(t,s){return De(t,"d",s)}function X2(t,s){return De(t,"LLLL",s)}function Q2(t){return"".concat(t)}function J2(t,s){return De(t,"cccccc",s)}function q2(t,s){return De(t,"yyyy",s)}var eA=Object.freeze({__proto__:null,formatCaption:Y2,formatDay:Z2,formatMonthCaption:X2,formatWeekNumber:Q2,formatWeekdayName:J2,formatYearCaption:q2}),tA=function(t,s,a){return De(t,"do MMMM (EEEE)",a)},sA=function(){return"Month: "},aA=function(){return"Go to next month"},rA=function(){return"Go to previous month"},nA=function(t,s){return De(t,"cccc",s)},iA=function(t){return"Week n. ".concat(t)},lA=function(){return"Year: "},oA=Object.freeze({__proto__:null,labelDay:tA,labelMonthDropdown:sA,labelNext:aA,labelPrevious:rA,labelWeekNumber:iA,labelWeekday:nA,labelYearDropdown:lA});function cA(){var t="buttons",s=K2,a=af,r={},n={},i=1,l={},o=new Date;return{captionLayout:t,classNames:s,formatters:eA,labels:oA,locale:a,modifiersClassNames:r,modifiers:n,numberOfMonths:i,styles:l,today:o,mode:"default"}}function dA(t){var s=t.fromYear,a=t.toYear,r=t.fromMonth,n=t.toMonth,i=t.fromDate,l=t.toDate;return r?i=$s(r):s&&(i=new Date(s,0,1)),n?l=uo(n):a&&(l=new Date(a,11,31)),{fromDate:i?md(i):void 0,toDate:l?md(l):void 0}}var vp=x.createContext(void 0);function mA(t){var s,a=t.initialProps,r=cA(),n=dA(a),i=n.fromDate,l=n.toDate,o=(s=a.captionLayout)!==null&&s!==void 0?s:r.captionLayout;o!=="buttons"&&(!i||!l)&&(o="buttons");var c;(Vi(a)||_n(a)||Ln(a))&&(c=a.onSelect);var d=Xe(Xe(Xe({},r),a),{captionLayout:o,classNames:Xe(Xe({},r.classNames),a.classNames),components:Xe({},a.components),formatters:Xe(Xe({},r.formatters),a.formatters),fromDate:i,labels:Xe(Xe({},r.labels),a.labels),mode:a.mode||r.mode,modifiers:Xe(Xe({},r.modifiers),a.modifiers),modifiersClassNames:Xe(Xe({},r.modifiersClassNames),a.modifiersClassNames),onSelect:c,styles:Xe(Xe({},r.styles),a.styles),toDate:l});return e.jsx(vp.Provider,{value:d,children:t.children})}function At(){var t=x.useContext(vp);if(!t)throw new Error("useDayPicker must be used within a DayPickerProvider.");return t}function bp(t){var s=At(),a=s.locale,r=s.classNames,n=s.styles,i=s.formatters.formatCaption;return e.jsx("div",{className:r.caption_label,style:n.caption_label,"aria-live":"polite",role:"presentation",id:t.id,children:i(t.displayMonth,{locale:a})})}function uA(t){return e.jsx("svg",Xe({width:"8px",height:"8px",viewBox:"0 0 120 120","data-testid":"iconDropdown"},t,{children:e.jsx("path",{d:"M4.22182541,48.2218254 C8.44222828,44.0014225 15.2388494,43.9273804 19.5496459,47.9996989 L19.7781746,48.2218254 L60,88.443 L100.221825,48.2218254 C104.442228,44.0014225 111.238849,43.9273804 115.549646,47.9996989 L115.778175,48.2218254 C119.998577,52.4422283 120.07262,59.2388494 116.000301,63.5496459 L115.778175,63.7781746 L67.7781746,111.778175 C63.5577717,115.998577 56.7611506,116.07262 52.4503541,112.000301 L52.2218254,111.778175 L4.22182541,63.7781746 C-0.0739418023,59.4824074 -0.0739418023,52.5175926 4.22182541,48.2218254 Z",fill:"currentColor",fillRule:"nonzero"})}))}function jp(t){var s,a,r=t.onChange,n=t.value,i=t.children,l=t.caption,o=t.className,c=t.style,d=At(),m=(a=(s=d.components)===null||s===void 0?void 0:s.IconDropdown)!==null&&a!==void 0?a:uA;return e.jsxs("div",{className:o,style:c,children:[e.jsx("span",{className:d.classNames.vhidden,children:t["aria-label"]}),e.jsx("select",{name:t.name,"aria-label":t["aria-label"],className:d.classNames.dropdown,style:d.styles.dropdown,value:n,onChange:r,children:i}),e.jsxs("div",{className:d.classNames.caption_label,style:d.styles.caption_label,"aria-hidden":"true",children:[l,e.jsx(m,{className:d.classNames.dropdown_icon,style:d.styles.dropdown_icon})]})]})}function hA(t){var s,a=At(),r=a.fromDate,n=a.toDate,i=a.styles,l=a.locale,o=a.formatters.formatMonthCaption,c=a.classNames,d=a.components,m=a.labels.labelMonthDropdown;if(!r)return e.jsx(e.Fragment,{});if(!n)return e.jsx(e.Fragment,{});var u=[];if(df(r,n))for(var h=$s(r),g=r.getMonth();g<=n.getMonth();g++)u.push(Gi(h,g));else for(var h=$s(new Date),g=0;g<=11;g++)u.push(Gi(h,g));var p=function(f){var b=Number(f.target.value),v=Gi($s(t.displayMonth),b);t.onChange(v)},y=(s=d==null?void 0:d.Dropdown)!==null&&s!==void 0?s:jp;return e.jsx(y,{name:"months","aria-label":m(),className:c.dropdown_month,style:i.dropdown_month,onChange:p,value:t.displayMonth.getMonth(),caption:o(t.displayMonth,{locale:l}),children:u.map(function(f){return e.jsx("option",{value:f.getMonth(),children:o(f,{locale:l})},f.getMonth())})})}function xA(t){var s,a=t.displayMonth,r=At(),n=r.fromDate,i=r.toDate,l=r.locale,o=r.styles,c=r.classNames,d=r.components,m=r.formatters.formatYearCaption,u=r.labels.labelYearDropdown,h=[];if(!n)return e.jsx(e.Fragment,{});if(!i)return e.jsx(e.Fragment,{});for(var g=n.getFullYear(),p=i.getFullYear(),y=g;y<=p;y++)h.push(ud(mf(new Date),y));var f=function(v){var w=ud($s(a),Number(v.target.value));t.onChange(w)},b=(s=d==null?void 0:d.Dropdown)!==null&&s!==void 0?s:jp;return e.jsx(b,{name:"years","aria-label":u(),className:c.dropdown_year,style:o.dropdown_year,onChange:f,value:a.getFullYear(),caption:m(a,{locale:l}),children:h.map(function(v){return e.jsx("option",{value:v.getFullYear(),children:m(v,{locale:l})},v.getFullYear())})})}function pA(t,s){var a=x.useState(t),r=a[0],n=a[1],i=s===void 0?r:s;return[i,n]}function gA(t){var s=t.month,a=t.defaultMonth,r=t.today,n=s||a||r||new Date,i=t.toDate,l=t.fromDate,o=t.numberOfMonths,c=o===void 0?1:o;if(i&&vn(i,n)<0){var d=-1*(c-1);n=ya(i,d)}return l&&vn(n,l)<0&&(n=l),$s(n)}function fA(){var t=At(),s=gA(t),a=pA(s,t.month),r=a[0],n=a[1],i=function(l){var o;if(!t.disableNavigation){var c=$s(l);n(c),(o=t.onMonthChange)===null||o===void 0||o.call(t,c)}};return[r,i]}function yA(t,s){for(var a=s.reverseMonths,r=s.numberOfMonths,n=$s(t),i=$s(ya(n,r)),l=vn(i,n),o=[],c=0;c<l;c++){var d=ya(n,c);o.push(d)}return a&&(o=o.reverse()),o}function vA(t,s){if(!s.disableNavigation){var a=s.toDate,r=s.pagedNavigation,n=s.numberOfMonths,i=n===void 0?1:n,l=r?i:1,o=$s(t);if(!a)return ya(o,l);var c=vn(a,t);if(!(c<i))return ya(o,l)}}function bA(t,s){if(!s.disableNavigation){var a=s.fromDate,r=s.pagedNavigation,n=s.numberOfMonths,i=n===void 0?1:n,l=r?i:1,o=$s(t);if(!a)return ya(o,-l);var c=vn(o,a);if(!(c<=0))return ya(o,-l)}}var Np=x.createContext(void 0);function jA(t){var s=At(),a=fA(),r=a[0],n=a[1],i=yA(r,s),l=vA(r,s),o=bA(r,s),c=function(u){return i.some(function(h){return ho(u,h)})},d=function(u,h){c(u)||(h&&wu(u,h)?n(ya(u,1+s.numberOfMonths*-1)):n(u))},m={currentMonth:r,displayMonths:i,goToMonth:n,goToDate:d,previousMonth:o,nextMonth:l,isDateDisplayed:c};return e.jsx(Np.Provider,{value:m,children:t.children})}function On(){var t=x.useContext(Np);if(!t)throw new Error("useNavigation must be used within a NavigationProvider");return t}function qm(t){var s,a=At(),r=a.classNames,n=a.styles,i=a.components,l=On().goToMonth,o=function(m){l(ya(m,t.displayIndex?-t.displayIndex:0))},c=(s=i==null?void 0:i.CaptionLabel)!==null&&s!==void 0?s:bp,d=e.jsx(c,{id:t.id,displayMonth:t.displayMonth});return e.jsxs("div",{className:r.caption_dropdowns,style:n.caption_dropdowns,children:[e.jsx("div",{className:r.vhidden,children:d}),e.jsx(hA,{onChange:o,displayMonth:t.displayMonth}),e.jsx(xA,{onChange:o,displayMonth:t.displayMonth})]})}function NA(t){return e.jsx("svg",Xe({width:"16px",height:"16px",viewBox:"0 0 120 120"},t,{children:e.jsx("path",{d:"M69.490332,3.34314575 C72.6145263,0.218951416 77.6798462,0.218951416 80.8040405,3.34314575 C83.8617626,6.40086786 83.9268205,11.3179931 80.9992143,14.4548388 L80.8040405,14.6568542 L35.461,60 L80.8040405,105.343146 C83.8617626,108.400868 83.9268205,113.317993 80.9992143,116.454839 L80.8040405,116.656854 C77.7463184,119.714576 72.8291931,119.779634 69.6923475,116.852028 L69.490332,116.656854 L18.490332,65.6568542 C15.4326099,62.5991321 15.367552,57.6820069 18.2951583,54.5451612 L18.490332,54.3431458 L69.490332,3.34314575 Z",fill:"currentColor",fillRule:"nonzero"})}))}function wA(t){return e.jsx("svg",Xe({width:"16px",height:"16px",viewBox:"0 0 120 120"},t,{children:e.jsx("path",{d:"M49.8040405,3.34314575 C46.6798462,0.218951416 41.6145263,0.218951416 38.490332,3.34314575 C35.4326099,6.40086786 35.367552,11.3179931 38.2951583,14.4548388 L38.490332,14.6568542 L83.8333725,60 L38.490332,105.343146 C35.4326099,108.400868 35.367552,113.317993 38.2951583,116.454839 L38.490332,116.656854 C41.5480541,119.714576 46.4651794,119.779634 49.602025,116.852028 L49.8040405,116.656854 L100.804041,65.6568542 C103.861763,62.5991321 103.926821,57.6820069 100.999214,54.5451612 L100.804041,54.3431458 L49.8040405,3.34314575 Z",fill:"currentColor"})}))}var gi=x.forwardRef(function(t,s){var a=At(),r=a.classNames,n=a.styles,i=[r.button_reset,r.button];t.className&&i.push(t.className);var l=i.join(" "),o=Xe(Xe({},n.button_reset),n.button);return t.style&&Object.assign(o,t.style),e.jsx("button",Xe({},t,{ref:s,type:"button",className:l,style:o}))});function CA(t){var s,a,r=At(),n=r.dir,i=r.locale,l=r.classNames,o=r.styles,c=r.labels,d=c.labelPrevious,m=c.labelNext,u=r.components;if(!t.nextMonth&&!t.previousMonth)return e.jsx(e.Fragment,{});var h=d(t.previousMonth,{locale:i}),g=[l.nav_button,l.nav_button_previous].join(" "),p=m(t.nextMonth,{locale:i}),y=[l.nav_button,l.nav_button_next].join(" "),f=(s=u==null?void 0:u.IconRight)!==null&&s!==void 0?s:wA,b=(a=u==null?void 0:u.IconLeft)!==null&&a!==void 0?a:NA;return e.jsxs("div",{className:l.nav,style:o.nav,children:[!t.hidePrevious&&e.jsx(gi,{name:"previous-month","aria-label":h,className:g,style:o.nav_button_previous,disabled:!t.previousMonth,onClick:t.onPreviousClick,children:n==="rtl"?e.jsx(f,{className:l.nav_icon,style:o.nav_icon}):e.jsx(b,{className:l.nav_icon,style:o.nav_icon})}),!t.hideNext&&e.jsx(gi,{name:"next-month","aria-label":p,className:y,style:o.nav_button_next,disabled:!t.nextMonth,onClick:t.onNextClick,children:n==="rtl"?e.jsx(b,{className:l.nav_icon,style:o.nav_icon}):e.jsx(f,{className:l.nav_icon,style:o.nav_icon})})]})}function eu(t){var s=At().numberOfMonths,a=On(),r=a.previousMonth,n=a.nextMonth,i=a.goToMonth,l=a.displayMonths,o=l.findIndex(function(p){return ho(t.displayMonth,p)}),c=o===0,d=o===l.length-1,m=s>1&&(c||!d),u=s>1&&(d||!c),h=function(){r&&i(r)},g=function(){n&&i(n)};return e.jsx(CA,{displayMonth:t.displayMonth,hideNext:m,hidePrevious:u,nextMonth:n,previousMonth:r,onPreviousClick:h,onNextClick:g})}function AA(t){var s,a=At(),r=a.classNames,n=a.disableNavigation,i=a.styles,l=a.captionLayout,o=a.components,c=(s=o==null?void 0:o.CaptionLabel)!==null&&s!==void 0?s:bp,d;return n?d=e.jsx(c,{id:t.id,displayMonth:t.displayMonth}):l==="dropdown"?d=e.jsx(qm,{displayMonth:t.displayMonth,id:t.id}):l==="dropdown-buttons"?d=e.jsxs(e.Fragment,{children:[e.jsx(qm,{displayMonth:t.displayMonth,displayIndex:t.displayIndex,id:t.id}),e.jsx(eu,{displayMonth:t.displayMonth,displayIndex:t.displayIndex,id:t.id})]}):d=e.jsxs(e.Fragment,{children:[e.jsx(c,{id:t.id,displayMonth:t.displayMonth,displayIndex:t.displayIndex}),e.jsx(eu,{displayMonth:t.displayMonth,id:t.id})]}),e.jsx("div",{className:r.caption,style:i.caption,children:d})}function SA(t){var s=At(),a=s.footer,r=s.styles,n=s.classNames.tfoot;return a?e.jsx("tfoot",{className:n,style:r.tfoot,children:e.jsx("tr",{children:e.jsx("td",{colSpan:8,children:a})})}):e.jsx(e.Fragment,{})}function TA(t,s,a){for(var r=a?xo(new Date):po(new Date,{locale:t,weekStartsOn:s}),n=[],i=0;i<7;i++){var l=Fs(r,i);n.push(l)}return n}function kA(){var t=At(),s=t.classNames,a=t.styles,r=t.showWeekNumber,n=t.locale,i=t.weekStartsOn,l=t.ISOWeek,o=t.formatters.formatWeekdayName,c=t.labels.labelWeekday,d=TA(n,i,l);return e.jsxs("tr",{style:a.head_row,className:s.head_row,children:[r&&e.jsx("td",{style:a.head_cell,className:s.head_cell}),d.map(function(m,u){return e.jsx("th",{scope:"col",className:s.head_cell,style:a.head_cell,"aria-label":c(m,{locale:n}),children:o(m,{locale:n})},u)})]})}function RA(){var t,s=At(),a=s.classNames,r=s.styles,n=s.components,i=(t=n==null?void 0:n.HeadRow)!==null&&t!==void 0?t:kA;return e.jsx("thead",{style:r.head,className:a.head,children:e.jsx(i,{})})}function DA(t){var s=At(),a=s.locale,r=s.formatters.formatDay;return e.jsx(e.Fragment,{children:r(t.date,{locale:a})})}var xc=x.createContext(void 0);function PA(t){if(!_n(t.initialProps)){var s={selected:void 0,modifiers:{disabled:[]}};return e.jsx(xc.Provider,{value:s,children:t.children})}return e.jsx(IA,{initialProps:t.initialProps,children:t.children})}function IA(t){var s=t.initialProps,a=t.children,r=s.selected,n=s.min,i=s.max,l=function(d,m,u){var h,g;(h=s.onDayClick)===null||h===void 0||h.call(s,d,m,u);var p=!!(m.selected&&n&&(r==null?void 0:r.length)===n);if(!p){var y=!!(!m.selected&&i&&(r==null?void 0:r.length)===i);if(!y){var f=r?yp([],r):[];if(m.selected){var b=f.findIndex(function(v){return Rs(d,v)});f.splice(b,1)}else f.push(d);(g=s.onSelect)===null||g===void 0||g.call(s,f,d,m,u)}}},o={disabled:[]};r&&o.disabled.push(function(d){var m=i&&r.length>i-1,u=r.some(function(h){return Rs(h,d)});return!!(m&&!u)});var c={selected:r,onDayClick:l,modifiers:o};return e.jsx(xc.Provider,{value:c,children:a})}function pc(){var t=x.useContext(xc);if(!t)throw new Error("useSelectMultiple must be used within a SelectMultipleProvider");return t}function EA(t,s){var a=s||{},r=a.from,n=a.to;return r&&n?Rs(n,t)&&Rs(r,t)?void 0:Rs(n,t)?{from:n,to:void 0}:Rs(r,t)?void 0:El(r,t)?{from:t,to:n}:{from:r,to:t}:n?El(t,n)?{from:n,to:t}:{from:t,to:n}:r?wu(t,r)?{from:t,to:r}:{from:r,to:t}:{from:t,to:void 0}}var gc=x.createContext(void 0);function MA(t){if(!Ln(t.initialProps)){var s={selected:void 0,modifiers:{range_start:[],range_end:[],range_middle:[],disabled:[]}};return e.jsx(gc.Provider,{value:s,children:t.children})}return e.jsx(FA,{initialProps:t.initialProps,children:t.children})}function FA(t){var s=t.initialProps,a=t.children,r=s.selected,n=r||{},i=n.from,l=n.to,o=s.min,c=s.max,d=function(g,p,y){var f,b;(f=s.onDayClick)===null||f===void 0||f.call(s,g,p,y);var v=EA(g,r);(b=s.onSelect)===null||b===void 0||b.call(s,v,g,p,y)},m={range_start:[],range_end:[],range_middle:[],disabled:[]};if(i?(m.range_start=[i],l?(m.range_end=[l],Rs(i,l)||(m.range_middle=[{after:i,before:l}])):m.range_end=[i]):l&&(m.range_start=[l],m.range_end=[l]),o&&(i&&!l&&m.disabled.push({after:Wi(i,o-1),before:Fs(i,o-1)}),i&&l&&m.disabled.push({after:i,before:Fs(i,o-1)}),!i&&l&&m.disabled.push({after:Wi(l,o-1),before:Fs(l,o-1)})),c){if(i&&!l&&(m.disabled.push({before:Fs(i,-c+1)}),m.disabled.push({after:Fs(i,c-1)})),i&&l){var u=Sa(l,i)+1,h=c-u;m.disabled.push({before:Wi(i,h)}),m.disabled.push({after:Fs(l,h)})}!i&&l&&(m.disabled.push({before:Fs(l,-c+1)}),m.disabled.push({after:Fs(l,c-1)}))}return e.jsx(gc.Provider,{value:{selected:r,onDayClick:d,modifiers:m},children:a})}function fc(){var t=x.useContext(gc);if(!t)throw new Error("useSelectRange must be used within a SelectRangeProvider");return t}function ti(t){return Array.isArray(t)?yp([],t):t!==void 0?[t]:[]}function _A(t){var s={};return Object.entries(t).forEach(function(a){var r=a[0],n=a[1];s[r]=ti(n)}),s}var ua;(function(t){t.Outside="outside",t.Disabled="disabled",t.Selected="selected",t.Hidden="hidden",t.Today="today",t.RangeStart="range_start",t.RangeEnd="range_end",t.RangeMiddle="range_middle"})(ua||(ua={}));var LA=ua.Selected,Aa=ua.Disabled,OA=ua.Hidden,$A=ua.Today,bl=ua.RangeEnd,jl=ua.RangeMiddle,Nl=ua.RangeStart,UA=ua.Outside;function BA(t,s,a){var r,n=(r={},r[LA]=ti(t.selected),r[Aa]=ti(t.disabled),r[OA]=ti(t.hidden),r[$A]=[t.today],r[bl]=[],r[jl]=[],r[Nl]=[],r[UA]=[],r);return t.fromDate&&n[Aa].push({before:t.fromDate}),t.toDate&&n[Aa].push({after:t.toDate}),_n(t)?n[Aa]=n[Aa].concat(s.modifiers[Aa]):Ln(t)&&(n[Aa]=n[Aa].concat(a.modifiers[Aa]),n[Nl]=a.modifiers[Nl],n[jl]=a.modifiers[jl],n[bl]=a.modifiers[bl]),n}var wp=x.createContext(void 0);function VA(t){var s=At(),a=pc(),r=fc(),n=BA(s,a,r),i=_A(s.modifiers),l=Xe(Xe({},n),i);return e.jsx(wp.Provider,{value:l,children:t.children})}function Cp(){var t=x.useContext(wp);if(!t)throw new Error("useModifiers must be used within a ModifiersProvider");return t}function zA(t){return!!(t&&typeof t=="object"&&"before"in t&&"after"in t)}function HA(t){return!!(t&&typeof t=="object"&&"from"in t)}function WA(t){return!!(t&&typeof t=="object"&&"after"in t)}function GA(t){return!!(t&&typeof t=="object"&&"before"in t)}function KA(t){return!!(t&&typeof t=="object"&&"dayOfWeek"in t)}function YA(t,s){var a,r=s.from,n=s.to;if(r&&n){var i=Sa(n,r)<0;i&&(a=[n,r],r=a[0],n=a[1]);var l=Sa(t,r)>=0&&Sa(n,t)>=0;return l}return n?Rs(n,t):r?Rs(r,t):!1}function ZA(t){return Su(t)}function XA(t){return Array.isArray(t)&&t.every(Su)}function QA(t,s){return s.some(function(a){if(typeof a=="boolean")return a;if(ZA(a))return Rs(t,a);if(XA(a))return a.includes(t);if(HA(a))return YA(t,a);if(KA(a))return a.dayOfWeek.includes(t.getDay());if(zA(a)){var r=Sa(a.before,t),n=Sa(a.after,t),i=r>0,l=n<0,o=El(a.before,a.after);return o?l&&i:i||l}return WA(a)?Sa(t,a.after)>0:GA(a)?Sa(a.before,t)>0:typeof a=="function"?a(t):!1})}function yc(t,s,a){var r=Object.keys(s).reduce(function(i,l){var o=s[l];return QA(t,o)&&i.push(l),i},[]),n={};return r.forEach(function(i){return n[i]=!0}),a&&!ho(t,a)&&(n.outside=!0),n}function JA(t,s){for(var a=$s(t[0]),r=uo(t[t.length-1]),n,i,l=a;l<=r;){var o=yc(l,s),c=!o.disabled&&!o.hidden;if(!c){l=Fs(l,1);continue}if(o.selected)return l;o.today&&!i&&(i=l),n||(n=l),l=Fs(l,1)}return i||n}var qA=365;function Ap(t,s){var a=s.moveBy,r=s.direction,n=s.context,i=s.modifiers,l=s.retry,o=l===void 0?{count:0,lastFocused:t}:l,c=n.weekStartsOn,d=n.fromDate,m=n.toDate,u=n.locale,h={day:Fs,week:Il,month:ya,year:lf,startOfWeek:function(f){return n.ISOWeek?xo(f):po(f,{locale:u,weekStartsOn:c})},endOfWeek:function(f){return n.ISOWeek?Cu(f):Au(f,{locale:u,weekStartsOn:c})}},g=h[a](t,r==="after"?1:-1);r==="before"&&d?g=of([d,g]):r==="after"&&m&&(g=cf([m,g]));var p=!0;if(i){var y=yc(g,i);p=!y.disabled&&!y.hidden}return p?g:o.count>qA?o.lastFocused:Ap(g,{moveBy:a,direction:r,context:n,modifiers:i,retry:Xe(Xe({},o),{count:o.count+1})})}var Sp=x.createContext(void 0);function eS(t){var s=On(),a=Cp(),r=x.useState(),n=r[0],i=r[1],l=x.useState(),o=l[0],c=l[1],d=JA(s.displayMonths,a),m=n??(o&&s.isDateDisplayed(o))?o:d,u=function(){c(n),i(void 0)},h=function(f){i(f)},g=At(),p=function(f,b){if(n){var v=Ap(n,{moveBy:f,direction:b,context:g,modifiers:a});Rs(n,v)||(s.goToDate(v,n),h(v))}},y={focusedDay:n,focusTarget:m,blur:u,focus:h,focusDayAfter:function(){return p("day","after")},focusDayBefore:function(){return p("day","before")},focusWeekAfter:function(){return p("week","after")},focusWeekBefore:function(){return p("week","before")},focusMonthBefore:function(){return p("month","before")},focusMonthAfter:function(){return p("month","after")},focusYearBefore:function(){return p("year","before")},focusYearAfter:function(){return p("year","after")},focusStartOfWeek:function(){return p("startOfWeek","before")},focusEndOfWeek:function(){return p("endOfWeek","after")}};return e.jsx(Sp.Provider,{value:y,children:t.children})}function vc(){var t=x.useContext(Sp);if(!t)throw new Error("useFocusContext must be used within a FocusProvider");return t}function tS(t,s){var a=Cp(),r=yc(t,a,s);return r}var bc=x.createContext(void 0);function sS(t){if(!Vi(t.initialProps)){var s={selected:void 0};return e.jsx(bc.Provider,{value:s,children:t.children})}return e.jsx(aS,{initialProps:t.initialProps,children:t.children})}function aS(t){var s=t.initialProps,a=t.children,r=function(i,l,o){var c,d,m;if((c=s.onDayClick)===null||c===void 0||c.call(s,i,l,o),l.selected&&!s.required){(d=s.onSelect)===null||d===void 0||d.call(s,void 0,i,l,o);return}(m=s.onSelect)===null||m===void 0||m.call(s,i,i,l,o)},n={selected:s.selected,onDayClick:r};return e.jsx(bc.Provider,{value:n,children:a})}function Tp(){var t=x.useContext(bc);if(!t)throw new Error("useSelectSingle must be used within a SelectSingleProvider");return t}function rS(t,s){var a=At(),r=Tp(),n=pc(),i=fc(),l=vc(),o=l.focusDayAfter,c=l.focusDayBefore,d=l.focusWeekAfter,m=l.focusWeekBefore,u=l.blur,h=l.focus,g=l.focusMonthBefore,p=l.focusMonthAfter,y=l.focusYearBefore,f=l.focusYearAfter,b=l.focusStartOfWeek,v=l.focusEndOfWeek,w=function(N){var j,U,z,B;Vi(a)?(j=r.onDayClick)===null||j===void 0||j.call(r,t,s,N):_n(a)?(U=n.onDayClick)===null||U===void 0||U.call(n,t,s,N):Ln(a)?(z=i.onDayClick)===null||z===void 0||z.call(i,t,s,N):(B=a.onDayClick)===null||B===void 0||B.call(a,t,s,N)},A=function(N){var j;h(t),(j=a.onDayFocus)===null||j===void 0||j.call(a,t,s,N)},S=function(N){var j;u(),(j=a.onDayBlur)===null||j===void 0||j.call(a,t,s,N)},k=function(N){var j;(j=a.onDayMouseEnter)===null||j===void 0||j.call(a,t,s,N)},F=function(N){var j;(j=a.onDayMouseLeave)===null||j===void 0||j.call(a,t,s,N)},T=function(N){var j;(j=a.onDayPointerEnter)===null||j===void 0||j.call(a,t,s,N)},D=function(N){var j;(j=a.onDayPointerLeave)===null||j===void 0||j.call(a,t,s,N)},C=function(N){var j;(j=a.onDayTouchCancel)===null||j===void 0||j.call(a,t,s,N)},P=function(N){var j;(j=a.onDayTouchEnd)===null||j===void 0||j.call(a,t,s,N)},R=function(N){var j;(j=a.onDayTouchMove)===null||j===void 0||j.call(a,t,s,N)},V=function(N){var j;(j=a.onDayTouchStart)===null||j===void 0||j.call(a,t,s,N)},I=function(N){var j;(j=a.onDayKeyUp)===null||j===void 0||j.call(a,t,s,N)},$=function(N){var j;switch(N.key){case"ArrowLeft":N.preventDefault(),N.stopPropagation(),a.dir==="rtl"?o():c();break;case"ArrowRight":N.preventDefault(),N.stopPropagation(),a.dir==="rtl"?c():o();break;case"ArrowDown":N.preventDefault(),N.stopPropagation(),d();break;case"ArrowUp":N.preventDefault(),N.stopPropagation(),m();break;case"PageUp":N.preventDefault(),N.stopPropagation(),N.shiftKey?y():g();break;case"PageDown":N.preventDefault(),N.stopPropagation(),N.shiftKey?f():p();break;case"Home":N.preventDefault(),N.stopPropagation(),b();break;case"End":N.preventDefault(),N.stopPropagation(),v();break}(j=a.onDayKeyDown)===null||j===void 0||j.call(a,t,s,N)},_={onClick:w,onFocus:A,onBlur:S,onKeyDown:$,onKeyUp:I,onMouseEnter:k,onMouseLeave:F,onPointerEnter:T,onPointerLeave:D,onTouchCancel:C,onTouchEnd:P,onTouchMove:R,onTouchStart:V};return _}function nS(){var t=At(),s=Tp(),a=pc(),r=fc(),n=Vi(t)?s.selected:_n(t)?a.selected:Ln(t)?r.selected:void 0;return n}function iS(t){return Object.values(ua).includes(t)}function lS(t,s){var a=[t.classNames.day];return Object.keys(s).forEach(function(r){var n=t.modifiersClassNames[r];if(n)a.push(n);else if(iS(r)){var i=t.classNames["day_".concat(r)];i&&a.push(i)}}),a}function oS(t,s){var a=Xe({},t.styles.day);return Object.keys(s).forEach(function(r){var n;a=Xe(Xe({},a),(n=t.modifiersStyles)===null||n===void 0?void 0:n[r])}),a}function cS(t,s,a){var r,n,i,l=At(),o=vc(),c=tS(t,s),d=rS(t,c),m=nS(),u=!!(l.onDayClick||l.mode!=="default");x.useEffect(function(){var k;c.outside||o.focusedDay&&u&&Rs(o.focusedDay,t)&&((k=a.current)===null||k===void 0||k.focus())},[o.focusedDay,t,a,u,c.outside]);var h=lS(l,c).join(" "),g=oS(l,c),p=!!(c.outside&&!l.showOutsideDays||c.hidden),y=(i=(n=l.components)===null||n===void 0?void 0:n.DayContent)!==null&&i!==void 0?i:DA,f=e.jsx(y,{date:t,displayMonth:s,activeModifiers:c}),b={style:g,className:h,children:f,role:"gridcell"},v=o.focusTarget&&Rs(o.focusTarget,t)&&!c.outside,w=o.focusedDay&&Rs(o.focusedDay,t),A=Xe(Xe(Xe({},b),(r={disabled:c.disabled,role:"gridcell"},r["aria-selected"]=c.selected,r.tabIndex=w||v?0:-1,r)),d),S={isButton:u,isHidden:p,activeModifiers:c,selectedDays:m,buttonProps:A,divProps:b};return S}function dS(t){var s=x.useRef(null),a=cS(t.date,t.displayMonth,s);return a.isHidden?e.jsx("div",{role:"gridcell"}):a.isButton?e.jsx(gi,Xe({name:"day",ref:s},a.buttonProps)):e.jsx("div",Xe({},a.divProps))}function mS(t){var s=t.number,a=t.dates,r=At(),n=r.onWeekNumberClick,i=r.styles,l=r.classNames,o=r.locale,c=r.labels.labelWeekNumber,d=r.formatters.formatWeekNumber,m=d(Number(s),{locale:o});if(!n)return e.jsx("span",{className:l.weeknumber,style:i.weeknumber,children:m});var u=c(Number(s),{locale:o}),h=function(g){n(s,a,g)};return e.jsx(gi,{name:"week-number","aria-label":u,className:l.weeknumber,style:i.weeknumber,onClick:h,children:m})}function uS(t){var s,a,r=At(),n=r.styles,i=r.classNames,l=r.showWeekNumber,o=r.components,c=(s=o==null?void 0:o.Day)!==null&&s!==void 0?s:dS,d=(a=o==null?void 0:o.WeekNumber)!==null&&a!==void 0?a:mS,m;return l&&(m=e.jsx("td",{className:i.cell,style:n.cell,children:e.jsx(d,{number:t.weekNumber,dates:t.dates})})),e.jsxs("tr",{className:i.row,style:n.row,children:[m,t.dates.map(function(u){return e.jsx("td",{className:i.cell,style:n.cell,role:"presentation",children:e.jsx(c,{displayMonth:t.displayMonth,date:u})},nf(u))})]})}function tu(t,s,a){for(var r=a!=null&&a.ISOWeek?Cu(s):Au(s,a),n=a!=null&&a.ISOWeek?xo(t):po(t,a),i=Sa(r,n),l=[],o=0;o<=i;o++)l.push(Fs(n,o));var c=l.reduce(function(d,m){var u=a!=null&&a.ISOWeek?uf(m):hf(m,a),h=d.find(function(g){return g.weekNumber===u});return h?(h.dates.push(m),d):(d.push({weekNumber:u,dates:[m]}),d)},[]);return c}function hS(t,s){var a=tu($s(t),uo(t),s);if(s!=null&&s.useFixedWeeks){var r=rf(t,s);if(r<6){var n=a[a.length-1],i=n.dates[n.dates.length-1],l=Il(i,6-r),o=tu(Il(i,1),l,s);a.push.apply(a,o)}}return a}function xS(t){var s,a,r,n=At(),i=n.locale,l=n.classNames,o=n.styles,c=n.hideHead,d=n.fixedWeeks,m=n.components,u=n.weekStartsOn,h=n.firstWeekContainsDate,g=n.ISOWeek,p=hS(t.displayMonth,{useFixedWeeks:!!d,ISOWeek:g,locale:i,weekStartsOn:u,firstWeekContainsDate:h}),y=(s=m==null?void 0:m.Head)!==null&&s!==void 0?s:RA,f=(a=m==null?void 0:m.Row)!==null&&a!==void 0?a:uS,b=(r=m==null?void 0:m.Footer)!==null&&r!==void 0?r:SA;return e.jsxs("table",{id:t.id,className:l.table,style:o.table,role:"grid","aria-labelledby":t["aria-labelledby"],children:[!c&&e.jsx(y,{}),e.jsx("tbody",{className:l.tbody,style:o.tbody,children:p.map(function(v){return e.jsx(f,{displayMonth:t.displayMonth,dates:v.dates,weekNumber:v.weekNumber},v.weekNumber)})}),e.jsx(b,{displayMonth:t.displayMonth})]})}function pS(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}var gS=pS()?x.useLayoutEffect:x.useEffect,wl=!1,fS=0;function su(){return"react-day-picker-".concat(++fS)}function yS(t){var s,a=t??(wl?su():null),r=x.useState(a),n=r[0],i=r[1];return gS(function(){n===null&&i(su())},[]),x.useEffect(function(){wl===!1&&(wl=!0)},[]),(s=t??n)!==null&&s!==void 0?s:void 0}function vS(t){var s,a,r=At(),n=r.dir,i=r.classNames,l=r.styles,o=r.components,c=On().displayMonths,d=yS(r.id?"".concat(r.id,"-").concat(t.displayIndex):void 0),m=r.id?"".concat(r.id,"-grid-").concat(t.displayIndex):void 0,u=[i.month],h=l.month,g=t.displayIndex===0,p=t.displayIndex===c.length-1,y=!g&&!p;n==="rtl"&&(s=[g,p],p=s[0],g=s[1]),g&&(u.push(i.caption_start),h=Xe(Xe({},h),l.caption_start)),p&&(u.push(i.caption_end),h=Xe(Xe({},h),l.caption_end)),y&&(u.push(i.caption_between),h=Xe(Xe({},h),l.caption_between));var f=(a=o==null?void 0:o.Caption)!==null&&a!==void 0?a:AA;return e.jsxs("div",{className:u.join(" "),style:h,children:[e.jsx(f,{id:d,displayMonth:t.displayMonth,displayIndex:t.displayIndex}),e.jsx(xS,{id:m,"aria-labelledby":d,displayMonth:t.displayMonth})]},t.displayIndex)}function bS(t){var s=At(),a=s.classNames,r=s.styles;return e.jsx("div",{className:a.months,style:r.months,children:t.children})}function jS(t){var s,a,r=t.initialProps,n=At(),i=vc(),l=On(),o=x.useState(!1),c=o[0],d=o[1];x.useEffect(function(){n.initialFocus&&i.focusTarget&&(c||(i.focus(i.focusTarget),d(!0)))},[n.initialFocus,c,i.focus,i.focusTarget,i]);var m=[n.classNames.root,n.className];n.numberOfMonths>1&&m.push(n.classNames.multiple_months),n.showWeekNumber&&m.push(n.classNames.with_weeknumber);var u=Xe(Xe({},n.styles.root),n.style),h=Object.keys(r).filter(function(p){return p.startsWith("data-")}).reduce(function(p,y){var f;return Xe(Xe({},p),(f={},f[y]=r[y],f))},{}),g=(a=(s=r.components)===null||s===void 0?void 0:s.Months)!==null&&a!==void 0?a:bS;return e.jsx("div",Xe({className:m.join(" "),style:u,dir:n.dir,id:n.id,nonce:r.nonce,title:r.title,lang:r.lang},h,{children:e.jsx(g,{children:l.displayMonths.map(function(p,y){return e.jsx(vS,{displayIndex:y,displayMonth:p},y)})})}))}function NS(t){var s=t.children,a=G2(t,["children"]);return e.jsx(mA,{initialProps:a,children:e.jsx(jA,{children:e.jsx(sS,{initialProps:a,children:e.jsx(PA,{initialProps:a,children:e.jsx(MA,{initialProps:a,children:e.jsx(VA,{children:e.jsx(eS,{children:s})})})})})})})}function wS(t){return e.jsx(NS,Xe({},t,{children:e.jsx(jS,{initialProps:t})}))}function Cl({className:t,classNames:s,showOutsideDays:a=!0,...r}){return e.jsx(wS,{showOutsideDays:a,className:we("p-3",t),classNames:{months:"flex flex-col sm:flex-row gap-2",month:"flex flex-col gap-4",caption:"flex justify-center pt-1 relative items-center w-full",caption_label:"text-sm font-medium",nav:"flex items-center gap-1",nav_button:we(jn({variant:"outline"}),"size-7 bg-transparent p-0 opacity-50 hover:opacity-100"),nav_button_previous:"absolute left-1",nav_button_next:"absolute right-1",table:"w-full border-collapse space-x-1",head_row:"flex",head_cell:"text-muted-foreground rounded-md w-8 font-normal text-[0.8rem]",row:"flex w-full mt-2",cell:we("relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-range-end)]:rounded-r-md",r.mode==="range"?"[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md":"[&:has([aria-selected])]:rounded-md"),day:we(jn({variant:"ghost"}),"size-8 p-0 font-normal aria-selected:opacity-100"),day_range_start:"day-range-start aria-selected:bg-primary aria-selected:text-primary-foreground",day_range_end:"day-range-end aria-selected:bg-primary aria-selected:text-primary-foreground",day_selected:"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",day_today:"bg-accent text-accent-foreground",day_outside:"day-outside text-muted-foreground aria-selected:text-muted-foreground",day_disabled:"text-muted-foreground opacity-50",day_range_middle:"aria-selected:bg-accent aria-selected:text-accent-foreground",day_hidden:"invisible",...s},components:{IconLeft:({className:n,...i})=>e.jsx(_u,{className:we("size-4",n),...i}),IconRight:({className:n,...i})=>e.jsx(vo,{className:we("size-4",n),...i})},...r})}async function CS(t,s=10){var a;try{const r={limit:s};t&&(r.q=t);const n=await be.get("/dealers",{params:r});return((a=n.data)==null?void 0:a.data)||n.data||[]}catch(r){throw console.error("[DealerAPI] Error fetching dealers:",r),r}}async function AS(t){var s,a,r;try{const n=await be.get(`/dealers/verify/${t}`);return((s=n.data)==null?void 0:s.data)||n.data}catch(n){const i=((r=(a=n.response)==null?void 0:a.data)==null?void 0:r.message)||n.message||"Dealer verification failed";throw console.error("[DealerAPI] Error verifying dealer login:",i),new Error(i)}}const Ts=[{level:1,name:"Dealer Proposal Submission",description:"Dealer submits proposal documents",defaultTat:72,isAuto:!1,approverType:"dealer"},{level:2,name:"Requestor Evaluation",description:"Initiator evaluates dealer proposal",defaultTat:48,isAuto:!1,approverType:"initiator"},{level:3,name:"Department Lead Approval",description:"Department lead approves and blocks IO budget",defaultTat:72,isAuto:!1,approverType:"manual"},{level:4,name:"Dealer Completion Documents",description:"Dealer submits completion documents",defaultTat:120,isAuto:!1,approverType:"dealer"},{level:5,name:"Requestor Claim Approval",description:"Initiator approves completion",defaultTat:48,isAuto:!1,approverType:"initiator"}];function SS({formData:t,updateFormData:s,onValidationError:a,currentUserEmail:r="",currentUserId:n="",currentUserName:i="",onValidate:l,maxApprovalLevels:o,onPolicyViolation:c}){const{userSearchResults:d,userSearchLoading:m,searchUsersForIndex:u,clearSearchForIndex:h}=Jx(),[g,p]=x.useState(!1),[y,f]=x.useState(""),[b,v]=x.useState(24),[w,A]=x.useState("hours"),[S,k]=x.useState(3),[F,T]=x.useState([]),[D,C]=x.useState(!1),[P,R]=x.useState(null),V=x.useRef(null),I=()=>{const E=t.approvers||[],O=[];return Ts.forEach(L=>{if(L.isAuto||L.approverType==="dealer"||L.approverType==="initiator")return;const W=E.find(G=>G.level===L.level);(!W||!W.email||!W.userId||!W.tat)&&O.push(`${L.name}`)}),{isValid:O.length===0,missingSteps:O}};x.useEffect(()=>{if(l){const E=I();l(E.isValid)}},[t.approvers]),x.useEffect(()=>{const E=t.approvers||[];if(E.length>0){const O=[],L=E.filter(G=>G.isAdditional);Ts.forEach(G=>{const ee=E.find(ce=>ce.originalStepLevel===G.level||!ce.originalStepLevel&&!ce.isAdditional&&ce.level===G.level);if(ee)O.push(ee);else if(G.isAuto){const ce=G.level===8?"finance@royalenfield.com":"system@royalenfield.com",Pe=G.level===8?"System/Finance":"System";O.push({email:ce,name:Pe,level:G.level,tat:G.defaultTat,tatType:"hours",originalStepLevel:G.level})}else G.approverType==="dealer"?O.push({email:t.dealerEmail||"",name:t.dealerName||"",level:G.level,tat:G.defaultTat,tatType:"hours",originalStepLevel:G.level}):G.approverType==="initiator"?O.push({email:r||"",name:i||r||"User",userId:n,level:G.level,tat:G.defaultTat,tatType:"hours",originalStepLevel:G.level}):O.push({email:"",name:"",level:G.level,tat:G.defaultTat,tatType:"hours",originalStepLevel:G.level})}),L.forEach(G=>{O.push(G)}),O.sort((G,ee)=>G.level-ee.level),JSON.stringify(E.map(G=>({level:G.level,originalStepLevel:G.originalStepLevel})))!==JSON.stringify(O.map(G=>({level:G.level,originalStepLevel:G.originalStepLevel})))&&s("approvers",O)}else{const O=[];Ts.forEach(L=>{L.isAuto||(L.approverType==="dealer"?O.push({email:t.dealerEmail||"",name:t.dealerName||"",level:L.level,tat:L.defaultTat,tatType:"hours",originalStepLevel:L.level}):L.approverType==="initiator"?O.push({email:r||"",name:i||r||"User",userId:n,level:L.level,tat:L.defaultTat,tatType:"hours",originalStepLevel:L.level}):O.push({email:"",name:"",level:L.level,tat:L.defaultTat,tatType:"hours",originalStepLevel:L.level}))}),s("approvers",O)}},[t.dealerEmail,t.dealerName,r,n,i]);const $=(E,O)=>{const L=[...t.approvers||[]],W=L.findIndex(G=>G.originalStepLevel===E||!G.originalStepLevel&&G.level===E&&!G.isAdditional);if(W===-1){const G=Ts.find(ee=>ee.level===E);L.push({email:O,name:"",level:E,tat:(G==null?void 0:G.defaultTat)||48,tatType:"hours",originalStepLevel:E})}else{const G=L[W];if(G){const ee=G.email;L[W]={...G,email:O,name:O!==ee?"":G.name,userId:O!==ee?void 0:G.userId}}}if(s("approvers",L),!O||!O.startsWith("@")||O.length<2){h(E-1);return}u(E-1,O,10)},_=async(E,O)=>{var L,W;try{const G=Ts.find(de=>de.level===E);if(G&&!G.isAuto&&G.approverType!=="initiator"&&((L=O.email)==null?void 0:L.toLowerCase())===(r==null?void 0:r.toLowerCase())){q.error(`You cannot assign yourself as ${G.name} approver.`),a&&a({type:"self-assign",email:O.email,message:`You cannot assign yourself as ${G.name} approver.`});return}if((t.approvers||[]).some(de=>{var je,Me;return de.level!==E&&(de.userId===O.userId||((je=de.email)==null?void 0:je.toLowerCase())===((Me=O.email)==null?void 0:Me.toLowerCase()))})){q.error("This user is already assigned to another step."),a&&a({type:"error",email:O.email,message:"This user is already assigned to another step."});return}const Pe=await qs({userId:O.userId,email:O.email,displayName:O.displayName,firstName:O.firstName,lastName:O.lastName,department:O.department,phone:O.phone,mobilePhone:O.mobilePhone,designation:O.designation,jobTitle:O.jobTitle,manager:O.manager,employeeId:O.employeeId,employeeNumber:O.employeeNumber,secondEmail:O.secondEmail,location:O.location}),Oe=[...t.approvers||[]],ie=Oe.findIndex(de=>de.originalStepLevel===E||!de.originalStepLevel&&de.level===E&&!de.isAdditional);if(ie===-1){const de=Ts.find(je=>je.level===E);Oe.push({email:O.email,name:O.displayName||[O.firstName,O.lastName].filter(Boolean).join(" "),userId:Pe.userId,level:E,tat:(de==null?void 0:de.defaultTat)||48,tatType:"hours",originalStepLevel:E})}else{const de=Oe[ie];de&&(Oe[ie]={...de,email:O.email,name:O.displayName||[O.firstName,O.lastName].filter(Boolean).join(" "),userId:Pe.userId,originalStepLevel:de.originalStepLevel||E})}s("approvers",Oe),h(E-1),q.success(`Approver for ${(W=Ts.find(de=>de.level===E))==null?void 0:W.name} selected successfully.`)}catch(G){console.error("Failed to ensure user exists:",G),q.error("Failed to validate user. Please try again."),a&&a({type:"error",email:O.email,message:"Failed to validate user. Please try again."})}},N=(E,O)=>{const L=[...t.approvers||[]],W=L.findIndex(G=>G.originalStepLevel===E||!G.originalStepLevel&&G.level===E&&!G.isAdditional);if(W!==-1){const G=L[W];G&&(L[W]={...G,tat:O},s("approvers",L))}},j=(E,O)=>{const L=[...t.approvers||[]],W=L.findIndex(G=>G.originalStepLevel===E||!G.originalStepLevel&&G.level===E&&!G.isAdditional);if(W!==-1){const G=L[W];G&&(L[W]={...G,tatType:O,tat:""},s("approvers",L))}},U=E=>{if(f(E),P&&P.email.toLowerCase()!==E.toLowerCase()&&R(null),V.current&&clearTimeout(V.current),!E||!E.startsWith("@")||E.length<2){T([]),C(!1);return}C(!0),V.current=setTimeout(async()=>{var O;try{const L=E.slice(1),G=((O=(await ta(L,10)).data)==null?void 0:O.data)||[];T(G)}catch(L){console.error("Search failed:",L),T([])}finally{C(!1)}},300)},z=async E=>{try{await qs({userId:E.userId,email:E.email,displayName:E.displayName,firstName:E.firstName,lastName:E.lastName,department:E.department,phone:E.phone,mobilePhone:E.mobilePhone,designation:E.designation,jobTitle:E.jobTitle,manager:E.manager,employeeId:E.employeeId,employeeNumber:E.employeeNumber,secondEmail:E.secondEmail,location:E.location}),f(E.email),R(E),T([]),C(!1)}catch(O){console.error("Failed to ensure user exists:",O),q.error("Failed to verify user. Please try again.")}},B=async()=>{var je,Me;const E=y.trim().toLowerCase();if(!E){q.error("Please enter an email address");return}if(!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(E)){q.error("Please enter a valid email address");return}const L=typeof b=="string"?Number(b):b;if(!L||L<=0||isNaN(L)){q.error("Please enter valid TAT (minimum 1)");return}const W=w==="days"?30:720;if((w==="days"?L*24:L)>720){q.error(`TAT cannot exceed ${W} ${w==="days"?"days":"hours"}`);return}const ee=Ts.find(ye=>ye.name==="Requestor Claim Approval");if(ee&&S>=ee.level){q.error('Additional approvers cannot be added after "Requestor Claim Approval" as it is considered final.');return}if(E===(r==null?void 0:r.toLowerCase())){q.error("You cannot add yourself as an additional approver.");return}const ce=t.approvers||[];if(ce.some(ye=>{var ae;return ye.userId&&(P==null?void 0:P.userId)&&ye.userId===P.userId||((ae=ye.email)==null?void 0:ae.toLowerCase())===E})){q.error("This user is already assigned as an approver.");return}const Oe=ce.find(ye=>ye.originalStepLevel===S||!ye.originalStepLevel&&!ye.isAdditional&&ye.level===S),de=(Oe?Oe.level:S)+1;if(o){const ae=new Set(ce.map(ne=>ne.level)).size+1;if(ae>o){const ne=[{type:"max_approval_levels",message:`Adding this approver would create ${ae} approval levels, which exceeds the maximum allowed (${o}). Please remove some approvers before adding a new one.`,currentValue:ae,maxValue:o}];c?c(ne):q.error(((je=ne[0])==null?void 0:je.message)||"Maximum approval levels exceeded");return}}if(!P||P.email.toLowerCase()!==E)try{const ae=((Me=(await ta(E,1)).data)==null?void 0:Me.data)||[];if(ae.length===0){q.error("User not found in organization directory. Please use @ to search for users.");return}const ne=ae[0];await qs({userId:ne.userId,email:ne.email,displayName:ne.displayName,firstName:ne.firstName,lastName:ne.lastName,department:ne.department,phone:ne.phone,mobilePhone:ne.mobilePhone,designation:ne.designation,jobTitle:ne.jobTitle,manager:ne.manager,employeeId:ne.employeeId,employeeNumber:ne.employeeNumber,secondEmail:ne.secondEmail,location:ne.location});const xt={email:ne.email,name:ne.displayName||[ne.firstName,ne.lastName].filter(Boolean).join(" "),userId:ne.userId,level:de,tat:typeof b=="string"?Number(b):b,tatType:w,isAdditional:!0,insertAfterLevel:S,stepName:`Additional Approver - ${ne.displayName||ne.email}`},ve=ce.map(Fe=>Fe.level>=de?{...Fe,level:Fe.level+1}:Fe);ve.push(xt),ve.sort((Fe,mt)=>Fe.level-mt.level),s("approvers",ve),q.success("Additional approver added and subsequent steps shifted")}catch(ye){console.error("Failed to validate approver:",ye),q.error("Failed to validate user. Please try again.");return}else{const ye={email:P.email,name:P.displayName||[P.firstName,P.lastName].filter(Boolean).join(" "),userId:P.userId,level:de,tat:b,tatType:w,isAdditional:!0,insertAfterLevel:S,stepName:`Additional Approver - ${P.displayName||P.email}`},ae=ce.map(ne=>ne.level>=de?{...ne,level:ne.level+1}:ne);ae.push(ye),ae.sort((ne,xt)=>ne.level-xt.level),s("approvers",ae),q.success("Additional approver added and subsequent steps shifted")}f(""),v(24),A("hours"),k(3),R(null),T([]),p(!1)},X=E=>{const O=[...t.approvers||[]];if(!O.find(ee=>ee.level===E))return;const G=O.filter(ee=>ee.level!==E).map(ee=>ee.level>E&&!ee.isAdditional?{...ee,level:ee.level-1}:ee);G.sort((ee,ce)=>ee.level-ce.level),s("approvers",G),q.success("Additional approver removed and subsequent steps shifted back")},H=()=>[...t.approvers||[]].sort((O,L)=>O.level-L.level),oe=t.approvers||[],Y=H();return e.jsxs(ms.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},className:"space-y-6",children:[e.jsxs("div",{className:"text-center mb-8",children:[e.jsx("div",{className:"w-16 h-16 bg-gradient-to-br from-purple-500 to-indigo-600 rounded-2xl flex items-center justify-center mx-auto mb-4",children:e.jsx(Mt,{className:"w-8 h-8 text-white"})}),e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-2",children:"Approver Selection"}),e.jsx("p",{className:"text-gray-600",children:"Assign approvers for workflow steps with TAT (Turn Around Time)"})]}),e.jsxs("div",{className:"max-w-4xl mx-auto space-y-6",children:[e.jsx(te,{className:"border-2 border-blue-200 bg-blue-50",children:e.jsxs(ue,{children:[e.jsxs(he,{className:"flex items-center gap-2 text-blue-900",children:[e.jsx(kn,{className:"w-5 h-5"}),"Workflow Steps Information"]}),e.jsxs(Te,{className:"text-blue-700",children:['Some steps are pre-filled (Dealer, Initiator, System). You need to assign approvers for "Department Lead Approval" only. Additional approvers cannot be added after "Requestor Claim Approval" as it is considered final.',o&&e.jsxs("span",{className:"block mt-2 text-gray-600",children:["Max: ",o," level",o!==1?"s":"",(()=>{const E=t.approvers||[],L=new Set(E.map(W=>W.level)).size;return L>0?e.jsxs("span",{children:[" (",L,"/",o,")"]}):null})()]})]})]})}),e.jsxs(te,{className:"border-2",children:[e.jsxs(ue,{children:[e.jsxs(he,{className:"flex items-center gap-2",children:[e.jsx(ss,{className:"w-5 h-5"}),"Approval Hierarchy"]}),e.jsx(Te,{children:'Define approvers and TAT for each step. Some steps are pre-filled (Dealer, Initiator, System). Only "Department Lead Approval" requires manual assignment.'})]}),e.jsxs(se,{className:"space-y-2 pt-4",children:[e.jsxs("div",{className:"mb-4 flex flex-col sm:flex-row items-start sm:items-center justify-between gap-2",children:[o&&e.jsxs("p",{className:"text-sm text-gray-600",children:["Max: ",o," level",o!==1?"s":"",(()=>{const E=t.approvers||[],L=new Set(E.map(W=>W.level)).size;return L>0?e.jsxs("span",{children:[" (",L,"/",o,")"]}):null})()]}),e.jsxs(M,{type:"button",variant:"outline",onClick:()=>p(!0),className:"flex items-center gap-2",children:[e.jsx(Us,{className:"w-4 h-4"}),"Add Additional Approver"]})]}),e.jsx("div",{className:"p-3 rounded-lg border-2 border-blue-200 bg-blue-50",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-8 h-8 bg-blue-600 rounded-full flex items-center justify-center flex-shrink-0",children:e.jsx(kt,{className:"w-4 h-4 text-white"})}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-semibold text-blue-900 text-sm",children:"Request Initiator"}),e.jsx(le,{variant:"secondary",className:"text-xs",children:"YOU"})]}),e.jsx("p",{className:"text-xs text-blue-700",children:"Creates and submits the request"})]})]})}),(()=>{const E=Y.filter(L=>L.isAdditional&&L.insertAfterLevel===0);let O=E.length;return Ts.filter(L=>!L.isAuto).map((L,W,G)=>{var je,Me;const ee=oe.find(ye=>ye.originalStepLevel===L.level||!ye.originalStepLevel&&ye.level===L.level&&!ye.isAdditional)||{email:"",name:"",level:L.level,tat:L.defaultTat,tatType:"hours",originalStepLevel:L.level},ce=W===G.length-1,Pe=L.isAuto||L.approverType==="dealer"||L.approverType==="initiator",Oe=!L.isAuto,ie=Y.filter(ye=>ye.isAdditional&&ye.insertAfterLevel===L.level).sort((ye,ae)=>ye.level-ae.level),de=O+1;return O++,O+=ie.length,e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"flex justify-center",children:e.jsx("div",{className:"w-px h-3 bg-gray-300"})}),W===0&&E.map((ye,ae)=>{const ne=ae+1;return e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"flex justify-center",children:e.jsx("div",{className:"w-px h-3 bg-gray-300"})}),e.jsx("div",{className:"p-3 rounded-lg border-2 border-purple-200 bg-purple-50",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-8 h-8 rounded-full flex items-center justify-center flex-shrink-0 bg-purple-600",children:e.jsx("span",{className:"text-white font-semibold text-sm",children:ne})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[e.jsx("span",{className:"font-semibold text-gray-900 text-sm",children:"Additional Approver"}),e.jsx(le,{variant:"outline",className:"text-xs bg-purple-50 text-purple-700 border-purple-300",children:"ADDITIONAL"}),e.jsx(M,{type:"button",variant:"ghost",size:"sm",onClick:()=>X(ye.level),className:"h-6 w-6 p-0 text-red-600 hover:text-red-700 hover:bg-red-50",children:e.jsx(ht,{className:"w-3 h-3"})})]}),e.jsx("p",{className:"text-xs text-gray-600 mb-2",children:ye.name||ye.email}),e.jsxs("div",{className:"text-xs text-gray-500",children:[e.jsxs("div",{children:["Email: ",ye.email]}),e.jsxs("div",{children:["TAT: ",ye.tat," ",ye.tatType]})]})]})]})})]},`additional-${ye.level}`)}),e.jsx("div",{className:`p-3 rounded-lg border-2 transition-all ${ee.email&&ee.userId?"border-green-200 bg-green-50":Pe?"border-blue-200 bg-blue-50":"border-gray-200 bg-gray-50"}`,children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:`w-8 h-8 rounded-full flex items-center justify-center flex-shrink-0 ${ee.email&&ee.userId?"bg-green-600":Pe?"bg-blue-600":"bg-gray-400"}`,children:e.jsx("span",{className:"text-white font-semibold text-sm",children:de})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[e.jsx("span",{className:"font-semibold text-gray-900 text-sm",children:L.name}),ce&&e.jsx(le,{variant:"destructive",className:"text-xs",children:"FINAL"}),Pe&&e.jsx(le,{variant:"outline",className:"text-xs",children:"PRE-FILLED"})]}),e.jsx("p",{className:"text-xs text-gray-600 mb-2",children:L.description}),Oe&&e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-1",children:[e.jsxs(re,{htmlFor:`approver-${L.level}`,className:"text-xs font-medium",children:["Email Address ",!Pe&&"*"]}),ee.email&&ee.userId&&e.jsxs(le,{variant:"outline",className:"text-xs bg-green-50 text-green-700 border-green-300",children:[e.jsx(Ce,{className:"w-3 h-3 mr-1"}),"Verified"]})]}),e.jsxs("div",{className:"relative",children:[e.jsx(Se,{id:`approver-${L.level}`,type:"text",placeholder:Pe?ee.email:"@approver@royalenfield.com",value:ee.email||"",onChange:ye=>{const ae=ye.target.value;Pe||$(L.level,ae)},disabled:Pe||L.isAuto,className:"h-9 border-2 border-gray-300 focus:border-blue-500 mt-1 w-full text-sm"}),!Pe&&!L.isAuto&&(m[L.level-1]||(((je=d[L.level-1])==null?void 0:je.length)||0)>0)&&e.jsx("div",{className:"absolute left-0 right-0 top-full mt-1 z-50 border rounded-md bg-white shadow-lg",children:m[L.level-1]?e.jsx("div",{className:"p-2 text-xs text-gray-500",children:"Searching..."}):e.jsx("ul",{className:"max-h-56 overflow-auto divide-y",children:(Me=d[L.level-1])==null?void 0:Me.map(ye=>e.jsxs("li",{className:"p-2 text-sm cursor-pointer hover:bg-gray-50",onClick:()=>_(L.level,ye),children:[e.jsx("div",{className:"font-medium text-gray-900",children:ye.displayName||ye.email}),e.jsx("div",{className:"text-xs text-gray-600",children:ye.email}),ye.department&&e.jsx("div",{className:"text-xs text-gray-500",children:ye.department})]},ye.userId))})})]}),ee.name&&e.jsxs("p",{className:"text-xs text-green-600 mt-1",children:["Selected: ",e.jsx("span",{className:"font-semibold",children:ee.name})]})]}),e.jsxs("div",{children:[e.jsx(re,{htmlFor:`tat-${L.level}`,className:"text-xs font-medium",children:"TAT (Turn Around Time) *"}),e.jsxs("div",{className:"flex items-center gap-2 mt-1",children:[e.jsx(Se,{id:`tat-${L.level}`,type:"number",placeholder:ee.tatType==="days"?"7":"24",min:"1",max:ee.tatType==="days"?"30":"720",value:ee.tat||"",onChange:ye=>N(L.level,parseInt(ye.target.value)||""),disabled:L.isAuto,className:"h-9 border-2 border-gray-300 focus:border-blue-500 flex-1 text-sm"}),e.jsxs(Be,{value:ee.tatType||"hours",onValueChange:ye=>j(L.level,ye),disabled:L.isAuto,children:[e.jsx(ze,{className:"w-20 h-9 border-2 border-gray-300 text-sm",children:e.jsx(Ve,{})}),e.jsxs(He,{children:[e.jsx(K,{value:"hours",children:"Hours"}),e.jsx(K,{value:"days",children:"Days"})]})]})]})]})]})]})]})}),ie.map((ye,ae)=>{const ne=de+ae+1;return e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"flex justify-center",children:e.jsx("div",{className:"w-px h-3 bg-gray-300"})}),e.jsx("div",{className:"p-3 rounded-lg border-2 border-purple-200 bg-purple-50",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-8 h-8 rounded-full flex items-center justify-center flex-shrink-0 bg-purple-600",children:e.jsx("span",{className:"text-white font-semibold text-sm",children:ne})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[e.jsx("span",{className:"font-semibold text-gray-900 text-sm",children:ye.stepName||"Additional Approver"}),e.jsx(le,{variant:"outline",className:"text-xs bg-purple-50 text-purple-700 border-purple-300",children:"ADDITIONAL"}),ye.email&&ye.userId&&e.jsxs(le,{variant:"outline",className:"text-xs bg-green-50 text-green-700 border-green-300",children:[e.jsx(Ce,{className:"w-3 h-3 mr-1"}),"Verified"]}),e.jsx(M,{type:"button",variant:"ghost",size:"sm",onClick:()=>X(ye.level),className:"h-6 w-6 p-0 text-red-600 hover:text-red-700 hover:bg-red-50",children:e.jsx(ht,{className:"w-3 h-3"})})]}),e.jsx("p",{className:"text-xs text-gray-600 mb-2",children:ye.name||ye.email||"No approver assigned"}),ye.email&&e.jsxs("div",{className:"text-xs text-gray-500 space-y-1",children:[e.jsxs("div",{children:["Email: ",ye.email]}),ye.tat&&e.jsxs("div",{children:["TAT: ",ye.tat," ",ye.tatType]})]})]})]})})]},`additional-${ye.level}`)})]},L.level)})})()]})]}),e.jsxs(te,{className:"border-2",children:[e.jsx(ue,{children:e.jsxs(he,{className:"flex items-center gap-2",children:[e.jsx(Ye,{className:"w-5 h-5"}),"TAT Summary"]})}),e.jsx(se,{children:e.jsx("div",{className:"space-y-3",children:Y.map(E=>{const O=E.originalStepLevel?Ts.find(ee=>ee.level===E.originalStepLevel):Ts.find(ee=>ee.level===E.level&&!E.isAdditional);if(O!=null&&O.isAuto)return null;const L=Number(E.tat||0),G=(E.tatType||"hours")==="days"?L*24:L;if(!L)return null;if(E.isAdditional){const ee=Ts.find(ce=>ce.level===E.insertAfterLevel);return e.jsxs("div",{className:"flex items-center justify-between p-2 bg-purple-50 rounded border border-purple-200",children:[e.jsx("span",{className:"text-sm font-medium",children:E.stepName||`Additional Approver (after "${(ee==null?void 0:ee.name)||"Unknown"}")`}),e.jsxs("span",{className:"text-sm text-gray-600",children:[G," hours"]})]},E.level)}return e.jsxs("div",{className:"flex items-center justify-between p-2 bg-gray-50 rounded",children:[e.jsx("span",{className:"text-sm font-medium",children:(O==null?void 0:O.name)||"Unknown"}),e.jsxs("span",{className:"text-sm text-gray-600",children:[G," hours"]})]},E.level)})})})]})]}),e.jsx(ct,{open:g,onOpenChange:p,children:e.jsxs(lt,{className:"sm:max-w-md",children:[e.jsxs(dt,{children:[e.jsxs(ot,{className:"flex items-center gap-2",children:[e.jsx(Us,{className:"w-5 h-5 text-blue-600"}),"Add Additional Approver"]}),e.jsx(Lt,{children:'Add an additional approver between workflow steps. The approver will be inserted after the selected step. Additional approvers cannot be added after "Requestor Claim Approval".'})]}),e.jsxs("div",{className:"space-y-4 py-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{className:"text-sm font-medium",children:"Insert After Step *"}),e.jsxs(Be,{value:S.toString(),onValueChange:E=>k(Number(E)),children:[e.jsx(ze,{className:"h-11 border-gray-300",children:e.jsx(Ve,{placeholder:"Select step"})}),e.jsx(He,{children:Ts.filter(E=>{if(E.isAuto)return!1;const O=Ts.find(L=>L.name==="Requestor Claim Approval");return!(O&&E.level>=O.level)}).map(E=>e.jsx(K,{value:E.level.toString(),children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ss,{className:"w-4 h-4 text-blue-600"}),e.jsx("span",{children:E.name})]})},E.level))})]}),e.jsx("p",{className:"text-xs text-gray-500",children:"The new approver will be inserted after the selected step."}),e.jsx("p",{className:"text-xs text-amber-600 font-medium",children:'⚠️ Additional approvers cannot be added after "Requestor Claim Approval" as it is considered final.'}),o&&e.jsxs("p",{className:"text-xs text-gray-600 mt-2",children:["Max: ",o," level",o!==1?"s":"",(()=>{const E=t.approvers||[],L=new Set(E.map(W=>W.level)).size;return L>0?e.jsxs("span",{children:[" (",L,"/",o,")"]}):null})()]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{className:"text-sm font-medium",children:"TAT (Turn Around Time) *"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Se,{type:"number",min:"1",max:w==="days"?"30":"720",value:b,onChange:E=>{const O=E.target.value;if(O==="")v("");else{const L=Number(O);!isNaN(L)&&L>=0&&v(L)}},onBlur:E=>{const O=E.target.value;(!O||O===""||Number(O)<=0)&&v(24)},className:"h-11 border-gray-300 flex-1",placeholder:"24"}),e.jsxs(Be,{value:w,onValueChange:E=>A(E),children:[e.jsx(ze,{className:"w-24 h-11 border-gray-300",children:e.jsx(Ve,{})}),e.jsxs(He,{children:[e.jsx(K,{value:"hours",children:"Hours"}),e.jsx(K,{value:"days",children:"Days"})]})]})]}),e.jsxs("p",{className:"text-xs text-gray-500",children:["Maximum time for this approver to respond (1-",w==="days"?"30 days":"720 hours",")"]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{className:"text-sm font-medium",children:"Email Address *"}),e.jsxs("div",{className:"relative",children:[e.jsx(Si,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-4 h-4 z-10"}),e.jsx(Se,{type:"text",placeholder:"@username or user@example.com",value:y,onChange:E=>U(E.target.value),className:"pl-10 h-11 border-gray-300",autoFocus:!0}),(D||F.length>0)&&e.jsx("div",{className:"absolute left-0 right-0 top-full mt-1 z-50 border rounded-md bg-white shadow-lg max-h-60 overflow-auto",children:D?e.jsx("div",{className:"p-3 text-sm text-gray-500",children:"Searching users..."}):F.length>0?e.jsx("ul",{className:"divide-y",children:F.map(E=>e.jsx("li",{className:"p-3 cursor-pointer hover:bg-gray-50 transition-colors",onClick:()=>z(E),children:e.jsx("div",{className:"flex items-center gap-3",children:e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium text-gray-900",children:E.displayName||[E.firstName,E.lastName].filter(Boolean).join(" ")||E.email}),e.jsx("p",{className:"text-xs text-gray-600 truncate",children:E.email}),E.designation&&e.jsx("p",{className:"text-xs text-gray-500",children:E.designation})]})})},E.userId))}):null})]}),e.jsxs("p",{className:"text-xs text-gray-500",children:["Type ",e.jsx("span",{className:"font-semibold",children:"@username"})," to search for users, or enter email directly."]})]})]}),e.jsxs(Ct,{children:[e.jsx(M,{type:"button",variant:"outline",onClick:()=>{p(!1),f(""),v(24),A("hours"),k(3),R(null),T([])},className:"flex-1",children:"Cancel"}),e.jsxs(M,{type:"button",onClick:B,className:"flex-1 bg-[#1a472a] hover:bg-[#152e1f] text-white",disabled:!y.trim()||!b,children:[e.jsx(Us,{className:"w-4 h-4 mr-2"}),"Add Approver"]})]})]})})]})}const Al=[{level:1,name:"Dealer Proposal Submission",description:"Dealer submits proposal documents",defaultTat:72,isAuto:!1,approverType:"dealer"},{level:2,name:"Requestor Evaluation",description:"Initiator evaluates dealer proposal",defaultTat:48,isAuto:!1,approverType:"initiator"},{level:3,name:"Department Lead Approval",description:"Department lead approves and blocks IO budget",defaultTat:72,isAuto:!1,approverType:"manual"},{level:4,name:"Activity Creation",description:"System auto-processes activity creation",defaultTat:1,isAuto:!0,approverType:"system"},{level:5,name:"Dealer Completion Documents",description:"Dealer submits completion documents",defaultTat:120,isAuto:!1,approverType:"dealer"},{level:6,name:"Requestor Claim Approval",description:"Initiator approves completion",defaultTat:48,isAuto:!1,approverType:"initiator"},{level:7,name:"E-Invoice Generation",description:"System generates e-invoice via DMS",defaultTat:1,isAuto:!0,approverType:"system"},{level:8,name:"Credit Note Confirmation",description:"System/Finance processes credit note confirmation",defaultTat:48,isAuto:!0,approverType:"system"}],TS=["Riders Mania Claims","Marketing Cost – Bike to Vendor","Media Bike Service","ARAI Motorcycle Liquidation","ARAI Certification – STA Approval CNR","Procurement of Spares/Apparel/GMA for Events","Fuel for Media Bike Used for Event","Motorcycle Buyback and Goodwill Support","Liquidation of Used Motorcycle","Motorcycle Registration CNR (Owned or Gifted by RE)","Legal Claims Reimbursement","Service Camp Claims","Corporate Claims – Institutional Sales PDI"],Sl=["Claim Details","Approver Selection","Review & Submit"];function kS({onBack:t,onSubmit:s}){const{user:a}=Zt(),[r,n]=x.useState(1),[i,l]=x.useState(!1),[o,c]=x.useState([]),[d,m]=x.useState(!1),[u,h]=x.useState(""),g=x.useRef(null),[p,y]=x.useState(!1),f=x.useRef(null),[b,v]=x.useState({maxApprovalLevels:10,maxParticipants:50,allowSpectators:!0,maxSpectators:20}),[w,A]=x.useState({open:!1,violations:[]});x.useEffect(()=>{(async()=>{var N;try{const j=await Vs("SYSTEM_SETTINGS"),U=await Vs("WORKFLOW_SHARING"),z=[...j,...U],B={};z.forEach(X=>{B[X.configKey]=X.configValue}),v({maxApprovalLevels:parseInt(B.MAX_APPROVAL_LEVELS||"10"),maxParticipants:parseInt(B.MAX_PARTICIPANTS_PER_REQUEST||"50"),allowSpectators:((N=B.ALLOW_ADD_SPECTATOR)==null?void 0:N.toLowerCase())==="true",maxSpectators:parseInt(B.MAX_SPECTATORS_PER_REQUEST||"20")})}catch(j){console.error("Failed to load system policy:",j)}})()},[]),x.useEffect(()=>()=>{f.current&&clearTimeout(f.current)},[]);const[S,k]=x.useState({activityName:"",activityType:"",dealerCode:"",dealerName:"",dealerEmail:"",dealerPhone:"",dealerAddress:"",activityDate:void 0,location:"",requestDescription:"",periodStartDate:void 0,periodEndDate:void 0,estimatedBudget:"",approvers:[]}),F=Sl.length,T=_=>{if(h(_),g.current&&clearTimeout(g.current),!_||_.trim().length<2){c([]),m(!1);return}m(!0),g.current=setTimeout(async()=>{try{const N=await CS(_,10);c(N)}catch(N){console.error("Error searching dealers:",N),c([])}finally{m(!1)}},300)},D=(_,N)=>{k(j=>{const U={...j,[_]:N};if(_==="periodStartDate")N&&U.periodEndDate&&N>U.periodEndDate&&(U.periodEndDate=void 0,q.error("End date must be on or after the start date. End date has been cleared."));else if(_==="periodEndDate"&&N&&U.periodStartDate&&N<U.periodStartDate)return q.error("End date must be on or after the start date."),j;return U})},C=()=>{switch(r){case 1:return S.activityName&&S.activityType&&S.dealerCode&&S.dealerName&&S.activityDate&&S.location&&S.requestDescription;case 2:const N=(S.approvers||[]).find(j=>j.originalStepLevel===3||!j.originalStepLevel&&j.level===3&&!j.isAdditional);return(N==null?void 0:N.email)&&(N==null?void 0:N.userId)&&(N==null?void 0:N.tat);case 3:return!0;default:return!1}},P=()=>{if(r<F){if(!C()){if(r===2){const N=(S.approvers||[]).find(U=>U.originalStepLevel===3||!U.originalStepLevel&&U.level===3&&!U.isAdditional),j=[];(!(N!=null&&N.email)||!(N!=null&&N.userId)||!(N!=null&&N.tat))&&j.push("Department Lead Approval"),j.length>0?q.error(`Please add missing approvers: ${j.join(", ")}`):q.error("Please complete all required approver selections (email, user verification, and TAT) before proceeding.")}else q.error("Please complete all required fields before proceeding.");return}n(r+1)}},R=()=>{r>1&&n(r-1)},V=async _=>{l(!0);try{const N=await AS(_.dealerCode);if(!N.isLoggedIn){q.error(`Dealer "${N.dealerName||N.displayName}" (${N.dealerCode}) is not mapped to the system.`,{duration:5e3}),h(""),c([]),D("dealerCode",""),D("dealerName",""),D("dealerEmail",""),D("dealerPhone",""),D("dealerAddress",""),l(!1);return}D("dealerCode",N.dealerCode),D("dealerName",N.dealerName||N.displayName),D("dealerEmail",N.email||""),D("dealerPhone",N.phone||""),D("dealerAddress",""),h(N.dealerName||N.displayName),c([]),q.success(`Dealer "${N.dealerName||N.displayName}" verified and mapped to the System`)}catch{q.error("Dealer is not mapped to the system",{duration:5e3}),h(""),c([]),D("dealerCode",""),D("dealerName",""),D("dealerEmail",""),D("dealerPhone",""),D("dealerAddress","")}finally{l(!1)}},I=()=>{if(p)return;const N=[...S.approvers||[]].sort((X,H)=>X.level-H.level),j=new Map,U=[];if(N.forEach(X=>{j.has(X.level)?U.push(X.level):j.set(X.level,X)}),U.length>0){q.error(`Duplicate approver levels detected: ${U.join(", ")}. Please refresh and try again.`),console.error("Duplicate levels found:",U,N);return}const z=N.map(X=>{const H={email:X.email,name:X.name,userId:X.userId,level:X.level,tat:X.tat,tatType:X.tatType};return X.isAdditional&&X.stepName&&(H.stepName=X.stepName,H.isAdditional=!0),X.originalStepLevel&&(H.originalStepLevel=X.originalStepLevel),H}),B={...S,templateType:"claim-management",submittedAt:new Date().toISOString(),status:"pending",currentStep:"initiator-review",approvers:z};if(y(!0),f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{y(!1),f.current=null},3e4),s)try{s(B)}catch(X){f.current&&(clearTimeout(f.current),f.current=null),y(!1),console.error("Error submitting claim:",X)}else f.current&&(clearTimeout(f.current),f.current=null),y(!1)},$=()=>{switch(r){case 1:return e.jsxs(ms.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},className:"space-y-6",children:[e.jsxs("div",{className:"text-center mb-8",children:[e.jsx("div",{className:"w-16 h-16 bg-gradient-to-br from-blue-500 to-indigo-600 rounded-2xl flex items-center justify-center mx-auto mb-4",children:e.jsx(xs,{className:"w-8 h-8 text-white"})}),e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-2",children:"Claim Details"}),e.jsx("p",{className:"text-gray-600",children:"Provide comprehensive information about your claim request"})]}),e.jsxs("div",{className:"max-w-3xl mx-auto space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsxs("div",{children:[e.jsx(re,{htmlFor:"activityName",className:"text-base font-semibold",children:"Activity Name *"}),e.jsx(Se,{id:"activityName",placeholder:"e.g., Himalayan Adventure Fest 2024",value:S.activityName,onChange:_=>D("activityName",_.target.value),className:"mt-2 h-12"})]}),e.jsxs("div",{children:[e.jsx(re,{htmlFor:"activityType",className:"text-base font-semibold",children:"Activity Type *"}),e.jsxs(Be,{value:S.activityType,onValueChange:_=>D("activityType",_),children:[e.jsx(ze,{className:"mt-2 !h-12 data-[size=default]:!h-12",id:"activityType",children:e.jsx(Ve,{placeholder:"Select activity type"})}),e.jsx(He,{children:TS.map(_=>e.jsx(K,{value:_,children:_},_))})]})]})]}),e.jsxs("div",{children:[e.jsx(re,{className:"text-base font-semibold",children:"Dealer Code / Dealer Name *"}),e.jsx("div",{className:"mt-2",children:e.jsxs("div",{className:"relative",children:[e.jsx(Se,{placeholder:"Type dealer code, name, or email to search...",value:S.dealerCode?`${S.dealerName} (${S.dealerCode})`:u,onChange:_=>{S.dealerCode?(D("dealerCode",""),D("dealerName",""),D("dealerEmail",""),D("dealerPhone",""),D("dealerAddress",""),h(_.target.value)):T(_.target.value)},onFocus:()=>{u&&u.length>=2&&T(u)},className:"h-12 border-2 border-gray-300 focus:border-blue-500",disabled:i}),S.dealerCode&&e.jsx("div",{className:"absolute right-3 top-1/2 -translate-y-1/2",children:e.jsxs(le,{variant:"outline",className:"text-xs bg-green-50 text-green-700 border-green-300",children:[e.jsx(Ce,{className:"w-3 h-3 mr-1"}),"Verified"]})}),(d||o.length>0)&&!S.dealerCode&&e.jsx("div",{className:"absolute left-0 right-0 top-full mt-1 z-50 border rounded-md bg-white shadow-lg",children:d?e.jsx("div",{className:"p-2 text-xs text-gray-500",children:"Searching..."}):e.jsx("ul",{className:"max-h-56 overflow-auto divide-y",children:o.map(_=>e.jsx("li",{className:"p-2 text-sm cursor-pointer hover:bg-gray-50",onClick:()=>V(_),children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex-1",children:[e.jsx("div",{className:"font-medium text-gray-900",children:_.dealerName||_.displayName}),e.jsxs("div",{className:"text-xs text-gray-600",children:[e.jsx("span",{className:"font-mono",children:_.dealerCode}),_.email&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"mx-1",children:"•"}),e.jsx("span",{children:_.email})]})]}),_.city&&_.state&&e.jsxs("div",{className:"text-xs text-gray-500",children:[_.city,", ",_.state]})]}),e.jsx("div",{className:"ml-2 flex-shrink-0",children:_.isLoggedIn?e.jsx(Ce,{className:"w-4 h-4 text-green-600"}):e.jsx(gt,{className:"w-4 h-4 text-red-500"})})]})},_.dealerId))})})]})}),S.dealerCode&&e.jsxs("div",{className:"mt-2 space-y-1",children:[e.jsxs("p",{className:"text-sm text-gray-600",children:["Selected: ",e.jsx("span",{className:"font-semibold",children:S.dealerName})," (",S.dealerCode,")"]}),S.dealerEmail&&e.jsxs("p",{className:"text-xs text-gray-500",children:["Email: ",S.dealerEmail]})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsxs("div",{children:[e.jsx(re,{className:"text-base font-semibold",children:"Date *"}),e.jsxs(oa,{children:[e.jsx(ca,{asChild:!0,children:e.jsxs(M,{variant:"outline",className:"w-full justify-start text-left mt-2 h-12 pl-3",children:[e.jsx(ut,{className:"mr-2 h-4 w-4 flex-shrink-0"}),e.jsx("span",{className:"flex-1 text-left",children:S.activityDate?De(S.activityDate,"PPP"):"Select date"})]})}),e.jsx(da,{className:"w-auto p-0",align:"start",children:e.jsx(Cl,{mode:"single",selected:S.activityDate,onSelect:_=>D("activityDate",_),initialFocus:!0})})]})]}),e.jsxs("div",{children:[e.jsx(re,{htmlFor:"location",className:"text-base font-semibold",children:"Location *"}),e.jsx(Se,{id:"location",placeholder:"e.g., Mumbai, Maharashtra",value:S.location,onChange:_=>D("location",_.target.value),className:"mt-2 h-12"})]})]}),e.jsxs("div",{children:[e.jsx(re,{htmlFor:"requestDescription",className:"text-base font-semibold",children:"Request in Detail - Brief Requirement *"}),e.jsxs("p",{className:"text-sm text-gray-600 mb-3",children:["Explain what you need approval for, why it's needed, and any relevant background information.",e.jsx("span",{className:"block mt-1 text-xs text-blue-600",children:"💡 Tip: You can paste formatted content (lists, tables) and the formatting will be preserved."})]}),e.jsx(Fi,{value:S.requestDescription||"",onChange:_=>D("requestDescription",_),placeholder:"Provide comprehensive details about your claim requirement including scope, objectives, expected outcomes, and any supporting context that will help approvers make an informed decision.",className:"min-h-[120px] text-base border-2 border-gray-300 focus-within:border-blue-500 bg-white shadow-sm",minHeight:"120px"})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx(re,{className:"text-base font-semibold",children:"Period (If Any)"}),e.jsx(le,{variant:"secondary",className:"text-xs",children:"Optional"})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsxs("div",{children:[e.jsx(re,{className:"text-sm text-gray-600",children:"Start Date"}),e.jsxs(oa,{children:[e.jsx(ca,{asChild:!0,children:e.jsxs(M,{variant:"outline",className:"w-full justify-start text-left mt-2 h-12 pl-3",children:[e.jsx(ut,{className:"mr-2 h-4 w-4 flex-shrink-0"}),e.jsx("span",{className:"flex-1 text-left",children:S.periodStartDate?De(S.periodStartDate,"PPP"):"Start date"})]})}),e.jsx(da,{className:"w-auto p-0",align:"start",children:e.jsx(Cl,{mode:"single",selected:S.periodStartDate,onSelect:_=>D("periodStartDate",_),initialFocus:!0,toDate:S.periodEndDate||void 0})})]})]}),e.jsxs("div",{children:[e.jsx(re,{className:"text-sm text-gray-600",children:"End Date"}),e.jsxs(oa,{children:[e.jsx(ca,{asChild:!0,children:e.jsxs(M,{variant:"outline",className:"w-full justify-start text-left mt-2 h-12 pl-3",disabled:!S.periodStartDate,children:[e.jsx(ut,{className:"mr-2 h-4 w-4 flex-shrink-0"}),e.jsx("span",{className:"flex-1 text-left",children:S.periodEndDate?De(S.periodEndDate,"PPP"):"End date"})]})}),e.jsx(da,{className:"w-auto p-0",align:"start",children:e.jsx(Cl,{mode:"single",selected:S.periodEndDate,onSelect:_=>D("periodEndDate",_),initialFocus:!0,fromDate:S.periodStartDate||void 0})})]}),!S.periodStartDate&&e.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Please select start date first"})]})]}),(S.periodStartDate||S.periodEndDate)&&e.jsx("div",{className:"mt-2",children:S.periodStartDate&&S.periodEndDate?e.jsxs("p",{className:"text-xs text-gray-600",children:["Period: ",De(S.periodStartDate,"MMM dd, yyyy")," - ",De(S.periodEndDate,"MMM dd, yyyy")]}):e.jsx("p",{className:"text-xs text-gray-500",children:S.periodStartDate?"Please select end date for the period":"Please select start date first"})})]})]})]});case 2:return e.jsx(SS,{formData:S,updateFormData:D,currentUserEmail:(a==null?void 0:a.email)||"",currentUserId:(a==null?void 0:a.userId)||"",currentUserName:(a==null?void 0:a.displayName)||(a==null?void 0:a.name)||(a!=null&&a.firstName&&(a!=null&&a.lastName)?`${a.firstName} ${a.lastName}`.trim():(a==null?void 0:a.email)||"User"),maxApprovalLevels:b.maxApprovalLevels,onPolicyViolation:_=>A({open:!0,violations:_})});case 3:return e.jsxs(ms.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},className:"space-y-6",children:[e.jsxs("div",{className:"text-center mb-8",children:[e.jsx("div",{className:"w-16 h-16 bg-gradient-to-br from-green-500 to-emerald-600 rounded-2xl flex items-center justify-center mx-auto mb-4",children:e.jsx(Ce,{className:"w-8 h-8 text-white"})}),e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-2",children:"Review & Submit"}),e.jsx("p",{className:"text-gray-600",children:"Review your claim details before submission"})]}),e.jsxs("div",{className:"max-w-3xl mx-auto space-y-6",children:[e.jsxs(te,{className:"border-2",children:[e.jsx(ue,{className:"bg-gradient-to-br from-blue-50 to-indigo-50",children:e.jsxs(he,{className:"flex items-center gap-2",children:[e.jsx(xs,{className:"w-5 h-5 text-blue-600"}),"Activity Information"]})}),e.jsx(se,{className:"pt-6 space-y-4",children:e.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[e.jsxs("div",{children:[e.jsx(re,{className:"text-xs text-gray-600 uppercase tracking-wider",children:"Activity Name"}),e.jsx("p",{className:"font-semibold text-gray-900 mt-1",children:S.activityName})]}),e.jsxs("div",{children:[e.jsx(re,{className:"text-xs text-gray-600 uppercase tracking-wider",children:"Activity Type"}),e.jsx(le,{variant:"secondary",className:"mt-1",children:S.activityType})]})]})})]}),e.jsxs(te,{className:"border-2",children:[e.jsx(ue,{className:"bg-gradient-to-br from-green-50 to-emerald-50",children:e.jsxs(he,{className:"flex items-center gap-2",children:[e.jsx(Ti,{className:"w-5 h-5 text-green-600"}),"Dealer Information"]})}),e.jsx(se,{className:"pt-6 space-y-4",children:e.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[e.jsxs("div",{children:[e.jsx(re,{className:"text-xs text-gray-600 uppercase tracking-wider",children:"Dealer Code"}),e.jsx("p",{className:"font-semibold text-gray-900 mt-1 font-mono",children:S.dealerCode})]}),e.jsxs("div",{children:[e.jsx(re,{className:"text-xs text-gray-600 uppercase tracking-wider",children:"Dealer Name"}),e.jsx("p",{className:"font-semibold text-gray-900 mt-1",children:S.dealerName})]}),e.jsxs("div",{children:[e.jsx(re,{className:"text-xs text-gray-600 uppercase tracking-wider",children:"Email"}),e.jsx("p",{className:"text-gray-900 mt-1",children:S.dealerEmail})]}),e.jsxs("div",{children:[e.jsx(re,{className:"text-xs text-gray-600 uppercase tracking-wider",children:"Phone"}),e.jsx("p",{className:"text-gray-900 mt-1",children:S.dealerPhone})]}),S.dealerAddress&&e.jsxs("div",{className:"col-span-2",children:[e.jsx(re,{className:"text-xs text-gray-600 uppercase tracking-wider",children:"Address"}),e.jsx("p",{className:"text-gray-900 mt-1",children:S.dealerAddress})]})]})})]}),e.jsxs(te,{className:"border-2",children:[e.jsx(ue,{className:"bg-gradient-to-br from-purple-50 to-indigo-50",children:e.jsxs(he,{className:"flex items-center gap-2",children:[e.jsx(Mt,{className:"w-5 h-5 text-purple-600"}),"Selected Approvers"]})}),e.jsx(se,{className:"pt-6 space-y-4",children:e.jsx("div",{className:"space-y-3",children:[...S.approvers||[]].filter(N=>{var j,U;return!((j=N.email)!=null&&j.includes("system@"))&&!((U=N.email)!=null&&U.includes("finance@"))}).sort((N,j)=>N.level-j.level).map(N=>{const j=Number(N.tat||0),z=(N.tatType||"hours")==="days"?j*24:j;let B="Unknown",X="";if(N.isAdditional){B=N.stepName||"Additional Approver";const H=Al.find(oe=>oe.level===N.insertAfterLevel);X=N.stepName||`Additional Approver (after "${(H==null?void 0:H.name)||"Unknown"}")`}else{const H=N.originalStepLevel?Al.find(oe=>oe.level===N.originalStepLevel):Al.find(oe=>oe.level===N.level&&!oe.isAuto);B=(H==null?void 0:H.name)||"Unknown",X=B}return e.jsx("div",{className:`p-3 rounded-lg border ${N.isAdditional?"bg-purple-50 border-purple-200":"bg-gray-50 border-gray-200"}`,children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx(re,{className:"text-xs text-gray-600 uppercase tracking-wider",children:X}),N.isAdditional&&e.jsx(le,{variant:"outline",className:"text-xs bg-purple-100 text-purple-700 border-purple-300",children:"ADDITIONAL"})]}),e.jsx("p",{className:"font-semibold text-gray-900 mt-1",children:N.name||N.email||"Not selected"}),N.email&&e.jsx("p",{className:"text-xs text-gray-500 mt-1",children:N.email})]}),e.jsxs("div",{className:"text-right ml-4",children:[e.jsxs("p",{className:"text-sm font-semibold text-gray-900",children:[z," hours"]}),e.jsx("p",{className:"text-xs text-gray-500",children:"TAT"})]})]})},`${N.level}-${N.email}`)})})})]}),e.jsxs(te,{className:"border-2",children:[e.jsx(ue,{className:"bg-gradient-to-br from-purple-50 to-pink-50",children:e.jsxs(he,{className:"flex items-center gap-2",children:[e.jsx(ut,{className:"w-5 h-5 text-purple-600"}),"Date & Location"]})}),e.jsx(se,{className:"pt-6 space-y-4",children:e.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[e.jsxs("div",{children:[e.jsx(re,{className:"text-xs text-gray-600 uppercase tracking-wider",children:"Date"}),e.jsx("p",{className:"font-semibold text-gray-900 mt-1",children:S.activityDate?De(S.activityDate,"PPP"):"N/A"})]}),e.jsxs("div",{children:[e.jsx(re,{className:"text-xs text-gray-600 uppercase tracking-wider",children:"Location"}),e.jsxs("div",{className:"flex items-center gap-2 mt-1",children:[e.jsx(fo,{className:"w-4 h-4 text-gray-500"}),e.jsx("p",{className:"font-semibold text-gray-900",children:S.location})]})]}),S.estimatedBudget&&e.jsxs("div",{className:"col-span-2",children:[e.jsx(re,{className:"text-xs text-gray-600 uppercase tracking-wider",children:"Estimated Budget"}),e.jsx("p",{className:"text-xl font-bold text-blue-900 mt-1",children:S.estimatedBudget})]})]})})]}),e.jsxs(te,{className:"border-2",children:[e.jsx(ue,{className:"bg-gradient-to-br from-orange-50 to-amber-50",children:e.jsxs(he,{className:"flex items-center gap-2",children:[e.jsx(_e,{className:"w-5 h-5 text-orange-600"}),"Request Details"]})}),e.jsx(se,{className:"pt-6 space-y-4",children:e.jsxs("div",{children:[e.jsx(re,{className:"text-xs text-gray-600 uppercase tracking-wider",children:"Brief Requirement"}),e.jsx("div",{className:"mt-2 p-4 bg-gray-50 rounded-lg border",children:e.jsx(Qs,{content:S.requestDescription||"",className:"text-sm"})})]})})]}),(S.periodStartDate||S.periodEndDate)&&e.jsxs(te,{className:"border-2",children:[e.jsx(ue,{className:"bg-gradient-to-br from-cyan-50 to-blue-50",children:e.jsxs(he,{className:"flex items-center gap-2",children:[e.jsx(Ye,{className:"w-5 h-5 text-cyan-600"}),"Period"]})}),e.jsx(se,{className:"pt-6 space-y-4",children:e.jsxs("div",{className:"grid grid-cols-2 gap-6",children:[e.jsxs("div",{children:[e.jsx(re,{className:"text-xs text-gray-600 uppercase tracking-wider",children:"Start Date"}),e.jsx("p",{className:"font-semibold text-gray-900 mt-1",children:S.periodStartDate?De(S.periodStartDate,"PPP"):"Not specified"})]}),e.jsxs("div",{children:[e.jsx(re,{className:"text-xs text-gray-600 uppercase tracking-wider",children:"End Date"}),e.jsx("p",{className:"font-semibold text-gray-900 mt-1",children:S.periodEndDate?De(S.periodEndDate,"PPP"):"Not specified"})]})]})})]}),e.jsx("div",{className:"bg-blue-50 border-2 border-blue-200 rounded-lg p-6",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(kn,{className:"w-6 h-6 text-blue-600 flex-shrink-0 mt-0.5"}),e.jsxs("div",{children:[e.jsx("p",{className:"font-semibold text-blue-900 mb-1",children:"Ready to Submit"}),e.jsx("p",{className:"text-sm text-blue-800",children:"Please review all the information above. Once submitted, your claim request will enter the approval workflow."})]})]})})]})]});default:return null}};return e.jsxs("div",{className:"w-full bg-gradient-to-br from-gray-50 to-gray-100 py-4 sm:py-6 lg:py-8 px-3 sm:px-4 lg:px-6 overflow-y-auto",children:[e.jsxs("div",{className:"max-w-6xl mx-auto pb-8",children:[e.jsxs("div",{className:"mb-6 sm:mb-8",children:[e.jsxs(M,{variant:"ghost",onClick:t,className:"mb-3 sm:mb-4 gap-2 text-sm sm:text-base",children:[e.jsx(zs,{className:"w-3 h-3 sm:w-4 sm:h-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Back to Templates"}),e.jsx("span",{className:"sm:hidden",children:"Back"})]}),e.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3 sm:gap-0",children:e.jsxs("div",{children:[e.jsx(le,{variant:"secondary",className:"mb-2 text-xs",children:"Claim Management Template"}),e.jsx("h1",{className:"text-xl sm:text-2xl lg:text-3xl font-bold text-gray-900",children:"New Claim Request"}),e.jsxs("p",{className:"text-sm sm:text-base text-gray-600 mt-1",children:["Step ",r," of ",F,": ",e.jsx("span",{className:"hidden sm:inline",children:Sl[r-1]})]})]})}),e.jsxs("div",{className:"mt-4 sm:mt-6",children:[e.jsx(ea,{value:r/F*100,className:"h-2"}),e.jsx("div",{className:"flex justify-between mt-2 px-1",children:Sl.map((_,N)=>e.jsx("span",{className:`text-xs sm:text-sm ${N+1<=r?"text-blue-600 font-medium":"text-gray-400"}`,children:N+1},N))})]})]}),e.jsx(te,{className:"mb-6 sm:mb-8",children:e.jsx(se,{className:"p-4 sm:p-6 lg:p-8",children:e.jsx(ec,{mode:"wait",children:$()})})}),e.jsxs("div",{className:"flex flex-col sm:flex-row justify-between gap-3 sm:gap-0 pb-4 sm:pb-0",children:[e.jsxs(M,{variant:"outline",onClick:R,disabled:r===1,className:"gap-2 w-full sm:w-auto order-2 sm:order-1",children:[e.jsx(zs,{className:"w-4 h-4"}),"Previous"]}),r<F?e.jsxs(M,{onClick:P,className:`gap-2 w-full sm:w-auto order-1 sm:order-2 ${C()?"":"opacity-50 cursor-pointer hover:opacity-60"}`,children:["Next",e.jsx(ls,{className:"w-4 h-4"})]}):e.jsx(M,{onClick:I,disabled:!C()||p,className:"gap-2 bg-green-600 hover:bg-green-700 w-full sm:w-auto order-1 sm:order-2",children:p?e.jsxs(e.Fragment,{children:[e.jsx(Je,{className:"w-4 h-4 animate-spin"}),"Submitting..."]}):e.jsxs(e.Fragment,{children:[e.jsx(Fr,{className:"w-4 h-4"}),"Submit Claim Request"]})})]})]}),e.jsx(Fn,{open:w.open,onClose:()=>A({open:!1,violations:[]}),violations:w.violations,policyDetails:{maxApprovalLevels:b.maxApprovalLevels,maxParticipants:b.maxParticipants,allowSpectators:b.allowSpectators,maxSpectators:b.maxSpectators}})]})}const{DocumentsTab:RS,ActivityTab:DS,WorkNotesTab:PS,SummaryTab:IS,RequestDetailHeader:ES,QuickActionsSidebar:MS,RequestDetailModals:FS}=hp;let _S=class extends x.Component{constructor(s){super(s),this.state={hasError:!1,error:null}}static getDerivedStateFromError(s){return{hasError:!0,error:s}}componentDidCatch(s,a){console.error("Dealer Claim RequestDetail Error:",s,a)}render(){var s;return this.state.hasError?e.jsx("div",{className:"min-h-screen bg-gray-50 flex items-center justify-center p-6",children:e.jsxs("div",{className:"max-w-md w-full bg-white rounded-lg shadow-lg p-8 text-center",children:[e.jsx(os,{className:"w-16 h-16 text-red-500 mx-auto mb-4"}),e.jsx("h2",{className:"text-2xl font-bold mb-2",children:"Error Loading Request"}),e.jsx("p",{className:"text-gray-600 mb-4",children:((s=this.state.error)==null?void 0:s.message)||"An unexpected error occurred"}),e.jsx(M,{onClick:()=>window.location.reload(),className:"mr-2",children:"Reload Page"}),e.jsx(M,{variant:"outline",onClick:()=>window.history.back(),children:"Go Back"})]})}):this.props.children}};function LS({requestId:t,onBack:s,dynamicRequests:a=[]}){var Hr,Wr,Gr,Kr,Yr,Zr,Xr,Qr,Jr;const n=gr().requestId||t||"",l=new URLSearchParams(window.location.search).get("tab")||"overview",[o,c]=x.useState(l),[d,m]=x.useState(!1),[u,h]=x.useState(null),[g,p]=x.useState(null),[y,f]=x.useState(!1),[b,v]=x.useState(0),[w,A]=x.useState(!1),[S,k]=x.useState(!1),[F,T]=x.useState(!1),[D,C]=x.useState({maxApprovalLevels:10,maxParticipants:50,allowSpectators:!0,maxSpectators:20}),[P,R]=x.useState({open:!1,violations:[]}),{user:V}=Zt(),{request:I,apiRequest:$,loading:_,refreshing:N,refreshDetails:j,currentApprovalLevel:U,isSpectator:z,isInitiator:B,existingParticipants:X,accessDenied:H}=mc(n,a,V),oe=(V==null?void 0:V.userId)||"",Y=((Hr=V==null?void 0:V.email)==null?void 0:Hr.toLowerCase())||"",E=($==null?void 0:$.approvalFlow)||[],O=($==null?void 0:$.approvals)||[],L=E.find(et=>(et.levelName||et.level_name||"").toLowerCase().includes("department lead"))||O.find(et=>(et.levelName||et.level_name||"").toLowerCase().includes("department lead"))||E.find(et=>(et.step||et.levelNumber||et.level_number)===3)||O.find(et=>(et.levelNumber||et.level_number)===3),W=(L==null?void 0:L.approverId)||(L==null?void 0:L.approver_id)||((Wr=L==null?void 0:L.approver)==null?void 0:Wr.userId),G=((L==null?void 0:L.approverEmail)||(L==null?void 0:L.approver_email)||((Gr=L==null?void 0:L.approver)==null?void 0:Gr.email)||"").toLowerCase().trim(),ce=W&&W===oe||G&&Y&&G===Y,{mergedMessages:Pe,unreadWorkNotes:Oe,workNoteAttachments:ie,setWorkNoteAttachments:de}=ep(n,$,o,V),{uploadingDocument:je,triggerFileInput:Me,previewDocument:ye,setPreviewDocument:ae,documentPolicy:ne,documentError:xt,setDocumentError:ve}=tp($,j),[Fe,mt]=x.useState(null),Ot=Fe||U,{showApproveModal:zt,setShowApproveModal:it,showRejectModal:Is,setShowRejectModal:sa,showAddApproverModal:Ia,setShowAddApproverModal:va,showAddSpectatorModal:Q,setShowAddSpectatorModal:ge,showSkipApproverModal:J,setShowSkipApproverModal:ke,showActionStatusModal:Re,setShowActionStatusModal:We,skipApproverData:Ie,setSkipApproverData:Ke,actionStatus:$e,setActionStatus:Qe,handleApproveConfirm:gs,handleRejectConfirm:Dt,handleAddApprover:at,handleSkipApprover:qe,handleAddSpectator:pt}=ap(n,Ot,j),cs=async et=>{await gs(et),mt(null)},Pt=async et=>{await Dt(et),mt(null)},Ws=((I==null?void 0:I.status)||($==null?void 0:$.status)||"").toLowerCase(),aa=(Ws==="approved"||Ws==="rejected")&&B;console.debug("[DealerClaimRequestDetail] Closure check:",{requestStatus:Ws,requestStatusRaw:I==null?void 0:I.status,apiRequestStatusRaw:$==null?void 0:$.status,isInitiator:B,needsClosure:aa});const{conclusionRemark:ra,setConclusionRemark:ba,conclusionLoading:ft,conclusionSubmitting:Ka,aiGenerated:Ya,handleGenerateConclusion:Za,handleFinalizeConclusion:Xa}=sp(I,n,B,j,s,Qe,We);x.useEffect(()=>{(async()=>{var Xt;try{const As=await Vs("SYSTEM_SETTINGS"),Ks=await Vs("WORKFLOW_SHARING"),vr=[...As,...Ks],na={};vr.forEach(Ma=>{na[Ma.configKey]=Ma.configValue}),C({maxApprovalLevels:parseInt(na.MAX_APPROVAL_LEVELS||"10"),maxParticipants:parseInt(na.MAX_PARTICIPANTS_PER_REQUEST||"50"),allowSpectators:((Xt=na.ALLOW_ADD_SPECTATOR)==null?void 0:Xt.toLowerCase())==="true",maxSpectators:parseInt(na.MAX_SPECTATORS_PER_REQUEST||"20")})}catch(As){console.error("Failed to load system policy:",As)}})()},[]),x.useEffect(()=>{const Xt=new URLSearchParams(window.location.search).get("tab");Xt&&c(Xt)},[n]);const Qa=()=>{j()},Ja=()=>{A(!0)},qa=()=>{k(!0)},It=async()=>{await j()},us=()=>{T(!0)},Gs=async()=>{await j()},yr=async()=>{await j()},er=async()=>{if(!($!=null&&$.requestId)){q.error("Request ID not found");return}if(!u){q.error("Summary not available. Please ensure the request is closed and the summary has been generated.");return}m(!0)},Es=(I==null?void 0:I.status)==="closed"||(I==null?void 0:I.status)==="approved"&&!B||(I==null?void 0:I.status)==="rejected"&&!B;x.useEffect(()=>{(async()=>{if(!Es||!($!=null&&$.requestId)){p(null),h(null);return}try{f(!0);const Xt=await cp($.requestId);if(Xt!=null&&Xt.summaryId){h(Xt.summaryId);try{const As=await uc(Xt.summaryId);p(As)}catch(As){console.error("Failed to fetch summary details:",As),p(null),h(null)}}else p(null),h(null)}catch{p(null),h(null)}finally{f(!1)}})()},[Es,$==null?void 0:$.requestId]),x.useEffect(()=>{if(!oe||!($!=null&&$.requestId))return;const et=Pr();if(!et)return;ah(et,oe);const Xt=As=>{var Ma,qr,en,tn;const Ks=As==null?void 0:As.notification;if(!Ks)return;const vr=Ks.requestId||Ks.request_id,na=((Ma=Ks.metadata)==null?void 0:Ma.requestNumber)||((qr=Ks.metadata)==null?void 0:qr.request_number);vr!==$.requestId&&na!==n&&na!==$.requestNumber||((en=Ks.metadata)!=null&&en.creditNoteNumber||(tn=Ks.metadata)!=null&&tn.credit_note_number)&&j()};return et.on("notification:new",Xt),()=>{et.off("notification:new",Xt)}},[oe,$==null?void 0:$.requestId,n,j]);const Ea=((I==null?void 0:I.approvalFlow)||[]).filter(et=>et&&typeof et.step=="number").map(et=>({levelNumber:et.step||0,approverName:et.approver||"Unknown",status:et.status||"pending",tatHours:et.tatHours||24}));return _&&!I&&!$?e.jsx("div",{className:"flex items-center justify-center h-screen bg-gray-50","data-testid":"loading-state",children:e.jsxs("div",{className:"text-center",children:[e.jsx(Bt,{className:"w-12 h-12 text-blue-600 animate-spin mx-auto mb-4"}),e.jsx("p",{className:"text-gray-600",children:"Loading dealer claim request details..."})]})}):H!=null&&H.denied?e.jsx("div",{className:"min-h-screen bg-gray-50 flex items-center justify-center p-6","data-testid":"access-denied-state",children:e.jsxs("div",{className:"max-w-lg w-full bg-white rounded-2xl shadow-xl p-8 text-center",children:[e.jsx("div",{className:"w-20 h-20 bg-red-100 rounded-full flex items-center justify-center mx-auto mb-6",children:e.jsx(Mu,{className:"w-10 h-10 text-red-500"})}),e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-3",children:"Access Denied"}),e.jsx("p",{className:"text-gray-600 mb-6 leading-relaxed",children:H.message}),e.jsxs("div",{className:"flex gap-3 justify-center",children:[e.jsxs(M,{variant:"outline",onClick:s||(()=>window.history.back()),className:"flex items-center gap-2",children:[e.jsx(zs,{className:"w-4 h-4"}),"Go Back"]}),e.jsx(M,{onClick:()=>window.location.href="/dashboard",className:"bg-blue-600 hover:bg-blue-700",children:"Go to Dashboard"})]})]})}):I?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"min-h-screen bg-gray-50","data-testid":"dealer-claim-request-detail-page",children:e.jsxs("div",{className:"max-w-7xl mx-auto",children:[e.jsx(ES,{request:I,refreshing:N,onBack:s||(()=>window.history.back()),onRefresh:Qa,onShareSummary:er,isInitiator:B,slaData:((Kr=I==null?void 0:I.summary)==null?void 0:Kr.sla)||(I==null?void 0:I.sla)||null,isPaused:((Yr=I==null?void 0:I.pauseInfo)==null?void 0:Yr.isPaused)||!1}),e.jsxs(Vr,{value:o,onValueChange:c,className:"w-full","data-testid":"dealer-claim-request-detail-tabs",children:[e.jsx("div",{className:"mb-4 sm:mb-6",children:e.jsxs(zr,{className:"grid grid-cols-3 sm:grid-cols-6 lg:flex lg:flex-row h-auto bg-gray-100 p-1.5 sm:p-1 rounded-lg gap-1.5 sm:gap-1",children:[e.jsxs(vt,{value:"overview",className:"flex items-center justify-center gap-1 sm:gap-1.5 rounded-md px-2 sm:px-3 py-2.5 sm:py-1.5 text-xs sm:text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-400 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-white data-[state=active]:text-gray-900 data-[state=active]:shadow-sm text-gray-600 data-[state=active]:text-gray-900","data-testid":"tab-overview",children:[e.jsx(Fu,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 flex-shrink-0"}),e.jsx("span",{className:"truncate",children:"Overview"})]}),Es&&g&&e.jsxs(vt,{value:"summary",className:"flex items-center justify-center gap-1 sm:gap-1.5 rounded-md px-2 sm:px-3 py-2.5 sm:py-1.5 text-xs sm:text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-400 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-white data-[state=active]:text-gray-900 data-[state=active]:shadow-sm text-gray-600 data-[state=active]:text-gray-900","data-testid":"tab-summary",children:[e.jsx(yo,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 flex-shrink-0"}),e.jsx("span",{className:"truncate",children:"Summary"})]}),e.jsxs(vt,{value:"workflow",className:"flex items-center justify-center gap-1 sm:gap-1.5 rounded-md px-2 sm:px-3 py-2.5 sm:py-1.5 text-xs sm:text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-400 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-white data-[state=active]:text-gray-900 data-[state=active]:shadow-sm text-gray-600 data-[state=active]:text-gray-900","data-testid":"tab-workflow",children:[e.jsx(Bs,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 flex-shrink-0"}),e.jsx("span",{className:"truncate",children:"Workflow"})]}),ce&&e.jsxs(vt,{value:"io",className:"flex items-center justify-center gap-1 sm:gap-1.5 rounded-md px-2 sm:px-3 py-2.5 sm:py-1.5 text-xs sm:text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-400 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-white data-[state=active]:text-gray-900 data-[state=active]:shadow-sm text-gray-600 data-[state=active]:text-gray-900","data-testid":"tab-io",children:[e.jsx(ka,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 flex-shrink-0"}),e.jsx("span",{className:"truncate",children:"IO"})]}),e.jsxs(vt,{value:"documents",className:"flex items-center justify-center gap-1 sm:gap-1.5 rounded-md px-2 sm:px-3 py-2.5 sm:py-1.5 text-xs sm:text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-400 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-white data-[state=active]:text-gray-900 data-[state=active]:shadow-sm text-gray-600 data-[state=active]:text-gray-900","data-testid":"tab-documents",children:[e.jsx(_e,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 flex-shrink-0"}),e.jsx("span",{className:"truncate",children:"Docs"})]}),e.jsxs(vt,{value:"activity",className:"flex items-center justify-center gap-1 sm:gap-1.5 rounded-md px-2 sm:px-3 py-2.5 sm:py-1.5 text-xs sm:text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-400 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-white data-[state=active]:text-gray-900 data-[state=active]:shadow-sm text-gray-600 data-[state=active]:text-gray-900 col-span-1 sm:col-span-1","data-testid":"tab-activity",children:[e.jsx(Gt,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 flex-shrink-0"}),e.jsx("span",{className:"truncate",children:"Activity"})]}),e.jsxs(vt,{value:"worknotes",className:"flex items-center justify-center gap-1 sm:gap-1.5 rounded-md px-2 sm:px-3 py-2.5 sm:py-1.5 text-xs sm:text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-400 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-white data-[state=active]:text-gray-900 data-[state=active]:shadow-sm text-gray-600 data-[state=active]:text-gray-900 relative col-span-2 sm:col-span-1","data-testid":"tab-worknotes",children:[e.jsx(Hs,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 flex-shrink-0"}),e.jsx("span",{className:"truncate",children:"Work Notes"}),Oe>0&&e.jsx(le,{className:"absolute -top-1 -right-1 h-5 w-5 rounded-full bg-red-500 text-white text-[10px] flex items-center justify-center p-0","data-testid":"worknotes-unread-badge",children:Oe>9?"9+":Oe})]})]})}),e.jsxs("div",{className:o==="worknotes"?"":"grid grid-cols-1 lg:grid-cols-3 gap-6",children:[e.jsxs("div",{className:o==="worknotes"?"":"lg:col-span-2",children:[e.jsx(bt,{value:"overview",className:"mt-0","data-testid":"overview-tab-content",children:e.jsx(w2,{request:I,apiRequest:$,currentUserId:oe,isInitiator:B,needsClosure:aa,conclusionRemark:ra,setConclusionRemark:ba,conclusionLoading:ft,conclusionSubmitting:Ka,aiGenerated:Ya,handleGenerateConclusion:Za,handleFinalizeConclusion:Xa})}),Es&&e.jsx(bt,{value:"summary",className:"mt-0","data-testid":"summary-tab-content",children:e.jsx(IS,{summary:g,loading:y,onShare:er,isInitiator:B})}),e.jsx(bt,{value:"workflow",className:"mt-0",children:e.jsx(H2,{request:I,user:V,isInitiator:B,onSkipApprover:et=>{if(!et.levelId){alert("Level ID not available");return}Ke(et),ke(!0)},onRefresh:j})}),ce&&e.jsx(bt,{value:"io",className:"mt-0",children:e.jsx(W2,{request:I,apiRequest:$,onRefresh:j})}),e.jsx(bt,{value:"documents",className:"mt-0",children:e.jsx(RS,{request:I,workNoteAttachments:ie,uploadingDocument:je,documentPolicy:ne,triggerFileInput:Me,setPreviewDocument:ae,downloadDocument:pr})}),e.jsx(bt,{value:"activity",className:"mt-0",children:e.jsx(DS,{request:I})}),e.jsx(bt,{value:"worknotes",className:"mt-0",forceMount:!0,hidden:o!=="worknotes",children:e.jsx(PS,{requestId:n,requestTitle:I.title,mergedMessages:Pe,setWorkNoteAttachments:de,isInitiator:B,isSpectator:z,currentLevels:Ea,onAddApprover:at,maxApprovalLevels:D.maxApprovalLevels,onPolicyViolation:et=>R({open:!0,violations:et})})})]}),o!=="worknotes"&&e.jsx(MS,{request:I,isInitiator:B,isSpectator:z,currentApprovalLevel:Bi($)?null:U,onAddApprover:()=>va(!0),onAddSpectator:()=>ge(!0),onApprove:()=>it(!0),onReject:()=>sa(!0),onPause:Ja,onResume:qa,onRetrigger:us,summaryId:u,refreshTrigger:b,pausedByUserId:(Xr=(Zr=I==null?void 0:I.pauseInfo)==null?void 0:Zr.pausedBy)==null?void 0:Xr.userId,currentUserId:oe,apiRequest:$})]})]})]})}),d&&u&&e.jsx(xp,{isOpen:d,onClose:()=>m(!1),summaryId:u,requestTitle:(I==null?void 0:I.title)||"N/A",onSuccess:()=>{j(),v(et=>et+1)}}),w&&($==null?void 0:$.requestId)&&e.jsx(pp,{isOpen:w,onClose:()=>A(!1),requestId:$.requestId,levelId:(U==null?void 0:U.levelId)||null,onSuccess:Gs}),S&&($==null?void 0:$.requestId)&&e.jsx(gp,{isOpen:S,onClose:()=>k(!1),requestId:$.requestId,onSuccess:It}),F&&($==null?void 0:$.requestId)&&e.jsx(fp,{isOpen:F,onClose:()=>T(!1),requestId:$.requestId,approverName:(Jr=(Qr=I==null?void 0:I.pauseInfo)==null?void 0:Qr.pausedBy)==null?void 0:Jr.name,onSuccess:yr}),e.jsx(FS,{showApproveModal:zt,showRejectModal:Is,showAddApproverModal:Ia,showAddSpectatorModal:Q,showSkipApproverModal:J,showActionStatusModal:Re,previewDocument:ye,documentError:xt,request:I,skipApproverData:Ie,actionStatus:$e,existingParticipants:X,currentLevels:Ea,maxApprovalLevels:D.maxApprovalLevels,onPolicyViolation:et=>R({open:!0,violations:et}),setShowApproveModal:it,setShowRejectModal:sa,setShowAddApproverModal:va,setShowAddSpectatorModal:ge,setShowSkipApproverModal:ke,setShowActionStatusModal:We,setPreviewDocument:ae,setDocumentError:ve,setSkipApproverData:Ke,setActionStatus:Qe,handleApproveConfirm:cs,handleRejectConfirm:Pt,handleAddApprover:at,handleAddSpectator:pt,handleSkipApprover:qe,downloadDocument:pr,documentPolicy:ne}),e.jsx(Fn,{open:P.open,onClose:()=>R({open:!1,violations:[]}),violations:P.violations,policyDetails:{maxApprovalLevels:D.maxApprovalLevels,maxParticipants:D.maxParticipants,allowSpectators:D.allowSpectators,maxSpectators:D.maxSpectators}})]}):e.jsx("div",{className:"min-h-screen bg-gray-50 flex items-center justify-center p-6","data-testid":"not-found-state",children:e.jsxs("div",{className:"max-w-md w-full bg-white rounded-2xl shadow-xl p-8 text-center",children:[e.jsx("div",{className:"w-20 h-20 bg-gray-100 rounded-full flex items-center justify-center mx-auto mb-6",children:e.jsx(_e,{className:"w-10 h-10 text-gray-400"})}),e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-3",children:"Dealer Claim Request Not Found"}),e.jsx("p",{className:"text-gray-600 mb-6",children:"The dealer claim request you're looking for doesn't exist or may have been deleted."}),e.jsxs("div",{className:"flex gap-3 justify-center",children:[e.jsxs(M,{variant:"outline",onClick:s||(()=>window.history.back()),className:"flex items-center gap-2",children:[e.jsx(zs,{className:"w-4 h-4"}),"Go Back"]}),e.jsx(M,{onClick:()=>window.location.href="/dashboard",className:"bg-blue-600 hover:bg-blue-700",children:"Go to Dashboard"})]})]})})}function OS(t){return e.jsx(_S,{children:e.jsx(LS,{...t})})}function $S({onNavigate:t,onNewRequest:s}){const[a,r]=x.useState(!0),[n,i]=x.useState(!1),[l,o]=x.useState({totalClaims:0,totalValue:0,approved:0,rejected:0,pending:0,credited:0,pendingCredit:0,approvedValue:0,rejectedValue:0,pendingValue:0,creditedValue:0,pendingCreditValue:0}),[c,d]=x.useState([]),[m,u]=x.useState("all"),[h,g]=x.useState(),[p,y]=x.useState(),f=async(R=!1)=>{try{R?i(!0):r(!0);const V=await $2(m||"all",h,p);o(V.kpis||{totalClaims:0,totalValue:0,approved:0,rejected:0,pending:0,credited:0,pendingCredit:0,approvedValue:0,rejectedValue:0,pendingValue:0,creditedValue:0,pendingCreditValue:0}),d(V.categoryData||[])}catch(V){console.error("[DealerDashboard] Error fetching data:",V),q.error("Failed to load dashboard data. Please try again later."),o({totalClaims:0,totalValue:0,approved:0,rejected:0,pending:0,credited:0,pendingCredit:0,approvedValue:0,rejectedValue:0,pendingValue:0,creditedValue:0,pendingCreditValue:0}),d([])}finally{r(!1),i(!1)}};x.useEffect(()=>{f()},[]);const b=(R,V=!1)=>{if(R==null||isNaN(R))return"₹0";const I=typeof R=="string"?parseFloat(R):Number(R);return I<=0?"₹0":V||I<1e4?`₹${Math.round(I).toLocaleString("en-IN")}`:I>=1e5?`₹${(I/1e5).toFixed(1)}L`:I>=1e3?`₹${(I/1e3).toFixed(1)}K`:`₹${Math.round(I).toLocaleString("en-IN")}`},v=R=>R.toLocaleString("en-IN"),w=()=>l.totalClaims===0?0:(l.approved/l.totalClaims*100).toFixed(1),A=()=>l.approved===0?0:(l.credited/l.approved*100).toFixed(1),S=x.useMemo(()=>{const R=c.reduce((V,I)=>V+I.raised,0);return R===0?[]:c.map(V=>({name:V.activityType.length>20?V.activityType.substring(0,20)+"...":V.activityType,value:V.raised,fullName:V.activityType,percentage:(V.raised/R*100).toFixed(0)}))},[c]),k=x.useMemo(()=>c.map(R=>({name:R.activityType.length>15?R.activityType.substring(0,15)+"...":R.activityType,fullName:R.activityType,Raised:R.raised,Approved:R.approved,Rejected:R.rejected,Pending:R.pending})),[c]),F=x.useMemo(()=>c.map(R=>({name:R.activityType.length>15?R.activityType.substring(0,15)+"...":R.activityType,fullName:R.activityType,Raised:R.raisedValue,Approved:R.approvedValue,Credited:R.creditedValue})),[c]),T=["#166534","#15803d","#16a34a","#22c55e","#4ade80","#86efac","#bbf7d0"],D=x.useMemo(()=>c.length===0?null:c.reduce((R,V)=>V.approvalRate>((R==null?void 0:R.approvalRate)||0)?V:R),[c]),C=x.useMemo(()=>c.length===0?null:c.reduce((R,V)=>V.raisedValue>((R==null?void 0:R.raisedValue)||0)?V:R),[c]);return a?e.jsx("div",{className:"flex items-center justify-center h-screen",children:e.jsxs("div",{className:"flex flex-col items-center gap-4",children:[e.jsx(Bt,{className:"w-8 h-8 animate-spin text-blue-600"}),e.jsx("p",{className:"text-muted-foreground",children:"Loading dashboard..."})]})}):l.totalClaims===0&&c.length===0?e.jsxs("div",{className:"space-y-6 max-w-[1600px] mx-auto p-4",children:[e.jsxs(te,{className:"border-0 shadow-xl relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-slate-900 via-slate-800 to-slate-900"}),e.jsx(se,{className:"relative z-10 p-8 lg:p-12",children:e.jsx("div",{className:"flex flex-col lg:flex-row items-start lg:items-center justify-between gap-6",children:e.jsxs("div",{className:"text-white",children:[e.jsxs("div",{className:"flex items-center gap-4 mb-6",children:[e.jsx("div",{className:"w-16 h-16 bg-yellow-400 rounded-xl flex items-center justify-center shadow-lg",children:e.jsx(ss,{className:"w-8 h-8 text-slate-900"})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-4xl text-white font-bold",children:"Claims Analytics Dashboard"}),e.jsx("p",{className:"text-xl text-gray-200 mt-1",children:"Comprehensive insights into approval workflows"})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-4 mt-8",children:[e.jsxs(M,{onClick:()=>t==null?void 0:t("/new-request"),className:"bg-blue-600 hover:bg-blue-700 text-white border-0 shadow-lg hover:shadow-xl transition-all duration-200",children:[e.jsx(_e,{className:"w-5 h-5 mr-2"}),"Create New Claim"]}),e.jsxs(M,{onClick:()=>{i(!0),f(!0)},disabled:n,variant:"outline",className:"bg-white/10 hover:bg-white/20 text-white border-white/20",children:[e.jsx(Bt,{className:`w-5 h-5 mr-2 ${n?"animate-spin":""}`}),"Refresh"]})]})]})})})]}),e.jsx(te,{className:"shadow-lg",children:e.jsxs(se,{className:"flex flex-col items-center justify-center py-16 px-4",children:[e.jsx("div",{className:"w-24 h-24 bg-gray-100 rounded-full flex items-center justify-center mb-6",children:e.jsx(Ml,{className:"w-12 h-12 text-gray-400"})}),e.jsx("h2",{className:"text-2xl font-semibold text-gray-900 mb-2",children:"No Claims Data Available"}),e.jsx("p",{className:"text-gray-600 text-center max-w-md mb-6",children:"You don't have any claims data yet. Once you create and submit claim requests, your analytics will appear here."}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[e.jsxs(M,{onClick:()=>t==null?void 0:t("/new-request"),className:"bg-blue-600 hover:bg-blue-700 text-white",children:[e.jsx(_e,{className:"w-5 h-5 mr-2"}),"Create Your First Claim"]}),e.jsxs(M,{onClick:()=>{i(!0),f(!0)},disabled:n,variant:"outline",children:[e.jsx(Bt,{className:`w-5 h-5 mr-2 ${n?"animate-spin":""}`}),"Refresh Data"]})]})]})})]}):e.jsxs("div",{className:"space-y-6 max-w-[1600px] mx-auto p-4",children:[e.jsxs(te,{className:"border-0 shadow-xl relative overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-slate-900 via-slate-800 to-slate-900"}),e.jsx(se,{className:"relative z-10 p-8 lg:p-12",children:e.jsxs("div",{className:"flex flex-col lg:flex-row items-start lg:items-center justify-between gap-6",children:[e.jsxs("div",{className:"text-white",children:[e.jsxs("div",{className:"flex items-center gap-4 mb-6",children:[e.jsx("div",{className:"w-16 h-16 bg-yellow-400 rounded-xl flex items-center justify-center shadow-lg",children:e.jsx(ss,{className:"w-8 h-8 text-slate-900"})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-4xl text-white font-bold",children:"Claims Analytics Dashboard"}),e.jsx("p",{className:"text-xl text-gray-200 mt-1",children:"Comprehensive insights into approval workflows"})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-4 mt-8",children:[e.jsxs(M,{onClick:()=>t==null?void 0:t("/requests?status=pending"),className:"bg-blue-600 hover:bg-blue-700 text-white border-0 shadow-lg hover:shadow-xl transition-all duration-200",children:[e.jsx(Ye,{className:"w-5 h-5 mr-2"}),"View Pending Claims"]}),e.jsxs(M,{onClick:()=>t==null?void 0:t("/requests"),className:"bg-emerald-600 hover:bg-emerald-700 text-white border-0 shadow-lg hover:shadow-xl transition-all duration-200",children:[e.jsx(_e,{className:"w-5 h-5 mr-2"}),"My Claims"]})]})]}),e.jsx("div",{className:"hidden lg:flex items-center gap-4",children:e.jsx("div",{className:"w-24 h-24 bg-yellow-400/20 rounded-full flex items-center justify-center",children:e.jsx("div",{className:"w-16 h-16 bg-yellow-400/30 rounded-full flex items-center justify-center",children:e.jsx(ci,{className:"w-8 h-8 text-yellow-400"})})})})]})})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 xl:grid-cols-6 gap-4",children:[e.jsxs(te,{className:"border-l-4 border-l-blue-500 shadow-lg hover:shadow-xl transition-all duration-300",children:[e.jsx(ue,{className:"pb-2",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(he,{className:"text-sm text-muted-foreground",children:"Raised Claims"}),e.jsx("div",{className:"p-2 rounded-lg bg-blue-50",children:e.jsx(_e,{className:"h-4 w-4 text-blue-600"})})]})}),e.jsxs(se,{children:[e.jsx("div",{className:"text-2xl text-gray-900",children:v(l.totalClaims)}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:b(l.totalValue,!0)})]})]}),e.jsxs(te,{className:"border-l-4 border-l-green-500 shadow-lg hover:shadow-xl transition-all duration-300",children:[e.jsx(ue,{className:"pb-2",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(he,{className:"text-sm text-muted-foreground",children:"Approved"}),e.jsx("div",{className:"p-2 rounded-lg bg-green-50",children:e.jsx(Ce,{className:"h-4 w-4 text-green-600"})})]})}),e.jsxs(se,{children:[e.jsx("div",{className:"text-2xl text-gray-900",children:v(l.approved)}),e.jsxs("div",{className:"flex items-center gap-1 mt-1",children:[e.jsx(Bs,{className:"h-3 w-3 text-green-600"}),e.jsxs("p",{className:"text-xs text-green-600",children:[w(),"% approval rate"]})]})]})]}),e.jsxs(te,{className:"border-l-4 border-l-red-500 shadow-lg hover:shadow-xl transition-all duration-300",children:[e.jsx(ue,{className:"pb-2",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(he,{className:"text-sm text-muted-foreground",children:"Rejected"}),e.jsx("div",{className:"p-2 rounded-lg bg-red-50",children:e.jsx(gt,{className:"h-4 w-4 text-red-600"})})]})}),e.jsxs(se,{children:[e.jsx("div",{className:"text-2xl text-gray-900",children:v(l.rejected)}),e.jsxs("div",{className:"flex items-center gap-1 mt-1",children:[e.jsx(Vf,{className:"h-3 w-3 text-red-600"}),e.jsxs("p",{className:"text-xs text-red-600",children:[l.totalClaims>0?(l.rejected/l.totalClaims*100).toFixed(1):0,"% rejection rate"]})]})]})]}),e.jsxs(te,{className:"border-l-4 border-l-orange-500 shadow-lg hover:shadow-xl transition-all duration-300",children:[e.jsx(ue,{className:"pb-2",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(he,{className:"text-sm text-muted-foreground",children:"Pending"}),e.jsx("div",{className:"p-2 rounded-lg bg-orange-50",children:e.jsx(Ye,{className:"h-4 w-4 text-orange-600"})})]})}),e.jsxs(se,{children:[e.jsx("div",{className:"text-2xl text-gray-900",children:v(l.pending)}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:b(l.pendingValue)})]})]}),e.jsxs(te,{className:"border-l-4 border-l-emerald-500 shadow-lg hover:shadow-xl transition-all duration-300",children:[e.jsx(ue,{className:"pb-2",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(he,{className:"text-sm text-muted-foreground",children:"Credited"}),e.jsx("div",{className:"p-2 rounded-lg bg-emerald-50",children:e.jsx(zf,{className:"h-4 w-4 text-emerald-600"})})]})}),e.jsxs(se,{children:[e.jsx("div",{className:"text-2xl text-gray-900",children:v(l.credited)}),e.jsxs("div",{className:"flex items-center gap-1 mt-1",children:[e.jsx(Bs,{className:"h-3 w-3 text-emerald-600"}),e.jsxs("p",{className:"text-xs text-emerald-600",children:[A(),"% credit rate"]})]})]})]}),e.jsxs(te,{className:"border-l-4 border-l-amber-500 shadow-lg hover:shadow-xl transition-all duration-300",children:[e.jsx(ue,{className:"pb-2",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(he,{className:"text-sm text-muted-foreground",children:"Pending Credit"}),e.jsx("div",{className:"p-2 rounded-lg bg-amber-50",children:e.jsx(os,{className:"h-4 w-4 text-amber-600"})})]})}),e.jsxs(se,{children:[e.jsx("div",{className:"text-2xl text-gray-900",children:v(l.pendingCredit)}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:b(l.pendingCreditValue)})]})]})]}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[e.jsxs(te,{className:"shadow-lg",children:[e.jsx(ue,{children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-purple-100 rounded-lg",children:e.jsx(Ml,{className:"h-5 w-5 text-purple-600"})}),e.jsxs("div",{children:[e.jsx(he,{children:"Claims Distribution by Activity Type"}),e.jsx(Te,{children:"Total claims raised across activity types"})]})]})}),e.jsxs(se,{children:[e.jsx(Sr,{width:"100%",height:300,children:e.jsxs(vu,{children:[e.jsx(bu,{data:S,cx:"50%",cy:"50%",labelLine:!1,label:({name:R,percentage:V})=>`${R}: ${V}%`,outerRadius:80,fill:"#8884d8",dataKey:"value",children:S.map((R,V)=>e.jsx(ju,{fill:T[V%T.length]},`cell-${V}`))}),e.jsx(Tr,{})]})}),e.jsx("div",{className:"grid grid-cols-3 gap-2 mt-4",children:S.slice(0,3).map((R,V)=>e.jsxs("div",{className:"flex items-center gap-2 p-2 rounded-lg bg-gray-50",children:[e.jsx("div",{className:"w-3 h-3 rounded",style:{backgroundColor:T[V%T.length]}}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-600",children:R.name}),e.jsx("p",{className:"text-sm text-gray-900",children:v(R.value)})]})]},V))})]})]}),e.jsxs(te,{className:"shadow-lg",children:[e.jsx(ue,{children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-blue-100 rounded-lg",children:e.jsx(ci,{className:"h-5 w-5 text-blue-600"})}),e.jsxs("div",{children:[e.jsx(he,{children:"Claims Status by Activity Type"}),e.jsx(Te,{children:"Count comparison across workflow stages"})]})]})}),e.jsx(se,{children:e.jsx(Sr,{width:"100%",height:300,children:e.jsxs(Pl,{data:k,children:[e.jsx(ai,{strokeDasharray:"3 3"}),e.jsx(ri,{dataKey:"name"}),e.jsx(ni,{}),e.jsx(Tr,{}),e.jsx(ii,{}),e.jsx(pa,{dataKey:"Raised",fill:"#3b82f6"}),e.jsx(pa,{dataKey:"Approved",fill:"#22c55e"}),e.jsx(pa,{dataKey:"Rejected",fill:"#ef4444"}),e.jsx(pa,{dataKey:"Pending",fill:"#f59e0b"})]})})})]})]}),e.jsxs(te,{className:"shadow-lg",children:[e.jsx(ue,{children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-emerald-100 rounded-lg",children:e.jsx(Gt,{className:"h-5 w-5 text-emerald-600"})}),e.jsxs("div",{children:[e.jsx(he,{children:"Detailed Activity Type Breakdown"}),e.jsx(Te,{children:"In-depth analysis of claims by type and status"})]})]})}),e.jsx(se,{children:e.jsxs(Vr,{defaultValue:"overview",className:"w-full",children:[e.jsxs(zr,{className:"grid w-full grid-cols-3",children:[e.jsx(vt,{value:"overview",children:"Overview"}),e.jsx(vt,{value:"category-1",children:"Top Category 1"}),e.jsx(vt,{value:"category-2",children:"Top Category 2"})]}),e.jsxs(bt,{value:"overview",className:"space-y-4 mt-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg mb-4 text-gray-900",children:"Activity Type Value Comparison"}),e.jsx(Sr,{width:"100%",height:350,children:e.jsxs(Pl,{data:F,children:[e.jsx(ai,{strokeDasharray:"3 3"}),e.jsx(ri,{dataKey:"name"}),e.jsx(ni,{tickFormatter:R=>b(R)}),e.jsx(Tr,{formatter:R=>b(R),labelFormatter:R=>R}),e.jsx(ii,{}),e.jsx(pa,{dataKey:"Raised",fill:"#3b82f6"}),e.jsx(pa,{dataKey:"Approved",fill:"#22c55e"}),e.jsx(pa,{dataKey:"Credited",fill:"#10b981"})]})})]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 mt-6",children:c.slice(0,3).map((R,V)=>e.jsxs(te,{className:"shadow-md hover:shadow-lg transition-shadow",children:[e.jsx(ue,{className:"pb-3",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(he,{className:"text-base",children:R.activityType}),e.jsxs(le,{className:"bg-emerald-50 text-emerald-700 border-emerald-200",children:[R.approvalRate.toFixed(1),"% approved"]})]})}),e.jsxs(se,{className:"space-y-3",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex justify-between text-sm",children:[e.jsx("span",{className:"text-gray-600",children:"Raised:"}),e.jsxs("span",{className:"text-gray-900",children:[v(R.raised)," (",b(R.raisedValue),")"]})]}),e.jsxs("div",{className:"flex justify-between text-sm",children:[e.jsx("span",{className:"text-gray-600",children:"Approved:"}),e.jsxs("span",{className:"text-green-600",children:[v(R.approved)," (",b(R.approvedValue),")"]})]}),e.jsxs("div",{className:"flex justify-between text-sm",children:[e.jsx("span",{className:"text-gray-600",children:"Rejected:"}),e.jsxs("span",{className:"text-red-600",children:[v(R.rejected)," (",b(R.rejectedValue),")"]})]}),e.jsxs("div",{className:"flex justify-between text-sm",children:[e.jsx("span",{className:"text-gray-600",children:"Pending:"}),e.jsxs("span",{className:"text-orange-600",children:[v(R.pending)," (",b(R.pendingValue),")"]})]}),e.jsx("div",{className:"h-px bg-gray-200 my-2"}),e.jsxs("div",{className:"flex justify-between text-sm",children:[e.jsx("span",{className:"text-gray-600",children:"Credited:"}),e.jsxs("span",{className:"text-emerald-600",children:[v(R.credited)," (",b(R.creditedValue),")"]})]}),e.jsxs("div",{className:"flex justify-between text-sm",children:[e.jsx("span",{className:"text-gray-600",children:"Pending Credit:"}),e.jsxs("span",{className:"text-amber-600",children:[v(R.pendingCredit)," (",b(R.pendingCreditValue),")"]})]})]}),e.jsxs("div",{className:"pt-2",children:[e.jsxs("div",{className:"flex justify-between text-xs text-gray-600 mb-1",children:[e.jsx("span",{children:"Credit Rate"}),e.jsxs("span",{children:[R.creditRate.toFixed(1),"%"]})]}),e.jsx(ea,{value:R.creditRate,className:"h-2"})]})]})]},V))})]}),e.jsx(bt,{value:"category-1",className:"space-y-4",children:e.jsx("p",{className:"text-gray-600",children:"Detailed view for top category 1"})}),e.jsx(bt,{value:"category-2",className:"space-y-4",children:e.jsx("p",{className:"text-gray-600",children:"Detailed view for top category 2"})})]})})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4",children:[e.jsx(te,{className:"border-t-4 border-t-green-500 shadow-lg hover:shadow-xl transition-shadow",children:e.jsxs(se,{className:"pt-6",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsx("div",{className:"p-3 bg-green-100 rounded-lg",children:e.jsx(_t,{className:"h-6 w-6 text-green-600"})}),e.jsx(Bs,{className:"h-5 w-5 text-green-600"})]}),e.jsx("h3",{className:"text-sm text-gray-600 mb-1",children:"Best Performing"}),e.jsx("p",{className:"text-xl text-gray-900 mb-1",children:(D==null?void 0:D.activityType)||"N/A"}),e.jsxs("p",{className:"text-sm text-green-600",children:[(D==null?void 0:D.approvalRate.toFixed(2))||0,"% approval rate"]})]})}),e.jsx(te,{className:"border-t-4 border-t-blue-500 shadow-lg hover:shadow-xl transition-shadow",children:e.jsxs(se,{className:"pt-6",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsx("div",{className:"p-3 bg-blue-100 rounded-lg",children:e.jsx(ka,{className:"h-6 w-6 text-blue-600"})}),e.jsx(Gt,{className:"h-5 w-5 text-blue-600"})]}),e.jsx("h3",{className:"text-sm text-gray-600 mb-1",children:"Top Activity Type"}),e.jsx("p",{className:"text-xl text-gray-900 mb-1",children:(C==null?void 0:C.activityType)||"N/A"}),e.jsxs("p",{className:"text-sm text-blue-600",children:[C?b(C.raisedValue,!0):"₹0"," raised"]})]})}),e.jsx(te,{className:"border-t-4 border-t-emerald-500 shadow-lg hover:shadow-xl transition-shadow",children:e.jsxs(se,{className:"pt-6",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsx("div",{className:"p-3 bg-emerald-100 rounded-lg",children:e.jsx(ji,{className:"h-6 w-6 text-emerald-600"})}),e.jsx(Ce,{className:"h-5 w-5 text-emerald-600"})]}),e.jsx("h3",{className:"text-sm text-gray-600 mb-1",children:"Overall Credit Rate"}),e.jsxs("p",{className:"text-xl text-gray-900 mb-1",children:[A(),"%"]}),e.jsxs("p",{className:"text-sm text-emerald-600",children:[v(l.credited)," claims credited"]})]})}),e.jsx(te,{className:"border-t-4 border-t-amber-500 shadow-lg hover:shadow-xl transition-shadow",children:e.jsxs(se,{className:"pt-6",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsx("div",{className:"p-3 bg-amber-100 rounded-lg",children:e.jsx(Du,{className:"h-6 w-6 text-amber-600"})}),e.jsx(os,{className:"h-5 w-5 text-amber-600"})]}),e.jsx("h3",{className:"text-sm text-gray-600 mb-1",children:"Pending Action"}),e.jsx("p",{className:"text-xl text-gray-900 mb-1",children:v(l.pendingCredit)}),e.jsxs("p",{className:"text-sm text-amber-600",children:[b(l.pendingCreditValue)," awaiting credit"]})]})})]})]})}function US({searchTerm:t,sortBy:s,sortOrder:a,onSearchChange:r,onSortByChange:n,onSortOrderChange:i,onClearFilters:l,activeFiltersCount:o,...c}){return e.jsxs(te,{className:"shadow-lg border-0",children:[e.jsx(ue,{className:"pb-3 sm:pb-4 px-3 sm:px-6",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2 sm:gap-3",children:[e.jsx("div",{className:"p-1.5 sm:p-2 bg-blue-100 rounded-lg",children:e.jsx(Ha,{className:"h-4 w-4 sm:h-5 sm:w-5 text-blue-600"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-base sm:text-lg",children:"Filters & Search"}),e.jsx(Te,{className:"text-xs sm:text-sm",children:o>0&&e.jsxs("span",{className:"text-blue-600 font-medium",children:[o," filter",o>1?"s":""," active"]})})]})]}),o>0&&e.jsxs(M,{variant:"ghost",size:"sm",onClick:l,className:"text-red-600 hover:bg-red-50 gap-1 h-8 sm:h-9 px-2 sm:px-3",children:[e.jsx(ht,{className:"w-3 h-3 sm:w-3.5 sm:h-3.5"}),e.jsx("span",{className:"text-xs sm:text-sm",children:"Clear"})]})]})}),e.jsx(se,{className:"space-y-3 sm:space-y-4 px-3 sm:px-6",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3 sm:gap-4",children:[e.jsxs("div",{className:"relative",children:[e.jsx(vs,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-3.5 h-3.5 sm:w-4 sm:h-4"}),e.jsx(Se,{placeholder:"Search requests, IDs...",value:t,onChange:d=>r(d.target.value),className:"pl-9 sm:pl-10 h-9 sm:h-10 md:h-11 text-sm sm:text-base bg-gray-50 border-gray-200 focus:bg-white focus:border-blue-400 focus:ring-1 focus:ring-blue-200 transition-colors"})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(Be,{value:s,onValueChange:d=>n(d),children:[e.jsx(ze,{className:"h-9 sm:h-10 md:h-11 text-sm sm:text-base bg-gray-50 border-gray-200 focus:bg-white focus:border-blue-400 focus:ring-1 focus:ring-blue-200",children:e.jsx(Ve,{placeholder:"Sort by"})}),e.jsxs(He,{children:[e.jsx(K,{value:"due",children:"Due Date"}),e.jsx(K,{value:"created",children:"Date Created"}),e.jsx(K,{value:"priority",children:"Priority"}),e.jsx(K,{value:"sla",children:"SLA Progress"})]})]}),e.jsx(M,{variant:"outline",size:"sm",onClick:()=>i(a==="asc"?"desc":"asc"),className:"px-2 sm:px-3 h-9 sm:h-10 md:h-11",children:a==="asc"?e.jsx(ki,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"}):e.jsx(Ri,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"})})]})]})})]})}function BS({searchTerm:t,statusFilter:s="all",sortBy:a,sortOrder:r,onSearchChange:n,onStatusChange:i,onSortByChange:l,onSortOrderChange:o,onClearFilters:c,activeFiltersCount:d,...m}){return e.jsxs(te,{className:"shadow-lg border-0","data-testid":"dealer-closed-requests-filters",children:[e.jsx(ue,{className:"pb-3 sm:pb-4 px-3 sm:px-6",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2 sm:gap-3",children:[e.jsx("div",{className:"p-1.5 sm:p-2 bg-blue-100 rounded-lg",children:e.jsx(Ha,{className:"h-4 w-4 sm:h-5 sm:w-5 text-blue-600"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-base sm:text-lg",children:"Filters & Search"}),e.jsx(Te,{className:"text-xs sm:text-sm",children:d>0&&e.jsxs("span",{className:"text-blue-600 font-medium",children:[d," filter",d>1?"s":""," active"]})})]})]}),d>0&&e.jsxs(M,{variant:"ghost",size:"sm",onClick:c,className:"text-red-600 hover:bg-red-50 gap-1 h-8 sm:h-9 px-2 sm:px-3","data-testid":"dealer-closed-requests-clear-filters",children:[e.jsx(ht,{className:"w-3 h-3 sm:w-3.5 sm:h-3.5"}),e.jsx("span",{className:"text-xs sm:text-sm",children:"Clear"})]})]})}),e.jsx(se,{className:"space-y-3 sm:space-y-4 px-3 sm:px-6",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-3 sm:gap-4",children:[e.jsxs("div",{className:"relative",children:[e.jsx(vs,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-3.5 h-3.5 sm:w-4 sm:h-4"}),e.jsx(Se,{placeholder:"Search requests, IDs...",value:t,onChange:u=>n(u.target.value),className:"pl-9 sm:pl-10 h-9 sm:h-10 md:h-11 text-sm sm:text-base bg-gray-50 border-gray-200 focus:bg-white focus:border-blue-400 focus:ring-1 focus:ring-blue-200 transition-colors","data-testid":"dealer-closed-requests-search"})]}),i&&e.jsxs(Be,{value:s,onValueChange:i,children:[e.jsx(ze,{className:"h-9 sm:h-10 md:h-11 text-sm sm:text-base bg-gray-50 border-gray-200 focus:bg-white focus:border-blue-400 focus:ring-1 focus:ring-blue-200","data-testid":"dealer-closed-requests-status-filter",children:e.jsx(Ve,{placeholder:"Closure Type"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Closures"}),e.jsx(K,{value:"approved",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ce,{className:"w-4 h-4 text-green-600"}),e.jsx("span",{children:"Closed After Approval"})]})}),e.jsx(K,{value:"rejected",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(gt,{className:"w-4 h-4 text-red-600"}),e.jsx("span",{children:"Closed After Rejection"})]})})]})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(Be,{value:a,onValueChange:u=>l(u),children:[e.jsx(ze,{className:"h-9 sm:h-10 md:h-11 text-sm sm:text-base bg-gray-50 border-gray-200 focus:bg-white focus:border-blue-400 focus:ring-1 focus:ring-blue-200","data-testid":"dealer-closed-requests-sort-by",children:e.jsx(Ve,{placeholder:"Sort by"})}),e.jsxs(He,{children:[e.jsx(K,{value:"due",children:"Due Date"}),e.jsx(K,{value:"created",children:"Date Created"}),e.jsx(K,{value:"priority",children:"Priority"})]})]}),e.jsx(M,{variant:"outline",size:"sm",onClick:o,className:"px-2 sm:px-3 h-9 sm:h-10 md:h-11","data-testid":"dealer-closed-requests-sort-order",children:r==="asc"?e.jsx(ki,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"}):e.jsx(Ri,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"})})]})]})})]})}function VS({searchTerm:t,statusFilter:s,initiatorFilter:a,approverFilter:r,approverFilterType:n,dateRange:i,customStartDate:l,customEndDate:o,showCustomDatePicker:c,initiatorSearch:d,approverSearch:m,onSearchChange:u,onStatusChange:h,onInitiatorChange:g,onApproverChange:p,onApproverTypeChange:y,onDateRangeChange:f,onCustomStartDateChange:b,onCustomEndDateChange:v,onShowCustomDatePickerChange:w,onApplyCustomDate:A,onClearFilters:S,hasActiveFilters:k,...F}){return e.jsx(te,{className:"border-gray-200 shadow-md","data-testid":"dealer-user-all-requests-filters",children:e.jsx(se,{className:"p-4 sm:p-6",children:e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ha,{className:"w-5 h-5 text-muted-foreground"}),e.jsx("h3",{className:"font-semibold text-gray-900",children:"Filters"}),k&&e.jsx(le,{variant:"outline",className:"bg-blue-50 text-blue-700 border-blue-200",children:"Active"})]}),k&&e.jsxs(M,{variant:"ghost",size:"sm",onClick:S,className:"gap-2",children:[e.jsx(Bt,{className:"w-4 h-4"}),"Clear All"]})]}),e.jsx(Vt,{}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3 sm:gap-4",children:[e.jsxs("div",{className:"relative",children:[e.jsx(vs,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-4 h-4"}),e.jsx(Se,{placeholder:"Search requests...",value:t,onChange:T=>u(T.target.value),className:"pl-10 h-10","data-testid":"dealer-search-input"})]}),e.jsxs(Be,{value:s,onValueChange:h,children:[e.jsx(ze,{className:"h-10","data-testid":"dealer-status-filter",children:e.jsx(Ve,{placeholder:"All Status"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Status"}),e.jsx(K,{value:"pending",children:"Pending"}),e.jsx(K,{value:"paused",children:"Paused"}),e.jsx(K,{value:"approved",children:"Approved"}),e.jsx(K,{value:"rejected",children:"Rejected"}),e.jsx(K,{value:"closed",children:"Closed"})]})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3 sm:gap-4",children:[e.jsxs("div",{className:"flex flex-col",children:[e.jsx(re,{className:"text-sm font-medium text-gray-700 mb-2",children:"Initiator"}),e.jsx("div",{className:"relative",children:d.selectedUser?e.jsxs("div",{className:"flex items-center gap-2 h-10 px-3 bg-white border border-gray-300 rounded-md",children:[e.jsx("span",{className:"flex-1 text-sm text-gray-900 truncate",children:d.selectedUser.displayName||d.selectedUser.email}),e.jsx(M,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:d.handleClear,children:e.jsx(ht,{className:"h-3 w-3"})})]}):e.jsxs(e.Fragment,{children:[e.jsx(Se,{placeholder:"Search initiator...",value:d.searchQuery,onChange:T=>d.handleSearch(T.target.value),onFocus:()=>{d.searchResults.length>0&&d.setShowResults(!0)},onBlur:()=>setTimeout(()=>d.setShowResults(!1),200),className:"h-10","data-testid":"dealer-initiator-search-input"}),d.showResults&&d.searchResults.length>0&&e.jsx("div",{className:"absolute z-50 w-full mt-1 bg-white border border-gray-300 rounded-md shadow-lg max-h-60 overflow-y-auto",children:d.searchResults.map(T=>e.jsx("button",{type:"button",onClick:()=>d.handleSelect(T),className:"w-full px-4 py-2 text-left hover:bg-gray-50",children:e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"text-sm font-medium text-gray-900",children:T.displayName||T.email}),T.displayName&&e.jsx("span",{className:"text-xs text-gray-500",children:T.email})]})},T.userId))})]})})]}),e.jsxs("div",{className:"flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx(re,{className:"text-sm font-medium text-gray-700",children:"Approver"}),r!=="all"&&y&&e.jsxs(Be,{value:n,onValueChange:T=>y(T),children:[e.jsx(ze,{className:"h-7 w-32 text-xs",children:e.jsx(Ve,{})}),e.jsxs(He,{children:[e.jsx(K,{value:"current",children:"Current Only"}),e.jsx(K,{value:"any",children:"Any Approver"})]})]})]}),e.jsx("div",{className:"relative",children:m.selectedUser?e.jsxs("div",{className:"flex items-center gap-2 h-10 px-3 bg-white border border-gray-300 rounded-md",children:[e.jsx("span",{className:"flex-1 text-sm text-gray-900 truncate",children:m.selectedUser.displayName||m.selectedUser.email}),e.jsx(M,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:m.handleClear,children:e.jsx(ht,{className:"h-3 w-3"})})]}):e.jsxs(e.Fragment,{children:[e.jsx(Se,{placeholder:"Search approver...",value:m.searchQuery,onChange:T=>m.handleSearch(T.target.value),onFocus:()=>{m.searchResults.length>0&&m.setShowResults(!0)},onBlur:()=>setTimeout(()=>m.setShowResults(!1),200),className:"h-10","data-testid":"dealer-approver-search-input"}),m.showResults&&m.searchResults.length>0&&e.jsx("div",{className:"absolute z-50 w-full mt-1 bg-white border border-gray-300 rounded-md shadow-lg max-h-60 overflow-y-auto",children:m.searchResults.map(T=>e.jsx("button",{type:"button",onClick:()=>m.handleSelect(T),className:"w-full px-4 py-2 text-left hover:bg-gray-50",children:e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"text-sm font-medium text-gray-900",children:T.displayName||T.email}),T.displayName&&e.jsx("span",{className:"text-xs text-gray-500",children:T.email})]})},T.userId))})]})})]})]}),e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx(ut,{className:"w-4 h-4 text-muted-foreground"}),e.jsxs(Be,{value:i,onValueChange:T=>f(T),children:[e.jsx(ze,{className:"w-[160px] h-10",children:e.jsx(Ve,{placeholder:"Date Range"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Time"}),e.jsx(K,{value:"today",children:"Today"}),e.jsx(K,{value:"week",children:"This Week"}),e.jsx(K,{value:"month",children:"This Month"}),e.jsx(K,{value:"last7days",children:"Last 7 Days"}),e.jsx(K,{value:"last30days",children:"Last 30 Days"}),e.jsx(K,{value:"custom",children:"Custom Range"})]})]}),i==="custom"&&e.jsxs(oa,{open:c,onOpenChange:w,children:[e.jsx(ca,{asChild:!0,children:e.jsxs(M,{variant:"outline",size:"sm",className:"gap-2",children:[e.jsx(ut,{className:"w-4 h-4"}),l&&o?`${De(l,"MMM d, yyyy")} - ${De(o,"MMM d, yyyy")}`:"Select dates"]})}),e.jsx(da,{className:"w-auto p-4",align:"start",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"start-date",children:"Start Date"}),e.jsx(Se,{id:"start-date",type:"date",value:l?De(l,"yyyy-MM-dd"):"",onChange:T=>{const D=T.target.value?new Date(T.target.value):void 0;D?(b==null||b(D),o&&D>o&&(v==null||v(D))):b==null||b(void 0)},max:De(new Date,"yyyy-MM-dd"),className:"w-full"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"end-date",children:"End Date"}),e.jsx(Se,{id:"end-date",type:"date",value:o?De(o,"yyyy-MM-dd"):"",onChange:T=>{const D=T.target.value?new Date(T.target.value):void 0;D?(v==null||v(D),l&&D<l&&(b==null||b(D))):v==null||v(void 0)},min:l?De(l,"yyyy-MM-dd"):void 0,max:De(new Date,"yyyy-MM-dd"),className:"w-full"})]})]}),e.jsxs("div",{className:"flex gap-2 pt-2 border-t",children:[e.jsx(M,{size:"sm",onClick:A,disabled:!l||!o,className:"flex-1 bg-re-green hover:bg-re-green/90",children:"Apply"}),e.jsx(M,{size:"sm",variant:"outline",onClick:()=>{w==null||w(!1),b==null||b(void 0),v==null||v(void 0),f("month")},children:"Cancel"})]})]})})]})]})]})})})}function zS(t){switch(t){case"DEALER_CLAIM":return OS;case"CUSTOM":default:return v2}}function HS(t){switch(t){case"DEALER":return US;case"STANDARD":default:return b2}}function WS(t){switch(t){case"DEALER":return BS;case"STANDARD":default:return j2}}function GS(t){switch(t){case"DEALER":return VS;case"STANDARD":default:return N2}}const KS=t=>{switch(t){case"express":return{color:"bg-red-100 text-red-800 border-red-200",icon:ha,iconColor:"text-red-600"};case"standard":return{color:"bg-blue-100 text-blue-800 border-blue-200",icon:_t,iconColor:"text-blue-600"};default:return{color:"bg-gray-100 text-gray-800 border-gray-200",icon:_t,iconColor:"text-gray-600"}}},YS=t=>{switch(t){case"pending":return{color:"bg-yellow-100 text-yellow-800 border-yellow-200",icon:Ye,iconColor:"text-yellow-600",label:"Pending"};case"approved":return{color:"bg-green-100 text-green-800 border-green-200",icon:Ge,iconColor:"text-green-600",label:"Needs Closure"};case"rejected":return{color:"bg-red-100 text-red-800 border-red-200",icon:gt,iconColor:"text-red-600",label:"Rejected"};case"closed":return{color:"bg-gray-100 text-gray-800 border-gray-200",icon:Ce,iconColor:"text-gray-600",label:"Closed"};default:return{color:"bg-gray-100 text-gray-800 border-gray-200",icon:Ge,iconColor:"text-gray-600",label:t}}};function ZS({onViewRequest:t}){const[s,a]=x.useState([]),[r,n]=x.useState(!1),[i,l]=x.useState(!1),[o,c]=x.useState(1),[d,m]=x.useState(0),[u]=x.useState(10),h=x.useRef(null),g=Hv(),p=x.useMemo(()=>{try{const T=st.getUserData();return ko(T)}catch(T){return console.error("[OpenRequests] Error getting user filter type:",T),"STANDARD"}},[]),y=x.useMemo(()=>HS(p),[p]),f=p==="DEALER",b=T=>({search:g.searchTerm||void 0,status:T&&!f&&g.statusFilter!=="all"?g.statusFilter:void 0,priority:!f&&g.priorityFilter!=="all"?g.priorityFilter:void 0,templateType:!f&&g.templateTypeFilter!=="all"?g.templateTypeFilter:void 0,sortBy:g.sortBy,sortOrder:g.sortOrder}),v=x.useCallback(async(T=1,D)=>{try{T===1&&(n(!0),a([]));const C=await Cs.listOpenForMe({page:T,limit:u,search:D==null?void 0:D.search,status:D==null?void 0:D.status,priority:D==null?void 0:D.priority,templateType:D==null?void 0:D.templateType,sortBy:D==null?void 0:D.sortBy,sortOrder:D==null?void 0:D.sortOrder}),P=Array.isArray(C==null?void 0:C.data)?C.data:[],R=C==null?void 0:C.pagination;R&&(g.setCurrentPage(R.page||1),c(R.totalPages||1),m(R.total||0));const V=P.map(I=>{var _,N,j,U;const $=I.submittedAt||I.submitted_at||I.createdAt||I.created_at;return{id:I.requestNumber||I.request_number||I.requestId,requestId:I.requestId,displayId:I.requestNumber||I.request_number||I.requestId,title:I.title,description:I.description,status:(I.status||"").toString().toLowerCase().replace("_","-"),priority:(I.priority||"").toString().toLowerCase(),initiator:{name:((_=I.initiator)==null?void 0:_.displayName)||((N=I.initiator)==null?void 0:N.email)||"—",avatar:(((j=I.initiator)==null?void 0:j.displayName)||((U=I.initiator)==null?void 0:U.email)||"NA").split(" ").map(z=>z[0]).join("").slice(0,2).toUpperCase()},currentApprover:I.currentApprover?{name:I.currentApprover.name||I.currentApprover.email||"—",avatar:(I.currentApprover.name||I.currentApprover.email||"CA").split(" ").map(z=>z[0]).join("").slice(0,2).toUpperCase(),sla:I.currentApprover.sla}:void 0,createdAt:$||"—",approvalStep:I.currentLevel?`Step ${I.currentLevel} of ${I.totalLevels||"?"}`:void 0,department:I.department,currentLevelSLA:I.currentLevelSLA,templateType:I.templateType||I.template_type}});a(V)}finally{n(!1),l(!1)}},[u,g]);h.current=v;const w=x.useCallback(()=>{l(!0),v(g.currentPage,b(!0))},[g.currentPage,v]),A=x.useCallback(T=>{T>=1&&T<=o&&(g.setCurrentPage(T),v(T,b(!0)))},[o,g,v]),S=()=>{const T=[];let C=Math.max(1,g.currentPage-Math.floor(2.5)),P=Math.min(o,C+5-1);P-C<4&&(C=Math.max(1,P-5+1));for(let R=C;R<=P;R++)T.push(R);return T},k=x.useRef(!1);x.useEffect(()=>{if(!k.current){k.current=!0;const T=g.currentPage||1;v(T,b(!0))}},[]),x.useEffect(()=>{if(!k.current)return;const T=setTimeout(()=>{g.setCurrentPage(1),v(1,b(!0))},g.searchTerm?500:0);return()=>clearTimeout(T)},[g.searchTerm,g.statusFilter,g.priorityFilter,g.templateTypeFilter,g.sortBy,g.sortOrder,f]);const F=s;return e.jsxs("div",{className:"space-y-4 sm:space-y-6 max-w-7xl mx-auto",children:[e.jsxs("div",{className:"flex flex-col lg:flex-row lg:items-center justify-between gap-3 sm:gap-4 md:gap-6",children:[e.jsx("div",{className:"space-y-1 sm:space-y-2",children:e.jsxs("div",{className:"flex items-center gap-2 sm:gap-3",children:[e.jsx("div",{className:"w-10 h-10 sm:w-12 sm:h-12 bg-gradient-to-br from-slate-800 to-slate-900 rounded-xl flex items-center justify-center shadow-lg",children:e.jsx(_e,{className:"w-5 h-5 sm:w-6 sm:h-6 text-white"})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-xl sm:text-2xl md:text-3xl font-bold text-gray-900",children:"My Open Requests"}),e.jsx("p",{className:"text-sm sm:text-base text-gray-600",children:"Manage and track your active approval requests"})]})]})}),e.jsxs("div",{className:"flex items-center gap-2 sm:gap-3",children:[e.jsxs(le,{variant:"secondary",className:"text-xs sm:text-sm md:text-base px-2 sm:px-3 md:px-4 py-1 sm:py-1.5 md:py-2 bg-slate-100 text-slate-800 font-semibold",children:[r?"Loading…":`${d||s.length} open`,e.jsx("span",{className:"hidden sm:inline ml-1",children:"requests"})]}),e.jsxs(M,{variant:"outline",size:"sm",className:"gap-1 sm:gap-2 h-8 sm:h-9",onClick:w,disabled:i,children:[e.jsx(Bt,{className:`w-3.5 h-3.5 sm:w-4 sm:h-4 ${i?"animate-spin":""}`}),e.jsx("span",{className:"hidden sm:inline",children:i?"Refreshing...":"Refresh"})]})]})]}),e.jsx(y,{searchTerm:g.searchTerm,statusFilter:g.statusFilter,priorityFilter:g.priorityFilter,templateTypeFilter:g.templateTypeFilter,sortBy:g.sortBy,sortOrder:g.sortOrder,onSearchChange:g.setSearchTerm,onStatusFilterChange:g.setStatusFilter,onPriorityFilterChange:g.setPriorityFilter,onTemplateTypeFilterChange:g.setTemplateTypeFilter,onSortByChange:g.setSortBy,onSortOrderChange:g.setSortOrder,onClearFilters:g.clearFilters,activeFiltersCount:g.activeFiltersCount}),e.jsx("div",{className:"space-y-3",children:F.map(T=>{const D=KS(T.priority),C=YS(T.status);return e.jsx(te,{className:"group hover:shadow-lg transition-all duration-200 cursor-pointer border border-gray-200 hover:border-blue-400 hover:scale-[1.002]",onClick:()=>t==null?void 0:t(T.id,T.title),children:e.jsx(se,{className:"p-4",children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"flex-shrink-0 pt-1",children:e.jsx("div",{className:`p-2.5 rounded-lg ${D.color} border shadow-sm`,children:e.jsx(D.icon,{className:`w-5 h-5 ${D.iconColor}`})})}),e.jsxs("div",{className:"flex-1 min-w-0 space-y-2.5",children:[e.jsxs("div",{className:"flex items-center gap-2.5 flex-wrap",children:[e.jsx("h3",{className:"text-base font-bold text-gray-900 group-hover:text-blue-600 transition-colors",children:T.displayId||T.id}),e.jsxs(le,{variant:"outline",className:`${C.color} text-xs px-2.5 py-0.5 font-semibold shrink-0`,children:[e.jsx(C.icon,{className:"w-3.5 h-3.5 mr-1"}),C.label||T.status]}),T.department&&e.jsx(le,{variant:"secondary",className:"bg-blue-50 text-blue-700 text-xs px-2.5 py-0.5 hidden sm:inline-flex",children:T.department}),e.jsx(le,{variant:"outline",className:`${D.color} text-xs px-2.5 py-0.5 capitalize hidden md:inline-flex`,children:T.priority}),(()=>{const P=(T==null?void 0:T.templateType)||(T==null?void 0:T.template_type)||"",R=(P==null?void 0:P.toUpperCase())||"";let V="Custom",I="bg-purple-100 !text-purple-600 border-purple-200";return R==="DEALER CLAIM"?(V="Dealer Claim",I="bg-blue-100 !text-blue-700 border-blue-200"):R==="TEMPLATE"&&(V="Template"),e.jsx(le,{variant:"outline",className:`${I} text-xs px-2.5 py-0.5 shrink-0 hidden md:inline-flex`,"data-testid":"template-type-badge",children:V})})()]}),e.jsx("h4",{className:"text-sm font-semibold text-gray-800 line-clamp-1 leading-relaxed",children:T.title}),T.currentLevelSLA&&(()=>{var $;const P=!!(T.isPaused||($=T.pauseInfo)!=null&&$.isPaused||T.status==="paused"),R=T.currentLevelSLA.percentageUsed||0,I=P?{bg:"bg-gray-100 border border-gray-300",progress:"bg-gray-500",text:"text-gray-600",icon:"text-gray-600"}:R>=100?{bg:"bg-red-50 border border-red-200",progress:"bg-red-600",text:"text-red-600",icon:"text-blue-600"}:R>=75?{bg:"bg-orange-50 border border-orange-200",progress:"bg-orange-500",text:"text-orange-600",icon:"text-blue-600"}:R>=50?{bg:"bg-amber-50 border border-amber-200",progress:"bg-amber-500",text:"text-amber-600",icon:"text-blue-600"}:{bg:"bg-green-50 border border-green-200",progress:"bg-green-600",text:"text-gray-700",icon:"text-blue-600"};return e.jsxs("div",{className:`p-2 rounded-md ${I.bg}`,children:[e.jsxs("div",{className:"flex items-center justify-between mb-1.5",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[P?e.jsx(bn,{className:`w-3.5 h-3.5 ${I.icon}`}):e.jsx(Ye,{className:`w-3.5 h-3.5 ${I.icon}`}),e.jsxs("span",{className:"text-xs font-medium text-gray-900",children:["TAT: ",R,"% ",P&&"(paused)"]})]}),e.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[e.jsx("span",{className:"text-gray-600",children:T.currentLevelSLA.elapsedText}),e.jsxs("span",{className:`font-semibold ${I.text}`,children:[T.currentLevelSLA.remainingText," left"]})]})]}),e.jsx(ea,{value:R,className:"h-1.5",indicatorClassName:I.progress})]})})(),e.jsxs("div",{className:"flex flex-wrap items-center gap-4 text-xs text-gray-600",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(as,{className:"h-6 w-6 ring-2 ring-white shadow-sm",children:e.jsx(rs,{className:"bg-gradient-to-br from-slate-700 to-slate-900 text-white text-[10px] font-bold",children:T.initiator.avatar})}),e.jsx("span",{className:"font-medium text-gray-900",children:T.initiator.name})]}),T.currentApprover&&e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(as,{className:"h-6 w-6 ring-2 ring-yellow-200 shadow-sm",children:e.jsx(rs,{className:"bg-yellow-500 text-white text-[10px] font-bold",children:T.currentApprover.avatar})}),e.jsx("span",{className:"font-medium text-gray-900",children:T.currentApprover.name})]}),T.approvalStep&&e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(Ge,{className:"w-3.5 h-3.5 text-blue-500"}),e.jsx("span",{className:"font-medium",children:T.approvalStep})]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(ut,{className:"w-3.5 h-3.5"}),e.jsxs("span",{children:["Created: ",T.createdAt!=="—"?ma(T.createdAt):"—"]})]})]})]}),e.jsx("div",{className:"flex-shrink-0 flex items-center pt-2",children:e.jsx(ls,{className:"w-5 h-5 text-gray-400 group-hover:text-blue-600 group-hover:translate-x-1 transition-all"})})]})})},T.id)})}),F.length===0&&e.jsx(te,{className:"shadow-lg border-0",children:e.jsxs(se,{className:"flex flex-col items-center justify-center py-16",children:[e.jsx("div",{className:"w-16 h-16 bg-gray-100 rounded-full flex items-center justify-center mb-4",children:e.jsx(_e,{className:"h-8 w-8 text-gray-400"})}),e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"No requests found"}),e.jsx("p",{className:"text-gray-600 text-center max-w-md",children:g.searchTerm||g.activeFiltersCount>0?"Try adjusting your filters or search terms to see more results.":"No open requests available at the moment."}),g.activeFiltersCount>0&&e.jsx(M,{variant:"outline",className:"mt-4",onClick:g.clearFilters,children:"Clear all filters"})]})}),o>1&&!r&&e.jsx(te,{className:"shadow-md",children:e.jsx(se,{className:"p-4",children:e.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-3",children:[e.jsxs("div",{className:"text-xs sm:text-sm text-muted-foreground",children:["Showing ",(g.currentPage-1)*u+1," to ",Math.min(g.currentPage*u,d)," of ",d," open requests"]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(M,{variant:"outline",size:"sm",onClick:()=>A(g.currentPage-1),disabled:g.currentPage===1,className:"h-8 w-8 p-0",children:e.jsx(ls,{className:"h-4 w-4 rotate-180"})}),g.currentPage>3&&o>5&&e.jsxs(e.Fragment,{children:[e.jsx(M,{variant:"outline",size:"sm",onClick:()=>A(1),className:"h-8 w-8 p-0",children:"1"}),e.jsx("span",{className:"text-muted-foreground",children:"..."})]}),S().map(T=>e.jsx(M,{variant:T===g.currentPage?"default":"outline",size:"sm",onClick:()=>A(T),className:`h-8 w-8 p-0 ${T===g.currentPage?"bg-re-green text-white hover:bg-re-green/90":""}`,children:T},T)),g.currentPage<o-2&&o>5&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-muted-foreground",children:"..."}),e.jsx(M,{variant:"outline",size:"sm",onClick:()=>A(o),className:"h-8 w-8 p-0",children:o})]}),e.jsx(M,{variant:"outline",size:"sm",onClick:()=>A(g.currentPage+1),disabled:g.currentPage===o,className:"h-8 w-8 p-0",children:e.jsx(ls,{className:"h-4 w-4"})})]})]})})})]})}function XS({totalRecords:t,loading:s,refreshing:a,onRefresh:r}){return e.jsxs("div",{className:"flex flex-col lg:flex-row lg:items-center justify-between gap-3 sm:gap-4 md:gap-6","data-testid":"closed-requests-header",children:[e.jsx("div",{className:"space-y-1 sm:space-y-2",children:e.jsxs("div",{className:"flex items-center gap-2 sm:gap-3",children:[e.jsx("div",{className:"w-10 h-10 sm:w-12 sm:h-12 bg-gradient-to-br from-slate-800 to-slate-900 rounded-xl flex items-center justify-center shadow-lg",children:e.jsx(_e,{className:"w-5 h-5 sm:w-6 sm:h-6 text-white"})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-xl sm:text-2xl md:text-3xl font-bold text-gray-900",children:"My Closed Requests"}),e.jsx("p",{className:"text-sm sm:text-base text-gray-600",children:"Review your completed and archived requests"})]})]})}),e.jsxs("div",{className:"flex items-center gap-2 sm:gap-3",children:[e.jsxs(le,{variant:"secondary",className:"text-xs sm:text-sm md:text-base px-2 sm:px-3 md:px-4 py-1 sm:py-1.5 md:py-2 bg-slate-100 text-slate-800 font-semibold","data-testid":"closed-requests-count",children:[s?"Loading…":`${t} closed`,e.jsx("span",{className:"hidden sm:inline ml-1",children:"requests"})]}),e.jsxs(M,{variant:"outline",size:"sm",className:"gap-1 sm:gap-2 h-8 sm:h-9",onClick:r,disabled:a,"data-testid":"closed-requests-refresh",children:[e.jsx(Bt,{className:`w-3.5 h-3.5 sm:w-4 sm:h-4 ${a?"animate-spin":""}`}),e.jsx("span",{className:"hidden sm:inline",children:a?"Refreshing...":"Refresh"})]})]})]})}function QS(t){switch(t){case"express":return{color:"bg-red-100 text-red-800 border-red-200",icon:ha,iconColor:"text-red-600"};case"standard":return{color:"bg-blue-100 text-blue-800 border-blue-200",icon:_t,iconColor:"text-blue-600"};default:return{color:"bg-gray-100 text-gray-800 border-gray-200",icon:_t,iconColor:"text-gray-600"}}}function JS(t){switch(t){case"closed":return{color:"bg-slate-100 text-slate-800 border-slate-300",icon:Ce,iconColor:"text-slate-600",label:"Closed",description:"Request finalized and archived"};case"rejected":return{color:"bg-red-100 text-red-800 border-red-300",icon:gt,iconColor:"text-red-600",label:"Rejected",description:"Request was declined"};default:return{color:"bg-gray-100 text-gray-800 border-gray-200",icon:Ge,iconColor:"text-gray-600",label:t,description:""}}}function qS({request:t,onViewRequest:s}){const a=QS(t.priority),r=JS(t.status),n=a.icon,i=r.icon;return e.jsx(te,{className:"group hover:shadow-lg transition-all duration-200 cursor-pointer border border-gray-200 hover:border-blue-400 hover:scale-[1.002]",onClick:()=>s==null?void 0:s(t.id,t.title),"data-testid":`closed-request-card-${t.id}`,children:e.jsx(se,{className:"p-5",children:e.jsxs("div",{className:"flex items-start gap-5",children:[e.jsx("div",{className:"flex-shrink-0 pt-1",children:e.jsx("div",{className:`p-2.5 rounded-lg ${a.color} border shadow-sm`,children:e.jsx(n,{className:`w-5 h-5 ${a.iconColor}`})})}),e.jsxs("div",{className:"flex-1 min-w-0 space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2.5 flex-wrap",children:[e.jsx("h3",{className:"text-base font-bold text-gray-900 group-hover:text-blue-600 transition-colors",children:t.displayId||t.id}),e.jsxs(le,{variant:"outline",className:`${r.color} text-xs px-2.5 py-0.5 font-semibold shrink-0`,children:[e.jsx(i,{className:"w-3.5 h-3.5 mr-1"}),r.label]}),t.department&&e.jsx(le,{variant:"secondary",className:"bg-blue-50 text-blue-700 text-xs px-2.5 py-0.5 hidden sm:inline-flex",children:t.department}),e.jsx(le,{variant:"outline",className:`${a.color} text-xs px-2.5 py-0.5 capitalize hidden md:inline-flex`,children:t.priority}),(()=>{const l=t.templateType||"",o=(l==null?void 0:l.toUpperCase())||"";let c="Custom",d="bg-purple-100 !text-purple-600 border-purple-200";return o==="DEALER CLAIM"?(c="Dealer Claim",d="bg-blue-100 !text-blue-700 border-blue-200"):o==="TEMPLATE"&&(c="Template"),e.jsx(le,{variant:"outline",className:`${d} text-xs px-2.5 py-0.5 shrink-0 hidden md:inline-flex`,"data-testid":"template-type-badge",children:c})})()]}),e.jsx("h4",{className:"text-sm font-semibold text-gray-800 line-clamp-1 leading-relaxed",children:t.title}),e.jsxs("div",{className:"flex flex-wrap items-center gap-4 text-xs text-gray-600",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(as,{className:"h-6 w-6 ring-2 ring-white shadow-sm",children:e.jsx(rs,{className:"bg-gradient-to-br from-slate-700 to-slate-900 text-white text-[10px] font-bold",children:t.initiator.avatar})}),e.jsx("span",{className:"font-medium text-gray-900",children:t.initiator.name})]}),(t.totalLevels??0)>0&&e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(Ce,{className:"w-3.5 h-3.5 text-green-600"}),e.jsxs("span",{className:"font-medium",children:[t.completedLevels||0,"/",t.totalLevels," Approvals"]})]}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(ut,{className:"w-3.5 h-3.5"}),e.jsxs("span",{children:["Created: ",t.createdAt!=="—"?ma(t.createdAt,!0):"—"]})]}),t.dueDate&&e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(Ce,{className:"w-3.5 h-3.5 text-slate-600"}),e.jsxs("span",{className:"font-medium",children:["Closed: ",ma(t.dueDate,!0)]})]})]})]}),e.jsx("div",{className:"flex-shrink-0 flex items-center pt-2",children:e.jsx(ls,{className:"w-5 h-5 text-gray-400 group-hover:text-blue-600 group-hover:translate-x-1 transition-all"})})]})})})}function eT({requests:t,loading:s,onViewRequest:a}){return s&&t.length===0?e.jsx("div",{className:"space-y-4","data-testid":"closed-requests-list-loading",children:[...Array(3)].map((r,n)=>e.jsx("div",{className:"h-32 bg-gray-100 animate-pulse rounded-lg"},n))}):t.length===0?null:e.jsx("div",{className:"space-y-4","data-testid":"closed-requests-list",children:t.map(r=>e.jsx(qS,{request:r,onViewRequest:a},r.id))})}function tT({searchTerm:t,activeFiltersCount:s,onClearFilters:a}){return e.jsx(te,{className:"shadow-lg border-0","data-testid":"closed-requests-empty",children:e.jsxs(se,{className:"flex flex-col items-center justify-center py-16",children:[e.jsx("div",{className:"w-16 h-16 bg-gray-100 rounded-full flex items-center justify-center mb-4",children:e.jsx(_e,{className:"h-8 w-8 text-gray-400"})}),e.jsx("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"No requests found"}),e.jsx("p",{className:"text-gray-600 text-center max-w-md",children:t||s>0?"Try adjusting your filters or search terms to see more results.":"No closed requests available at the moment."}),s>0&&e.jsx(M,{variant:"outline",className:"mt-4",onClick:a,"data-testid":"closed-requests-empty-clear-filters",children:"Clear all filters"})]})})}function sT(t,s){const a=[];let n=Math.max(1,t-Math.floor(2.5)),i=Math.min(s,n+5-1);i-n<4&&(n=Math.max(1,i-5+1));for(let l=n;l<=i;l++)a.push(l);return a}function aT({pagination:t,onPageChange:s}){const{currentPage:a,totalPages:r,totalRecords:n,itemsPerPage:i}=t;if(r<=1)return null;const l=sT(a,r);return e.jsx(te,{className:"shadow-md","data-testid":"closed-requests-pagination",children:e.jsx(se,{className:"p-4",children:e.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-3",children:[e.jsxs("div",{className:"text-xs sm:text-sm text-muted-foreground",children:["Showing ",(a-1)*i+1," to ",Math.min(a*i,n)," of ",n," closed requests"]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(M,{variant:"outline",size:"sm",onClick:()=>s(a-1),disabled:a===1,className:"h-8 w-8 p-0","data-testid":"closed-requests-pagination-prev",children:e.jsx(ls,{className:"h-4 w-4 rotate-180"})}),a>3&&r>5&&e.jsxs(e.Fragment,{children:[e.jsx(M,{variant:"outline",size:"sm",onClick:()=>s(1),className:"h-8 w-8 p-0","data-testid":"closed-requests-pagination-first",children:"1"}),e.jsx("span",{className:"text-muted-foreground",children:"..."})]}),l.map(o=>e.jsx(M,{variant:o===a?"default":"outline",size:"sm",onClick:()=>s(o),className:`h-8 w-8 p-0 ${o===a?"bg-re-green text-white hover:bg-re-green/90":""}`,"data-testid":`closed-requests-pagination-page-${o}`,children:o},o)),a<r-2&&r>5&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-muted-foreground",children:"..."}),e.jsx(M,{variant:"outline",size:"sm",onClick:()=>s(r),className:"h-8 w-8 p-0","data-testid":"closed-requests-pagination-last",children:r})]}),e.jsx(M,{variant:"outline",size:"sm",onClick:()=>s(a+1),disabled:a===r,className:"h-8 w-8 p-0","data-testid":"closed-requests-pagination-next",children:e.jsx(ls,{className:"h-4 w-4"})})]})]})})})}function rT(t){var s,a,r,n;return{id:t.requestNumber||t.request_number||t.requestId,requestId:t.requestId,displayId:t.requestNumber||t.request_number||t.requestId,title:t.title,description:t.description,status:(t.status||"").toString().toLowerCase(),priority:(t.priority||"").toString().toLowerCase(),initiator:{name:((s=t.initiator)==null?void 0:s.displayName)||((a=t.initiator)==null?void 0:a.email)||"—",avatar:(((r=t.initiator)==null?void 0:r.displayName)||"NA").split(" ").map(i=>i[0]).join("").slice(0,2).toUpperCase()},createdAt:t.submittedAt||t.createdAt||t.created_at||"—",dueDate:t.closureDate||t.closure_date||t.closedAt||void 0,reason:t.conclusionRemark||t.conclusion_remark,department:t.department,totalLevels:t.totalLevels||0,completedLevels:((n=t.summary)==null?void 0:n.approvedLevels)||0,templateType:t.templateType||t.template_type}}function nT(t){return t.map(rT)}function iT({itemsPerPage:t=10}={}){const[s,a]=x.useState([]),[r,n]=x.useState(!1),[i,l]=x.useState(!1),[o,c]=x.useState({currentPage:1,totalPages:1,totalRecords:0,itemsPerPage:t}),d=x.useCallback(async(u=1,h)=>{try{u===1&&(n(!0),a([]));const g=await Cs.listClosedByMe({page:u,limit:t,search:h==null?void 0:h.search,status:h!=null&&h.status&&h.status!=="all"?h.status:void 0,priority:h==null?void 0:h.priority,templateType:h==null?void 0:h.templateType,sortBy:h==null?void 0:h.sortBy,sortOrder:h==null?void 0:h.sortOrder}),p=Array.isArray(g==null?void 0:g.data)?g.data:[],y=nT(p);a(y);const f=g==null?void 0:g.pagination;f&&c({currentPage:f.page||1,totalPages:f.totalPages||1,totalRecords:f.total||0,itemsPerPage:t})}catch(g){console.error("[ClosedRequests] Error fetching requests:",g),a([])}finally{n(!1),l(!1)}},[t]),m=x.useCallback(u=>{l(!0),d(o.currentPage,u)},[d,o.currentPage]);return{requests:s,loading:r,refreshing:i,pagination:o,fetchRequests:d,handleRefresh:m}}const lT={searchTerm:"",statusFilter:"all",priorityFilter:"all",templateTypeFilter:"all",sortBy:"created",sortOrder:"desc",currentPage:1},kp=_r({name:"closedRequests",initialState:lT,reducers:{setSearchTerm:(t,s)=>{t.searchTerm=s.payload},setStatusFilter:(t,s)=>{t.statusFilter=s.payload},setPriorityFilter:(t,s)=>{t.priorityFilter=s.payload},setTemplateTypeFilter:(t,s)=>{t.templateTypeFilter=s.payload},setSortBy:(t,s)=>{t.sortBy=s.payload},setSortOrder:(t,s)=>{t.sortOrder=s.payload},setCurrentPage:(t,s)=>{t.currentPage=s.payload},clearFilters:t=>{t.searchTerm="",t.statusFilter="all",t.priorityFilter="all",t.templateTypeFilter="all",t.currentPage=1}}}),{setSearchTerm:oT,setStatusFilter:cT,setPriorityFilter:dT,setTemplateTypeFilter:mT,setSortBy:uT,setSortOrder:hT,setCurrentPage:xT,clearFilters:pT}=kp.actions;function gT({onFiltersChange:t,debounceMs:s=500}={}){const a=Dn(),r=x.useRef(null),n=x.useRef(!0),{searchTerm:i,statusFilter:l,priorityFilter:o,templateTypeFilter:c,sortBy:d,sortOrder:m,currentPage:u}=Or(k=>k.closedRequests),h=x.useCallback(k=>a(oT(k)),[a]),g=x.useCallback(k=>a(cT(k)),[a]),p=x.useCallback(k=>a(dT(k)),[a]),y=x.useCallback(k=>a(mT(k)),[a]),f=x.useCallback(k=>a(uT(k)),[a]),b=x.useCallback(k=>a(hT(k)),[a]),v=x.useCallback(k=>a(xT(k)),[a]),w=x.useCallback(()=>({search:i,status:l,priority:o,templateType:c!=="all"?c:void 0,sortBy:d,sortOrder:m}),[i,l,o,c,d,m]);x.useEffect(()=>{if(n.current){n.current=!1;return}r.current&&clearTimeout(r.current);const k=setTimeout(()=>{t&&t(w())},i?s:0);return r.current=k,()=>{r.current&&clearTimeout(r.current)}},[i,l,o,c,d,m,t,w,s]);const A=x.useCallback(()=>{a(pT())},[a]),S=[i,o!=="all"?o:null,l!=="all"?l:null,c!=="all"?c:null].filter(Boolean).length;return{searchTerm:i,priorityFilter:o,statusFilter:l,templateTypeFilter:c,sortBy:d,sortOrder:m,currentPage:u,setSearchTerm:h,setPriorityFilter:p,setStatusFilter:g,setTemplateTypeFilter:y,setSortBy:f,setSortOrder:b,setCurrentPage:v,clearFilters:A,activeFiltersCount:S,getFilters:w}}function fT({onViewRequest:t}){const s=iT({itemsPerPage:10}),a=x.useRef(s.fetchRequests);a.current=s.fetchRequests;const r=gT(),n=x.useMemo(()=>{try{const u=st.getUserData();return ko(u)}catch(u){return console.error("[ClosedRequests] Error getting user filter type:",u),"STANDARD"}},[]),i=x.useMemo(()=>WS(n),[n]),l=n==="DEALER",o=x.useRef({searchTerm:r.searchTerm,statusFilter:r.statusFilter,priorityFilter:r.priorityFilter,templateTypeFilter:r.templateTypeFilter,sortBy:r.sortBy,sortOrder:r.sortOrder}),c=x.useRef(!1);x.useEffect(()=>{const u=r.currentPage||1;a.current(u,{search:r.searchTerm||void 0,status:r.statusFilter!=="all"?r.statusFilter:void 0,priority:!l&&r.priorityFilter!=="all"?r.priorityFilter:void 0,templateType:!l&&r.templateTypeFilter!=="all"?r.templateTypeFilter:void 0,sortBy:r.sortBy,sortOrder:r.sortOrder}),c.current=!0},[l]),x.useEffect(()=>{if(!c.current)return;const u=o.current;if(!(u.searchTerm!==r.searchTerm||u.statusFilter!==r.statusFilter||u.priorityFilter!==r.priorityFilter||u.templateTypeFilter!==r.templateTypeFilter||u.sortBy!==r.sortBy||u.sortOrder!==r.sortOrder))return;const g=setTimeout(()=>{r.setCurrentPage(1),a.current(1,{search:r.searchTerm||void 0,status:r.statusFilter!=="all"?r.statusFilter:void 0,priority:r.priorityFilter!=="all"?r.priorityFilter:void 0,templateType:r.templateTypeFilter!=="all"?r.templateTypeFilter:void 0,sortBy:r.sortBy,sortOrder:r.sortOrder}),o.current={searchTerm:r.searchTerm,statusFilter:r.statusFilter,priorityFilter:r.priorityFilter,templateTypeFilter:r.templateTypeFilter,sortBy:r.sortBy,sortOrder:r.sortOrder}},r.searchTerm!==u.searchTerm?500:0);return()=>clearTimeout(g)},[r.searchTerm,r.statusFilter,r.priorityFilter,r.templateTypeFilter,r.sortBy,r.sortOrder,l]);const d=x.useCallback(u=>{u>=1&&u<=s.pagination.totalPages&&(r.setCurrentPage(u),s.fetchRequests(u,{search:r.searchTerm||void 0,status:r.statusFilter!=="all"?r.statusFilter:void 0,priority:r.priorityFilter!=="all"?r.priorityFilter:void 0,templateType:r.templateTypeFilter!=="all"?r.templateTypeFilter:void 0,sortBy:r.sortBy,sortOrder:r.sortOrder}))},[s,r]),m=x.useCallback(()=>{s.handleRefresh({search:r.searchTerm||void 0,status:r.statusFilter!=="all"?r.statusFilter:void 0,priority:r.priorityFilter!=="all"?r.priorityFilter:void 0,templateType:r.templateTypeFilter!=="all"?r.templateTypeFilter:void 0,sortBy:r.sortBy,sortOrder:r.sortOrder})},[s,r]);return e.jsxs("div",{className:"space-y-4 sm:space-y-6 max-w-7xl mx-auto","data-testid":"closed-requests-page",children:[e.jsx(XS,{totalRecords:s.pagination.totalRecords,loading:s.loading,refreshing:s.refreshing,onRefresh:m}),e.jsx(i,{searchTerm:r.searchTerm,priorityFilter:r.priorityFilter,statusFilter:r.statusFilter,templateTypeFilter:r.templateTypeFilter,sortBy:r.sortBy,sortOrder:r.sortOrder,activeFiltersCount:l?[r.searchTerm,r.statusFilter!=="all"?r.statusFilter:null].filter(Boolean).length:r.activeFiltersCount,onSearchChange:r.setSearchTerm,onPriorityChange:r.setPriorityFilter,onStatusChange:r.setStatusFilter,onTemplateTypeChange:r.setTemplateTypeFilter,onSortByChange:r.setSortBy,onSortOrderChange:()=>r.setSortOrder(r.sortOrder==="asc"?"desc":"asc"),onClearFilters:r.clearFilters}),e.jsx(eT,{requests:s.requests,loading:s.loading,onViewRequest:t}),s.requests.length===0&&!s.loading&&e.jsx(tT,{searchTerm:r.searchTerm,activeFiltersCount:r.activeFiltersCount,onClearFilters:r.clearFilters}),!s.loading&&e.jsx(aT,{pagination:s.pagination,onPageChange:d})]})}function yT(t){return t?t.workflowType==="CLAIM_MANAGEMENT"||t.workflowType==="DEALER_CLAIM"||t.templateType==="claim-management"||t.template==="claim-management"||t.templateType==="dealer-claim"||t.templateName==="Claim Management"||t.templateCode==="CLAIM_MANAGEMENT"||t.templateCode==="DEALER_CLAIM":!1}function vT(t){return yT(t)?"DEALER_CLAIM":"CUSTOM"}function b4(t,s){return`/request/${t}`}class bT extends x.Component{constructor(s){super(s),this.state={hasError:!1,error:null}}static getDerivedStateFromError(s){return{hasError:!0,error:s}}componentDidCatch(s,a){console.error("RequestDetail Router Error:",s,a)}render(){var s;return this.state.hasError?e.jsx("div",{className:"min-h-screen bg-gray-50 flex items-center justify-center p-6",children:e.jsxs("div",{className:"max-w-md w-full bg-white rounded-lg shadow-lg p-8 text-center",children:[e.jsx(os,{className:"w-16 h-16 text-red-500 mx-auto mb-4"}),e.jsx("h2",{className:"text-2xl font-bold mb-2",children:"Error Loading Request"}),e.jsx("p",{className:"text-gray-600 mb-4",children:((s=this.state.error)==null?void 0:s.message)||"An unexpected error occurred"}),e.jsx(M,{onClick:()=>window.location.reload(),className:"mr-2",children:"Reload Page"}),e.jsx(M,{variant:"outline",onClick:()=>window.history.back(),children:"Go Back"})]})}):this.props.children}}function jT({requestId:t,onBack:s,dynamicRequests:a=[]}){const n=gr().requestId||t||"",{user:i}=Zt(),{apiRequest:l,loading:o}=mc(n,a,i);if(o&&!l)return e.jsx("div",{className:"flex items-center justify-center h-screen bg-gray-50","data-testid":"loading-state",children:e.jsxs("div",{className:"text-center",children:[e.jsx(Bt,{className:"w-12 h-12 text-blue-600 animate-spin mx-auto mb-4"}),e.jsx("p",{className:"text-gray-600",children:"Loading request details..."})]})});const c=vT(l),d=zS(c);return e.jsx(d,{requestId:t,onBack:s,dynamicRequests:a})}function NT(t){return e.jsx(bT,{children:e.jsx(jT,{...t})})}function wT({onViewSummary:t}){const s=Pa(),[a,r]=x.useState([]),[n,i]=x.useState(!0),[l,o]=x.useState(""),[c,d]=x.useState(1),[m,u]=x.useState(1),[h,g]=x.useState(0),p=10,y=x.useCallback(async(w=1)=>{try{i(!0);const A=await JC({page:w,limit:p});r(A.data||[]),u(A.pagination.totalPages||1),g(A.pagination.total||0),d(A.pagination.page||1)}catch(A){console.error("Failed to fetch shared summaries:",A),q.error("Failed to load shared summaries")}finally{i(!1)}},[]);x.useEffect(()=>{y(1)},[y]);const f=async w=>{try{await op(w),r(A=>A.map(S=>S.sharedSummaryId===w?{...S,isRead:!0,viewedAt:new Date().toISOString()}:S)),t?t(w):s(`/shared-summaries/${w}`)}catch(A){console.error("Failed to mark as viewed:",A),t?t(w):s(`/shared-summaries/${w}`)}},b=w=>{w>=1&&w<=m&&y(w)},v=a.filter(w=>{var S,k,F,T;if(!l)return!0;const A=l.toLowerCase();return((S=w.title)==null?void 0:S.toLowerCase().includes(A))||((k=w.requestNumber)==null?void 0:k.toLowerCase().includes(A))||((F=w.initiatorName)==null?void 0:F.toLowerCase().includes(A))||((T=w.sharedByName)==null?void 0:T.toLowerCase().includes(A))});return e.jsx("div",{className:"min-h-screen bg-gray-50 p-3 sm:p-4 md:p-6 overflow-x-hidden",children:e.jsxs("div",{className:"max-w-7xl mx-auto w-full",children:[e.jsxs("div",{className:"mb-4 sm:mb-6",children:[e.jsx("h1",{className:"text-xl sm:text-2xl md:text-3xl font-bold text-gray-900 mb-1 sm:mb-2",children:"Shared Summaries"}),e.jsx("p",{className:"text-xs sm:text-sm text-gray-600",children:"View summaries of closed requests shared with you"})]}),e.jsx("div",{className:"mb-4 sm:mb-6",children:e.jsxs("div",{className:"relative",children:[e.jsx(vs,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-gray-400"}),e.jsx(Se,{placeholder:"Search by title, request number, or user...",value:l,onChange:w=>o(w.target.value),className:"pl-10 text-sm sm:text-base"})]})}),n&&e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx(Je,{className:"h-8 w-8 animate-spin text-blue-600"})}),!n&&v.length===0&&e.jsxs("div",{className:"bg-white rounded-lg shadow-sm border border-gray-200 p-6 sm:p-12 text-center",children:[e.jsx(_e,{className:"h-8 w-8 sm:h-12 sm:w-12 text-gray-400 mx-auto mb-3 sm:mb-4"}),e.jsx("h3",{className:"text-base sm:text-lg font-semibold text-gray-900 mb-1 sm:mb-2",children:"No shared summaries"}),e.jsx("p",{className:"text-sm sm:text-base text-gray-600",children:l?"No summaries match your search.":"You haven't received any shared summaries yet."})]}),!n&&v.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"grid gap-3 sm:gap-4 mb-4 sm:mb-6",children:v.map(w=>e.jsx("div",{className:`bg-white rounded-lg shadow-sm border-2 transition-all cursor-pointer hover:shadow-md ${w.isRead?"border-gray-200":"border-blue-300 bg-blue-50"}`,onClick:()=>f(w.sharedSummaryId),children:e.jsx("div",{className:"p-3 sm:p-4 md:p-6",children:e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-3 sm:gap-4",children:[e.jsxs("div",{className:"flex-1 min-w-0 w-full sm:w-auto",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2 flex-wrap",children:[w.isRead?e.jsx(Hf,{className:"h-4 w-4 text-gray-400 flex-shrink-0"}):e.jsx(jt,{className:"h-4 w-4 text-blue-600 flex-shrink-0"}),e.jsx("h3",{className:"text-base sm:text-lg font-semibold text-gray-900 truncate flex-1 min-w-0",children:w.title}),!w.isRead&&e.jsx("span",{className:"px-2 py-0.5 bg-blue-100 text-blue-700 text-xs font-medium rounded-full flex-shrink-0",children:"New"})]}),e.jsxs("p",{className:"text-xs sm:text-sm text-gray-600 mb-2 sm:mb-3 break-words",children:["Request: ",e.jsx("span",{className:"font-medium",children:w.requestNumber})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row sm:flex-wrap items-start sm:items-center gap-2 sm:gap-3 md:gap-4 text-xs sm:text-sm text-gray-500",children:[e.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[e.jsx(kt,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4 flex-shrink-0"}),e.jsxs("span",{className:"truncate",children:["Initiator: ",e.jsx("span",{className:"font-medium",children:w.initiatorName})]})]}),e.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[e.jsx(kt,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4 flex-shrink-0"}),e.jsxs("span",{className:"truncate",children:["Shared by: ",e.jsx("span",{className:"font-medium",children:w.sharedByName})]})]}),e.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[e.jsx(ut,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4 flex-shrink-0"}),e.jsxs("span",{className:"truncate",children:["Shared: ",De(new Date(w.sharedAt),"MMM dd, yyyy HH:mm")]})]}),w.viewedAt&&e.jsxs("div",{className:"flex items-center gap-1 min-w-0",children:[e.jsx(jt,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4 flex-shrink-0"}),e.jsxs("span",{className:"truncate",children:["Viewed: ",De(new Date(w.viewedAt),"MMM dd, yyyy HH:mm")]})]})]})]}),e.jsx(M,{variant:"outline",size:"sm",className:"w-full sm:w-auto flex-shrink-0",onClick:A=>{A.stopPropagation(),f(w.sharedSummaryId)},children:"View"})]})})},w.sharedSummaryId))}),m>1&&e.jsxs("div",{className:"flex flex-col sm:flex-row items-stretch sm:items-center justify-between gap-3 sm:gap-4 bg-white rounded-lg shadow-sm border border-gray-200 p-3 sm:p-4",children:[e.jsxs("div",{className:"text-xs sm:text-sm text-gray-600 text-center sm:text-left",children:["Showing ",(c-1)*p+1," to ",Math.min(c*p,h)," of ",h," summaries"]}),e.jsxs("div",{className:"flex items-center justify-center gap-2",children:[e.jsx(M,{variant:"outline",size:"sm",onClick:()=>b(c-1),disabled:c===1,className:"text-xs sm:text-sm",children:"Previous"}),e.jsxs("span",{className:"text-xs sm:text-sm text-gray-600 whitespace-nowrap",children:["Page ",c," of ",m]}),e.jsx(M,{variant:"outline",size:"sm",onClick:()=>b(c+1),disabled:c===m,className:"text-xs sm:text-sm",children:"Next"})]})]})]})]})})}function CT(){const{sharedSummaryId:t}=gr(),s=Pa(),[a,r]=x.useState(null),[n,i]=x.useState(!0);x.useEffect(()=>{if(!t){s("/shared-summaries");return}(async()=>{var m,u;try{i(!0);try{await op(t)}catch(g){console.warn("Failed to mark as viewed:",g)}const h=await uc(t);r(h)}catch(h){console.error("Failed to fetch summary details:",h),q.error(((u=(m=h==null?void 0:h.response)==null?void 0:m.data)==null?void 0:u.message)||"Failed to load summary"),s("/shared-summaries")}finally{i(!1)}})()},[t,s]);const l=d=>{const m=d.toLowerCase();return m==="approved"?e.jsx(Ce,{className:"h-4 w-4 text-green-600"}):m==="rejected"?e.jsx(gt,{className:"h-4 w-4 text-red-600"}):m==="pending"||m==="in progress"?e.jsx(Ye,{className:"h-4 w-4 text-orange-600"}):e.jsx(_e,{className:"h-4 w-4 text-gray-600"})},o=d=>{const m=d.toLowerCase();return m==="approved"?"bg-green-100 text-green-700 border-green-300":m==="rejected"?"bg-red-100 text-red-700 border-red-300":m==="pending"||m==="in progress"?"bg-orange-100 text-orange-700 border-orange-300":"bg-gray-100 text-gray-700 border-gray-300"},c=(d,m)=>d&&d.trim()&&d.trim().toUpperCase()!=="N/A"?d:m&&m.trim()&&m.trim().toUpperCase()!=="N/A"?m:"N/A";return n?e.jsx("div",{className:"min-h-screen bg-gray-50 flex items-center justify-center",children:e.jsxs("div",{className:"text-center",children:[e.jsx(Je,{className:"h-12 w-12 animate-spin text-blue-600 mx-auto mb-4"}),e.jsx("p",{className:"text-gray-600",children:"Loading summary..."})]})}):a?e.jsx("div",{className:"min-h-screen bg-gray-50 p-4 sm:p-6",children:e.jsxs("div",{className:"max-w-5xl mx-auto",children:[e.jsxs("div",{className:"mb-6",children:[e.jsxs(M,{variant:"ghost",size:"sm",onClick:()=>s("/shared-summaries"),className:"mb-4",children:[e.jsx(zs,{className:"h-4 w-4 mr-2"}),"Back to Shared Summaries"]}),e.jsx("h1",{className:"text-2xl sm:text-3xl font-bold text-gray-900 mb-2",children:"Request Summary"})]}),e.jsxs("div",{className:"bg-white rounded-lg shadow-sm border border-gray-200 mb-6",children:[e.jsxs("div",{className:"p-6 border-b border-gray-200",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4 mb-4",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-xl font-semibold text-gray-900 mb-2",children:a.title}),e.jsxs("p",{className:"text-sm text-gray-600",children:["Request #",a.requestNumber]})]}),e.jsxs(le,{className:o(a.workflow.status),children:[l(a.workflow.status),e.jsx("span",{className:"ml-1 capitalize",children:a.workflow.status})]})]}),a.description&&e.jsx("div",{className:"mb-4",children:e.jsx(Qs,{content:a.description,className:"text-gray-700"})})]}),e.jsxs("div",{className:"p-6 border-b border-gray-200",children:[e.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-4",children:"Initiator"}),e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Name"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:a.initiator.name})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Designation"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:c(a.initiator.designation,a.initiator.department)})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Status"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:a.initiator.status})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Time Stamp"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:De(new Date(a.initiator.timestamp),"MMM dd, yy, HH:mm")})]})]})]}),a.approvers&&a.approvers.length>0&&e.jsxs("div",{className:"p-6 border-b border-gray-200",children:[e.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-4",children:"Workflow"}),a.approvers.map((d,m)=>e.jsxs("div",{className:"mb-6 last:mb-0",children:[e.jsxs("h4",{className:"text-md font-semibold text-gray-800 mb-3",children:["Approver ",d.levelNumber]}),e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 mb-3",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Name"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:d.name})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Designation"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:c(d.designation,d.department)})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Status"}),e.jsxs("div",{className:"flex items-center gap-1",children:[l(d.status),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:d.status})]})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Time Stamp"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:De(new Date(d.timestamp),"MMM dd, yy, HH:mm")})]})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Remarks"}),e.jsx("p",{className:"text-sm text-gray-700",children:d.remarks})]})]},m))]}),e.jsxs("div",{className:"p-6",children:[e.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-4",children:"Closing Remarks (Conclusion)"}),e.jsxs("div",{className:"bg-gray-50 rounded-lg p-4",children:[e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 mb-4",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Name"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:a.initiator.name})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Designation"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:c(a.initiator.designation,a.initiator.department)})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Status"}),e.jsx("p",{className:"text-sm font-medium text-gray-900",children:"Concluded"})]}),a.isAiGenerated&&e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Source"}),e.jsx(le,{variant:"outline",className:"text-xs",children:"AI Generated"})]})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-gray-500 mb-1",children:"Remarks"}),a.closingRemarks?e.jsx(Qs,{content:a.closingRemarks,className:"text-sm text-gray-700"}):e.jsx("p",{className:"text-sm text-gray-700",children:"—"})]})]})]})]})]})}):e.jsx("div",{className:"min-h-screen bg-gray-50 flex items-center justify-center",children:e.jsxs("div",{className:"text-center",children:[e.jsx(_e,{className:"h-12 w-12 text-gray-400 mx-auto mb-4"}),e.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-2",children:"Summary Not Found"}),e.jsx("p",{className:"text-gray-600 mb-4",children:"The summary you're looking for doesn't exist."}),e.jsx(M,{onClick:()=>s("/shared-summaries"),children:"Go Back"})]})})}function AT(){const{requestId:t}=gr(),s=Pa(),a=i=>{s(`/${i}`)},r=()=>{s("/new-request")},n=()=>{s("/login")};return e.jsx(fs,{currentPage:"work-notes",onNavigate:a,onNewRequest:r,onLogout:n,children:e.jsx("div",{className:"h-full w-full overflow-hidden",children:e.jsx(lp,{requestId:t||""})})})}function Rp({icon:t,title:s,description:a,badge:r,actions:n,testId:i="page-header"}){return e.jsxs("div",{className:"flex flex-col lg:flex-row lg:items-center justify-between gap-3 sm:gap-4 md:gap-6","data-testid":i,children:[e.jsx("div",{className:"space-y-1 sm:space-y-2",children:e.jsxs("div",{className:"flex items-center gap-2 sm:gap-3",children:[e.jsx("div",{className:"w-10 h-10 sm:w-12 sm:h-12 bg-gradient-to-br from-slate-800 to-slate-900 rounded-xl flex items-center justify-center shadow-lg","data-testid":`${i}-icon-container`,children:e.jsx(t,{className:"w-5 h-5 sm:w-6 sm:h-6 text-white","data-testid":`${i}-icon`})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-xl sm:text-2xl md:text-3xl font-bold text-gray-900","data-testid":`${i}-title`,children:s}),e.jsx("p",{className:"text-sm sm:text-base text-gray-600","data-testid":`${i}-description`,children:a})]})]})}),e.jsxs("div",{className:"flex items-center gap-2 sm:gap-3",children:[r&&e.jsxs(le,{variant:"secondary",className:"text-xs sm:text-sm md:text-base px-2 sm:px-3 md:px-4 py-1 sm:py-1.5 md:py-2 bg-slate-100 text-slate-800 font-semibold","data-testid":`${i}-badge`,children:[r.loading?"Loading…":r.value,e.jsx("span",{className:"hidden sm:inline ml-1",children:r.label})]}),n]})]})}function _s({label:t,value:s,icon:a,iconColor:r,gradient:n,textColor:i,valueColor:l,testId:o="stats-card",onClick:c}){return e.jsx(te,{className:`${n} border transition-shadow ${c?"cursor-pointer hover:shadow-lg":"hover:shadow-md"}`,"data-testid":o,onClick:c,children:e.jsx(se,{className:"p-3 sm:p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:`text-xs sm:text-sm font-medium ${i}`,"data-testid":`${o}-label`,children:t}),e.jsx("p",{className:`text-xl sm:text-2xl font-bold ${l}`,"data-testid":`${o}-value`,children:s})]}),e.jsx(a,{className:`w-6 h-6 sm:w-8 sm:h-8 ${r}`,"data-testid":`${o}-icon`})]})})})}function ST({stats:t,onStatusFilter:s}){const a=r=>{s&&s(r)};return e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-7 gap-3 sm:gap-4","data-testid":"my-requests-stats",children:[e.jsx(_s,{label:"Total",value:t.total,icon:_e,iconColor:"text-blue-600",gradient:"bg-gradient-to-br from-blue-50 to-blue-100 border-blue-200",textColor:"text-blue-700",valueColor:"text-blue-900",testId:"stat-total",onClick:s?()=>a("all"):void 0}),e.jsx(_s,{label:"Pending",value:t.pending,icon:Ye,iconColor:"text-orange-600",gradient:"bg-gradient-to-br from-orange-50 to-orange-100 border-orange-200",textColor:"text-orange-700",valueColor:"text-orange-900",testId:"stat-pending",onClick:s?()=>a("pending"):void 0}),e.jsx(_s,{label:"Paused",value:t.paused,icon:Ua,iconColor:"text-amber-600",gradient:"bg-gradient-to-br from-amber-50 to-amber-100 border-amber-200",textColor:"text-amber-700",valueColor:"text-amber-900",testId:"stat-paused",onClick:s?()=>a("paused"):void 0}),e.jsx(_s,{label:"Approved",value:t.approved,icon:Ce,iconColor:"text-green-600",gradient:"bg-gradient-to-br from-green-50 to-green-100 border-green-200",textColor:"text-green-700",valueColor:"text-green-900",testId:"stat-approved",onClick:s?()=>a("approved"):void 0}),e.jsx(_s,{label:"Rejected",value:t.rejected,icon:gt,iconColor:"text-red-600",gradient:"bg-gradient-to-br from-red-50 to-red-100 border-red-200",textColor:"text-red-700",valueColor:"text-red-900",testId:"stat-rejected",onClick:s?()=>a("rejected"):void 0}),e.jsx(_s,{label:"Draft",value:t.draft,icon:Di,iconColor:"text-gray-600",gradient:"bg-gradient-to-br from-gray-50 to-gray-100 border-gray-200",textColor:"text-gray-700",valueColor:"text-gray-900",testId:"stat-draft",onClick:s?()=>a("draft"):void 0}),e.jsx(_s,{label:"Closed",value:t.closed,icon:Pi,iconColor:"text-purple-600",gradient:"bg-gradient-to-br from-purple-50 to-purple-100 border-purple-200",textColor:"text-purple-700",valueColor:"text-purple-900",testId:"stat-closed",onClick:s?()=>a("closed"):void 0})]})}function TT({searchTerm:t,statusFilter:s,priorityFilter:a,templateTypeFilter:r,onSearchChange:n,onStatusChange:i,onPriorityChange:l,onTemplateTypeChange:o}){return e.jsx(te,{className:"border-gray-200","data-testid":"my-requests-filters",children:e.jsx(se,{className:"p-3 sm:p-4 md:p-6",children:e.jsxs("div",{className:"flex flex-col md:flex-row gap-3 sm:gap-4 items-start md:items-center",children:[e.jsxs("div",{className:"flex-1 relative w-full",children:[e.jsx(vs,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-3.5 h-3.5 sm:w-4 sm:h-4"}),e.jsx(Se,{placeholder:"Search requests by title, description, or ID...",value:t,onChange:c=>n(c.target.value),className:"pl-9 text-sm sm:text-base bg-white border-gray-300 hover:border-gray-400 focus:border-blue-400 focus:ring-1 focus:ring-blue-200 h-9 sm:h-10","data-testid":"search-input"})]}),e.jsxs("div",{className:"flex gap-2 sm:gap-3 w-full md:w-auto",children:[e.jsxs(Be,{value:s,onValueChange:i,children:[e.jsx(ze,{className:"flex-1 md:w-28 lg:w-32 text-xs sm:text-sm bg-white border-gray-300 hover:border-gray-400 focus:border-blue-400 focus:ring-1 focus:ring-blue-200 h-9 sm:h-10","data-testid":"status-filter",children:e.jsx(Ve,{placeholder:"Status"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Status"}),e.jsx(K,{value:"draft",children:"Draft"}),e.jsx(K,{value:"pending",children:"Pending"}),e.jsx(K,{value:"paused",children:"Paused"}),e.jsx(K,{value:"approved",children:"Approved"}),e.jsx(K,{value:"rejected",children:"Rejected"}),e.jsx(K,{value:"closed",children:"Closed"})]})]}),e.jsxs(Be,{value:a,onValueChange:l,children:[e.jsx(ze,{className:"flex-1 md:w-28 lg:w-32 text-xs sm:text-sm bg-white border-gray-300 hover:border-gray-400 focus:border-blue-400 focus:ring-1 focus:ring-blue-200 h-9 sm:h-10","data-testid":"priority-filter",children:e.jsx(Ve,{placeholder:"Priority"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Priority"}),e.jsx(K,{value:"express",children:"Express"}),e.jsx(K,{value:"standard",children:"Standard"})]})]}),e.jsxs(Be,{value:r,onValueChange:o,children:[e.jsx(ze,{className:"flex-1 md:w-28 lg:w-32 text-xs sm:text-sm bg-white border-gray-300 hover:border-gray-400 focus:border-blue-400 focus:ring-1 focus:ring-blue-200 h-9 sm:h-10","data-testid":"template-type-filter",children:e.jsx(Ve,{placeholder:"Template Type"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Templates"}),e.jsx(K,{value:"CUSTOM",children:"Custom"}),e.jsx(K,{value:"DEALER CLAIM",children:"Dealer Claim"})]})]})]})]})})})}function kT(t){switch(t){case"express":return{color:"bg-red-100 text-red-800 border-red-200",icon:ha,iconColor:"text-red-600"};case"standard":return{color:"bg-blue-100 text-blue-800 border-blue-200",icon:_t,iconColor:"text-blue-600"};default:return{color:"bg-gray-100 text-gray-800 border-gray-200",icon:_t,iconColor:"text-gray-600"}}}function RT(t){switch(t){case"approved":return{color:"bg-green-100 text-green-800 border-green-200",icon:Ce,iconColor:"text-green-600"};case"rejected":return{color:"bg-red-100 text-red-800 border-red-200",icon:gt,iconColor:"text-red-600"};case"pending":return{color:"bg-yellow-100 text-yellow-800 border-yellow-200",icon:Ye,iconColor:"text-yellow-600"};case"closed":return{color:"bg-gray-100 text-gray-800 border-gray-200",icon:Ce,iconColor:"text-gray-600"};case"draft":return{color:"bg-gray-100 text-gray-800 border-gray-200",icon:Di,iconColor:"text-gray-600"};default:return{color:"bg-gray-100 text-gray-800 border-gray-200",icon:Ge,iconColor:"text-gray-600"}}}const DT=t=>{if(!t)return"";if(typeof document>"u")return t.replace(/<[^>]*>/g,"").replace(/\s+/g," ").trim();const s=document.createElement("div");s.innerHTML=t;let a=s.textContent||s.innerText||"";return a=a.replace(/\s+/g," ").trim(),a};function PT({request:t,index:s,onViewRequest:a}){var o;const r=RT(t.status),n=kT(t.priority),i=r.icon,l=n.icon;return e.jsx(ms.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:s*.1},children:e.jsx(te,{className:"group hover:shadow-lg transition-all duration-300 cursor-pointer border border-gray-200 shadow-sm hover:shadow-md",onClick:()=>a(t.id,t.title,t.status),"data-testid":`request-card-${t.id}`,children:e.jsx(se,{className:"p-3 sm:p-6",children:e.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h4",{className:"text-base sm:text-lg font-semibold text-gray-900 mb-2 group-hover:text-blue-600 transition-colors line-clamp-2","data-testid":"request-title",children:t.title}),e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 sm:gap-2 mb-2",children:[e.jsxs(le,{variant:"outline",className:`${r.color} border font-medium text-xs shrink-0`,"data-testid":"status-badge",children:[e.jsx(i,{className:"w-3 h-3 mr-1"}),e.jsx("span",{className:"capitalize",children:t.status})]}),(((o=t.pauseInfo)==null?void 0:o.isPaused)||t.isPaused)&&e.jsxs(le,{variant:"outline",className:"bg-orange-50 text-orange-700 border-orange-300 font-medium text-xs shrink-0","data-testid":"pause-badge",children:[e.jsx(Ua,{className:"w-3 h-3 mr-1"}),"Paused"]}),e.jsxs(le,{variant:"outline",className:`${n.color} border font-medium text-xs capitalize shrink-0`,"data-testid":"priority-badge",children:[e.jsx(l,{className:"w-3 h-3 mr-1"}),t.priority]}),(()=>{const c=(t==null?void 0:t.templateType)||(t==null?void 0:t.template_type)||"",d=(c==null?void 0:c.toUpperCase())||"";let m="Custom",u="bg-purple-100 !text-purple-600 border-purple-200";return d==="DEALER CLAIM"?(m="Dealer Claim",u="bg-blue-100 !text-blue-700 border-blue-200"):d==="TEMPLATE"&&(m="Template"),e.jsx(le,{variant:"outline",className:`${u} font-medium text-xs shrink-0`,"data-testid":"template-type-badge",children:m})})()]}),e.jsx("p",{className:"text-xs sm:text-sm text-gray-600 mb-2 sm:mb-3 line-clamp-2 leading-relaxed","data-testid":"request-description",children:DT(t.description||"")||"No description provided"}),e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center gap-1 sm:gap-4 text-xs sm:text-sm text-gray-500",children:[e.jsxs("span",{className:"truncate","data-testid":"request-id-display",children:[e.jsx("span",{className:"font-medium",children:"ID:"})," ",t.displayId||t.id]}),e.jsxs("span",{className:"truncate","data-testid":"submitted-date",children:[e.jsx("span",{className:"font-medium",children:"Submitted:"})," ",ma(t.submittedDate)]})]})]}),e.jsx(ls,{className:"w-4 h-4 sm:w-5 sm:h-5 text-gray-400 group-hover:text-blue-600 transition-colors flex-shrink-0 mt-1"})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-2 sm:gap-4 pt-3 border-t border-gray-100",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center gap-2 sm:gap-4",children:[e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx(kt,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 text-gray-400 flex-shrink-0"}),e.jsxs("span",{className:"text-xs sm:text-sm truncate","data-testid":"current-approver",children:[e.jsx("span",{className:"text-gray-500",children:"Current Approver:"})," ",e.jsx("span",{className:"text-gray-900 font-medium",children:t.currentApprover})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Bs,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 text-gray-400 flex-shrink-0"}),e.jsxs("span",{className:"text-xs sm:text-sm","data-testid":"approval-level",children:[e.jsx("span",{className:"text-gray-500",children:"Approval Level:"})," ",e.jsx("span",{className:"text-gray-900 font-medium",children:t.approverLevel})]})]})]}),e.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-gray-500",children:[e.jsx(Ye,{className:"w-3.5 h-3.5 flex-shrink-0"}),e.jsxs("span",{"data-testid":"submitted-timestamp",children:["Submitted: ",ma(t.submittedDate)]})]})]})]})})})})}function IT({requests:t,loading:s,searchTerm:a,statusFilter:r,priorityFilter:n,onViewRequest:i}){if(s)return e.jsx(te,{"data-testid":"loading-state",children:e.jsx(se,{className:"p-6 text-sm text-gray-600",children:"Loading your requests…"})});if(t.length===0){const l=a||r!=="all"||n!=="all";return e.jsx(te,{"data-testid":"empty-state",children:e.jsxs(se,{className:"p-12 text-center",children:[e.jsx(_e,{className:"w-12 h-12 text-gray-400 mx-auto mb-4"}),e.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"No requests found"}),e.jsx("p",{className:"text-gray-600",children:l?"Try adjusting your search or filters":"You haven't created any requests yet"})]})})}return e.jsx("div",{className:"space-y-4","data-testid":"my-requests-list",children:t.map((l,o)=>e.jsx(PT,{request:l,index:o,onViewRequest:i},l.id))})}function ET(t){var r,n;const s=t.submittedAt||t.submitted_at||t.createdAt||t.created_at,a=(t.priority||"").toString().toLowerCase();return{id:t.requestNumber||t.request_number||t.requestId||t.id||t.request_id,requestId:t.requestId||t.id||t.request_id,displayId:t.requestNumber||t.request_number||t.id,title:t.title,description:t.description,status:(t.status||"").toString().toLowerCase().replace("_","-"),priority:a,department:t.department,submittedDate:t.submittedAt||(t.createdAt?new Date(t.createdAt).toISOString().split("T")[0]:void 0),createdAt:s,currentApprover:((r=t.currentApprover)==null?void 0:r.name)||((n=t.currentApprover)==null?void 0:n.email)||"—",approverLevel:t.currentLevel&&t.totalLevels?`${t.currentLevel} of ${t.totalLevels}`:t.currentStep&&t.totalSteps?`${t.currentStep} of ${t.totalSteps}`:"—",templateType:t.templateType||t.template_type,workflowType:t.workflowType||t.workflow_type,templateName:t.templateName||t.template_name}}function Dp(t){return Array.isArray(t)?t.map(ET):[]}function MT({itemsPerPage:t=10}={}){const[s,a]=x.useState([]),[r,n]=x.useState(!1),[i,l]=x.useState(!1),[o,c]=x.useState({currentPage:1,totalPages:1,totalRecords:0,itemsPerPage:t}),d=x.useCallback(async(m=1,u)=>{try{m===1&&(n(!0),a([]));const h=await Cs.listMyInitiatedWorkflows({page:m,limit:t,search:u==null?void 0:u.search,status:u==null?void 0:u.status,priority:u==null?void 0:u.priority,templateType:u==null?void 0:u.templateType}),g=Array.isArray(h==null?void 0:h.data)?h.data:[],p=Dp(g);a(p),l(!0);const y=h==null?void 0:h.pagination;y&&c({currentPage:y.page||1,totalPages:y.totalPages||1,totalRecords:y.total||0,itemsPerPage:t})}catch(h){console.error("[MyRequests] Error fetching requests:",h),a([]),l(!0)}finally{n(!1)}},[t]);return{requests:s,loading:r,hasFetchedFromApi:i,pagination:o,fetchMyRequests:d}}const FT={searchTerm:"",statusFilter:"all",priorityFilter:"all",templateTypeFilter:"all",currentPage:1},Pp=_r({name:"myRequests",initialState:FT,reducers:{setSearchTerm:(t,s)=>{t.searchTerm=s.payload},setStatusFilter:(t,s)=>{t.statusFilter=s.payload},setPriorityFilter:(t,s)=>{t.priorityFilter=s.payload,t.currentPage=1},setTemplateTypeFilter:(t,s)=>{t.templateTypeFilter=s.payload,t.currentPage=1},setCurrentPage:(t,s)=>{t.currentPage=s.payload},clearFilters:t=>{t.searchTerm="",t.statusFilter="all",t.priorityFilter="all",t.templateTypeFilter="all",t.currentPage=1}}}),{setSearchTerm:_T,setStatusFilter:LT,setPriorityFilter:OT,setTemplateTypeFilter:$T,setCurrentPage:UT,clearFilters:BT}=Pp.actions;function VT({onFiltersChange:t,debounceMs:s=500}={}){const a=Dn(),r=x.useRef(null),n=x.useRef(!0),{searchTerm:i,statusFilter:l,priorityFilter:o,templateTypeFilter:c,currentPage:d}=Or(b=>b.myRequests),m=x.useCallback(b=>a(_T(b)),[a]),u=x.useCallback(b=>a(LT(b)),[a]),h=x.useCallback(b=>a(OT(b)),[a]),g=x.useCallback(b=>a($T(b)),[a]),p=x.useCallback(b=>a(UT(b)),[a]),y=x.useCallback(()=>({search:i,status:l,priority:o,templateType:c}),[i,l,o,c]);x.useEffect(()=>{if(n.current){n.current=!1;return}r.current&&clearTimeout(r.current);const b=setTimeout(()=>{t&&t(y())},i?s:0);return r.current=b,()=>{r.current&&clearTimeout(r.current)}},[i,l,o,c,t,y,s]);const f=x.useCallback(()=>{a(BT())},[a]);return{searchTerm:i,statusFilter:l,priorityFilter:o,templateTypeFilter:c,currentPage:d,setSearchTerm:m,setStatusFilter:u,setPriorityFilter:h,setTemplateTypeFilter:g,setCurrentPage:p,getFilters:y,resetFilters:f}}function zT({onViewRequest:t,dynamicRequests:s=[]}){const{user:a}=Zt(),r=MT({itemsPerPage:10}),n=x.useRef(r.fetchMyRequests);n.current=r.fetchMyRequests;const i=VT(),l=x.useRef({searchTerm:i.searchTerm,statusFilter:i.statusFilter,priorityFilter:i.priorityFilter,templateTypeFilter:i.templateTypeFilter}),o=x.useRef(!1);x.useEffect(()=>{const b=i.currentPage||1;n.current(b,{search:i.searchTerm||void 0,status:i.statusFilter!=="all"?i.statusFilter:void 0,priority:i.priorityFilter!=="all"?i.priorityFilter:void 0,templateType:i.templateTypeFilter!=="all"?i.templateTypeFilter:void 0}),o.current=!0},[]),x.useEffect(()=>{if(!o.current)return;const b=l.current;if(!(b.searchTerm!==i.searchTerm||b.statusFilter!==i.statusFilter||b.priorityFilter!==i.priorityFilter||b.templateTypeFilter!==i.templateTypeFilter))return;const w=setTimeout(()=>{i.setCurrentPage(1),n.current(1,{search:i.searchTerm||void 0,status:i.statusFilter!=="all"?i.statusFilter:void 0,priority:i.priorityFilter!=="all"?i.priorityFilter:void 0,templateType:i.templateTypeFilter!=="all"?i.templateTypeFilter:void 0}),l.current={searchTerm:i.searchTerm,statusFilter:i.statusFilter,priorityFilter:i.priorityFilter,templateTypeFilter:i.templateTypeFilter}},i.searchTerm!==b.searchTerm?500:0);return()=>clearTimeout(w)},[i.searchTerm,i.statusFilter,i.priorityFilter,i.templateTypeFilter]);const[c,d]=x.useState(null),[m,u]=x.useState(!1),h=x.useCallback(async()=>{if(a!=null&&a.userId)try{u(!0);const b=await Nt.getRequestStats("all",void 0,void 0,void 0,i.priorityFilter!=="all"?i.priorityFilter:void 0,i.templateTypeFilter!=="all"?i.templateTypeFilter:void 0,void 0,a.userId,void 0,void 0,i.searchTerm||void 0,void 0,!0);d({total:b.totalRequests||0,pending:b.openRequests||0,paused:b.pausedRequests||0,approved:b.approvedRequests||0,rejected:b.rejectedRequests||0,draft:b.draftRequests||0,closed:b.closedRequests||0})}catch(b){console.error("Failed to fetch backend stats:",b),d(null)}finally{u(!1)}},[a==null?void 0:a.userId,i.searchTerm,i.priorityFilter,i.templateTypeFilter]);x.useEffect(()=>{const b=setTimeout(()=>{h()},i.searchTerm?500:0);return()=>clearTimeout(b)},[i.searchTerm,i.priorityFilter,i.templateTypeFilter,h]);const g=Dp(s),p=r.hasFetchedFromApi?r.requests:g,y=x.useMemo(()=>c?{total:c.total||0,pending:c.pending||0,paused:c.paused||0,approved:c.approved||0,rejected:c.rejected||0,draft:c.draft||0,closed:c.closed||0}:{total:0,pending:0,paused:0,approved:0,rejected:0,draft:0,closed:0},[c]),f=x.useCallback(b=>{b>=1&&b<=r.pagination.totalPages&&(i.setCurrentPage(b),r.fetchMyRequests(b,{search:i.searchTerm||void 0,status:i.statusFilter!=="all"?i.statusFilter:void 0,priority:i.priorityFilter!=="all"?i.priorityFilter:void 0,templateType:i.templateTypeFilter!=="all"?i.templateTypeFilter:void 0}))},[r,i]);return e.jsxs("div",{className:"space-y-4 sm:space-y-6 max-w-7xl mx-auto","data-testid":"my-requests-page",children:[e.jsx(Rp,{icon:_e,title:"My Requests",description:"Track and manage all your submitted requests",badge:{value:`${y.total} total`,label:"requests",loading:r.loading||m},testId:"my-requests-header"}),e.jsx(ST,{stats:y,onStatusFilter:b=>{i.setStatusFilter(b)}}),e.jsx(TT,{searchTerm:i.searchTerm,statusFilter:i.statusFilter,priorityFilter:i.priorityFilter,templateTypeFilter:i.templateTypeFilter,onSearchChange:i.setSearchTerm,onStatusChange:i.setStatusFilter,onPriorityChange:i.setPriorityFilter,onTemplateTypeChange:i.setTemplateTypeFilter}),e.jsx(IT,{requests:p,loading:r.loading,searchTerm:i.searchTerm,statusFilter:i.statusFilter,priorityFilter:i.priorityFilter,onViewRequest:t}),e.jsx(fr,{currentPage:i.currentPage||r.pagination.currentPage,totalPages:r.pagination.totalPages,totalRecords:r.pagination.totalRecords,itemsPerPage:r.pagination.itemsPerPage,onPageChange:f,loading:r.loading,itemLabel:"requests",testIdPrefix:"my-requests-pagination"})]})}function Ip({isOrgLevel:t,isAdmin:s,loading:a,exporting:r,onExport:n}){const i=()=>"All Requests",l=()=>t?"View and filter all organization-wide workflow requests":s?"Viewing requests where you are initiator, approver, or participant":"View and filter your workflow requests";return e.jsxs("div",{className:"flex items-start justify-between gap-4","data-testid":"requests-header-container",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(Rp,{icon:_e,title:i(),description:l(),testId:"requests-header"}),e.jsx(le,{variant:"outline",className:t?"bg-blue-50 text-blue-700 border-blue-200":"bg-green-50 text-green-700 border-green-200",children:t?"Organization":"Personal"})]}),e.jsx(M,{onClick:n,disabled:r||a,className:"bg-re-green hover:bg-re-green/90 text-white shrink-0",size:"sm","data-testid":"export-button",children:r?e.jsxs(e.Fragment,{children:[e.jsx(Bt,{className:"w-4 h-4 mr-2 animate-spin"}),"Exporting..."]}):e.jsxs(e.Fragment,{children:[e.jsx(wt,{className:"w-4 h-4 mr-2"}),"Export"]})})]})}function Ep({stats:t,onStatusFilter:s}){const a=r=>{s&&s(r)};return e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-3 sm:gap-4","data-testid":"requests-stats",children:[e.jsx(_s,{label:"Total",value:t.total,icon:_e,iconColor:"text-blue-600",gradient:"bg-gradient-to-br from-blue-50 to-blue-100 border-blue-200",textColor:"text-blue-700",valueColor:"text-blue-900",testId:"stat-total",onClick:s?()=>a("all"):void 0}),e.jsx(_s,{label:"Pending",value:t.pending,icon:Ye,iconColor:"text-orange-600",gradient:"bg-gradient-to-br from-orange-50 to-orange-100 border-orange-200",textColor:"text-orange-700",valueColor:"text-orange-900",testId:"stat-pending",onClick:s?()=>a("pending"):void 0}),e.jsx(_s,{label:"Paused",value:t.paused,icon:Ua,iconColor:"text-amber-600",gradient:"bg-gradient-to-br from-amber-50 to-amber-100 border-amber-200",textColor:"text-amber-700",valueColor:"text-amber-900",testId:"stat-paused",onClick:s?()=>a("paused"):void 0}),e.jsx(_s,{label:"Approved",value:t.approved,icon:Ce,iconColor:"text-green-600",gradient:"bg-gradient-to-br from-green-50 to-green-100 border-green-200",textColor:"text-green-700",valueColor:"text-green-900",testId:"stat-approved",onClick:s?()=>a("approved"):void 0}),e.jsx(_s,{label:"Rejected",value:t.rejected,icon:gt,iconColor:"text-red-600",gradient:"bg-gradient-to-br from-red-50 to-red-100 border-red-200",textColor:"text-red-700",valueColor:"text-red-900",testId:"stat-rejected",onClick:s?()=>a("rejected"):void 0}),e.jsx(_s,{label:"Closed",value:t.closed,icon:Pi,iconColor:"text-purple-600",gradient:"bg-gradient-to-br from-purple-50 to-purple-100 border-purple-200",textColor:"text-purple-700",valueColor:"text-purple-900",testId:"stat-closed",onClick:s?()=>a("closed"):void 0})]})}const HT=t=>{switch(t){case"express":return{color:"bg-red-100 text-red-800 border-red-200",icon:ha,iconColor:"text-red-600"};case"standard":return{color:"bg-blue-100 text-blue-800 border-blue-200",icon:_t,iconColor:"text-blue-600"};default:return{color:"bg-gray-100 text-gray-800 border-gray-200",icon:_t,iconColor:"text-gray-600"}}},WT=t=>{switch(t){case"approved":return{color:"bg-green-100 text-green-800 border-green-200",icon:Ce,iconColor:"text-green-600"};case"rejected":return{color:"bg-red-100 text-red-800 border-red-200",icon:gt,iconColor:"text-red-600"};case"pending":return{color:"bg-yellow-100 text-yellow-800 border-yellow-200",icon:Ye,iconColor:"text-yellow-600"};case"closed":return{color:"bg-gray-100 text-gray-800 border-gray-200",icon:Ce,iconColor:"text-gray-600"};case"draft":return{color:"bg-gray-100 text-gray-800 border-gray-200",icon:Di,iconColor:"text-gray-600"};default:return{color:"bg-gray-100 text-gray-800 border-gray-200",icon:Ge,iconColor:"text-gray-600"}}},GT=t=>{if(!t)return"";if(typeof document>"u")return t.replace(/<[^>]*>/g,"").replace(/\s+/g," ").trim();const s=document.createElement("div");s.innerHTML=t;let a=s.textContent||s.innerText||"";return a=a.replace(/\s+/g," ").trim(),a};function KT({request:t,index:s,onViewRequest:a}){var o;const r=WT(t.status),n=HT(t.priority),i=r.icon,l=n.icon;return e.jsx(ms.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:s*.1},children:e.jsx(te,{className:"group hover:shadow-lg transition-all duration-300 cursor-pointer border border-gray-200 shadow-sm hover:shadow-md",onClick:()=>a(t.id,t.title,t.status),"data-testid":`request-card-${t.id}`,children:e.jsx(se,{className:"p-3 sm:p-6",children:e.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h4",{className:"text-base sm:text-lg font-semibold text-gray-900 mb-2 group-hover:text-blue-600 transition-colors line-clamp-2","data-testid":"request-title",children:t.title}),e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 sm:gap-2 mb-2",children:[e.jsxs(le,{variant:"outline",className:`${r.color} border font-medium text-xs shrink-0`,"data-testid":"status-badge",children:[e.jsx(i,{className:"w-3 h-3 mr-1"}),e.jsx("span",{className:"capitalize",children:t.status})]}),(((o=t.pauseInfo)==null?void 0:o.isPaused)||t.isPaused)&&e.jsxs(le,{variant:"outline",className:"bg-orange-50 text-orange-700 border-orange-300 font-medium text-xs shrink-0","data-testid":"pause-badge",children:[e.jsx(Ua,{className:"w-3 h-3 mr-1"}),"Paused"]}),e.jsxs(le,{variant:"outline",className:`${n.color} border font-medium text-xs capitalize shrink-0`,"data-testid":"priority-badge",children:[e.jsx(l,{className:"w-3 h-3 mr-1"}),t.priority]}),(()=>{const c=(t==null?void 0:t.templateType)||(t==null?void 0:t.template_type)||"",d=(c==null?void 0:c.toUpperCase())||"";let m="Custom",u="bg-purple-100 !text-purple-600 border-purple-200";return d==="DEALER CLAIM"?(m="Dealer Claim",u="bg-blue-100 !text-blue-700 border-blue-200"):d==="TEMPLATE"&&(m="Template"),e.jsx(le,{variant:"outline",className:`${u} font-medium text-xs shrink-0`,"data-testid":"template-type-badge",children:m})})(),t.department&&e.jsx(le,{variant:"secondary",className:"bg-purple-100 text-purple-700 text-xs shrink-0","data-testid":"department-badge",children:t.department})]}),e.jsx("p",{className:"text-xs sm:text-sm text-gray-600 mb-2 sm:mb-3 line-clamp-2 leading-relaxed","data-testid":"request-description",children:GT(t.description||"")||"No description provided"}),e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center gap-1 sm:gap-4 text-xs sm:text-sm text-gray-500",children:[e.jsxs("span",{className:"truncate","data-testid":"request-id-display",children:[e.jsx("span",{className:"font-medium",children:"ID:"})," ",t.displayId||t.id]}),e.jsxs("span",{className:"truncate","data-testid":"submitted-date",children:[e.jsx("span",{className:"font-medium",children:"Submitted:"})," ",ma(t.submittedDate)]})]})]}),e.jsx(ls,{className:"w-4 h-4 sm:w-5 sm:h-5 text-gray-400 group-hover:text-blue-600 transition-colors flex-shrink-0 mt-1"})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-2 sm:gap-4 pt-3 border-t border-gray-100",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center gap-2 sm:gap-4",children:[e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx(kt,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 text-gray-400 flex-shrink-0"}),e.jsxs("span",{className:"text-xs sm:text-sm truncate","data-testid":"current-approver",children:[e.jsx("span",{className:"text-gray-500",children:"Current Approver:"})," ",e.jsx("span",{className:"text-gray-900 font-medium",children:t.currentApprover})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Bs,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 text-gray-400 flex-shrink-0"}),e.jsxs("span",{className:"text-xs sm:text-sm","data-testid":"approval-level",children:[e.jsx("span",{className:"text-gray-500",children:"Approval Level:"})," ",e.jsx("span",{className:"text-gray-900 font-medium",children:t.approverLevel})]})]})]}),e.jsxs("div",{className:"flex items-center gap-1.5 text-xs text-gray-500",children:[e.jsx(Ye,{className:"w-3.5 h-3.5 flex-shrink-0"}),e.jsxs("span",{"data-testid":"submitted-timestamp",children:["Submitted: ",ma(t.submittedDate)]})]})]})]})})})})}function Mp({requests:t,loading:s,hasActiveFilters:a,onViewRequest:r}){return s?e.jsx(te,{"data-testid":"loading-state",children:e.jsx(se,{className:"p-6 text-sm text-gray-600",children:"Loading requests…"})}):t.length===0?e.jsx(te,{"data-testid":"empty-state",children:e.jsxs(se,{className:"p-12 text-center",children:[e.jsx(_e,{className:"w-12 h-12 text-gray-400 mx-auto mb-4"}),e.jsx("h3",{className:"text-lg font-medium text-gray-900 mb-2",children:"No requests found"}),e.jsx("p",{className:"text-gray-600",children:a?"Try adjusting your search or filters":"No requests match the current criteria"})]})}):e.jsx("div",{className:"space-y-4","data-testid":"requests-list",children:t.map((n,i)=>e.jsx(KT,{request:n,index:i,onViewRequest:r},n.id))})}const YT={searchTerm:"",statusFilter:"all",priorityFilter:"all",templateTypeFilter:"all",slaComplianceFilter:"all",departmentFilter:"all",initiatorFilter:"all",approverFilter:"all",approverFilterType:"current",dateRange:"all",customStartDate:void 0,customEndDate:void 0,showCustomDatePicker:!1,currentPage:1},Fp=_r({name:"requests",initialState:YT,reducers:{setSearchTerm:(t,s)=>{t.searchTerm=s.payload},setStatusFilter:(t,s)=>{t.statusFilter=s.payload},setPriorityFilter:(t,s)=>{t.priorityFilter=s.payload},setTemplateTypeFilter:(t,s)=>{t.templateTypeFilter=s.payload},setSlaComplianceFilter:(t,s)=>{t.slaComplianceFilter=s.payload},setDepartmentFilter:(t,s)=>{t.departmentFilter=s.payload},setInitiatorFilter:(t,s)=>{t.initiatorFilter=s.payload},setApproverFilter:(t,s)=>{t.approverFilter=s.payload},setApproverFilterType:(t,s)=>{t.approverFilterType=s.payload},setDateRange:(t,s)=>{t.dateRange=s.payload},setCustomStartDate:(t,s)=>{t.customStartDate=s.payload},setCustomEndDate:(t,s)=>{t.customEndDate=s.payload},setShowCustomDatePicker:(t,s)=>{t.showCustomDatePicker=s.payload},setCurrentPage:(t,s)=>{t.currentPage=s.payload},clearFilters:t=>{t.searchTerm="",t.statusFilter="all",t.priorityFilter="all",t.templateTypeFilter="all",t.slaComplianceFilter="all",t.departmentFilter="all",t.initiatorFilter="all",t.approverFilter="all",t.approverFilterType="current",t.dateRange="all",t.customStartDate=void 0,t.customEndDate=void 0,t.showCustomDatePicker=!1,t.currentPage=1}}}),{setSearchTerm:ZT,setStatusFilter:XT,setPriorityFilter:QT,setTemplateTypeFilter:JT,setSlaComplianceFilter:qT,setDepartmentFilter:ek,setInitiatorFilter:tk,setApproverFilter:sk,setApproverFilterType:ak,setDateRange:au,setCustomStartDate:Tl,setCustomEndDate:kl,setShowCustomDatePicker:Gn,setCurrentPage:rk,clearFilters:nk}=Fp.actions;function _p(){const t=Dn(),{searchTerm:s,statusFilter:a,priorityFilter:r,templateTypeFilter:n,slaComplianceFilter:i,departmentFilter:l,initiatorFilter:o,approverFilter:c,approverFilterType:d,dateRange:m,customStartDate:u,customEndDate:h,showCustomDatePicker:g,currentPage:p}=Or(j=>j.requests),y=x.useCallback(j=>t(ZT(j)),[t]),f=x.useCallback(j=>t(XT(j)),[t]),b=x.useCallback(j=>t(QT(j)),[t]),v=x.useCallback(j=>t(JT(j)),[t]),w=x.useCallback(j=>t(qT(j)),[t]),A=x.useCallback(j=>t(ek(j)),[t]),S=x.useCallback(j=>t(tk(j)),[t]),k=x.useCallback(j=>t(sk(j)),[t]),F=x.useCallback(j=>t(ak(j)),[t]),T=x.useCallback(j=>t(au(j)),[t]),D=x.useCallback(j=>t(Tl(j)),[t]),C=x.useCallback(j=>t(kl(j)),[t]),P=x.useCallback(j=>t(Gn(j)),[t]),R=x.useCallback(j=>t(rk(j)),[t]),V=x.useCallback(()=>({search:s||void 0,status:a!=="all"?a:void 0,priority:r!=="all"?r:void 0,templateType:n!=="all"?n:void 0,slaCompliance:i!=="all"?i:void 0,department:l!=="all"?l:void 0,initiator:o!=="all"?o:void 0,approver:c!=="all"?c:void 0,approverType:c!=="all"?d:void 0,dateRange:m,startDate:u,endDate:h}),[s,a,r,n,i,l,o,c,d,m,u,h]),I=x.useCallback(()=>{t(nk())},[t]),$=x.useCallback(j=>{const U=j;t(au(U)),U!=="custom"?(t(Tl(void 0)),t(kl(void 0)),t(Gn(!1))):t(Gn(!0))},[t]),_=x.useCallback(()=>{u&&h&&(u>h&&(t(Tl(h)),t(kl(u))),t(Gn(!1)))},[u,h,t]);return{searchTerm:s,statusFilter:a,priorityFilter:r,templateTypeFilter:n,slaComplianceFilter:i,departmentFilter:l,initiatorFilter:o,approverFilter:c,approverFilterType:d,dateRange:m,customStartDate:u,customEndDate:h,showCustomDatePicker:g,currentPage:p,hasActiveFilters:!!(s||a!=="all"||r!=="all"||n!=="all"||i!=="all"||l!=="all"||o!=="all"||c!=="all"||m!=="all"||u||h),setSearchTerm:y,setStatusFilter:f,setPriorityFilter:b,setTemplateTypeFilter:v,setSlaComplianceFilter:w,setDepartmentFilter:A,setInitiatorFilter:S,setApproverFilter:k,setApproverFilterType:F,setDateRange:T,setCustomStartDate:D,setCustomEndDate:C,setShowCustomDatePicker:P,setCurrentPage:R,getFilters:V,clearFilters:I,handleDateRangeChange:$,handleApplyCustomDate:_}}function fi({allUsers:t,filterValue:s,onFilterChange:a}){const[r,n]=x.useState(""),[i,l]=x.useState([]),[o,c]=x.useState(!1),[d,m]=x.useState(null),u=x.useRef(null);x.useEffect(()=>{if(s!=="all"&&t.length>0){const y=t.find(f=>f.userId===s);y&&(m(y),n(y.displayName||y.email))}},[s,t]),x.useEffect(()=>()=>{u.current&&clearTimeout(u.current)},[]);const h=x.useCallback(y=>{if(n(y),u.current&&clearTimeout(u.current),!y||y.trim().length<2){l([]),c(!1);return}u.current=setTimeout(()=>{const f=y.toLowerCase().trim(),b=t.filter(v=>{const w=(v.email||"").toLowerCase(),A=(v.displayName||"").toLowerCase();return w.includes(f)||A.includes(f)});l(b.slice(0,10)),c(b.length>0)},300)},[t]),g=x.useCallback(y=>{m(y),a(y.userId),n(y.displayName||y.email),c(!1),l([])},[a]),p=x.useCallback(()=>{m(null),a("all"),n(""),c(!1),l([])},[a]);return{searchQuery:r,searchResults:i,showResults:o,selectedUser:d,handleSearch:h,handleSelect:g,handleClear:p,setShowResults:c}}function ik(t){var d,m,u,h,g,p,y;const s=t.submittedAt||t.submitted_at||t.createdAt||t.created_at,a=(t.priority||"").toString().toLowerCase(),r=(t.status||"").toString().toUpperCase();let n="—",i="—";const l=t.currentApprover||t.current_approver||t.currentApproverData;if(l)n=l.name||l.approverName||l.displayName||l.email||l.approverEmail||"—";else if(t.approvals&&Array.isArray(t.approvals)&&t.approvals.length>0){const f=t.approvals.find(b=>{const v=(b.status||"").toString().toUpperCase();return v==="PENDING"||v==="IN_PROGRESS"});if(f)n=f.approverName||((d=f.approver)==null?void 0:d.name)||((m=f.approver)==null?void 0:m.displayName)||f.approverEmail||((u=f.approver)==null?void 0:u.email)||"—";else{const v=[...t.approvals].sort((w,A)=>{const S=w.levelNumber||w.level_number||0;return(A.levelNumber||A.level_number||0)-S})[0];v&&(n=v.approverName||((h=v.approver)==null?void 0:h.name)||((g=v.approver)==null?void 0:g.displayName)||v.approverEmail||((p=v.approver)==null?void 0:p.email)||"—")}}const o=t.currentLevel||t.current_level||t.currentLevelNumber||t.current_level_number,c=t.totalLevels||t.total_levels||t.totalLevelsCount||t.total_levels_count;if(o&&c)i=`${o} of ${c}`;else if(t.approvals&&Array.isArray(t.approvals)&&t.approvals.length>0){const f=t.approvals.find(b=>{const v=(b.status||"").toString().toUpperCase();return v==="PENDING"||v==="IN_PROGRESS"});if(f){const b=f.levelNumber||f.level_number||0,v=c||t.approvals.length;i=`${b} of ${v}`}else c&&(i=`${c} of ${c}`)}else t.currentStep&&t.totalSteps&&(i=`${t.currentStep} of ${t.totalSteps}`);return{id:t.requestNumber||t.request_number||t.requestId||t.id||t.request_id,requestId:t.requestId||t.id||t.request_id,displayId:t.requestNumber||t.request_number||t.id,title:t.title,description:t.description,status:r.toLowerCase().replace("_","-"),priority:a,department:t.department||((y=t.initiator)==null?void 0:y.department),submittedDate:t.submittedAt||(t.createdAt?new Date(t.createdAt).toISOString().split("T")[0]:void 0),createdAt:s,currentApprover:n,approverLevel:i,templateType:t.templateType||t.template_type,workflowType:t.workflowType||t.workflow_type,templateName:t.templateName||t.template_name}}function Lp(t){return Array.isArray(t)?t.map(ik):[]}function lk(t,s,a,r,n,i){if(t.length>0){const l=t.length,o=t.filter(g=>{const p=(g.status||"").toString().toUpperCase();return p==="PENDING"||p==="IN_PROGRESS"}).length,c=t.filter(g=>(g.status||"").toString().toUpperCase()==="APPROVED").length,d=t.filter(g=>(g.status||"").toString().toUpperCase()==="REJECTED").length,m=t.filter(g=>(g.status||"").toString().toUpperCase()==="DRAFT").length,u=t.filter(g=>(g.status||"").toString().toUpperCase()==="CLOSED").length,h=t.filter(g=>(g.status||"").toString().toUpperCase()==="PAUSED").length;return{total:l,pending:o,paused:h,approved:c,rejected:d,draft:m,closed:u}}else return s&&a?{total:a.total,pending:a.pending,paused:a.paused||0,approved:a.approved,rejected:a.rejected,draft:a.draft,closed:a.closed}:{total:n||i.length,pending:i.filter(o=>o.status==="pending"||o.status==="in-progress").length,paused:i.filter(o=>o.status==="paused").length,approved:i.filter(o=>o.status==="approved").length,rejected:i.filter(o=>o.status==="rejected").length,draft:i.filter(o=>o.status==="draft").length,closed:i.filter(o=>o.status==="closed").length}}var Op={exports:{}};(function(t,s){(function(a,r){t.exports=r()})(yi,function(){return function(a,r){r.prototype.isSameOrBefore=function(n,i){return this.isSame(n,i)||this.isBefore(n,i)}}})})(Op);var ok=Op.exports;const $p=vi(ok);var Up={exports:{}};(function(t,s){(function(a,r){t.exports=r()})(yi,function(){return function(a,r){r.prototype.isSameOrAfter=function(n,i){return this.isSame(n,i)||this.isAfter(n,i)}}})})(Up);var ck=Up.exports;const Bp=vi(ck);$t.extend(Bp);$t.extend($p);function dk(t,s){let a=[...t];if(s.search){const r=s.search.toLowerCase();a=a.filter(n=>{var i,l,o,c;return((i=n.title)==null?void 0:i.toLowerCase().includes(r))||((l=n.description)==null?void 0:l.toLowerCase().includes(r))||((o=n.requestNumber)==null?void 0:o.toLowerCase().includes(r))||((c=n.request_number)==null?void 0:c.toLowerCase().includes(r))})}if(s.status&&s.status!=="all")if(s.status.toLowerCase()==="pending")a=a.filter(r=>{var l;const n=(r.status||"").toString().toUpperCase(),i=((l=r.pauseInfo)==null?void 0:l.isPaused)||r.isPaused||!1;return(n==="PENDING"||n==="IN_PROGRESS")&&!i});else if(s.status.toLowerCase()==="paused")a=a.filter(r=>{var l;const n=(r.status||"").toString().toUpperCase(),i=((l=r.pauseInfo)==null?void 0:l.isPaused)||r.isPaused||!1;return n==="PAUSED"||i});else{const r=s.status.toUpperCase().replace("-","_");a=a.filter(n=>{var o;const i=(n.status||"").toString().toUpperCase(),l=((o=n.pauseInfo)==null?void 0:o.isPaused)||n.isPaused||!1;return r==="IN_PROGRESS"||r==="IN-PROGRESS"?i==="IN_PROGRESS"&&!l:i===r&&!l})}if(s.priority&&s.priority!=="all"&&(a=a.filter(r=>{var n;return(r.priority||"").toString().toLowerCase()===((n=s.priority)==null?void 0:n.toLowerCase())})),s.department&&s.department!=="all"&&(a=a.filter(r=>{var i;return(r.department||((i=r.initiator)==null?void 0:i.department)||"")===s.department})),s.initiator&&s.initiator!=="all"&&(a=a.filter(r=>{var i,l;return(r.initiatorId||r.initiator_id||((i=r.initiator)==null?void 0:i.userId)||((l=r.initiator)==null?void 0:l.user_id)||(r.initiator&&typeof r.initiator=="object"&&"userId"in r.initiator?r.initiator.userId:null))===s.initiator})),s.approver&&s.approver!=="all"&&((s.approverType||"current")==="current"?a=a.filter(n=>{var l,o,c,d,m,u;return(((l=n.currentApprover)==null?void 0:l.userId)||((o=n.currentApprover)==null?void 0:o.user_id)||((d=(c=n.approvals)==null?void 0:c.find(h=>{const g=(h.status||"").toString().toUpperCase();return g==="IN_PROGRESS"||g==="PENDING"}))==null?void 0:d.approverId)||((u=(m=n.approvals)==null?void 0:m.find(h=>{const g=(h.status||"").toString().toUpperCase();return g==="IN_PROGRESS"||g==="PENDING"}))==null?void 0:u.approver_id)||n.currentApproverId||n.current_approver_id)===s.approver}):a=a.filter(n=>{var l,o;const i=[];return(l=n.currentApprover)!=null&&l.userId&&i.push(n.currentApprover.userId),(o=n.currentApprover)!=null&&o.user_id&&i.push(n.currentApprover.user_id),Array.isArray(n.approvals)&&n.approvals.forEach(c=>{c.approverId&&i.push(c.approverId),c.approver_id&&i.push(c.approver_id)}),i.includes(s.approver||"")})),s.slaCompliance&&s.slaCompliance!=="all"&&(a=a.filter(r=>{var c,d,m,u,h,g,p,y,f,b,v,w;const n=s.slaCompliance||"";if(n.toLowerCase()==="compliant"){const A=(r.status||"").toString().toUpperCase();if(!(A==="APPROVED"||A==="REJECTED"||A==="CLOSED"))return!1;const k=((c=r.currentLevelSLA)==null?void 0:c.status)||((m=(d=r.currentApprover)==null?void 0:d.sla)==null?void 0:m.status)||((u=r.sla)==null?void 0:u.status)||((g=(h=r.summary)==null?void 0:h.sla)==null?void 0:g.status);return k?k!=="breached"&&k.toLowerCase()!=="breached":!0}const i=((p=r.currentLevelSLA)==null?void 0:p.status)||((f=(y=r.currentApprover)==null?void 0:y.sla)==null?void 0:f.status)||((b=r.sla)==null?void 0:b.status)||((w=(v=r.summary)==null?void 0:v.sla)==null?void 0:w.status);if(!i)return n==="on-track"||n==="on_track";const o={"on-track":"on_track",on_track:"on_track",approaching:"approaching",critical:"critical",breached:"breached"}[n.toLowerCase()]||n.toLowerCase();return i===o||i.toLowerCase()===o})),s.dateRange){let r=null,n=null;if(s.dateRange==="custom"&&s.startDate&&s.endDate)r=$t(s.startDate).startOf("day").toDate(),n=$t(s.endDate).endOf("day").toDate();else{const i=$t();switch(s.dateRange){case"today":r=i.startOf("day").toDate(),n=i.endOf("day").toDate();break;case"week":r=i.startOf("week").toDate(),n=i.endOf("week").toDate();break;case"month":r=i.startOf("month").toDate(),n=i.endOf("month").toDate();break}}r&&n&&(a=a.filter(i=>{const l=i.submittedAt||i.submission_date||i.submitted_at;if(!l){const m=i.createdAt||i.created_at||i.created_date;if(!m)return!1;const u=$t(m).startOf("day").toDate(),h=$t(r).startOf("day").toDate(),g=$t(n).endOf("day").toDate();return u>=h&&u<=g}const o=$t(l).startOf("day").toDate(),c=$t(r).startOf("day").toDate(),d=$t(n).endOf("day").toDate();return o>=c&&o<=d}))}return a}$t.extend($p);$t.extend(Bp);function mk(t){if(!t)return"N/A";try{const s=typeof t=="string"?new Date(t):t;return De(s,"yyyy-MM-dd HH:mm:ss")}catch{return"N/A"}}async function Vp(t,s){const a=dk(t,s),r=[["Request Number","Title","Status","Priority","Initiator","Department","Current Approver","Approval Level","Submitted Date","Description"].join(",")];a.forEach(c=>{var v,w,A,S,k;const d=(c.status||"").toString().toLowerCase().replace("_","-"),m=(c.priority||"").toString().toLowerCase(),u=((v=c.initiator)==null?void 0:v.displayName)||((w=c.initiator)==null?void 0:w.email)||c.initiatorName||"N/A",h=c.department||((A=c.initiator)==null?void 0:A.department)||"N/A",g=((S=c.currentApprover)==null?void 0:S.displayName)||((k=c.currentApprover)==null?void 0:k.email)||c.currentApproverName||"N/A",p=c.currentApproverLevel||c.approvalLevel||c.currentLevel||"N/A",y=mk(c.submittedAt||c.createdAt||c.submitted_at||c.created_at),f=(c.description||"").replace(/"/g,'""').replace(/\n/g," ").replace(/\r/g,""),b=[c.requestNumber||c.request_number||"",`"${(c.title||"").replace(/"/g,'""')}"`,d,m,`"${u.replace(/"/g,'""')}"`,`"${h.replace(/"/g,'""')}"`,`"${g.replace(/"/g,'""')}"`,p,y,`"${f}"`];r.push(b.join(","))});const n=r.join(`
|
||
`),i=new Blob([n],{type:"text/csv;charset=utf-8;"}),l=document.createElement("a"),o=URL.createObjectURL(i);l.setAttribute("href",o),l.setAttribute("download",`requests-export-${new Date().toISOString().split("T")[0]}.csv`),l.style.visibility="hidden",document.body.appendChild(l),l.click(),document.body.removeChild(l),URL.revokeObjectURL(o)}async function uk({page:t,itemsPerPage:s,filters:a,isOrgLevel:r}){var n,i,l,o;if(r){const c={};a!=null&&a.search&&(c.search=a.search),a!=null&&a.status&&a.status!=="all"&&(c.status=a.status),a!=null&&a.priority&&a.priority!=="all"&&(c.priority=a.priority),a!=null&&a.templateType&&a.templateType!=="all"&&(c.templateType=a.templateType),a!=null&&a.department&&a.department!=="all"&&(c.department=a.department),a!=null&&a.initiator&&a.initiator!=="all"&&(c.initiator=a.initiator),a!=null&&a.approver&&a.approver!=="all"&&(c.approver=a.approver,c.approverType=a.approverType||"current"),a!=null&&a.slaCompliance&&a.slaCompliance!=="all"&&(c.slaCompliance=a.slaCompliance),a!=null&&a.dateRange&&(c.dateRange=a.dateRange),a!=null&&a.startDate&&(c.startDate=(n=a.startDate)==null?void 0:n.toISOString()),a!=null&&a.endDate&&(c.endDate=(i=a.endDate)==null?void 0:i.toISOString());const d=await Cs.listWorkflows({page:t,limit:s,...c});let m=[];Array.isArray(d==null?void 0:d.data)?m=d.data:Array.isArray(d)&&(m=d);const u=m.filter(p=>(p.status||"").toString().toUpperCase()!=="DRAFT"),h=(d==null?void 0:d.pagination)||{page:t,limit:s,total:u.length,totalPages:1};return{data:u,allData:[],filteredData:u,pagination:{page:h.page,limit:h.limit||s,total:h.total||u.length,totalPages:h.totalPages||1}}}else{const c={};a!=null&&a.search&&(c.search=a.search),a!=null&&a.status&&a.status!=="all"&&(c.status=a.status),a!=null&&a.priority&&a.priority!=="all"&&(c.priority=a.priority),a!=null&&a.templateType&&a.templateType!=="all"&&(c.templateType=a.templateType),a!=null&&a.department&&a.department!=="all"&&(c.department=a.department),a!=null&&a.initiator&&a.initiator!=="all"&&(c.initiator=a.initiator),a!=null&&a.slaCompliance&&a.slaCompliance!=="all"&&(c.slaCompliance=a.slaCompliance),a!=null&&a.dateRange&&(c.dateRange=a.dateRange),a!=null&&a.startDate&&(c.startDate=(l=a.startDate)==null?void 0:l.toISOString()),a!=null&&a.endDate&&(c.endDate=(o=a.endDate)==null?void 0:o.toISOString());const d=await Cs.listParticipantRequests({page:t,limit:s,...c});let m=[];Array.isArray(d==null?void 0:d.data)?m=d.data:Array.isArray(d)&&(m=d);const u=m.filter(g=>(g.status||"").toString().toUpperCase()!=="DRAFT"),h=(d==null?void 0:d.pagination)||{page:t,limit:s,total:u.length,totalPages:1};return{data:u,allData:[],filteredData:u,pagination:h}}}async function hk(t){const a=[];let r=1,n=!0;const i=100;for(;n&&r<=i;){const l=t?await Cs.listWorkflows({page:r,limit:100}):await Cs.listParticipantRequests({page:r,limit:100});let o=[];if(Array.isArray(l==null?void 0:l.data)?o=l.data:Array.isArray(l)&&(o=l),o.length>0){const c=o.filter(d=>(d.status||"").toString().toUpperCase()!=="DRAFT");a.push(...c),r++,l!=null&&l.pagination?n=r<=l.pagination.totalPages:n=o.length===100}else n=!1}return a}function xk({onViewRequest:t}){const{user:s}=Zt(),a=Or(H=>H.dashboard.viewAsUser),r=x.useMemo(()=>Ii(s),[s]),n=x.useMemo(()=>r&&!a,[r,a]),i=_p(),[l,o]=x.useState([]),[c,d]=x.useState(!1),[m,u]=x.useState(!1),[h,g]=x.useState(null),[p,y]=x.useState([]),[f,b]=x.useState(!1),[v,w]=x.useState([]),[A,S]=x.useState(1),[k,F]=x.useState(0),[T]=x.useState(10),D=fi({allUsers:v,filterValue:i.initiatorFilter,onFilterChange:i.setInitiatorFilter}),C=fi({allUsers:v,filterValue:i.approverFilter,onFilterChange:i.setApproverFilter}),P=x.useCallback(async(H,oe,Y,E)=>{try{const O=E==null?void 0:E.slaCompliance;if(O&&O!=="all"&&O!=="breached"&&O!=="compliant"){const W={};E!=null&&E.search&&(W.search=E.search),E!=null&&E.priority&&E.priority!=="all"&&(W.priority=E.priority),E!=null&&E.department&&E.department!=="all"&&(W.department=E.department),E!=null&&E.initiator&&E.initiator!=="all"&&(W.initiator=E.initiator),E!=null&&E.approver&&E.approver!=="all"&&(W.approver=E.approver,W.approverType=E.approverType||"current"),W.slaCompliance=O,H&&(W.dateRange=H),oe&&(W.startDate=oe.toISOString()),Y&&(W.endDate=Y.toISOString());const G=n?await Cs.listWorkflows({page:1,limit:1e3,...W}):await Cs.listParticipantRequests({page:1,limit:1e3,...W}),ee=Array.isArray(G==null?void 0:G.data)?G.data:[],ce=ee.length,Pe=ee.filter(je=>{const Me=(je.status||"").toString().toUpperCase();return Me==="PENDING"||Me==="IN_PROGRESS"}).length,Oe=ee.filter(je=>(je.status||"").toString().toUpperCase()==="APPROVED").length,ie=ee.filter(je=>(je.status||"").toString().toUpperCase()==="REJECTED").length,de=ee.filter(je=>(je.status||"").toString().toUpperCase()==="CLOSED").length;g({total:ce,pending:Pe,paused:0,approved:Oe,rejected:ie,draft:0,closed:de})}else{const W=await Nt.getRequestStats(H,oe?oe.toISOString():void 0,Y?Y.toISOString():void 0,void 0,E==null?void 0:E.priority,void 0,E==null?void 0:E.department,E==null?void 0:E.initiator,E==null?void 0:E.approver,E==null?void 0:E.approverType,E==null?void 0:E.search,E==null?void 0:E.slaCompliance,!n);g({total:W.totalRequests||0,pending:W.openRequests||0,paused:W.pausedRequests||0,approved:W.approvedRequests||0,rejected:W.rejectedRequests||0,draft:W.draftRequests||0,closed:W.closedRequests||0})}}catch(O){console.error("Failed to fetch backend stats:",O)}finally{}},[n]),R=x.useCallback(async()=>{try{b(!0);const H=await Nt.getDepartments();y(H)}catch{}finally{b(!1)}},[]),V=x.useCallback(async()=>{try{const oe=(await Ls.getAllUsers()).map(Y=>({userId:Y.userId,email:Y.email,displayName:Y.displayName||Y.email}));w(oe)}catch(H){console.error("Failed to fetch users:",H)}},[]),I=x.useRef(i),$=x.useRef(P);x.useEffect(()=>{I.current=i,$.current=P},[i,P]);const _=x.useCallback(async(H=1)=>{try{H===1&&(d(!0),o([]));const oe=I.current.getFilters(),Y=await uk({page:H,itemsPerPage:T,filters:oe,isOrgLevel:n});o(Y.data),i.setCurrentPage(Y.pagination.page),S(Y.pagination.totalPages),F(Y.pagination.total)}catch{o([])}finally{d(!1)}},[T,n]),N=x.useCallback(async()=>{try{u(!0);const H=await hk(n);await Vp(H,i.getFilters())}catch(H){console.error("Failed to export requests:",H),alert("Failed to export requests. Please try again.")}finally{u(!1)}},[n,i]);x.useEffect(()=>{R(),V()},[R,V]),x.useEffect(()=>{const H=setTimeout(()=>{const oe={priority:i.priorityFilter!=="all"?i.priorityFilter:void 0,templateType:i.templateTypeFilter!=="all"?i.templateTypeFilter:void 0,department:i.departmentFilter!=="all"?i.departmentFilter:void 0,initiator:i.initiatorFilter!=="all"?i.initiatorFilter:void 0,approver:i.approverFilter!=="all"?i.approverFilter:void 0,approverType:i.approverFilter!=="all"?i.approverFilterType:void 0,search:i.searchTerm||void 0,slaCompliance:i.slaComplianceFilter!=="all"?i.slaComplianceFilter:void 0},Y=i.dateRange||"all";$.current(Y,i.customStartDate,i.customEndDate,oe)},i.searchTerm?500:0);return()=>clearTimeout(H)},[n,i.dateRange,i.customStartDate,i.customEndDate,i.priorityFilter,i.templateTypeFilter,i.departmentFilter,i.initiatorFilter,i.approverFilter,i.approverFilterType,i.searchTerm,i.slaComplianceFilter]);const j=x.useRef({searchTerm:i.searchTerm,statusFilter:i.statusFilter,priorityFilter:i.priorityFilter,templateTypeFilter:i.templateTypeFilter,slaComplianceFilter:i.slaComplianceFilter,departmentFilter:i.departmentFilter,initiatorFilter:i.initiatorFilter,approverFilter:i.approverFilter,approverFilterType:i.approverFilterType,dateRange:i.dateRange,customStartDate:i.customStartDate,customEndDate:i.customEndDate,isOrgLevel:n}),U=x.useRef(!1);x.useEffect(()=>{const H=i.currentPage||1;_(H),U.current=!0},[]),x.useEffect(()=>{if(!U.current)return;const H=j.current;if(!(H.searchTerm!==i.searchTerm||H.statusFilter!==i.statusFilter||H.priorityFilter!==i.priorityFilter||H.templateTypeFilter!==i.templateTypeFilter||H.slaComplianceFilter!==i.slaComplianceFilter||H.departmentFilter!==i.departmentFilter||H.initiatorFilter!==i.initiatorFilter||H.approverFilter!==i.approverFilter||H.approverFilterType!==i.approverFilterType||H.dateRange!==i.dateRange||H.customStartDate!==i.customStartDate||H.customEndDate!==i.customEndDate||H.isOrgLevel!==n))return;const Y=setTimeout(()=>{i.setCurrentPage(1),_(1),j.current={searchTerm:i.searchTerm,statusFilter:i.statusFilter,priorityFilter:i.priorityFilter,templateTypeFilter:i.templateTypeFilter,slaComplianceFilter:i.slaComplianceFilter,departmentFilter:i.departmentFilter,initiatorFilter:i.initiatorFilter,approverFilter:i.approverFilter,approverFilterType:i.approverFilterType,dateRange:i.dateRange,customStartDate:i.customStartDate,customEndDate:i.customEndDate,isOrgLevel:n}},i.searchTerm!==H.searchTerm?500:0);return()=>clearTimeout(Y)},[n,i.searchTerm,i.statusFilter,i.priorityFilter,i.templateTypeFilter,i.slaComplianceFilter,i.departmentFilter,i.initiatorFilter,i.approverFilter,i.approverFilterType,i.dateRange,i.customStartDate,i.customEndDate]);const z=x.useCallback(H=>{H>=1&&H<=A&&(i.setCurrentPage(H),_(H))},[A,_,i]),B=x.useMemo(()=>Lp(l),[l]),X=x.useMemo(()=>h?{total:h.total||0,pending:h.pending||0,paused:h.paused||0,approved:h.approved||0,rejected:h.rejected||0,draft:h.draft||0,closed:h.closed||0}:lk([],n,h,!1,k,B),[n,h,k,B]);return e.jsxs("div",{className:"space-y-4 sm:space-y-6 max-w-7xl mx-auto","data-testid":"requests-page",children:[e.jsx(Ip,{isOrgLevel:n,isAdmin:r,loading:c,exporting:m,onExport:N}),e.jsx(Ep,{stats:X,onStatusFilter:H=>{i.setStatusFilter(H)}}),e.jsx(te,{className:"border-gray-200 shadow-md","data-testid":"requests-filters",children:e.jsx(se,{className:"p-4 sm:p-6",children:e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ha,{className:"w-5 h-5 text-muted-foreground"}),e.jsx("h3",{className:"font-semibold text-gray-900",children:"Advanced Filters"}),i.hasActiveFilters&&e.jsx(le,{variant:"outline",className:"bg-blue-50 text-blue-700 border-blue-200",children:"Active"})]}),i.hasActiveFilters&&e.jsxs(M,{variant:"ghost",size:"sm",onClick:i.clearFilters,className:"gap-2",children:[e.jsx(Bt,{className:"w-4 h-4"}),"Clear All"]})]}),e.jsx(Vt,{}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 lg:grid-cols-6 gap-3 sm:gap-4",children:[e.jsxs("div",{className:"relative md:col-span-3 lg:col-span-1",children:[e.jsx(vs,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-4 h-4"}),e.jsx(Se,{placeholder:"Search requests...",value:i.searchTerm,onChange:H=>i.setSearchTerm(H.target.value),className:"pl-10 h-10","data-testid":"search-input"})]}),e.jsxs(Be,{value:i.statusFilter,onValueChange:i.setStatusFilter,children:[e.jsx(ze,{className:"h-10","data-testid":"status-filter",children:e.jsx(Ve,{placeholder:"All Status"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Status"}),e.jsx(K,{value:"pending",children:"Pending"}),e.jsx(K,{value:"paused",children:"Paused"}),e.jsx(K,{value:"approved",children:"Approved"}),e.jsx(K,{value:"rejected",children:"Rejected"}),e.jsx(K,{value:"closed",children:"Closed"})]})]}),e.jsxs(Be,{value:i.priorityFilter,onValueChange:i.setPriorityFilter,children:[e.jsx(ze,{className:"h-10","data-testid":"priority-filter",children:e.jsx(Ve,{placeholder:"All Priority"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Priority"}),e.jsx(K,{value:"express",children:"Express"}),e.jsx(K,{value:"standard",children:"Standard"})]})]}),e.jsxs(Be,{value:i.templateTypeFilter,onValueChange:i.setTemplateTypeFilter,children:[e.jsx(ze,{className:"h-10","data-testid":"template-type-filter",children:e.jsx(Ve,{placeholder:"All Templates"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Templates"}),e.jsx(K,{value:"CUSTOM",children:"Custom"}),e.jsx(K,{value:"DEALER CLAIM",children:"Dealer Claim"})]})]}),e.jsxs(Be,{value:i.departmentFilter,onValueChange:i.setDepartmentFilter,disabled:f||p.length===0,children:[e.jsx(ze,{className:"h-10","data-testid":"department-filter",children:e.jsx(Ve,{placeholder:f?"Loading...":"All Departments"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Departments"}),p.map(H=>e.jsx(K,{value:H,children:H},H))]})]}),e.jsxs(Be,{value:i.slaComplianceFilter,onValueChange:i.setSlaComplianceFilter,children:[e.jsx(ze,{className:"h-10","data-testid":"sla-compliance-filter",children:e.jsx(Ve,{placeholder:"All SLA Status"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All SLA Status"}),e.jsx(K,{value:"compliant",children:"Compliant"}),e.jsx(K,{value:"on-track",children:"On Track"}),e.jsx(K,{value:"approaching",children:"Approaching"}),e.jsx(K,{value:"critical",children:"Critical"}),e.jsx(K,{value:"breached",children:"Breached"})]})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3 sm:gap-4",children:[e.jsxs("div",{className:"flex flex-col",children:[e.jsx(re,{className:"text-sm font-medium text-gray-700 mb-2",children:"Initiator"}),e.jsx("div",{className:"relative",children:D.selectedUser?e.jsxs("div",{className:"flex items-center gap-2 h-10 px-3 bg-white border border-gray-300 rounded-md",children:[e.jsx("span",{className:"flex-1 text-sm text-gray-900 truncate",children:D.selectedUser.displayName||D.selectedUser.email}),e.jsx(M,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:D.handleClear,children:e.jsx(ht,{className:"h-3 w-3"})})]}):e.jsxs(e.Fragment,{children:[e.jsx(Se,{placeholder:"Search initiator...",value:D.searchQuery,onChange:H=>D.handleSearch(H.target.value),onFocus:()=>{D.searchResults.length>0&&D.setShowResults(!0)},onBlur:()=>setTimeout(()=>D.setShowResults(!1),200),className:"h-10","data-testid":"initiator-search-input"}),D.showResults&&D.searchResults.length>0&&e.jsx("div",{className:"absolute z-50 w-full mt-1 bg-white border border-gray-300 rounded-md shadow-lg max-h-60 overflow-y-auto",children:D.searchResults.map(H=>e.jsx("button",{type:"button",onClick:()=>D.handleSelect(H),className:"w-full px-4 py-2 text-left hover:bg-gray-50",children:e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"text-sm font-medium text-gray-900",children:H.displayName||H.email}),H.displayName&&e.jsx("span",{className:"text-xs text-gray-500",children:H.email})]})},H.userId))})]})})]}),e.jsxs("div",{className:"flex flex-col",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx(re,{className:"text-sm font-medium text-gray-700",children:"Approver"}),i.approverFilter!=="all"&&e.jsxs(Be,{value:i.approverFilterType,onValueChange:H=>i.setApproverFilterType(H),children:[e.jsx(ze,{className:"h-7 w-32 text-xs",children:e.jsx(Ve,{})}),e.jsxs(He,{children:[e.jsx(K,{value:"current",children:"Current Only"}),e.jsx(K,{value:"any",children:"Any Approver"})]})]})]}),e.jsx("div",{className:"relative",children:C.selectedUser?e.jsxs("div",{className:"flex items-center gap-2 h-10 px-3 bg-white border border-gray-300 rounded-md",children:[e.jsx("span",{className:"flex-1 text-sm text-gray-900 truncate",children:C.selectedUser.displayName||C.selectedUser.email}),e.jsx(M,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:C.handleClear,children:e.jsx(ht,{className:"h-3 w-3"})})]}):e.jsxs(e.Fragment,{children:[e.jsx(Se,{placeholder:"Search approver...",value:C.searchQuery,onChange:H=>C.handleSearch(H.target.value),onFocus:()=>{C.searchResults.length>0&&C.setShowResults(!0)},onBlur:()=>setTimeout(()=>C.setShowResults(!1),200),className:"h-10","data-testid":"approver-search-input"}),C.showResults&&C.searchResults.length>0&&e.jsx("div",{className:"absolute z-50 w-full mt-1 bg-white border border-gray-300 rounded-md shadow-lg max-h-60 overflow-y-auto",children:C.searchResults.map(H=>e.jsx("button",{type:"button",onClick:()=>C.handleSelect(H),className:"w-full px-4 py-2 text-left hover:bg-gray-50",children:e.jsxs("div",{className:"flex flex-col",children:[e.jsx("span",{className:"text-sm font-medium text-gray-900",children:H.displayName||H.email}),H.displayName&&e.jsx("span",{className:"text-xs text-gray-500",children:H.email})]})},H.userId))})]})})]})]}),e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsx(ut,{className:"w-4 h-4 text-muted-foreground"}),e.jsxs(Be,{value:i.dateRange,onValueChange:i.handleDateRangeChange,children:[e.jsx(ze,{className:"w-[160px] h-10",children:e.jsx(Ve,{placeholder:"Date Range"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Time"}),e.jsx(K,{value:"today",children:"Today"}),e.jsx(K,{value:"week",children:"This Week"}),e.jsx(K,{value:"month",children:"This Month"}),e.jsx(K,{value:"last7days",children:"Last 7 Days"}),e.jsx(K,{value:"last30days",children:"Last 30 Days"}),e.jsx(K,{value:"custom",children:"Custom Range"})]})]}),i.dateRange==="custom"&&e.jsxs(oa,{open:i.showCustomDatePicker,onOpenChange:i.setShowCustomDatePicker,children:[e.jsx(ca,{asChild:!0,children:e.jsxs(M,{variant:"outline",size:"sm",className:"gap-2",children:[e.jsx(ut,{className:"w-4 h-4"}),i.customStartDate&&i.customEndDate?`${De(i.customStartDate,"MMM d, yyyy")} - ${De(i.customEndDate,"MMM d, yyyy")}`:"Select dates"]})}),e.jsx(da,{className:"w-auto p-4",align:"start",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"start-date",children:"Start Date"}),e.jsx(Se,{id:"start-date",type:"date",value:i.customStartDate?De(i.customStartDate,"yyyy-MM-dd"):"",onChange:H=>{const oe=H.target.value?new Date(H.target.value):void 0;oe?(i.setCustomStartDate(oe),i.customEndDate&&oe>i.customEndDate&&i.setCustomEndDate(oe)):i.setCustomStartDate(void 0)},max:De(new Date,"yyyy-MM-dd"),className:"w-full"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"end-date",children:"End Date"}),e.jsx(Se,{id:"end-date",type:"date",value:i.customEndDate?De(i.customEndDate,"yyyy-MM-dd"):"",onChange:H=>{const oe=H.target.value?new Date(H.target.value):void 0;oe?(i.setCustomEndDate(oe),i.customStartDate&&oe<i.customStartDate&&i.setCustomStartDate(oe)):i.setCustomEndDate(void 0)},min:i.customStartDate?De(i.customStartDate,"yyyy-MM-dd"):void 0,max:De(new Date,"yyyy-MM-dd"),className:"w-full"})]})]}),e.jsxs("div",{className:"flex gap-2 pt-2 border-t",children:[e.jsx(M,{size:"sm",onClick:i.handleApplyCustomDate,disabled:!i.customStartDate||!i.customEndDate,className:"flex-1 bg-re-green hover:bg-re-green/90",children:"Apply"}),e.jsx(M,{size:"sm",variant:"outline",onClick:()=>{i.setShowCustomDatePicker(!1),i.setCustomStartDate(void 0),i.setCustomEndDate(void 0),i.setDateRange("month")},children:"Cancel"})]})]})})]})]})]})})}),e.jsx(Mp,{requests:B,loading:c,hasActiveFilters:i.hasActiveFilters,onViewRequest:t}),e.jsx(fr,{currentPage:i.currentPage||1,totalPages:A,totalRecords:k,itemsPerPage:T,onPageChange:z,loading:c,itemLabel:"requests",testIdPrefix:"requests-pagination"})]})}async function pk({page:t,itemsPerPage:s,filters:a}){const r={};a!=null&&a.search&&(r.search=a.search),a!=null&&a.status&&a.status!=="all"&&(r.status=a.status),a!=null&&a.priority&&a.priority!=="all"&&(r.priority=a.priority),a!=null&&a.templateType&&a.templateType!=="all"&&(r.templateType=a.templateType),a!=null&&a.department&&a.department!=="all"&&(r.department=a.department),a!=null&&a.initiator&&a.initiator!=="all"&&(r.initiator=a.initiator),a!=null&&a.approver&&a.approver!=="all"&&(r.approver=a.approver,r.approverType=a.approverType||"current"),a!=null&&a.slaCompliance&&a.slaCompliance!=="all"&&(r.slaCompliance=a.slaCompliance),a!=null&&a.dateRange&&(r.dateRange=a.dateRange),a!=null&&a.startDate&&(r.startDate=a.startDate instanceof Date?a.startDate.toISOString():a.startDate),a!=null&&a.endDate&&(r.endDate=a.endDate instanceof Date?a.endDate.toISOString():a.endDate);const n=await Cs.listParticipantRequests({page:t,limit:s,...r});let i=[];Array.isArray(n==null?void 0:n.data)?i=n.data:Array.isArray(n)&&(i=n);const l=i.filter(c=>(c.status||"").toString().toUpperCase()!=="DRAFT"),o=(n==null?void 0:n.pagination)||{page:t,limit:s,total:l.length,totalPages:1};return{data:l,allData:[],filteredData:l,pagination:{page:o.page,limit:o.limit||s,total:o.total||l.length,totalPages:o.totalPages||1}}}const ru=100;async function gk(t){const s=[];let a=!0,r=1;const n=100,i={};for(t!=null&&t.search&&(i.search=t.search),t!=null&&t.status&&t.status!=="all"&&(i.status=t.status),t!=null&&t.priority&&t.priority!=="all"&&(i.priority=t.priority),t!=null&&t.templateType&&t.templateType!=="all"&&(i.templateType=t.templateType),t!=null&&t.department&&t.department!=="all"&&(i.department=t.department),t!=null&&t.initiator&&t.initiator!=="all"&&(i.initiator=t.initiator),t!=null&&t.approver&&t.approver!=="all"&&(i.approver=t.approver,i.approverType=t.approverType||"current"),t!=null&&t.slaCompliance&&t.slaCompliance!=="all"&&(i.slaCompliance=t.slaCompliance),t!=null&&t.dateRange&&(i.dateRange=t.dateRange),t!=null&&t.startDate&&(i.startDate=t.startDate instanceof Date?t.startDate.toISOString():t.startDate),t!=null&&t.endDate&&(i.endDate=t.endDate instanceof Date?t.endDate.toISOString():t.endDate);a&&r<=n;){const l=await Cs.listParticipantRequests({page:r,limit:ru,...i});let o=[];if(Array.isArray(l==null?void 0:l.data)?o=l.data:Array.isArray(l)&&(o=l),o.length===0)a=!1;else{const c=o.filter(d=>(d.status||"").toString().toUpperCase()!=="DRAFT");s.push(...c),r++,l!=null&&l.pagination?a=r<=l.pagination.totalPages:a=o.length===ru}}return s}function fk({onViewRequest:t}){const s=_p(),a=x.useMemo(()=>{try{const Y=st.getUserData();return ko(Y)}catch(Y){return console.error("[UserAllRequests] Error getting user filter type:",Y),"STANDARD"}},[]),r=x.useMemo(()=>GS(a),[a]),n=a==="DEALER",i=x.useCallback(()=>{const Y=s.getFilters();if(n){const{priority:E,templateType:O,department:L,slaCompliance:W,...G}=Y;return G}return Y},[s,n]),l=x.useCallback(()=>n?!!(s.searchTerm||s.statusFilter!=="all"||s.initiatorFilter!=="all"||s.approverFilter!=="all"||s.dateRange!=="all"||s.customStartDate||s.customEndDate):s.hasActiveFilters,[n,s]),[o,c]=x.useState([]),[d,m]=x.useState(!1),[u,h]=x.useState(!1),[g,p]=x.useState(null),[y,f]=x.useState([]),[b,v]=x.useState(!1),[w,A]=x.useState([]),[S,k]=x.useState(1),[F,T]=x.useState(0),[D]=x.useState(10),C=fi({allUsers:w,filterValue:s.initiatorFilter,onFilterChange:s.setInitiatorFilter}),P=fi({allUsers:w,filterValue:s.approverFilter,onFilterChange:s.setApproverFilter}),R=x.useCallback(async(Y,E,O,L)=>{try{const W=await Nt.getRequestStats(Y,E?E.toISOString():void 0,O?O.toISOString():void 0,void 0,L==null?void 0:L.priority,L==null?void 0:L.templateType,L==null?void 0:L.department,L==null?void 0:L.initiator,L==null?void 0:L.approver,L==null?void 0:L.approverType,L==null?void 0:L.search,L==null?void 0:L.slaCompliance,!0);p({total:W.totalRequests||0,pending:W.openRequests||0,paused:W.pausedRequests||0,approved:W.approvedRequests||0,rejected:W.rejectedRequests||0,draft:W.draftRequests||0,closed:W.closedRequests||0})}catch(W){console.error("Failed to fetch backend stats:",W)}},[]),V=x.useCallback(async()=>{try{v(!0);const Y=await Nt.getDepartments();f(Y)}catch{}finally{v(!1)}},[]),I=x.useCallback(async()=>{try{const E=(await Ls.getAllUsers()).map(O=>({userId:O.userId,email:O.email,displayName:O.displayName||O.email}));A(E)}catch(Y){console.error("Failed to fetch users:",Y)}},[]),$=x.useRef(s),_=x.useRef(R),N=x.useRef(i);x.useEffect(()=>{$.current=s,_.current=R,N.current=i},[s,R,i]);const j=x.useCallback(async(Y=1)=>{try{Y===1&&(m(!0),c([]));const E=N.current(),O=await pk({page:Y,itemsPerPage:D,filters:E});c(O.data),s.setCurrentPage(O.pagination.page),k(O.pagination.totalPages),T(O.pagination.total)}catch{c([])}finally{m(!1)}},[D,s]),U=x.useCallback(async()=>{try{h(!0);const Y=i(),E=await gk(Y);await Vp(E,Y)}catch(Y){console.error("Failed to export requests:",Y),alert("Failed to export requests. Please try again.")}finally{h(!1)}},[i]);x.useEffect(()=>{V(),I()},[V,I]),x.useEffect(()=>{const Y=setTimeout(()=>{const E={initiator:s.initiatorFilter!=="all"?s.initiatorFilter:void 0,approver:s.approverFilter!=="all"?s.approverFilter:void 0,approverType:s.approverFilter!=="all"?s.approverFilterType:void 0,search:s.searchTerm||void 0};n||(s.priorityFilter!=="all"&&(E.priority=s.priorityFilter),s.templateTypeFilter!=="all"&&(E.templateType=s.templateTypeFilter),s.departmentFilter!=="all"&&(E.department=s.departmentFilter),s.slaComplianceFilter!=="all"&&(E.slaCompliance=s.slaComplianceFilter));const O=s.dateRange==="all"?"all":s.dateRange||"month";_.current(O,s.customStartDate,s.customEndDate,E)},s.searchTerm?500:0);return()=>clearTimeout(Y)},[s.searchTerm,s.priorityFilter,s.slaComplianceFilter,s.departmentFilter,s.initiatorFilter,s.approverFilter,s.approverFilterType,s.dateRange,s.customStartDate,s.customEndDate,s.templateTypeFilter,n]);const z=x.useRef({searchTerm:s.searchTerm,statusFilter:s.statusFilter,priorityFilter:s.priorityFilter,templateTypeFilter:s.templateTypeFilter,slaComplianceFilter:s.slaComplianceFilter,departmentFilter:s.departmentFilter,initiatorFilter:s.initiatorFilter,approverFilter:s.approverFilter,approverFilterType:s.approverFilterType,dateRange:s.dateRange,customStartDate:s.customStartDate,customEndDate:s.customEndDate}),B=x.useRef(!1);x.useEffect(()=>{const Y=s.currentPage||1;j(Y),B.current=!0},[]),x.useEffect(()=>{if(!B.current)return;const Y=z.current;if(!(Y.searchTerm!==s.searchTerm||Y.statusFilter!==s.statusFilter||Y.priorityFilter!==s.priorityFilter||Y.templateTypeFilter!==s.templateTypeFilter||Y.slaComplianceFilter!==s.slaComplianceFilter||Y.departmentFilter!==s.departmentFilter||Y.initiatorFilter!==s.initiatorFilter||Y.approverFilter!==s.approverFilter||Y.approverFilterType!==s.approverFilterType||Y.dateRange!==s.dateRange||Y.customStartDate!==s.customStartDate||Y.customEndDate!==s.customEndDate))return;const O=setTimeout(()=>{s.setCurrentPage(1),j(1),z.current={searchTerm:s.searchTerm,statusFilter:s.statusFilter,priorityFilter:s.priorityFilter,templateTypeFilter:s.templateTypeFilter,slaComplianceFilter:s.slaComplianceFilter,departmentFilter:s.departmentFilter,initiatorFilter:s.initiatorFilter,approverFilter:s.approverFilter,approverFilterType:s.approverFilterType,dateRange:s.dateRange,customStartDate:s.customStartDate,customEndDate:s.customEndDate}},s.searchTerm!==Y.searchTerm?500:0);return()=>clearTimeout(O)},[s.searchTerm,s.statusFilter,s.priorityFilter,s.templateTypeFilter,s.slaComplianceFilter,s.departmentFilter,s.initiatorFilter,s.approverFilter,s.approverFilterType,s.dateRange,s.customStartDate,s.customEndDate]);const X=x.useCallback(Y=>{Y>=1&&Y<=S&&(s.setCurrentPage(Y),j(Y))},[S,j,s]),H=x.useMemo(()=>Lp(o),[o]),oe=x.useMemo(()=>{if(g)return{total:g.total||0,pending:g.pending||0,paused:g.paused||0,approved:g.approved||0,rejected:g.rejected||0,draft:g.draft||0,closed:g.closed||0};const Y=H.filter(G=>{const ee=(G.status||"").toString().toLowerCase();return ee==="pending"||ee==="in-progress"}).length,E=H.filter(G=>(G.status||"").toString().toLowerCase()==="paused").length,O=H.filter(G=>(G.status||"").toString().toLowerCase()==="approved").length,L=H.filter(G=>(G.status||"").toString().toLowerCase()==="rejected").length,W=H.filter(G=>(G.status||"").toString().toLowerCase()==="closed").length;return{total:F>0?F:H.length,pending:Y,paused:E,approved:O,rejected:L,draft:0,closed:W}},[g,F,H]);return e.jsxs("div",{className:"space-y-4 sm:space-y-6 max-w-7xl mx-auto","data-testid":"user-all-requests-page",children:[e.jsx(Ip,{isOrgLevel:!1,isAdmin:!1,loading:d,exporting:u,onExport:U}),e.jsx(Ep,{stats:oe,onStatusFilter:Y=>{s.setStatusFilter(Y)}}),e.jsx(r,{searchTerm:s.searchTerm,statusFilter:s.statusFilter,priorityFilter:s.priorityFilter,templateTypeFilter:s.templateTypeFilter,departmentFilter:s.departmentFilter,slaComplianceFilter:s.slaComplianceFilter,initiatorFilter:s.initiatorFilter,approverFilter:s.approverFilter,approverFilterType:s.approverFilterType,dateRange:s.dateRange,customStartDate:s.customStartDate,customEndDate:s.customEndDate,showCustomDatePicker:s.showCustomDatePicker,departments:y,loadingDepartments:b,initiatorSearch:C,approverSearch:P,onSearchChange:s.setSearchTerm,onStatusChange:s.setStatusFilter,onPriorityChange:s.setPriorityFilter,onTemplateTypeChange:s.setTemplateTypeFilter,onDepartmentChange:s.setDepartmentFilter,onSlaComplianceChange:s.setSlaComplianceFilter,onInitiatorChange:s.setInitiatorFilter,onApproverChange:s.setApproverFilter,onApproverTypeChange:s.setApproverFilterType,onDateRangeChange:s.handleDateRangeChange,onCustomStartDateChange:s.setCustomStartDate,onCustomEndDateChange:s.setCustomEndDate,onShowCustomDatePickerChange:s.setShowCustomDatePicker,onApplyCustomDate:s.handleApplyCustomDate,onClearFilters:s.clearFilters,hasActiveFilters:l()}),e.jsx(Mp,{requests:H,loading:d,hasActiveFilters:s.hasActiveFilters,onViewRequest:t}),e.jsx(fr,{currentPage:s.currentPage||1,totalPages:S,totalRecords:F,itemsPerPage:D,onPageChange:X,loading:d,itemLabel:"requests",testIdPrefix:"requests-pagination"})]})}function yk(){const t=Pa();return e.jsx("div",{className:"flex-1 p-3 lg:p-6 overflow-auto min-w-0","data-testid":"approver-performance-empty",children:e.jsx("div",{className:"max-w-7xl mx-auto p-4",children:e.jsx(te,{children:e.jsxs(se,{className:"p-8 text-center",children:[e.jsx(Ge,{className:"w-12 h-12 text-yellow-500 mx-auto mb-4"}),e.jsx("h2",{className:"text-xl font-semibold mb-2",children:"Approver ID Required"}),e.jsx("p",{className:"text-gray-600",children:"Please select an approver to view their performance details."}),e.jsxs(M,{onClick:()=>t(-1),className:"mt-4","data-testid":"back-button",children:[e.jsx(zs,{className:"w-4 h-4 mr-2"}),"Back"]})]})})})})}function vk({approverName:t,refreshing:s,onRefresh:a}){return e.jsxs("div",{className:"flex items-center justify-between","data-testid":"approver-performance-header",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-yellow-100 rounded-lg",children:e.jsx(Mt,{className:"h-6 w-6 text-yellow-600"})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"Approver Performance Report"}),e.jsx("p",{className:"text-sm text-gray-600",children:t})]})]}),e.jsxs(M,{variant:"outline",size:"sm",onClick:a,disabled:s,className:"gap-2","data-testid":"refresh-button",children:[e.jsx(Bt,{className:`w-4 h-4 ${s?"animate-spin":""}`}),e.jsx("span",{className:"hidden sm:inline",children:"Refresh"})]})]})}function bk({approverStats:t}){const s=(t==null?void 0:t.tatCompliancePercent)??0;return e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4","data-testid":"approver-stats-cards",children:[e.jsxs(te,{children:[e.jsx(ue,{className:"pb-3",children:e.jsx(he,{className:"text-sm font-medium text-gray-600",children:"TAT Compliance"})}),e.jsxs(se,{children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"text-3xl font-bold text-gray-900",children:[s,"%"]}),e.jsx("div",{className:`p-2 rounded-lg ${s>=95?"bg-green-100":s>=90?"bg-blue-100":s>=85?"bg-orange-100":"bg-red-100"}`,children:e.jsx(_t,{className:`w-5 h-5 ${s>=95?"text-green-600":s>=90?"text-blue-600":s>=85?"text-orange-600":"text-red-600"}`})})]}),e.jsx(ea,{value:s,className:"mt-2 h-2"})]})]}),e.jsxs(te,{children:[e.jsx(ue,{className:"pb-3",children:e.jsx(he,{className:"text-sm font-medium text-gray-600",children:"Total Approved"})}),e.jsxs(se,{children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("div",{className:"text-3xl font-bold text-gray-900",children:t.totalApproved}),e.jsx("div",{className:"p-2 bg-blue-100 rounded-lg",children:e.jsx(Ce,{className:"w-5 h-5 text-blue-600"})})]}),e.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Requests handled"})]})]}),e.jsxs(te,{children:[e.jsx(ue,{className:"pb-3",children:e.jsx(he,{className:"text-sm font-medium text-gray-600",children:"Avg Response Time"})}),e.jsxs(se,{children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"text-3xl font-bold text-gray-900",children:[t.avgResponseHours.toFixed(1),"h"]}),e.jsx("div",{className:"p-2 bg-purple-100 rounded-lg",children:e.jsx(bo,{className:"w-5 h-5 text-purple-600"})})]}),e.jsx("p",{className:"text-xs text-gray-500 mt-1",children:t.avgResponseHours<24?`${(t.avgResponseHours/8).toFixed(1)} working days`:`${(t.avgResponseHours/24).toFixed(1)} days`})]})]}),e.jsxs(te,{children:[e.jsx(ue,{className:"pb-3",children:e.jsx(he,{className:"text-sm font-medium text-gray-600",children:"Pending Actions"})}),e.jsxs(se,{children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("div",{className:"text-3xl font-bold text-gray-900",children:t.pendingCount}),e.jsx("div",{className:"p-2 bg-orange-100 rounded-lg",children:e.jsx(Ye,{className:"w-5 h-5 text-orange-600"})})]}),e.jsx("p",{className:"text-xs text-gray-500 mt-1",children:"Awaiting approval"})]})]})]})}function jk({approverName:t,approverStats:s,dateRange:a="all",customStartDate:r,customEndDate:n}){return e.jsxs(te,{"data-testid":"approver-actions-stats",children:[e.jsxs(ue,{children:[e.jsx(he,{children:"Approver's Actions"}),e.jsxs(Te,{children:["Statistics for all requests by ",t," ",a&&a!=="all"?Sv(a,r,n,""):"(all time)"]})]}),e.jsxs(se,{children:[e.jsxs("div",{className:"mb-6",children:[e.jsxs("h4",{className:"text-sm font-semibold text-gray-700 mb-3 flex items-center gap-2",children:[e.jsx(Mt,{className:"w-4 h-4"}),"Approver's Actions"]}),e.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-5 gap-3",children:[e.jsxs("div",{className:"p-4 bg-green-50 rounded-lg border border-green-200",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx(Ce,{className:"w-5 h-5 text-green-600"}),e.jsx("span",{className:"text-xs text-green-600 font-medium",children:s&&s.approvedCount+s.rejectedCount>0?`${Math.round(s.approvedCount/(s.approvedCount+s.rejectedCount)*100)}%`:"0%"})]}),e.jsx("div",{className:"text-2xl font-bold text-green-700",children:(s==null?void 0:s.approvedCount)||0}),e.jsx("div",{className:"text-xs text-gray-600 mt-1",children:"Approved by Approver"})]}),e.jsxs("div",{className:"p-4 bg-red-50 rounded-lg border border-red-200",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx(gt,{className:"w-5 h-5 text-red-600"}),e.jsx("span",{className:"text-xs text-red-600 font-medium",children:s&&s.approvedCount+s.rejectedCount>0?`${Math.round(s.rejectedCount/(s.approvedCount+s.rejectedCount)*100)}%`:"0%"})]}),e.jsx("div",{className:"text-2xl font-bold text-red-700",children:(s==null?void 0:s.rejectedCount)||0}),e.jsx("div",{className:"text-xs text-gray-600 mt-1",children:"Rejected by Approver"})]}),e.jsxs("div",{className:"p-4 bg-yellow-50 rounded-lg border border-yellow-200",children:[e.jsx("div",{className:"flex items-center justify-between mb-2",children:e.jsx(Ye,{className:"w-5 h-5 text-yellow-600"})}),e.jsx("div",{className:"text-2xl font-bold text-yellow-700",children:(s==null?void 0:s.pendingCount)||0}),e.jsx("div",{className:"text-xs text-gray-600 mt-1",children:"Pending Actions"})]}),e.jsxs("div",{className:"p-4 bg-gray-50 rounded-lg border border-gray-200",children:[e.jsx("div",{className:"flex items-center justify-between mb-2",children:e.jsx(Pi,{className:"w-5 h-5 text-gray-600"})}),e.jsx("div",{className:"text-2xl font-bold text-gray-700",children:(s==null?void 0:s.closedCount)||0}),e.jsx("div",{className:"text-xs text-gray-600 mt-1",children:"Closed Requests"})]}),e.jsxs("div",{className:"p-4 bg-blue-50 rounded-lg border border-blue-200",children:[e.jsx("div",{className:"flex items-center justify-between mb-2",children:e.jsx(_e,{className:"w-5 h-5 text-blue-600"})}),e.jsx("div",{className:"text-2xl font-bold text-blue-700",children:(s==null?void 0:s.totalApproved)||0}),e.jsx("div",{className:"text-xs text-gray-600 mt-1",children:"Total Requests"})]})]})]}),e.jsxs("div",{className:"mb-6 pt-4 border-t",children:[e.jsxs("h4",{className:"text-sm font-semibold text-gray-700 mb-3 flex items-center gap-2",children:[e.jsx(_t,{className:"w-4 h-4"}),"TAT Compliance"]}),e.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-3",children:[e.jsxs("div",{className:"p-4 bg-green-50 rounded-lg border border-green-200",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx(Wf,{className:"w-5 h-5 text-green-600"}),e.jsx("span",{className:"text-xs text-green-600 font-medium",children:(s==null?void 0:s.tatCompliancePercent)!==void 0?`${s.tatCompliancePercent}%`:"N/A"})]}),e.jsx("div",{className:"text-2xl font-bold text-green-700",children:(s==null?void 0:s.withinTatCount)||0}),e.jsx("div",{className:"text-xs text-gray-600 mt-1",children:"TAT Compliant"})]}),e.jsxs("div",{className:"p-4 bg-red-50 rounded-lg border border-red-200",children:[e.jsx("div",{className:"flex items-center justify-between mb-2",children:e.jsx(Ge,{className:"w-5 h-5 text-red-600"})}),e.jsx("div",{className:"text-2xl font-bold text-red-700",children:(s==null?void 0:s.breachedCount)||0}),e.jsx("div",{className:"text-xs text-gray-600 mt-1",children:"TAT Breached"})]}),e.jsxs("div",{className:"p-4 bg-purple-50 rounded-lg border border-purple-200",children:[e.jsx("div",{className:"flex items-center justify-between mb-2",children:e.jsx(ci,{className:"w-5 h-5 text-purple-600"})}),e.jsx("div",{className:"text-2xl font-bold text-purple-700",children:s?s.approvedCount+s.rejectedCount:0}),e.jsx("div",{className:"text-xs text-gray-600 mt-1",children:"Completed Actions"})]})]})]})]})]})}function Nk({searchTerm:t,statusFilter:s,priorityFilter:a,slaComplianceFilter:r,dateRange:n,customStartDate:i,customEndDate:l,showCustomDatePicker:o,tempCustomStartDate:c,tempCustomEndDate:d,onSearchChange:m,onStatusChange:u,onPriorityChange:h,onSlaComplianceChange:g,onDateRangeChange:p,onShowCustomDatePickerChange:y,onTempStartDateChange:f,onTempEndDateChange:b,onApplyCustomDate:v,onClearFilters:w}){return e.jsxs(te,{"data-testid":"approver-performance-filters",children:[e.jsx(ue,{children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(he,{children:"Filters"}),e.jsx(M,{variant:"ghost",size:"sm",onClick:w,className:"text-xs","data-testid":"clear-filters-button",children:"Clear All"})]})}),e.jsx(se,{children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-6 gap-4",children:[e.jsxs("div",{className:"relative",children:[e.jsx(vs,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-gray-400"}),e.jsx(Se,{placeholder:"Search requests...",value:t,onChange:A=>m(A.target.value),className:"pl-10","data-testid":"search-input"})]}),e.jsxs(Be,{value:s,onValueChange:u,children:[e.jsx(ze,{"data-testid":"status-filter",children:e.jsx(Ve,{placeholder:"Status"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Status"}),e.jsx(K,{value:"pending",children:"Pending"}),e.jsx(K,{value:"approved",children:"Approved"}),e.jsx(K,{value:"rejected",children:"Rejected"}),e.jsx(K,{value:"closed",children:"Closed"})]})]}),e.jsxs(Be,{value:a,onValueChange:h,children:[e.jsx(ze,{"data-testid":"priority-filter",children:e.jsx(Ve,{placeholder:"Priority"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Priority"}),e.jsx(K,{value:"express",children:"Express"}),e.jsx(K,{value:"standard",children:"Standard"})]})]}),e.jsxs(Be,{value:r,onValueChange:g,children:[e.jsx(ze,{"data-testid":"sla-compliance-filter",children:e.jsx(Ve,{placeholder:"SLA Compliance"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All SLA"}),e.jsx(K,{value:"compliant",children:"Compliant"}),e.jsx(K,{value:"on-track",children:"On Track"}),e.jsx(K,{value:"approaching",children:"Approaching"}),e.jsx(K,{value:"critical",children:"Critical"}),e.jsx(K,{value:"breached",children:"Breached"})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ut,{className:"w-4 h-4 text-muted-foreground"}),e.jsxs(Be,{value:n,onValueChange:p,children:[e.jsx(ze,{className:"flex-1","data-testid":"date-range-filter",children:e.jsx(Ve,{placeholder:"Date Range"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Time"}),e.jsx(K,{value:"today",children:"Today"}),e.jsx(K,{value:"week",children:"This Week"}),e.jsx(K,{value:"month",children:"This Month"}),e.jsx(K,{value:"last7days",children:"Last 7 Days"}),e.jsx(K,{value:"last30days",children:"Last 30 Days"}),e.jsx(K,{value:"custom",children:"Custom Range"})]})]}),n==="custom"&&e.jsxs(oa,{open:o,onOpenChange:y,children:[e.jsx(ca,{asChild:!0,children:e.jsxs(M,{variant:"outline",size:"sm",className:"gap-2","data-testid":"custom-date-trigger",children:[e.jsx(ut,{className:"w-4 h-4"}),c&&d?`${De(c,"MMM d")} - ${De(d,"MMM d")}`:"Select dates"]})}),e.jsx(da,{className:"w-auto p-4",align:"start",sideOffset:8,children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"start-date",className:"text-sm font-medium",children:"Start Date"}),e.jsx(Se,{id:"start-date",type:"date",value:c?De(c,"yyyy-MM-dd"):"",onChange:A=>{const S=A.target.value?new Date(A.target.value):void 0;S?(f(S),d&&S>d&&b(S)):f(void 0)},max:De(new Date,"yyyy-MM-dd"),className:"w-full"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"end-date",className:"text-sm font-medium",children:"End Date"}),e.jsx(Se,{id:"end-date",type:"date",value:d?De(d,"yyyy-MM-dd"):"",onChange:A=>{const S=A.target.value?new Date(A.target.value):void 0;S?(b(S),c&&S<c&&f(S)):b(void 0)},min:c?De(c,"yyyy-MM-dd"):void 0,max:De(new Date,"yyyy-MM-dd"),className:"w-full"})]})]}),e.jsxs("div",{className:"flex gap-2 pt-2 border-t",children:[e.jsx(M,{size:"sm",onClick:v,disabled:!c||!d,className:"flex-1 bg-re-green hover:bg-re-green/90","data-testid":"apply-date-button",children:"Apply"}),e.jsx(M,{size:"sm",variant:"outline",onClick:()=>{y(!1),f(i),b(l),(!i||!l)&&p("all")},"data-testid":"cancel-date-button",children:"Cancel"})]})]})})]})]})]})})]})}const wk=t=>{switch(t){case"express":return{color:"bg-red-100 text-red-800 border-red-200",icon:Bs,iconColor:"text-red-600"};case"standard":return{color:"bg-blue-100 text-blue-800 border-blue-200",icon:_t,iconColor:"text-blue-600"};default:return{color:"bg-gray-100 text-gray-800 border-gray-200",icon:_t,iconColor:"text-gray-600"}}},Ck=t=>{switch(t){case"approved":return{color:"bg-green-100 text-green-800 border-green-200",icon:Ce,iconColor:"text-green-600"};case"rejected":return{color:"bg-red-100 text-red-800 border-red-200",icon:gt,iconColor:"text-red-600"};case"pending":return{color:"bg-yellow-100 text-yellow-800 border-yellow-200",icon:Ye,iconColor:"text-yellow-600"};case"in-progress":return{color:"bg-blue-100 text-blue-800 border-blue-200",icon:Ye,iconColor:"text-blue-600"};case"closed":return{color:"bg-gray-100 text-gray-800 border-gray-200",icon:Ce,iconColor:"text-gray-600"};default:return{color:"bg-gray-100 text-gray-800 border-gray-200",icon:_e,iconColor:"text-gray-600"}}},Ak=t=>{switch(t){case"breached":return{color:"bg-red-100 text-red-800 border-red-200",label:"Breached"};case"critical":return{color:"bg-orange-100 text-orange-800 border-orange-200",label:"Critical"};case"approaching":return{color:"bg-yellow-100 text-yellow-800 border-yellow-200",label:"Approaching"};case"on_track":case"on-track":return{color:"bg-green-100 text-green-800 border-green-200",label:"On Track"};default:return{color:"bg-gray-100 text-gray-800 border-gray-200",label:"N/A"}}};function Sk(t){if(!t)return"N/A";try{return De(new Date(t),"MMM d, yyyy")}catch{return"N/A"}}function Tk(t){if(!t)return"N/A";try{return De(new Date(t),"MMM d, yyyy HH:mm")}catch{return"N/A"}}function kk({requests:t,loading:s,approverName:a,currentPage:r,totalPages:n,totalRecords:i,itemsPerPage:l,onPageChange:o}){const c=Pa();return e.jsxs(te,{"data-testid":"approver-performance-request-list",children:[e.jsxs(ue,{children:[e.jsx(he,{children:"Request Details"}),e.jsxs(Te,{children:["All requests handled by ",a," with applied filters"]})]}),e.jsxs(se,{children:[s?e.jsxs("div",{className:"flex items-center justify-center py-12","data-testid":"loading-state",children:[e.jsx(Bt,{className:"w-6 h-6 animate-spin text-gray-400"}),e.jsx("span",{className:"ml-2 text-sm text-gray-600",children:"Loading requests..."})]}):t.length===0?e.jsxs("div",{className:"text-center py-12 text-gray-500","data-testid":"empty-state",children:[e.jsx(_e,{className:"w-12 h-12 mx-auto mb-4 text-gray-400"}),e.jsx("p",{className:"text-sm",children:"No requests found for this approver"})]}):e.jsx("div",{className:"space-y-4",children:t.map(d=>{const m=wk(d.priority),u=Ck(d.status),h=Ak(d.slaStatus||""),g=m.icon,p=u.icon;return e.jsx(te,{className:"hover:shadow-md transition-shadow cursor-pointer",onClick:()=>{const{navigateToRequest:y}=require("@/utils/requestNavigation");y({requestId:d.requestId,requestTitle:d.title,status:d.status,request:d,navigate:c})},"data-testid":`request-card-${d.requestId}`,children:e.jsx(se,{className:"p-4",children:e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-2 flex-wrap",children:[e.jsx("span",{className:"font-semibold text-sm text-blue-600 hover:underline","data-testid":"request-number",children:d.requestNumber}),e.jsxs(le,{className:m.color,"data-testid":"priority-badge",children:[e.jsx(g,{className:`w-3 h-3 mr-1 ${m.iconColor}`}),d.priority]}),e.jsxs(le,{className:u.color,"data-testid":"status-badge",children:[e.jsx(p,{className:`w-3 h-3 mr-1 ${u.iconColor}`}),d.status]}),d.approvalStatus&&e.jsx(le,{className:d.approvalStatus==="approved"||d.approvalStatus==="APPROVED"?"bg-green-100 text-green-800 border-green-200":d.approvalStatus==="rejected"||d.approvalStatus==="REJECTED"?"bg-red-100 text-red-800 border-red-200":"bg-yellow-100 text-yellow-800 border-yellow-200","data-testid":"approval-status-badge",children:d.approvalStatus==="approved"||d.approvalStatus==="APPROVED"?e.jsxs(e.Fragment,{children:[e.jsx(Ce,{className:"w-3 h-3 mr-1"}),"Approved"]}):d.approvalStatus==="rejected"||d.approvalStatus==="REJECTED"?e.jsxs(e.Fragment,{children:[e.jsx(gt,{className:"w-3 h-3 mr-1"}),"Rejected"]}):e.jsxs(e.Fragment,{children:[e.jsx(Ye,{className:"w-3 h-3 mr-1"}),"Pending"]})}),d.slaStatus&&e.jsx(le,{className:h.color,"data-testid":"sla-status-badge",children:h.label})]}),e.jsx("h3",{className:"font-medium text-gray-900 mb-1 truncate","data-testid":"request-title",children:d.title}),e.jsxs("div",{className:"flex flex-wrap items-center gap-4 text-xs text-gray-500 mt-2",children:[e.jsxs("span",{className:"flex items-center gap-1","data-testid":"initiator-info",children:[e.jsx(kt,{className:"w-3 h-3"}),d.initiatorName,d.initiatorDepartment&&e.jsxs("span",{className:"ml-1",children:["(",d.initiatorDepartment,")"]})]}),e.jsxs("span",{className:"flex items-center gap-1","data-testid":"submission-date",children:[e.jsx(Ye,{className:"w-3 h-3"}),"Submitted: ",Sk(d.submissionDate)]}),d.approvalActionDate&&e.jsxs("span",{className:"flex items-center gap-1","data-testid":"action-date",children:[e.jsx(Ce,{className:"w-3 h-3"}),"Action: ",Tk(d.approvalActionDate)]}),e.jsxs("span",{className:"flex items-center gap-1","data-testid":"approval-level",children:[e.jsx(_t,{className:"w-3 h-3"}),"Level ",d.levelNumber," of ",d.totalLevels]}),d.levelElapsedHours&&d.levelElapsedHours>0&&e.jsxs("span",{className:"flex items-center gap-1","data-testid":"tat-info",children:[e.jsx(bo,{className:"w-3 h-3"}),Rt(d.levelElapsedHours)," / ",Rt(d.levelTatHours||0)," TAT"]})]})]}),e.jsx(M,{variant:"ghost",size:"sm",onClick:y=>{y.stopPropagation();const{navigateToRequest:f}=require("@/utils/requestNavigation");f({requestId:d.requestId,requestTitle:d.title,status:d.status,request:d,navigate:c})},"data-testid":"view-request-button",children:e.jsx(ls,{className:"w-4 h-4"})})]})})},d.requestId)})}),n>0&&e.jsx("div",{className:"mt-6","data-testid":"pagination-container",children:e.jsx(fr,{currentPage:r,totalPages:n,totalRecords:i,itemsPerPage:l,onPageChange:o,itemLabel:"requests",testIdPrefix:"approver-performance"})})]})]})}function Rk(){const[t]=$u(),[s,a]=x.useState(""),[r,n]=x.useState(t.get("status")||"all"),[i,l]=x.useState(t.get("priority")||"all"),[o,c]=x.useState(t.get("slaCompliance")||"all"),[d,m]=x.useState(t.get("dateRange")||"all"),[u,h]=x.useState(t.get("startDate")?new Date(t.get("startDate")):void 0),[g,p]=x.useState(t.get("endDate")?new Date(t.get("endDate")):void 0),[y,f]=x.useState(!1),[b,v]=x.useState(void 0),[w,A]=x.useState(void 0),S=x.useCallback(()=>{a(""),n("all"),l("all"),c("all"),m("all"),h(void 0),p(void 0),v(void 0),A(void 0),f(!1)},[]),k=x.useCallback(T=>{const D=T;m(D),D!=="custom"?(h(void 0),p(void 0),v(void 0),A(void 0),f(!1)):(v(u),A(g),f(!0))},[u,g]),F=x.useCallback(()=>{if(b&&w){if(b>w){const T=b;h(w),p(T),v(w),A(T)}else h(b),p(w);f(!1)}},[b,w]);return{searchTerm:s,statusFilter:r,priorityFilter:i,slaComplianceFilter:o,dateRange:d,customStartDate:u,customEndDate:g,showCustomDatePicker:y,tempCustomStartDate:b,tempCustomEndDate:w,setSearchTerm:a,setStatusFilter:n,setPriorityFilter:l,setSlaComplianceFilter:c,setDateRange:m,setCustomStartDate:h,setCustomEndDate:p,setShowCustomDatePicker:f,setTempCustomStartDate:v,setTempCustomEndDate:A,clearFilters:S,handleDateRangeChange:k,handleApplyCustomDate:F}}function Dk({approverId:t,dateRange:s,customStartDate:a,customEndDate:r,statusFilter:n,priorityFilter:i,slaComplianceFilter:l,searchTerm:o,itemsPerPage:c}){const[d,m]=x.useState([]),[u,h]=x.useState(null),[g,p]=x.useState([]),[y,f]=x.useState(!0),[b,v]=x.useState(!1),[w,A]=x.useState(1),[S,k]=x.useState(1),[F,T]=x.useState(0),D=x.useRef(!0),C=x.useCallback(async()=>{if(t)try{const I=s==="all"?void 0:s,$=await Nt.getSingleApproverStats(t,I,a,r,i!=="all"?i:void 0,l!=="all"?l:void 0);h($)}catch(I){console.error("[ApproverPerformance] Failed to fetch approver stats:",I),h(null)}},[t,s,a,r,i,l]),P=x.useCallback(async(I=1)=>{if(!t){f(!1);return}try{f(!0);const $=await Nt.getRequestsByApprover(t,I,c,s==="all"?void 0:s,a,r,n!=="all"?n:void 0,i!=="all"?i:void 0,l!=="all"?l:void 0,o||void 0);m($.requests),T($.pagination.totalRecords),k($.pagination.totalPages),A($.pagination.currentPage),p($.requests)}catch($){console.error("Failed to fetch requests:",$)}finally{f(!1),v(!1)}},[t,s,a,r,n,i,l,o,c]);x.useEffect(()=>{D.current&&(D.current=!1,C(),P(1))},[]),x.useEffect(()=>{D.current||C()},[s,a,r,i,l]),x.useEffect(()=>{D.current||P(1)},[s,a,r,n,i,l,o]);const R=x.useCallback(()=>{v(!0),C(),P(1)},[C,P]),V=x.useCallback(I=>{P(I)},[P]);return{requests:d,approverStats:u,allFilteredRequests:g,loading:y,refreshing:b,currentPage:w,totalPages:S,totalRecords:F,handleRefresh:R,handlePageChange:V}}const nu=10;function Pk(){const[t]=$u(),s=t.get("approverId")||"",a=t.get("approverName")||"Unknown Approver",r=Rk(),n=Dk({approverId:s,dateRange:r.dateRange,customStartDate:r.customStartDate,customEndDate:r.customEndDate,statusFilter:r.statusFilter,priorityFilter:r.priorityFilter,slaComplianceFilter:r.slaComplianceFilter,searchTerm:r.searchTerm,itemsPerPage:nu});return s?e.jsxs("div",{className:"space-y-4 sm:space-y-6 max-w-7xl mx-auto","data-testid":"approver-performance-page",children:[e.jsx(vk,{approverName:a,refreshing:n.refreshing,onRefresh:n.handleRefresh}),n.approverStats&&e.jsx(bk,{approverStats:n.approverStats}),n.approverStats&&e.jsx(jk,{approverName:a,approverStats:n.approverStats,dateRange:r.dateRange,customStartDate:r.customStartDate,customEndDate:r.customEndDate}),e.jsx(Nk,{searchTerm:r.searchTerm,statusFilter:r.statusFilter,priorityFilter:r.priorityFilter,slaComplianceFilter:r.slaComplianceFilter,dateRange:r.dateRange,customStartDate:r.customStartDate,customEndDate:r.customEndDate,showCustomDatePicker:r.showCustomDatePicker,tempCustomStartDate:r.tempCustomStartDate,tempCustomEndDate:r.tempCustomEndDate,onSearchChange:r.setSearchTerm,onStatusChange:r.setStatusFilter,onPriorityChange:r.setPriorityFilter,onSlaComplianceChange:r.setSlaComplianceFilter,onDateRangeChange:r.handleDateRangeChange,onShowCustomDatePickerChange:r.setShowCustomDatePicker,onTempStartDateChange:r.setTempCustomStartDate,onTempEndDateChange:r.setTempCustomEndDate,onApplyCustomDate:r.handleApplyCustomDate,onClearFilters:r.clearFilters}),e.jsx(kk,{requests:n.requests,loading:n.loading,approverName:a,currentPage:n.currentPage,totalPages:n.totalPages,totalRecords:n.totalRecords,itemsPerPage:nu,onPageChange:n.handlePageChange})]}):e.jsx(yk,{})}function Ik(){const{user:t}=Zt(),s=()=>{var a,r;if(t!=null&&t.displayName){const n=t.displayName.split(" ").filter(Boolean);return n.length>=2?`${((a=n[0])==null?void 0:a[0])||""}${((r=n[n.length-1])==null?void 0:r[0])||""}`.toUpperCase():t.displayName.substring(0,2).toUpperCase()}return t!=null&&t.email?t.email.substring(0,2).toUpperCase():"U"};return e.jsxs("div",{className:"space-y-6 max-w-7xl mx-auto",children:[e.jsxs(te,{className:"relative overflow-hidden shadow-xl border-0",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-slate-900 via-slate-800 to-slate-900"}),e.jsx(se,{className:"relative z-10 p-8 lg:p-12",children:e.jsxs("div",{className:"flex flex-col md:flex-row items-start md:items-center gap-6",children:[e.jsxs("div",{className:"relative",children:[e.jsxs(as,{className:"h-24 w-24 ring-4 ring-white/20 shadow-xl",children:[e.jsx(Mi,{src:(t==null?void 0:t.picture)||""}),e.jsx(rs,{className:"bg-yellow-400 text-slate-900 text-2xl font-bold",children:s()})]}),rr(t)&&e.jsx("div",{className:"absolute -bottom-2 -right-2 bg-yellow-400 rounded-full p-1.5 shadow-lg",children:e.jsx(ss,{className:"w-4 h-4 text-slate-900"})})]}),e.jsx("div",{className:"flex-1 text-white",children:e.jsx("div",{className:"flex flex-col md:flex-row md:items-center md:justify-between gap-4",children:e.jsxs("div",{children:[e.jsx("h1",{className:"text-3xl font-bold mb-2",children:(t==null?void 0:t.displayName)||(t==null?void 0:t.name)||"User Profile"}),e.jsx("p",{className:"text-lg text-gray-200 mb-3",children:(t==null?void 0:t.email)||"No email provided"}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[rr(t)&&e.jsxs(le,{className:"bg-yellow-400 text-slate-900 hover:bg-yellow-400 font-semibold",children:[e.jsx(ss,{className:"w-3 h-3 mr-1"}),"Administrator"]}),sn(t)&&e.jsxs(le,{className:"bg-blue-400 text-slate-900 hover:bg-blue-400 font-semibold",children:[e.jsx(Mt,{className:"w-3 h-3 mr-1"}),"Management"]}),(t==null?void 0:t.employeeId)&&e.jsxs(le,{variant:"outline",className:"border-white/30 text-white bg-white/10",children:["ID: ",t.employeeId]})]})]})})})]})})]}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[e.jsxs(te,{className:"shadow-lg hover:shadow-xl transition-shadow",children:[e.jsx(ue,{className:"pb-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-blue-100 rounded-lg",children:e.jsx(kt,{className:"h-5 w-5 text-blue-600"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-lg text-gray-900",children:"Personal Information"}),e.jsx(Te,{className:"text-gray-600",children:"Your personal details"})]})]})}),e.jsx(se,{className:"space-y-4",children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-start gap-3 p-3 rounded-lg hover:bg-gray-50 transition-colors",children:[e.jsx(Ta,{className:"w-5 h-5 text-gray-400 mt-0.5 shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Email"}),e.jsx("p",{className:"text-base text-gray-900 break-words",children:(t==null?void 0:t.email)||"Not provided"})]})]}),(t==null?void 0:t.firstName)&&e.jsxs("div",{className:"flex items-start gap-3 p-3 rounded-lg hover:bg-gray-50 transition-colors",children:[e.jsx(kt,{className:"w-5 h-5 text-gray-400 mt-0.5 shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium text-gray-500",children:"First Name"}),e.jsx("p",{className:"text-base text-gray-900",children:t.firstName})]})]}),(t==null?void 0:t.lastName)&&e.jsxs("div",{className:"flex items-start gap-3 p-3 rounded-lg hover:bg-gray-50 transition-colors",children:[e.jsx(kt,{className:"w-5 h-5 text-gray-400 mt-0.5 shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Last Name"}),e.jsx("p",{className:"text-base text-gray-900",children:t.lastName})]})]}),(t==null?void 0:t.displayName)&&e.jsxs("div",{className:"flex items-start gap-3 p-3 rounded-lg hover:bg-gray-50 transition-colors",children:[e.jsx(kt,{className:"w-5 h-5 text-gray-400 mt-0.5 shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Display Name"}),e.jsx("p",{className:"text-base text-gray-900",children:t.displayName})]})]}),(t==null?void 0:t.phone)&&e.jsxs("div",{className:"flex items-start gap-3 p-3 rounded-lg hover:bg-gray-50 transition-colors",children:[e.jsx(Ni,{className:"w-5 h-5 text-gray-400 mt-0.5 shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Phone"}),e.jsx("p",{className:"text-base text-gray-900",children:t.phone})]})]})]})})]}),e.jsxs(te,{className:"shadow-lg hover:shadow-xl transition-shadow",children:[e.jsx(ue,{className:"pb-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-emerald-100 rounded-lg",children:e.jsx(xd,{className:"h-5 w-5 text-emerald-600"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-lg text-gray-900",children:"Professional Information"}),e.jsx(Te,{className:"text-gray-600",children:"Work-related details"})]})]})}),e.jsx(se,{className:"space-y-4",children:e.jsxs("div",{className:"space-y-3",children:[(t==null?void 0:t.employeeId)&&e.jsxs("div",{className:"flex items-start gap-3 p-3 rounded-lg hover:bg-gray-50 transition-colors",children:[e.jsx(kt,{className:"w-5 h-5 text-gray-400 mt-0.5 shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Employee ID"}),e.jsx("p",{className:"text-base text-gray-900 font-medium",children:t.employeeId})]})]}),(t==null?void 0:t.department)&&e.jsxs("div",{className:"flex items-start gap-3 p-3 rounded-lg hover:bg-gray-50 transition-colors",children:[e.jsx(go,{className:"w-5 h-5 text-gray-400 mt-0.5 shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Department"}),e.jsx("p",{className:"text-base text-gray-900",children:t.department})]})]}),(t==null?void 0:t.designation)&&e.jsxs("div",{className:"flex items-start gap-3 p-3 rounded-lg hover:bg-gray-50 transition-colors",children:[e.jsx(xd,{className:"w-5 h-5 text-gray-400 mt-0.5 shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Designation"}),e.jsx("p",{className:"text-base text-gray-900",children:t.designation})]})]}),e.jsxs("div",{className:"flex items-start gap-3 p-3 rounded-lg hover:bg-gray-50 transition-colors",children:[e.jsx(ss,{className:"w-5 h-5 text-gray-400 mt-0.5 shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium text-gray-500",children:"Role"}),e.jsxs("div",{className:"flex items-center gap-2 mt-1",children:[e.jsx(le,{variant:rr(t)||sn(t)?"default":"secondary",className:rr(t)?"bg-yellow-400 text-slate-900":sn(t)?"bg-blue-400 text-slate-900":"",children:rr(t)?"Administrator":sn(t)?"Management":"User"}),(rr(t)||sn(t))&&e.jsx(Ce,{className:"w-4 h-4 text-green-600"})]})]})]})]})})]})]}),e.jsxs(te,{className:"shadow-lg hover:shadow-xl transition-shadow",children:[e.jsx(ue,{className:"pb-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-purple-100 rounded-lg",children:e.jsx(ut,{className:"h-5 w-5 text-purple-600"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-lg text-gray-900",children:"Account Status"}),e.jsx(Te,{className:"text-gray-600",children:"Account information and activity"})]})]})}),e.jsx(se,{children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between p-4 bg-green-50 rounded-lg border border-green-200",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-2 bg-green-500 rounded-full",children:e.jsx(Ce,{className:"w-4 h-4 text-white"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium text-gray-900",children:"Account Status"}),e.jsx("p",{className:"text-xs text-gray-600",children:"Active and verified"})]})]}),e.jsx(le,{className:"bg-green-500 hover:bg-green-600 text-white",children:"Active"})]}),(t==null?void 0:t.userId)&&e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"p-4 bg-gray-50 rounded-lg",children:[e.jsx("p",{className:"text-sm font-medium text-gray-500 mb-1",children:"User ID"}),e.jsx("p",{className:"text-sm text-gray-900 font-mono break-all",children:t.userId})]}),t.employeeId&&e.jsxs("div",{className:"p-4 bg-gray-50 rounded-lg",children:[e.jsx("p",{className:"text-sm font-medium text-gray-500 mb-1",children:"Employee ID"}),e.jsx("p",{className:"text-sm text-gray-900 font-mono",children:t.employeeId})]})]})]})})]})]})}const Kn="BBb78N3tSTEw6mPbBmvEDX2bhYEDKPc_zffL-vxPV8FBSmR1qSpy9gdV8zt-WFF-q2NPpVmL4BhbUzLSHVAPjcI",Ek="https://reflow-uat.royalenfield.com";function Rl(t){const s="=".repeat((4-t.length%4)%4),a=(t+s).replace(/-/g,"+").replace(/_/g,"/"),r=window.atob(a),n=new Uint8Array(r.length);for(let i=0;i<r.length;++i)n[i]=r.charCodeAt(i);return n}async function Mk(){if(!("serviceWorker"in navigator))throw new Error("Service workers are not supported in this browser");let t;try{await navigator.serviceWorker.getRegistration("/service-worker.js")?t=await navigator.serviceWorker.ready:(t=await navigator.serviceWorker.register("/service-worker.js"),t=await navigator.serviceWorker.ready)}catch(s){throw new Error(`Failed to register service worker: ${(s==null?void 0:s.message)||"Unknown error"}`)}return t}async function Fk(t){if(Kn.trim().length===0)throw new Error("VAPID public key is empty. Please configure VITE_PUBLIC_VAPID_KEY in your environment variables.");if(!t.pushManager)throw new Error("Push manager is not available. Please ensure your browser supports push notifications and the service worker is properly registered.");let s;try{const i=await t.pushManager.getSubscription();if(i)try{s=i}catch{console.warn("[Push] Existing subscription is invalid, creating new one..."),await i.unsubscribe().catch(()=>{}),s=await t.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:Rl(Kn)})}else try{s=await t.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:Rl(Kn)})}catch(l){console.warn("[Push] Initial subscription failed, attempting to clear and retry...");try{const o=await t.pushManager.getSubscription();o&&await o.unsubscribe().catch(()=>{}),s=await t.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:Rl(Kn)})}catch(o){const c=(l==null?void 0:l.message)||(o==null?void 0:o.message)||"Unknown error";throw c.includes("push service error")||c.includes("Registration failed")?new Error("Push service error: The browser's push service rejected the subscription. This may be due to an invalid VAPID key, network issues, or browser push service problems. Please verify your VAPID key configuration and try again."):new Error(`Failed to subscribe to push notifications: ${c}`)}}}catch(i){const l=(i==null?void 0:i.message)||"Unknown error";throw l.includes("push service error")||l.includes("Registration failed")?new Error("Push service error: The browser's push service rejected the subscription. Please verify your VAPID key is correct and matches the backend configuration. If the problem persists, try clearing your browser cache and service workers."):l.includes("Invalid key")?new Error("Invalid VAPID key format. Please verify that VITE_PUBLIC_VAPID_KEY is correctly set and matches the backend VAPID_PUBLIC_KEY."):new Error(`Failed to subscribe to push notifications: ${l}`)}const a=s.toJSON(),r=!0,n=null;try{const i={"Content-Type":"application/json"},l=await fetch(`${Ek}/api/v1/workflows/notifications/subscribe`,{method:"POST",headers:i,credentials:"include",body:JSON.stringify(a)});if(!l.ok){const c=await l.json().catch(()=>({error:"Unknown error"}));throw new Error((c==null?void 0:c.error)||(c==null?void 0:c.message)||`Server error: ${l.status}`)}const o=await l.json();if(!o.success)throw new Error(o.error||"Failed to save subscription")}catch(i){throw i instanceof Error&&i.message.includes("Failed")?i:new Error(`Failed to save subscription to server: ${(i==null?void 0:i.message)||"Network error"}`)}return s}async function _k(){if(!("Notification"in window))throw new Error("Notifications are not supported in this browser");let t=Notification.permission;if(t==="denied")throw new Error("Notification permission was denied. Please enable notifications in your browser settings and try again.");if(t==="default"&&(t=await Notification.requestPermission(),t!=="granted"))throw new Error("Notification permission was denied. Please enable notifications in your browser settings and try again.");if(t!=="granted")throw new Error("Notification permission is required. Please grant permission and try again.");let s;try{s=await Mk()}catch(a){throw new Error(`Service worker registration failed: ${(a==null?void 0:a.message)||"Unknown error"}`)}try{await Fk(s)}catch(a){throw a}}function co({className:t,defaultValue:s,value:a,min:r=0,max:n=100,...i}){const l=x.useMemo(()=>Array.isArray(a)?a:Array.isArray(s)?s:[r,n],[a,s,r,n]);return e.jsxs(Kg,{"data-slot":"slider",defaultValue:s,value:a,min:r,max:n,className:we("relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col",t),...i,children:[e.jsx(Yg,{"data-slot":"slider-track",className:we("bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-4 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"),children:e.jsx(Zg,{"data-slot":"slider-range",className:we("bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full")})}),Array.from({length:l.length},(o,c)=>e.jsx(Xg,{"data-slot":"slider-thumb",className:"border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50"},c))]})}function Lk({onConfigUpdate:t}){const[s,a]=x.useState([]),[r,n]=x.useState(!0),[i,l]=x.useState(null),[o,c]=x.useState(null),[d,m]=x.useState({}),[u,h]=x.useState(null);x.useEffect(()=>{g()},[]);const g=async()=>{var C,P;try{n(!0),c(null);const R=await Ui();a(R)}catch(R){c(((P=(C=R.response)==null?void 0:C.data)==null?void 0:P.error)||"Failed to load configurations")}finally{n(!1)}},p=async C=>{var P,R;try{l(C.configKey),c(null);const V=d[C.configKey]??C.configValue;if(C.validationRules){const I=parseFloat(V);if(C.valueType==="NUMBER"){if(C.validationRules.min!==void 0&&I<C.validationRules.min)throw new Error(`Value must be at least ${C.validationRules.min}`);if(C.validationRules.max!==void 0&&I>C.validationRules.max)throw new Error(`Value must be at most ${C.validationRules.max}`)}}await bs(C.configKey,V),a(I=>I.map($=>$.configKey===C.configKey?{...$,configValue:V}:$)),m(I=>{const $={...I};return delete $[C.configKey],$}),h(`${C.displayName} updated successfully`),setTimeout(()=>h(null),3e3),t&&t()}catch(V){c(V.message||((R=(P=V.response)==null?void 0:P.data)==null?void 0:R.error)||"Failed to save configuration")}finally{l(null)}},y=async C=>{var P,R;if(confirm(`Reset "${C.displayName}" to default value?`))try{l(C.configKey),c(null),await X1(C.configKey),a(V=>V.map(I=>I.configKey===C.configKey?{...I,configValue:I.defaultValue||""}:I)),m(V=>{const I={...V};return delete I[C.configKey],I}),h(`${C.displayName} reset to default`),setTimeout(()=>h(null),3e3)}catch(V){c(((R=(P=V.response)==null?void 0:P.data)==null?void 0:R.error)||"Failed to reset configuration")}finally{l(null)}},f=(C,P)=>{m(R=>({...R,[C]:P}))},b=C=>d[C.configKey]??C.configValue,v=C=>d[C.configKey]!==void 0&&d[C.configKey]!==C.configValue,w=C=>{var V,I,$,_;const P=b(C),R=i===C.configKey;if(!C.isEditable)return e.jsxs("div",{className:"p-3 bg-slate-100 border border-slate-200 rounded-md",children:[e.jsx("p",{className:"text-sm text-slate-700 font-mono",children:C.configValue}),e.jsxs("p",{className:"text-xs text-slate-500 mt-1.5 flex items-center gap-1",children:[e.jsx(Ge,{className:"w-3 h-3"}),"This setting cannot be modified"]})]});switch(C.uiComponent||C.valueType.toLowerCase()){case"toggle":return e.jsxs("div",{className:"flex items-center justify-between p-3 bg-slate-50 border border-slate-200 rounded-md hover:bg-slate-100 transition-colors",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:`w-2 h-2 rounded-full ${P==="true"?"bg-green-500":"bg-slate-400"}`}),e.jsx("span",{className:`text-sm font-medium ${P==="true"?"text-green-700":"text-slate-600"}`,children:P==="true"?"Enabled":"Disabled"})]}),e.jsx(ws,{checked:P==="true",onCheckedChange:z=>f(C.configKey,z?"true":"false"),disabled:R})]});case"slider":const N=parseInt(P)||0,j=((V=C.validationRules)==null?void 0:V.min)||0,U=((I=C.validationRules)==null?void 0:I.max)||100;return e.jsxs("div",{className:"space-y-3 p-3 bg-slate-50 border border-slate-200 rounded-md",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("span",{className:"text-lg font-semibold text-slate-900",children:[N,"%"]}),e.jsxs("span",{className:"text-xs text-slate-500 bg-slate-100 px-2 py-1 rounded-sm border border-slate-200",children:["Range: ",j,"-",U]})]}),e.jsx(co,{value:[N],min:j,max:U,step:1,onValueChange:([z])=>{z!==void 0&&f(C.configKey,z.toString())},disabled:R,className:"w-full"})]});case"number":return e.jsx(Se,{type:"number",value:P,onChange:z=>f(C.configKey,z.target.value),disabled:R,min:($=C.validationRules)==null?void 0:$.min,max:(_=C.validationRules)==null?void 0:_.max,className:"font-mono border-slate-300 focus:border-blue-500 focus:ring-2 focus:ring-blue-500/20 rounded-md transition-all shadow-sm"});case"text":case"input":default:return e.jsx(Se,{type:"text",value:P,onChange:z=>f(C.configKey,z.target.value),disabled:R,className:"font-mono border-slate-300 focus:border-blue-500 focus:ring-2 focus:ring-blue-500/20 rounded-md transition-all shadow-sm"})}},A=C=>{switch(C){case"TAT_SETTINGS":return e.jsx(Ye,{className:"w-5 h-5"});case"DOCUMENT_POLICY":return e.jsx(_e,{className:"w-5 h-5"});case"NOTIFICATION_RULES":return e.jsx(js,{className:"w-5 h-5"});case"AI_CONFIGURATION":return e.jsx(wi,{className:"w-5 h-5"});case"WORKFLOW_SHARING":return e.jsx(Mr,{className:"w-5 h-5"});default:return e.jsx($a,{className:"w-5 h-5"})}},S=["DASHBOARD_LAYOUT"],k=["ALLOW_EXTERNAL_SHARING","NOTIFICATION_BATCH_DELAY_MS","AI_REMARK_MAX_CHARACTERS"],F=s.filter(C=>!S.includes(C.configCategory)&&!k.includes(C.configKey)),T=F.reduce((C,P)=>(C[P.configCategory]||(C[P.configCategory]=[]),C[P.configCategory].push(P),C),{});if(Object.keys(T).forEach(C=>{const P=T[C];P&&P.sort((R,V)=>R.sortOrder-V.sortOrder)}),r)return e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx(Je,{className:"w-8 h-8 animate-spin text-gray-400"})});if(F.length===0)return e.jsx(te,{className:"shadow-lg border-0 rounded-md",children:e.jsxs(se,{className:"p-12 text-center",children:[e.jsx("div",{className:"p-4 bg-slate-100 rounded-full w-20 h-20 flex items-center justify-center mx-auto mb-4",children:e.jsx($a,{className:"w-10 h-10 text-slate-400"})}),e.jsx("p",{className:"text-slate-700 font-medium text-lg",children:"No configurations found"}),e.jsx("p",{className:"text-sm text-slate-500 mt-2 max-w-md mx-auto",children:"System configurations will appear here once they are initialized"})]})});const D=Object.keys(T);return e.jsxs("div",{className:"space-y-6",children:[u&&e.jsxs("div",{className:"p-4 bg-gradient-to-r from-green-50 to-emerald-50 border border-green-300 rounded-md shadow-sm flex items-center gap-3 animate-in fade-in slide-in-from-top-2 duration-300",children:[e.jsx("div",{className:"p-1.5 bg-green-500 rounded-md",children:e.jsx(Ce,{className:"w-4 h-4 text-white shrink-0"})}),e.jsx("p",{className:"text-sm font-medium text-green-900",children:u})]}),o&&e.jsxs("div",{className:"p-4 bg-gradient-to-r from-red-50 to-rose-50 border border-red-300 rounded-md shadow-sm flex items-center gap-3 animate-in fade-in slide-in-from-top-2 duration-300",children:[e.jsx("div",{className:"p-1.5 bg-red-500 rounded-md",children:e.jsx(Ge,{className:"w-4 h-4 text-white shrink-0"})}),e.jsx("p",{className:"text-sm font-medium text-red-900",children:o}),e.jsx(M,{size:"sm",variant:"ghost",onClick:()=>c(null),className:"ml-auto hover:bg-red-100",children:"Dismiss"})]}),e.jsxs(Vr,{defaultValue:D[0],className:"w-full",children:[e.jsx(zr,{className:"flex flex-wrap w-full bg-slate-100/80 backdrop-blur-sm p-1 gap-1 rounded-md h-auto border border-slate-200 shadow-sm",children:D.map(C=>e.jsx(vt,{value:C,className:"flex-1 min-w-[120px] text-[10px] xs:text-xs sm:text-sm font-medium py-2 sm:py-2.5 px-2 sm:px-3 rounded-sm data-[state=active]:bg-white data-[state=active]:shadow-sm data-[state=active]:text-slate-900 transition-all",children:e.jsx("span",{className:"truncate block",children:C.replace(/_/g," ")})},C))}),D.map(C=>{var P,R,V;return e.jsx(bt,{value:C,className:"space-y-4 mt-6",children:e.jsxs(te,{className:"shadow-lg border-0 rounded-md",children:[e.jsx(ue,{className:"pb-4 border-b border-slate-100",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-2.5 bg-gradient-to-br from-slate-600 to-slate-700 rounded-md shadow-md",children:e.jsx("div",{className:"text-white",children:A(C)})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-lg font-semibold text-slate-900",children:C.replace(/_/g," ")}),e.jsxs(Te,{className:"text-sm",children:[((P=T[C])==null?void 0:P.length)||0," setting",(((R=T[C])==null?void 0:R.length)||0)!==1?"s":""," available"]})]})]})}),e.jsx(se,{className:"space-y-6",children:(V=T[C])==null?void 0:V.map(I=>e.jsxs("div",{className:"space-y-3 pb-6 border-b border-slate-100 last:border-b-0 last:pb-0 hover:bg-slate-50/50 -mx-6 px-6 py-4 rounded-md transition-colors",children:[e.jsx("div",{className:"flex items-start justify-between gap-4",children:e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1.5 flex-wrap",children:[e.jsx(re,{className:"text-sm font-semibold text-slate-900",children:I.displayName}),v(I)&&e.jsx(le,{variant:"outline",className:"text-xs bg-gradient-to-r from-yellow-50 to-amber-50 text-yellow-800 border-yellow-400 font-medium shadow-sm",children:"Modified"}),I.requiresRestart&&e.jsx(le,{variant:"outline",className:"text-xs bg-gradient-to-r from-orange-50 to-red-50 text-orange-800 border-orange-400 font-medium shadow-sm",children:"Requires Restart"})]}),I.description&&e.jsx("p",{className:"text-xs text-slate-600 mt-1 leading-relaxed",children:I.description}),I.defaultValue&&e.jsxs("p",{className:"text-xs text-slate-500 mt-2",children:["Default: ",e.jsx("code",{className:"px-2 py-0.5 bg-slate-100 text-slate-700 rounded-sm font-mono text-xs border border-slate-200",children:I.defaultValue})]})]})}),w(I),I.isEditable&&e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[e.jsx(M,{size:"sm",onClick:()=>p(I),disabled:!v(I)||i===I.configKey,className:"gap-2 bg-re-green hover:bg-re-green/90 text-white shadow-sm disabled:opacity-50 disabled:cursor-not-allowed",children:i===I.configKey?e.jsxs(e.Fragment,{children:[e.jsx(Je,{className:"w-4 h-4 animate-spin"}),"Saving..."]}):e.jsxs(e.Fragment,{children:[e.jsx(Wa,{className:"w-4 h-4"}),"Save Changes"]})}),I.defaultValue&&e.jsxs(M,{size:"sm",variant:"outline",onClick:()=>y(I),disabled:i===I.configKey,className:"gap-2 border-slate-300 hover:bg-slate-50 hover:border-slate-400 shadow-sm",children:[e.jsx(Gf,{className:"w-4 h-4"}),"Reset to Default"]})]})]},I.configKey))})]})},C)})]})]})}function Ok(){const[t,s]=x.useState([]),[a,r]=x.useState(!0),[n,i]=x.useState(new Date().getFullYear()),[l,o]=x.useState(!1),[c,d]=x.useState(null),[m,u]=x.useState(null),[h,g]=x.useState(null),[p,y]=x.useState({holidayDate:"",holidayName:"",description:"",holidayType:"ORGANIZATIONAL",isRecurring:!1});x.useEffect(()=>{f()},[n]);const f=async()=>{var C,P;try{r(!0),u(null);const R=await Q1(n);s(R)}catch(R){u(((P=(C=R.response)==null?void 0:C.data)==null?void 0:P.error)||"Failed to load holidays")}finally{r(!1)}},b=()=>{y({holidayDate:"",holidayName:"",description:"",holidayType:"ORGANIZATIONAL",isRecurring:!1}),d(null),o(!0)},v=C=>{y({holidayDate:C.holidayDate,holidayName:C.holidayName,description:C.description||"",holidayType:C.holidayType,isRecurring:C.isRecurring}),d(C),o(!0)},w=()=>{if(c)return;const C=new Date;return C.setDate(C.getDate()+1),C.toISOString().split("T")[0]},A=async()=>{var C,P;try{if(u(null),!p.holidayDate||!p.holidayName){u("Holiday date and name are required");return}c?(await q1(c.holidayId,p),g("Holiday updated successfully")):(await J1(p),g("Holiday created successfully")),await f(),o(!1),setTimeout(()=>g(null),3e3)}catch(R){u(((P=(C=R.response)==null?void 0:C.data)==null?void 0:P.error)||"Failed to save holiday")}},S=async C=>{var P,R;if(confirm(`Delete "${C.holidayName}"?`))try{u(null),await eC(C.holidayId),g("Holiday deleted successfully"),await f(),setTimeout(()=>g(null),3e3)}catch(V){u(((R=(P=V.response)==null?void 0:P.data)==null?void 0:R.error)||"Failed to delete holiday")}},k=C=>{switch(C){case"NATIONAL":return"bg-gradient-to-r from-red-50 to-rose-50 text-red-800 border-red-300";case"REGIONAL":return"bg-gradient-to-r from-blue-50 to-cyan-50 text-blue-800 border-blue-300";case"ORGANIZATIONAL":return"bg-gradient-to-r from-purple-50 to-violet-50 text-purple-800 border-purple-300";case"OPTIONAL":return"bg-gradient-to-r from-slate-50 to-gray-50 text-slate-700 border-slate-300"}},F=Array.from({length:5},(C,P)=>new Date().getFullYear()-1+P),T=t.reduce((C,P)=>{const R=new Date(P.holidayDate).toLocaleString("default",{month:"long"});return C[R]||(C[R]=[]),C[R].push(P),C},{}),D=Object.keys(T).sort((C,P)=>{const R=new Date(Date.parse(C+" 1, 2000")).getMonth(),V=new Date(Date.parse(P+" 1, 2000")).getMonth();return R-V});return e.jsxs("div",{className:"space-y-6",children:[h&&e.jsxs("div",{className:"p-4 bg-gradient-to-r from-green-50 to-emerald-50 border border-green-300 rounded-md shadow-sm flex items-center gap-3 animate-in fade-in slide-in-from-top-2 duration-300",children:[e.jsx("div",{className:"p-1.5 bg-green-500 rounded-md",children:e.jsx(Ce,{className:"w-4 h-4 text-white shrink-0"})}),e.jsx("p",{className:"text-sm font-medium text-green-900",children:h})]}),m&&e.jsxs("div",{className:"p-4 bg-gradient-to-r from-red-50 to-rose-50 border border-red-300 rounded-md shadow-sm flex items-center gap-3 animate-in fade-in slide-in-from-top-2 duration-300",children:[e.jsx("div",{className:"p-1.5 bg-red-500 rounded-md",children:e.jsx(Ge,{className:"w-4 h-4 text-white shrink-0"})}),e.jsx("p",{className:"text-sm font-medium text-red-900",children:m}),e.jsx(M,{size:"sm",variant:"ghost",onClick:()=>u(null),className:"ml-auto hover:bg-red-100",children:"Dismiss"})]}),e.jsx(te,{className:"shadow-lg border-0 rounded-md",children:e.jsx(ue,{className:"border-b border-slate-100 py-4 sm:py-5",children:e.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 sm:gap-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-2.5 bg-gradient-to-br from-slate-600 to-slate-700 rounded-md shadow-md",children:e.jsx(ut,{className:"w-5 h-5 text-white"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-lg sm:text-xl font-semibold text-slate-900",children:"Holiday Calendar"}),e.jsx(Te,{className:"text-sm",children:"Manage organization holidays for TAT calculations"})]})]}),e.jsxs("div",{className:"flex items-center gap-2 sm:gap-3 w-full sm:w-auto",children:[e.jsxs(Be,{value:n.toString(),onValueChange:C=>i(parseInt(C)),children:[e.jsx(ze,{className:"w-24 sm:w-32 border-slate-300 focus:border-blue-500 focus:ring-2 focus:ring-blue-500/20 rounded-md transition-all shadow-sm",children:e.jsx(Ve,{})}),e.jsx(He,{className:"rounded-md",children:F.map(C=>e.jsx(K,{value:C.toString(),children:C},C))})]}),e.jsxs(M,{onClick:b,className:"gap-2 bg-re-green hover:bg-re-green/90 text-white shadow-sm flex-1 sm:flex-initial",children:[e.jsx(Us,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden xs:inline",children:"Add Holiday"}),e.jsx("span",{className:"xs:hidden",children:"Add"})]})]})]})})}),a?e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx(Je,{className:"w-8 h-8 animate-spin text-gray-400"})}):t.length===0?e.jsx(te,{className:"shadow-lg border-0 rounded-md",children:e.jsxs(se,{className:"p-12 text-center",children:[e.jsx("div",{className:"p-4 bg-slate-100 rounded-full w-20 h-20 flex items-center justify-center mx-auto mb-4",children:e.jsx(ut,{className:"w-10 h-10 text-slate-400"})}),e.jsxs("p",{className:"text-slate-700 font-medium text-lg",children:["No holidays found for ",n]}),e.jsx("p",{className:"text-sm text-slate-500 mt-2 mb-6",children:"Add holidays to exclude them from TAT calculations"}),e.jsxs(M,{onClick:b,variant:"outline",className:"gap-2 border-slate-300 hover:bg-slate-50 hover:border-slate-400 shadow-sm",children:[e.jsx(Us,{className:"w-4 h-4"}),"Add First Holiday"]})]})}):e.jsx("div",{className:"space-y-4 sm:space-y-6",children:D.map(C=>{var P,R,V;return e.jsxs(te,{className:"shadow-lg border-0 rounded-md",children:[e.jsx(ue,{className:"pb-3 sm:pb-4 border-b border-slate-100",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsxs(he,{className:"text-base sm:text-lg font-semibold text-slate-900",children:[C," ",n]}),e.jsxs(Te,{className:"text-xs sm:text-sm",children:[((P=T[C])==null?void 0:P.length)||0," holiday",(((R=T[C])==null?void 0:R.length)||0)!==1?"s":""]})]}),e.jsx("div",{className:"p-2 bg-blue-50 rounded-md",children:e.jsx(ut,{className:"w-4 h-4 text-blue-600"})})]})}),e.jsx(se,{className:"space-y-3 pt-4",children:(V=T[C])==null?void 0:V.map(I=>e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-3 sm:gap-4 p-3 sm:p-4 bg-slate-50 border border-slate-200 rounded-md hover:bg-slate-100 hover:border-slate-300 transition-all shadow-sm",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2 flex-wrap",children:[e.jsx("p",{className:"font-semibold text-slate-900 text-sm sm:text-base truncate",children:I.holidayName}),e.jsx(le,{variant:"outline",className:`${k(I.holidayType)} text-[10px] sm:text-xs font-medium shadow-sm`,children:I.holidayType}),I.isRecurring&&e.jsx(le,{variant:"outline",className:"bg-gradient-to-r from-indigo-50 to-purple-50 text-indigo-700 border-indigo-300 text-[10px] sm:text-xs font-medium shadow-sm",children:"Recurring"})]}),e.jsx("p",{className:"text-xs sm:text-sm text-slate-600 font-medium",children:hh(I.holidayDate)}),I.description&&e.jsx("p",{className:"text-xs text-slate-500 mt-1.5 line-clamp-2",children:I.description})]}),e.jsxs("div",{className:"flex items-center gap-2 sm:gap-2 self-end sm:self-auto",children:[e.jsxs(M,{size:"sm",variant:"ghost",onClick:()=>v(I),className:"gap-1.5 hover:bg-blue-50 border border-transparent hover:border-blue-200 text-xs sm:text-sm",children:[e.jsx(Eu,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"}),e.jsx("span",{className:"hidden xs:inline",children:"Edit"})]}),e.jsxs(M,{size:"sm",variant:"ghost",onClick:()=>S(I),className:"gap-1.5 text-red-600 hover:text-red-700 hover:bg-red-50 border border-transparent hover:border-red-200 text-xs sm:text-sm",children:[e.jsx(jo,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4"}),e.jsx("span",{className:"hidden xs:inline",children:"Delete"})]})]})]},I.holidayId))})]},C)})}),e.jsx(ct,{open:l,onOpenChange:o,children:e.jsxs(lt,{className:"sm:max-w-[550px] max-h-[90vh] rounded-lg flex flex-col p-0",children:[e.jsx(dt,{className:"pb-4 border-b border-slate-100 px-6 pt-6 flex-shrink-0",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-2.5 bg-gradient-to-br from-slate-600 to-slate-700 rounded-lg shadow-md",children:e.jsx(ut,{className:"w-5 h-5 text-white"})}),e.jsxs("div",{className:"flex-1",children:[e.jsx(ot,{className:"text-xl font-semibold text-slate-900",children:c?"Edit Holiday":"Add New Holiday"}),e.jsx(Lt,{className:"text-sm text-slate-600 mt-1",children:c?"Update holiday information":"Add a new holiday to the calendar for TAT calculations"})]})]})}),e.jsxs("div",{className:"space-y-5 py-6 px-6 overflow-y-auto flex-1 min-h-0",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs(re,{htmlFor:"date",className:"text-sm font-semibold text-slate-900 flex items-center gap-1",children:["Date ",e.jsx("span",{className:"text-red-500",children:"*"})]}),e.jsx(Se,{id:"date",type:"date",value:p.holidayDate,onChange:C=>y({...p,holidayDate:C.target.value}),min:w(),className:"h-11 border-slate-300 focus:border-re-green focus:ring-2 focus:ring-re-green/20 rounded-lg transition-all shadow-sm"}),e.jsx("p",{className:"text-xs text-slate-500",children:c?"Select the holiday date":"Select the holiday date (minimum: tomorrow)"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(re,{htmlFor:"name",className:"text-sm font-semibold text-slate-900 flex items-center gap-1",children:["Holiday Name ",e.jsx("span",{className:"text-red-500",children:"*"})]}),e.jsx(Se,{id:"name",placeholder:"e.g., Diwali, Republic Day, Christmas",value:p.holidayName,onChange:C=>y({...p,holidayName:C.target.value}),className:"h-11 border-slate-300 focus:border-re-green focus:ring-2 focus:ring-re-green/20 rounded-lg transition-all shadow-sm"}),e.jsx("p",{className:"text-xs text-slate-500",children:"Enter the official name of the holiday"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(re,{htmlFor:"description",className:"text-sm font-semibold text-slate-900",children:["Description ",e.jsx("span",{className:"text-slate-400 font-normal text-xs",children:"(Optional)"})]}),e.jsx(Se,{id:"description",placeholder:"Add additional details about this holiday...",value:p.description,onChange:C=>y({...p,description:C.target.value}),className:"h-11 border-slate-300 focus:border-re-green focus:ring-2 focus:ring-re-green/20 rounded-lg transition-all shadow-sm"}),e.jsx("p",{className:"text-xs text-slate-500",children:"Optional description or notes about the holiday"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"type",className:"text-sm font-semibold text-slate-900",children:"Holiday Type"}),e.jsxs(Be,{value:p.holidayType,onValueChange:C=>y({...p,holidayType:C}),children:[e.jsx(ze,{id:"type",className:"h-11 border-slate-300 focus:border-re-green focus:ring-2 focus:ring-re-green/20 rounded-lg transition-all shadow-sm",children:e.jsx(Ve,{})}),e.jsxs(He,{className:"rounded-lg",children:[e.jsx(K,{value:"NATIONAL",className:"p-3",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-red-500"}),e.jsx("span",{children:"National"})]})}),e.jsx(K,{value:"REGIONAL",className:"p-3",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-500"}),e.jsx("span",{children:"Regional"})]})}),e.jsx(K,{value:"ORGANIZATIONAL",className:"p-3",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-purple-500"}),e.jsx("span",{children:"Organizational"})]})}),e.jsx(K,{value:"OPTIONAL",className:"p-3",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-slate-500"}),e.jsx("span",{children:"Optional"})]})})]})]}),e.jsx("p",{className:"text-xs text-slate-500",children:"Select the category of this holiday"})]}),e.jsxs("div",{className:"flex items-start gap-3 p-4 bg-gradient-to-br from-slate-50 to-slate-100/50 border-2 border-slate-200 rounded-lg hover:border-slate-300 hover:bg-slate-100 transition-all cursor-pointer group",onClick:()=>y({...p,isRecurring:!p.isRecurring}),children:[e.jsx("input",{type:"checkbox",id:"recurring",checked:p.isRecurring,onChange:C=>y({...p,isRecurring:C.target.checked}),className:"mt-0.5 rounded border-slate-300 text-re-green focus:ring-2 focus:ring-re-green/20 focus:ring-offset-0 w-4 h-4 cursor-pointer"}),e.jsxs("div",{className:"flex-1",children:[e.jsx(re,{htmlFor:"recurring",className:"font-semibold cursor-pointer text-sm text-slate-900 block mb-1",children:"Recurring Holiday"}),e.jsx("p",{className:"text-xs text-slate-600",children:"This holiday will automatically repeat every year on the same date"})]})]})]}),e.jsxs(Ct,{className:"gap-3 pt-4 border-t border-slate-100 px-6 pb-6 flex-shrink-0",children:[e.jsx(M,{variant:"outline",onClick:()=>o(!1),className:"h-11 border-slate-300 hover:bg-slate-50 hover:border-slate-400 shadow-sm",children:"Cancel"}),e.jsxs(M,{onClick:A,disabled:!p.holidayDate||!p.holidayName,className:"h-11 bg-re-green hover:bg-re-green/90 text-white shadow-md hover:shadow-lg transition-all disabled:opacity-50 disabled:cursor-not-allowed",children:[e.jsx(ut,{className:"w-4 h-4 mr-2"}),c?"Update Holiday":"Add Holiday"]})]})]})})]})}function $k(t,s){let a=null;return function(...n){const i=()=>{a=null,t(...n)};a&&clearTimeout(a),a=setTimeout(i,s)}}function Uk(){const[t,s]=x.useState(""),[a,r]=x.useState([]),[n,i]=x.useState(!1),[l,o]=x.useState(null),[c,d]=x.useState("USER"),[m,u]=x.useState(!1),[h,g]=x.useState(null),[p,y]=x.useState([]),[f,b]=x.useState(!1),[v,w]=x.useState({admins:0,management:0,users:0}),[A,S]=x.useState("ELEVATED"),[k,F]=x.useState(1),[T,D]=x.useState(1),[C,P]=x.useState(0),R=10,V=x.useRef(null),I=x.useRef(null),$=x.useCallback($k(async E=>{var O,L,W;if(!E||!E.startsWith("@")||E.length<2){r([]),i(!1);return}i(!0);try{const G=E.slice(1),ce=((O=(await Ls.searchUsers(G,20)).data)==null?void 0:O.data)||[];r(ce)}catch(G){console.error("Search failed:",G),g({type:"error",text:((W=(L=G.response)==null?void 0:L.data)==null?void 0:W.message)||"Failed to search users"})}finally{i(!1)}},300),[]),_=E=>{const O=E.target.value;s(O),$(O)},N=async E=>{o(E),s(E.email),r([]);const O=p.find(L=>L.email.toLowerCase()===E.email.toLowerCase()||L.userId===E.userId);if(O&&O.role)d(O.role);else try{const W=(await Ls.getAllUsers()).find(G=>G.email&&G.email.toLowerCase()===E.email.toLowerCase()||G.userId&&G.userId===E.userId);W&&W.role?d(W.role):d("USER")}catch(L){console.error("Failed to check user role:",L),d("USER")}},j=async()=>{var E,O;if(!l||!c){g({type:"error",text:"Please select a user and role"});return}u(!0),g(null);try{await Ls.assignRole(l.email,c),g({type:"success",text:`Successfully assigned ${c} role to ${l.displayName||l.email}`}),o(null),s(""),d("USER"),await U(),await z()}catch(L){console.error("Role assignment failed:",L),g({type:"error",text:((O=(E=L.response)==null?void 0:E.data)==null?void 0:O.error)||"Failed to assign role"})}finally{u(!1)}},U=async(E=k)=>{var O,L,W,G,ee,ce;b(!0);try{const Pe=await Ls.getUsersByRole(A,E,R),Oe=((L=(O=Pe.data)==null?void 0:O.data)==null?void 0:L.users)||[],ie=(G=(W=Pe.data)==null?void 0:W.data)==null?void 0:G.pagination,de=(ce=(ee=Pe.data)==null?void 0:ee.data)==null?void 0:ce.summary;y(Oe),ie&&(F(ie.currentPage),D(ie.totalPages),P(ie.totalUsers)),de&&w({admins:de.ADMIN||0,management:de.MANAGEMENT||0,users:de.USER||0})}catch(Pe){console.error("Failed to fetch users:",Pe)}finally{b(!1)}},z=async()=>{var E,O,L,W,G,ee;try{const ce=await Ls.getRoleStatistics(),Pe=((O=(E=ce.data)==null?void 0:E.data)==null?void 0:O.statistics)||((L=ce.data)==null?void 0:L.statistics)||[];w({admins:parseInt(((W=Pe.find(Oe=>Oe.role==="ADMIN"))==null?void 0:W.count)||"0"),management:parseInt(((G=Pe.find(Oe=>Oe.role==="MANAGEMENT"))==null?void 0:G.count)||"0"),users:parseInt(((ee=Pe.find(Oe=>Oe.role==="USER"))==null?void 0:ee.count)||"0")})}catch(ce){console.error("Failed to fetch statistics:",ce)}};x.useEffect(()=>{U(1),z()},[A]);const B=E=>{S(E),F(1)},X=E=>{U(E)},H=E=>{S(E),F(1),requestAnimationFrame(()=>{const O=I.current;O&&O.scrollIntoView({behavior:"smooth",block:"start"})})};x.useEffect(()=>{const E=O=>{V.current&&!V.current.contains(O.target)&&r([])};return a.length>0&&document.addEventListener("mousedown",E),()=>{document.removeEventListener("mousedown",E)}},[a]);const oe=E=>{switch(E){case"ADMIN":return"bg-yellow-400 text-slate-800";case"MANAGEMENT":return"bg-blue-400 text-slate-800";default:return"bg-gray-400 text-slate-800"}},Y=E=>{switch(E){case"ADMIN":return e.jsx(br,{className:"w-5 h-5 text-slate-800"});case"MANAGEMENT":return e.jsx(Mt,{className:"w-5 h-5 text-slate-800"});default:return e.jsx(kt,{className:"w-5 h-5 text-slate-800"})}};return e.jsxs(te,{className:"shadow-lg border-0 rounded-md",children:[e.jsx(ue,{className:"pb-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-gradient-to-br from-slate-600 to-slate-700 rounded-md shadow-md",children:e.jsx(Kf,{className:"h-5 w-5 text-white"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-lg font-semibold text-gray-900",children:"User Role Management"}),e.jsx(Te,{className:"text-sm text-gray-600",children:"Search for users, assign roles, and manage user permissions across the system"})]})]})}),e.jsxs(se,{className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4 sm:gap-6",children:[e.jsx(te,{className:`border-2 bg-gradient-to-br from-yellow-50 to-yellow-100/50 hover:shadow-lg transition-all rounded-xl cursor-pointer ${A==="ADMIN"?"border-yellow-400 shadow-lg":"border-transparent shadow-md"}`,"data-testid":"admin-count-card",onClick:()=>H("ADMIN"),children:e.jsx(se,{className:"p-6",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-semibold text-gray-600 uppercase tracking-wide",children:"Administrators"}),e.jsx("p",{className:"text-3xl font-bold text-gray-900 mt-2","data-testid":"admin-count",children:v.admins}),e.jsx("p",{className:"text-xs text-yellow-700 mt-1 font-semibold",children:A==="ADMIN"?"✓ Viewing":"Click to view"})]}),e.jsx("div",{className:"p-3 bg-gradient-to-br from-yellow-400 to-yellow-500 rounded-xl shadow-md",children:e.jsx(br,{className:"w-6 h-6 text-slate-800"})})]})})}),e.jsx(te,{className:`border-2 bg-gradient-to-br from-blue-50 to-blue-100/50 hover:shadow-lg transition-all rounded-xl cursor-pointer ${A==="MANAGEMENT"?"border-blue-400 shadow-lg":"border-transparent shadow-md"}`,"data-testid":"management-count-card",onClick:()=>H("MANAGEMENT"),children:e.jsx(se,{className:"p-6",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-semibold text-gray-600 uppercase tracking-wide",children:"Management"}),e.jsx("p",{className:"text-3xl font-bold text-gray-900 mt-2","data-testid":"management-count",children:v.management}),e.jsx("p",{className:"text-xs text-blue-700 mt-1 font-semibold",children:A==="MANAGEMENT"?"✓ Viewing":"Click to view"})]}),e.jsx("div",{className:"p-3 bg-gradient-to-br from-blue-400 to-blue-500 rounded-xl shadow-md",children:e.jsx(Mt,{className:"w-6 h-6 text-slate-800"})})]})})}),e.jsx(te,{className:`border-2 bg-gradient-to-br from-gray-50 to-gray-100/50 hover:shadow-lg transition-all rounded-xl cursor-pointer ${A==="USER"?"border-gray-400 shadow-lg":"border-transparent shadow-md"}`,"data-testid":"user-count-card",onClick:()=>H("USER"),children:e.jsx(se,{className:"p-6",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-semibold text-gray-600 uppercase tracking-wide",children:"Regular Users"}),e.jsx("p",{className:"text-3xl font-bold text-gray-900 mt-2","data-testid":"user-count",children:v.users}),e.jsx("p",{className:"text-xs text-gray-700 mt-1 font-semibold",children:A==="USER"?"✓ Viewing":"Click to view"})]}),e.jsx("div",{className:"p-3 bg-gradient-to-br from-gray-400 to-gray-500 rounded-xl shadow-md",children:e.jsx(kt,{className:"w-6 h-6 text-slate-800"})})]})})})]}),e.jsx(Vt,{}),e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-base font-semibold text-gray-900 mb-1",children:"Assign User Role"}),e.jsx("p",{className:"text-sm text-gray-600",children:"Search for a user in Okta and assign them a role"})]}),e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"space-y-2",ref:V,children:[e.jsx("label",{className:"text-sm font-medium text-gray-700",children:"Search User"}),e.jsxs("div",{className:"relative",children:[e.jsx(vs,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 w-4 h-4 text-gray-400 pointer-events-none"}),e.jsx(Se,{type:"text",placeholder:"Type @ to search users...",value:t,onChange:_,className:"pl-10 pr-10 border-gray-200 focus:border-re-green focus:ring-2 focus:ring-re-green/20","data-testid":"user-search-input"}),n&&e.jsx(Je,{className:"absolute right-3 top-1/2 transform -translate-y-1/2 w-4 h-4 text-re-green animate-spin"})]}),e.jsx("p",{className:"text-xs text-gray-500",children:"Start with @ to search users (e.g., @john)"}),a.length>0&&e.jsxs("div",{className:"border border-purple-200 rounded-lg shadow-lg bg-white max-h-60 overflow-y-auto",children:[e.jsx("div",{className:"sticky top-0 bg-purple-50 px-4 py-2 border-b border-purple-100",children:e.jsxs("p",{className:"text-xs font-semibold text-purple-700",children:[a.length," user",a.length>1?"s":""," found"]})}),e.jsx("div",{className:"p-2",children:a.map(E=>e.jsxs("button",{onClick:()=>N(E),className:"w-full text-left p-2 hover:bg-purple-50 rounded-lg transition-colors mb-1 last:mb-0","data-testid":`user-result-${E.email}`,children:[e.jsx("p",{className:"text-sm font-medium text-gray-900",children:E.displayName||E.email}),e.jsx("p",{className:"text-xs text-gray-600",children:E.email}),E.department&&e.jsxs("p",{className:"text-xs text-gray-500",children:[E.department,E.designation?` • ${E.designation}`:""]})]},E.userId))})]})]}),l&&e.jsx("div",{className:"border-2 border-slate-300 bg-gradient-to-br from-slate-100 to-slate-50 rounded-lg p-4 shadow-sm",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-lg bg-gradient-to-br from-slate-700 to-slate-500 flex items-center justify-center text-white font-bold shadow-md",children:(l.displayName||l.email).charAt(0).toUpperCase()}),e.jsxs("div",{children:[e.jsx("p",{className:"font-semibold text-slate-900",children:l.displayName||l.email}),e.jsx("p",{className:"text-sm text-slate-600",children:l.email}),l.department&&e.jsxs("p",{className:"text-xs text-slate-500 mt-1",children:[l.department,l.designation?` • ${l.designation}`:""]})]})]}),e.jsx(M,{variant:"ghost",size:"sm",onClick:()=>{o(null),s("")},className:"hover:bg-slate-200",children:"Clear"})]})}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"text-sm font-medium text-gray-700",children:"Select Role"}),e.jsxs(Be,{value:c,onValueChange:E=>d(E),children:[e.jsx(ze,{className:"border-gray-200 focus:border-re-green focus:ring-2 focus:ring-re-green/20","data-testid":"role-select",children:e.jsx(Ve,{placeholder:"Select role"})}),e.jsxs(He,{children:[e.jsx(K,{value:"USER",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(kt,{className:"w-4 h-4 text-gray-600"}),e.jsx("span",{children:"User - Regular access"})]})}),e.jsx(K,{value:"MANAGEMENT",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Mt,{className:"w-4 h-4 text-blue-600"}),e.jsx("span",{children:"Management - Read all data"})]})}),e.jsx(K,{value:"ADMIN",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(br,{className:"w-4 h-4 text-yellow-600"}),e.jsx("span",{children:"Administrator - Full access"})]})})]})]})]}),e.jsx(M,{onClick:j,disabled:!l||m,className:"w-full bg-re-green hover:bg-re-green/90 text-white shadow-md hover:shadow-lg transition-all disabled:opacity-50 disabled:cursor-not-allowed","data-testid":"assign-role-button",children:m?e.jsxs(e.Fragment,{children:[e.jsx(Je,{className:"w-4 h-4 mr-2 animate-spin"}),"Assigning Role..."]}):e.jsxs(e.Fragment,{children:[e.jsx(ss,{className:"w-4 h-4 mr-2"}),"Assign Role"]})}),h&&e.jsx("div",{className:`border-2 rounded-lg p-4 ${h.type==="success"?"border-green-200 bg-green-50":"border-red-200 bg-red-50"}`,children:e.jsxs("div",{className:"flex items-start gap-3",children:[h.type==="success"?e.jsx(Ce,{className:"w-5 h-5 text-green-600 shrink-0 mt-0.5"}):e.jsx(Ge,{className:"w-5 h-5 text-red-600 shrink-0 mt-0.5"}),e.jsx("p",{className:`text-sm ${h.type==="success"?"text-green-800":"text-red-800"}`,children:h.text})]})})]})]}),e.jsx(Vt,{}),e.jsxs("div",{ref:I,children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4 mb-4",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-base font-semibold text-gray-900 mb-1",children:"User Management"}),e.jsxs("p",{className:"text-sm text-gray-600",children:["View and manage user roles (",C," ",A!=="ALL"&&A!=="ELEVATED"?A.toLowerCase():""," users)"]})]}),e.jsx("div",{className:"flex items-center gap-3",children:e.jsxs(Be,{value:A,onValueChange:B,children:[e.jsx(ze,{className:"w-[200px] h-10 border rounded-lg border-gray-300",children:e.jsx(Ve,{placeholder:"Filter by role"})}),e.jsxs(He,{children:[e.jsx(K,{value:"ELEVATED",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ss,{className:"w-4 h-4 text-purple-600"}),e.jsxs("span",{children:["Elevated (",v.admins+v.management,")"]})]})}),e.jsx(K,{value:"ADMIN",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(br,{className:"w-4 h-4 text-yellow-600"}),e.jsxs("span",{children:["Admins (",v.admins,")"]})]})}),e.jsx(K,{value:"MANAGEMENT",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Mt,{className:"w-4 h-4 text-blue-600"}),e.jsxs("span",{children:["Management (",v.management,")"]})]})}),e.jsx(K,{value:"USER",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(kt,{className:"w-4 h-4 text-gray-600"}),e.jsxs("span",{children:["Users (",v.users,")"]})]})}),e.jsx(K,{value:"ALL",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Mt,{className:"w-4 h-4 text-gray-600"}),e.jsxs("span",{children:["All Users (",v.admins+v.management+v.users,")"]})]})})]})]})})]}),e.jsx("div",{className:"pt-2",children:f?e.jsxs("div",{className:"flex flex-col items-center justify-center py-8",children:[e.jsx(Je,{className:"w-6 h-6 animate-spin text-purple-500 mb-2"}),e.jsx("p",{className:"text-sm text-gray-500",children:"Loading users..."})]}):p.length===0?e.jsxs("div",{className:"text-center py-8",children:[e.jsx("div",{className:"w-12 h-12 rounded-full bg-gray-100 flex items-center justify-center mx-auto mb-3",children:e.jsx(Mt,{className:"w-6 h-6 text-gray-400"})}),e.jsx("p",{className:"font-medium text-gray-700",children:"No users found"}),e.jsx("p",{className:"text-sm text-gray-500 mt-1",children:A==="ELEVATED"?"Assign ADMIN or MANAGEMENT roles to see users here":"No users match the selected filter"})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"space-y-2","data-testid":"users-list",children:p.map(E=>e.jsx("div",{className:"border border-gray-200 hover:border-re-green hover:shadow-sm transition-all rounded-lg bg-white p-4","data-testid":`user-${E.email}`,children:e.jsxs("div",{className:"flex items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex items-center gap-3 flex-1 min-w-0",children:[e.jsx("div",{className:`w-10 h-10 rounded-lg ${oe(E.role)} flex items-center justify-center shadow-sm`,children:Y(E.role)}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"font-semibold text-gray-900 truncate",children:E.displayName}),e.jsx("p",{className:"text-sm text-gray-600 truncate",children:E.email}),E.department&&e.jsxs("p",{className:"text-xs text-gray-500 mt-1 truncate",children:[E.department,E.designation?` • ${E.designation}`:""]})]})]}),e.jsx(le,{className:`${oe(E.role)} shrink-0`,"data-testid":`role-badge-${E.role}`,children:E.role})]})},E.userId))}),T>1&&e.jsxs("div",{className:"flex items-center justify-between pt-4 border-t",children:[e.jsxs("div",{className:"text-sm text-gray-600",children:["Showing ",(k-1)*R+1," to ",Math.min(k*R,C)," of ",C," users"]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(M,{variant:"outline",size:"sm",onClick:()=>X(k-1),disabled:k===1,"data-testid":"prev-page-button",children:"Previous"}),e.jsx("div",{className:"flex items-center gap-1",children:Array.from({length:Math.min(5,T)},(E,O)=>{let L;return T<=5||k<=3?L=O+1:k>=T-2?L=T-4+O:L=k-2+O,e.jsx(M,{variant:k===L?"default":"outline",size:"sm",onClick:()=>X(L),className:`w-9 h-9 p-0 ${k===L?"bg-re-green hover:bg-re-green/90 text-white":""}`,"data-testid":`page-${L}-button`,children:L},L)})}),e.jsx(M,{variant:"outline",size:"sm",onClick:()=>X(k+1),disabled:k===T,"data-testid":"next-page-button",children:"Next"})]})]})]})})]})]})]})}function Bk({open:t,onClose:s,success:a,message:r}){return e.jsx(ct,{open:t,onOpenChange:s,children:e.jsxs(lt,{className:"sm:max-w-md",children:[e.jsxs(dt,{children:[e.jsxs(ot,{className:"flex items-center gap-2",children:[e.jsx(js,{className:"w-5 h-5 text-blue-600"}),"Push Notifications"]}),e.jsx(Lt,{className:"sr-only",children:a?"Push notifications have been successfully enabled for your account.":"There was an error enabling push notifications. Please review the details below."})]}),e.jsx("div",{className:"py-6",children:e.jsx("div",{className:"flex flex-col items-center text-center",children:a?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-green-100 flex items-center justify-center mb-4",children:e.jsx(Ce,{className:"w-8 h-8 text-green-600"})}),e.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Notifications Enabled!"}),e.jsx("p",{className:"text-sm text-gray-600 max-w-sm",children:r||"You will now receive push notifications for workflow updates, approvals, and TAT alerts."})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-red-100 flex items-center justify-center mb-4",children:e.jsx(gt,{className:"w-8 h-8 text-red-600"})}),e.jsx("h3",{className:"text-lg font-semibold text-gray-900 mb-2",children:"Subscription Failed"}),e.jsx("p",{className:"text-sm text-gray-600 max-w-sm mb-4 whitespace-pre-line",children:r||"Unable to enable push notifications. Please check your browser settings and try again."}),e.jsxs("div",{className:"bg-amber-50 border border-amber-200 rounded-lg p-3 text-left w-full",children:[e.jsx("p",{className:"text-xs text-amber-800 font-medium mb-2",children:"💡 Troubleshooting Tips:"}),e.jsxs("ul",{className:"text-xs text-amber-700 space-y-1 list-disc list-inside",children:[e.jsx("li",{children:"Check if notifications are blocked in browser settings"}),e.jsx("li",{children:"Ensure your browser supports push notifications"}),e.jsx("li",{children:"Try refreshing the page and enabling again"})]})]})]})})}),e.jsx(Ct,{children:e.jsx(M,{onClick:s,className:"w-full",children:a?"Done":"Close"})})]})})}const Vk=async()=>(await be.get("/user/preferences/notifications")).data.data,zk=async t=>(await be.put("/user/preferences/notifications",t)).data.data;function Hk({open:t,onClose:s}){const[a,r]=x.useState({emailNotificationsEnabled:!0,pushNotificationsEnabled:!0,inAppNotificationsEnabled:!0}),[n,i]=x.useState(!0),[l,o]=x.useState(null),[c,d]=x.useState(null),[m,u]=x.useState(null);x.useEffect(()=>{t&&h()},[t]);const h=async()=>{var p,y;try{i(!0),u(null);const f=await Vk();r(f)}catch(f){console.error("[NotificationPreferences] Failed to load preferences:",f),u(((y=(p=f.response)==null?void 0:p.data)==null?void 0:y.message)||"Failed to load notification preferences")}finally{i(!1)}},g=async(p,y)=>{var f,b;try{o(p),u(null),d(null);const v={[p]:y},w=await zk(v);r(w),d(`${p==="emailNotificationsEnabled"?"Email":p==="pushNotificationsEnabled"?"Push":"In-App"} notifications ${y?"enabled":"disabled"}`),setTimeout(()=>d(null),3e3)}catch(v){console.error("[NotificationPreferences] Failed to update preference:",v),u(((b=(f=v.response)==null?void 0:f.data)==null?void 0:b.message)||"Failed to update notification preference"),h()}finally{o(null)}};return e.jsx(ct,{open:t,onOpenChange:s,children:e.jsxs(lt,{className:"sm:max-w-[600px] max-h-[85vh] overflow-y-auto",children:[e.jsx(dt,{children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-2.5 bg-gradient-to-br from-slate-600 to-slate-700 rounded-lg",children:e.jsx($a,{className:"h-6 w-6 text-white"})}),e.jsxs("div",{children:[e.jsx(ot,{className:"text-xl font-semibold",children:"Notification Preferences"}),e.jsx(Lt,{className:"text-sm",children:"Customize how you receive notifications for workflow updates"})]})]})}),e.jsx(Vt,{className:"my-4"}),n?e.jsx("div",{className:"p-12 flex items-center justify-center",children:e.jsx(Je,{className:"w-8 h-8 animate-spin text-gray-400"})}):e.jsxs("div",{className:"space-y-6",children:[c&&e.jsxs("div",{className:"flex items-center gap-2 p-3 bg-green-50 border border-green-200 rounded-md animate-in fade-in slide-in-from-top-2",children:[e.jsx(Ce,{className:"w-4 h-4 text-green-600 shrink-0"}),e.jsx("p",{className:"text-sm text-green-800 font-medium",children:c})]}),m&&e.jsxs("div",{className:"flex items-center gap-2 p-3 bg-red-50 border border-red-200 rounded-md animate-in fade-in slide-in-from-top-2",children:[e.jsx(Ge,{className:"w-4 h-4 text-red-600 shrink-0"}),e.jsx("p",{className:"text-sm text-red-800 font-medium",children:m})]}),e.jsx("div",{className:"space-y-2",children:e.jsxs("div",{className:"flex items-center justify-between p-4 bg-gradient-to-br from-gray-50 to-gray-100 rounded-lg border border-gray-200 hover:border-gray-300 transition-all",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("div",{className:"p-3 bg-white rounded-lg shadow-sm",children:e.jsx(Ta,{className:"w-6 h-6 text-slate-600"})}),e.jsxs("div",{children:[e.jsx(re,{htmlFor:"email-notifications-modal",className:"text-base font-semibold text-gray-900 cursor-pointer",children:"Email Notifications"}),e.jsx("p",{className:"text-sm text-gray-600 mt-1",children:"Receive important updates and alerts via email"})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[l==="emailNotificationsEnabled"&&e.jsx(Je,{className:"w-4 h-4 animate-spin text-gray-400"}),e.jsx(ws,{id:"email-notifications-modal",checked:a.emailNotificationsEnabled,onCheckedChange:p=>g("emailNotificationsEnabled",p),disabled:l==="emailNotificationsEnabled"})]})]})}),e.jsx("div",{className:"space-y-2",children:e.jsxs("div",{className:"flex items-center justify-between p-4 bg-gradient-to-br from-gray-50 to-gray-100 rounded-lg border border-gray-200 hover:border-gray-300 transition-all",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("div",{className:"p-3 bg-white rounded-lg shadow-sm",children:e.jsx(js,{className:"w-6 h-6 text-slate-600"})}),e.jsxs("div",{children:[e.jsx(re,{htmlFor:"push-notifications-modal",className:"text-base font-semibold text-gray-900 cursor-pointer",children:"Push Notifications"}),e.jsx("p",{className:"text-sm text-gray-600 mt-1",children:"Get instant browser notifications for real-time updates"})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[l==="pushNotificationsEnabled"&&e.jsx(Je,{className:"w-4 h-4 animate-spin text-gray-400"}),e.jsx(ws,{id:"push-notifications-modal",checked:a.pushNotificationsEnabled,onCheckedChange:p=>g("pushNotificationsEnabled",p),disabled:l==="pushNotificationsEnabled"})]})]})}),e.jsx("div",{className:"space-y-2",children:e.jsxs("div",{className:"flex items-center justify-between p-4 bg-gradient-to-br from-gray-50 to-gray-100 rounded-lg border border-gray-200 hover:border-gray-300 transition-all",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("div",{className:"p-3 bg-white rounded-lg shadow-sm",children:e.jsx(Hs,{className:"w-6 h-6 text-slate-600"})}),e.jsxs("div",{children:[e.jsx(re,{htmlFor:"inapp-notifications-modal",className:"text-base font-semibold text-gray-900 cursor-pointer",children:"In-App Notifications"}),e.jsx("p",{className:"text-sm text-gray-600 mt-1",children:"View notifications in the notification center"})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[l==="inAppNotificationsEnabled"&&e.jsx(Je,{className:"w-4 h-4 animate-spin text-gray-400"}),e.jsx(ws,{id:"inapp-notifications-modal",checked:a.inAppNotificationsEnabled,onCheckedChange:p=>g("inAppNotificationsEnabled",p),disabled:l==="inAppNotificationsEnabled"})]})]})}),e.jsx(Vt,{}),e.jsx("div",{className:"p-4 bg-gray-50 border border-gray-200 rounded-lg",children:e.jsxs("p",{className:"text-sm text-gray-700 leading-relaxed",children:[e.jsx("span",{className:"font-semibold",children:"Note:"})," These settings control your notification preferences across all channels. Critical system alerts and urgent notifications may still be delivered regardless of these settings to ensure important information reaches you."]})})]})]})})}function Wk(){const{user:t}=Zt(),s=rr(t),[a,r]=x.useState(!1),[n,i]=x.useState(!1),[l,o]=x.useState(),[c,d]=x.useState(!1),[m,u]=x.useState(!1),[h,g]=x.useState(!1),[p,y]=x.useState(!0);x.useEffect(()=>{f()},[]);const f=async()=>{try{y(!0);const v=await Oy();g(v.length>0)}catch(v){console.error("Failed to check subscription status:",v),g(!1)}finally{y(!1)}},b=async()=>{d(!0),r(!1);try{if(!("Notification"in window)){i(!1),o("Notifications are not supported in this browser. Please use a modern browser like Chrome, Firefox, or Edge."),r(!0),d(!1);return}let v=Notification.permission;if(v==="denied"){i(!1),o(`Notification permission was previously denied. To enable notifications:
|
||
|
||
1. Click the lock icon (🔒) or info icon (ℹ️) in your browser's address bar
|
||
2. Find "Notifications" in the permissions list
|
||
3. Change it from "Block" to "Allow"
|
||
4. Refresh this page and try again
|
||
|
||
Alternatively, you can enable notifications in your browser's site settings.`),r(!0),d(!1);return}if(v==="default"&&(v=await Notification.requestPermission(),v==="denied")){i(!1),o(`Notification permission was denied. To enable notifications:
|
||
|
||
1. Click the lock icon (🔒) or info icon (ℹ️) in your browser's address bar
|
||
2. Find "Notifications" in the permissions list
|
||
3. Change it from "Block" to "Allow"
|
||
4. Refresh this page and try again`),r(!0),d(!1);return}if(v!=="granted"){i(!1),o("Notification permission is required to enable push notifications. Please grant permission and try again."),r(!0),d(!1);return}await _k(),i(!0),o("Push notifications have been successfully enabled! You will now receive notifications for workflow updates, approvals, and TAT alerts."),r(!0),await f()}catch(v){console.error("[Settings] Error enabling notifications:",v),i(!1);const w=(v==null?void 0:v.message)||"Unknown error occurred";o(w.includes("permission")?"Notification permission was denied. Please enable notifications in your browser settings and try again.":w.includes("Service worker")?"Service worker registration failed. Please refresh the page and try again.":w.includes("token")?"Authentication required. Please log in again and try enabling notifications.":`Unable to enable push notifications: ${w}`),r(!0)}finally{d(!1)}};return e.jsxs("div",{className:"min-h-screen pb-8",children:[e.jsxs("div",{className:"max-w-7xl mx-auto space-y-6",children:[e.jsxs(te,{className:"relative overflow-hidden shadow-2xl border-0 rounded-2xl",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-slate-900 via-slate-800 to-slate-900"}),e.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(ellipse_at_top_right,_var(--tw-gradient-stops))] from-yellow-400/20 via-transparent to-transparent"}),e.jsx(se,{className:"relative z-10 p-6 sm:p-8 lg:p-12",children:e.jsxs("div",{className:"flex items-center gap-4 sm:gap-6",children:[e.jsx("div",{className:"w-14 h-14 sm:w-16 sm:h-16 bg-gradient-to-br from-yellow-400 to-yellow-500 rounded-2xl flex items-center justify-center shadow-xl transform hover:scale-105 transition-transform",children:e.jsx($a,{className:"w-7 h-7 sm:w-8 sm:h-8 text-slate-900"})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl sm:text-3xl lg:text-4xl font-bold text-white mb-1 sm:mb-2",children:"Settings"}),e.jsx("p",{className:"text-sm sm:text-base lg:text-lg text-gray-300",children:"Manage your account and preferences"})]})]})})]}),s?e.jsxs(Vr,{defaultValue:"user",className:"w-full",children:[e.jsxs(zr,{className:"grid w-full grid-cols-2 lg:grid-cols-4 mb-8 bg-slate-100 p-1 rounded-xl h-auto gap-1",children:[e.jsxs(vt,{value:"user",className:"flex items-center justify-center gap-2 py-3 rounded-lg data-[state=active]:bg-white data-[state=active]:shadow-md transition-all",children:[e.jsx($a,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:"User Settings"}),e.jsx("span",{className:"sm:hidden",children:"User"})]}),e.jsxs(vt,{value:"roles",className:"flex items-center justify-center gap-2 py-3 rounded-lg data-[state=active]:bg-white data-[state=active]:shadow-md transition-all",children:[e.jsx(ss,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:"User Roles"}),e.jsx("span",{className:"sm:hidden",children:"Roles"})]}),e.jsxs(vt,{value:"system",className:"flex items-center justify-center gap-2 py-3 rounded-lg data-[state=active]:bg-white data-[state=active]:shadow-md transition-all",children:[e.jsx(Lu,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Configuration"}),e.jsx("span",{className:"sm:hidden",children:"Config"})]}),e.jsxs(vt,{value:"holidays",className:"flex items-center justify-center gap-2 py-3 rounded-lg data-[state=active]:bg-white data-[state=active]:shadow-md transition-all",children:[e.jsx(ut,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Holidays"}),e.jsx("span",{className:"sm:hidden",children:"Holidays"})]})]}),e.jsxs("div",{className:"w-full min-h-[600px]",children:[e.jsx(bt,{value:"user",className:"mt-0 space-y-0",children:e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4 sm:gap-6",children:[e.jsxs(te,{className:"shadow-lg hover:shadow-xl transition-all duration-300 border-0 rounded-md group",children:[e.jsx(ue,{className:"pb-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-gradient-to-br from-slate-600 to-slate-700 rounded-md shadow-md group-hover:shadow-lg transition-shadow",children:e.jsx(js,{className:"h-5 w-5 text-white"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-lg font-semibold text-gray-900",children:"Browser Push Setup"}),e.jsx(Te,{className:"text-sm text-gray-600",children:"Register this browser for push notifications"})]})]})}),e.jsx(se,{children:e.jsxs("div",{className:"space-y-4",children:[p?e.jsx("div",{className:"p-4 bg-gray-50 border border-gray-200 rounded-md flex items-center justify-center",children:e.jsx("p",{className:"text-sm text-gray-600",children:"Checking registration status..."})}):h?e.jsx("div",{className:"p-3 bg-green-50 border border-green-200 rounded-md",children:e.jsx("p",{className:"text-xs text-green-800 font-medium",children:"✓ This browser is already registered for push notifications."})}):e.jsx("div",{className:"p-3 bg-blue-50 border border-blue-200 rounded-md",children:e.jsx("p",{className:"text-xs text-blue-800",children:"Click below to register this browser for receiving push notifications. This needs to be done once per browser/device."})}),e.jsxs(M,{onClick:b,disabled:c||h,className:"w-full bg-re-green hover:bg-re-green/90 text-white shadow-md hover:shadow-lg transition-all disabled:opacity-50 disabled:cursor-not-allowed",children:[e.jsx(js,{className:`w-4 h-4 mr-2 ${c?"animate-pulse":""}`}),c?"Registering...":h?"Already Registered":"Register Browser for Push"]})]})})]}),e.jsxs(te,{className:"shadow-lg hover:shadow-xl transition-all duration-300 border-0 rounded-md group",children:[e.jsx(ue,{className:"pb-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-gradient-to-br from-slate-600 to-slate-700 rounded-md shadow-md group-hover:shadow-lg transition-shadow",children:e.jsx(bn,{className:"h-5 w-5 text-white"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-lg font-semibold text-gray-900",children:"Security"}),e.jsx(Te,{className:"text-sm text-gray-600",children:"Password and security settings"})]})]})}),e.jsx(se,{children:e.jsx("div",{className:"space-y-4",children:e.jsx("div",{className:"p-4 bg-gradient-to-br from-gray-50 to-gray-100 rounded-md border border-gray-200",children:e.jsx("p",{className:"text-sm text-gray-600 text-center",children:"Security settings will be available soon"})})})})]}),e.jsxs(te,{className:"shadow-lg hover:shadow-xl transition-all duration-300 border-0 rounded-md group",children:[e.jsx(ue,{className:"pb-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-gradient-to-br from-slate-600 to-slate-700 rounded-md shadow-md group-hover:shadow-lg transition-shadow",children:e.jsx(pd,{className:"h-5 w-5 text-white"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-lg font-semibold text-gray-900",children:"Appearance"}),e.jsx(Te,{className:"text-sm text-gray-600",children:"Theme and display preferences"})]})]})}),e.jsx(se,{children:e.jsx("div",{className:"space-y-4",children:e.jsx("div",{className:"p-4 bg-gradient-to-br from-gray-50 to-gray-100 rounded-md border border-gray-200",children:e.jsx("p",{className:"text-sm text-gray-600 text-center",children:"Appearance settings will be available soon"})})})})]}),e.jsxs(te,{className:"shadow-lg hover:shadow-xl transition-all duration-300 border-0 rounded-md group",children:[e.jsx(ue,{className:"pb-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-gradient-to-br from-slate-600 to-slate-700 rounded-md shadow-md group-hover:shadow-lg transition-shadow",children:e.jsx(ss,{className:"h-5 w-5 text-white"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-lg font-semibold text-gray-900",children:"Preferences"}),e.jsx(Te,{className:"text-sm text-gray-600",children:"Notification and application preferences"})]})]})}),e.jsx(se,{children:e.jsxs(M,{onClick:()=>u(!0),className:"w-full bg-re-green hover:bg-re-green/90 text-white shadow-md hover:shadow-lg transition-all",children:[e.jsx(ss,{className:"w-4 h-4 mr-2"}),"Manage Preferences"]})})]})]})}),e.jsx(bt,{value:"roles",className:"mt-0",children:e.jsx(Uk,{})}),e.jsx(bt,{value:"system",className:"mt-0",children:e.jsx(Lk,{})}),e.jsx(bt,{value:"holidays",className:"mt-0",children:e.jsx(Ok,{})})]})]}):e.jsx(e.Fragment,{children:e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-4 sm:gap-6",children:[e.jsxs(te,{className:"shadow-lg hover:shadow-xl transition-all duration-300 border-0 rounded-md group",children:[e.jsx(ue,{className:"pb-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-gradient-to-br from-slate-600 to-slate-700 rounded-md shadow-md group-hover:shadow-lg transition-shadow",children:e.jsx(js,{className:"h-5 w-5 text-white"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-lg font-semibold text-gray-900",children:"Browser Push Setup"}),e.jsx(Te,{className:"text-sm text-gray-600",children:"Register this browser for push notifications"})]})]})}),e.jsx(se,{children:e.jsxs("div",{className:"space-y-4",children:[p?e.jsx("div",{className:"p-4 bg-gray-50 border border-gray-200 rounded-md flex items-center justify-center",children:e.jsx("p",{className:"text-sm text-gray-600",children:"Checking registration status..."})}):h?e.jsx("div",{className:"p-3 bg-green-50 border border-green-200 rounded-md",children:e.jsx("p",{className:"text-xs text-green-800 font-medium",children:"✓ This browser is already registered for push notifications."})}):e.jsx("div",{className:"p-3 bg-blue-50 border border-blue-200 rounded-md",children:e.jsx("p",{className:"text-xs text-blue-800",children:"Click below to register this browser for receiving push notifications. This needs to be done once per browser/device."})}),e.jsxs(M,{onClick:b,disabled:c||h,className:"w-full bg-re-green hover:bg-re-green/90 text-white shadow-md hover:shadow-lg transition-all disabled:opacity-50 disabled:cursor-not-allowed",children:[e.jsx(js,{className:`w-4 h-4 mr-2 ${c?"animate-pulse":""}`}),c?"Registering...":h?"Already Registered":"Register Browser for Push"]})]})})]}),e.jsxs(te,{className:"shadow-lg hover:shadow-xl transition-all duration-300 border-0 rounded-md group",children:[e.jsx(ue,{className:"pb-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-gradient-to-br from-slate-600 to-slate-700 rounded-md shadow-md group-hover:shadow-lg transition-shadow",children:e.jsx(bn,{className:"h-5 w-5 text-white"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-lg font-semibold text-gray-900",children:"Security"}),e.jsx(Te,{className:"text-sm text-gray-600",children:"Password and security settings"})]})]})}),e.jsx(se,{children:e.jsx("div",{className:"space-y-4",children:e.jsx("div",{className:"p-4 bg-gradient-to-br from-gray-50 to-gray-100 rounded-md border border-gray-200",children:e.jsx("p",{className:"text-sm text-gray-600 text-center",children:"Security settings will be available soon"})})})})]}),e.jsxs(te,{className:"shadow-lg hover:shadow-xl transition-all duration-300 border-0 rounded-md group",children:[e.jsx(ue,{className:"pb-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-gradient-to-br from-slate-600 to-slate-700 rounded-md shadow-md group-hover:shadow-lg transition-shadow",children:e.jsx(pd,{className:"h-5 w-5 text-white"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-lg font-semibold text-gray-900",children:"Appearance"}),e.jsx(Te,{className:"text-sm text-gray-600",children:"Theme and display preferences"})]})]})}),e.jsx(se,{children:e.jsx("div",{className:"space-y-4",children:e.jsx("div",{className:"p-4 bg-gradient-to-br from-gray-50 to-gray-100 rounded-md border border-gray-200",children:e.jsx("p",{className:"text-sm text-gray-600 text-center",children:"Appearance settings will be available soon"})})})})]}),e.jsxs(te,{className:"shadow-lg hover:shadow-xl transition-all duration-300 border-0 rounded-md group",children:[e.jsx(ue,{className:"pb-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-gradient-to-br from-slate-600 to-slate-700 rounded-md shadow-md group-hover:shadow-lg transition-shadow",children:e.jsx(ss,{className:"h-5 w-5 text-white"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-lg font-semibold text-gray-900",children:"Preferences"}),e.jsx(Te,{className:"text-sm text-gray-600",children:"Notification and application preferences"})]})]})}),e.jsx(se,{children:e.jsxs(M,{onClick:()=>u(!0),className:"w-full bg-re-green hover:bg-re-green/90 text-white shadow-md hover:shadow-lg transition-all",children:[e.jsx(ss,{className:"w-4 h-4 mr-2"}),"Manage Preferences"]})})]})]})})]}),e.jsx(Bk,{open:a,onClose:()=>r(!1),success:n,message:l}),e.jsx(Hk,{open:m,onClose:()=>u(!1)})]})}function Gk({onNavigate:t}){const[s,a]=x.useState([]),[r,n]=x.useState(!0),[i,l]=x.useState(1),[o,c]=x.useState(1),[d,m]=x.useState(0),[u,h]=x.useState("all"),[g,p]=x.useState(!1),y=20,f=async(D=i,C=u==="unread")=>{var P,R;try{n(D===1);const V=await Oa.list({page:D,limit:y,unreadOnly:C}),I=((P=V.data)==null?void 0:P.notifications)||[],$=((R=V.data)==null?void 0:R.total)||0;a(I),m($),c(Math.ceil($/y))}catch(V){console.error("[Notifications] Failed to fetch:",V)}finally{n(!1),p(!1)}};x.useEffect(()=>{f(1,u==="unread")},[u]);const b=async D=>{var C;try{if(D.isRead||(await Oa.markAsRead(D.notificationId),a(P=>P.map(R=>R.notificationId===D.notificationId?{...R,isRead:!0}:R))),D.actionUrl&&t){const P=(C=D.metadata)==null?void 0:C.requestNumber;if(P){let R=`request/${P}`;(D.notificationType==="mention"||D.notificationType==="comment"||D.notificationType==="worknote")&&(R+="?tab=worknotes"),t(R)}}}catch(P){console.error("[Notifications] Error handling notification click:",P)}},v=async()=>{try{p(!0),await Oa.markAllAsRead(),await f(i,u==="unread")}catch(D){console.error("[Notifications] Error marking all as read:",D),p(!1)}},w=async D=>{try{await Oa.delete(D),a(C=>C.filter(P=>P.notificationId!==D)),m(C=>C-1)}catch(C){console.error("[Notifications] Error deleting notification:",C)}},A=()=>{p(!0),f(i,u==="unread")},S=D=>{D<1||D>o||(l(D),f(D,u==="unread"))},k=D=>{const C="w-6 h-6";switch(D){case"mention":case"comment":return e.jsx(Hs,{className:`${C} text-blue-600`});case"worknote":return e.jsx(_e,{className:`${C} text-purple-600`});case"assignment":return e.jsx(Ai,{className:`${C} text-indigo-600`});case"approval":return e.jsx(Ce,{className:`${C} text-green-600`});case"rejection":return e.jsx(gt,{className:`${C} text-red-600`});case"tat_alert":return e.jsx(Ye,{className:`${C} text-orange-600`});case"tat_breach":return e.jsx(Ge,{className:`${C} text-red-600`});case"tat_breach_initiator":return e.jsx(os,{className:`${C} text-amber-600`});default:return e.jsx(js,{className:`${C} text-gray-600`})}},F=D=>{switch(D==null?void 0:D.toUpperCase()){case"URGENT":return"bg-red-100 text-red-800 border-red-200";case"HIGH":return"bg-orange-100 text-orange-800 border-orange-200";case"MEDIUM":return"bg-blue-100 text-blue-800 border-blue-200";default:return"bg-gray-100 text-gray-800 border-gray-200"}},T=s.filter(D=>!D.isRead).length;return e.jsxs("div",{className:"max-w-6xl mx-auto space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsxs("h1",{className:"text-3xl font-bold text-gray-900 flex items-center gap-3",children:[e.jsx(js,{className:"w-8 h-8 text-blue-600"}),"Notifications"]}),e.jsxs("p",{className:"text-gray-600 mt-1",children:[d," total notification",d!==1?"s":"",T>0&&` • ${T} unread`]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(M,{variant:"outline",size:"sm",onClick:A,disabled:g,className:"gap-2",children:[e.jsx(Bt,{className:`w-4 h-4 ${g?"animate-spin":""}`}),"Refresh"]}),T>0&&e.jsxs(M,{variant:"outline",size:"sm",onClick:v,disabled:g,className:"gap-2",children:[e.jsx(Yf,{className:"w-4 h-4"}),"Mark All Read"]})]})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(M,{variant:u==="all"?"default":"outline",size:"sm",onClick:()=>{h("all"),l(1)},children:"All Notifications"}),e.jsxs(M,{variant:u==="unread"?"default":"outline",size:"sm",onClick:()=>{h("unread"),l(1)},children:["Unread",T>0&&e.jsx(le,{className:"ml-2 bg-red-500 text-white",children:T})]})]}),e.jsxs(te,{children:[e.jsxs(ue,{children:[e.jsx(he,{children:"Recent Activity"}),e.jsx(Te,{children:"Stay updated with all your workflow activities and mentions"})]}),e.jsx(se,{children:r?e.jsx("div",{className:"flex items-center justify-center py-12",children:e.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600"})}):s.length===0?e.jsxs("div",{className:"text-center py-12",children:[e.jsx(js,{className:"w-16 h-16 text-gray-300 mx-auto mb-4"}),e.jsx("p",{className:"text-lg font-medium text-gray-900 mb-2",children:"No notifications"}),e.jsx("p",{className:"text-sm text-gray-500",children:u==="unread"?"You're all caught up! No unread notifications.":"You don't have any notifications yet."})]}):e.jsx("div",{className:"space-y-2",children:s.map(D=>{var C;return e.jsx("div",{className:`p-4 rounded-lg border transition-all cursor-pointer hover:shadow-md ${D.isRead?"bg-white border-gray-200 hover:bg-gray-50":"bg-blue-50 border-blue-200 hover:bg-blue-100"}`,onClick:()=>b(D),children:e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx("div",{className:"shrink-0 mt-0.5",children:k(D.notificationType)}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2 mb-1",children:[e.jsx("h4",{className:`text-sm ${D.isRead?"font-semibold":"font-bold"} text-gray-900`,children:D.title}),e.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[D.priority&&D.priority!=="LOW"&&e.jsx(le,{variant:"outline",className:`text-xs ${F(D.priority)}`,children:D.priority}),!D.isRead&&e.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-600"})]})]}),e.jsx("p",{className:"text-sm text-gray-700 mb-2 line-clamp-2",children:D.message}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("p",{className:"text-xs text-gray-500",children:[Nu(new Date(D.createdAt),{addSuffix:!0}),((C=D.metadata)==null?void 0:C.requestNumber)&&e.jsxs("span",{className:"ml-2",children:["• ",D.metadata.requestNumber]})]}),e.jsx(M,{variant:"ghost",size:"sm",className:"h-7 w-7 p-0 hover:bg-red-100 hover:text-red-600",onClick:P=>{P.stopPropagation(),w(D.notificationId)},children:e.jsx(jo,{className:"w-3.5 h-3.5"})})]})]})]})},D.notificationId)})})})]}),!r&&o>1&&e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("p",{className:"text-sm text-gray-600",children:["Showing ",(i-1)*y+1," to ",Math.min(i*y,d)," of ",d," notifications"]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(M,{variant:"outline",size:"sm",onClick:()=>S(i-1),disabled:i===1,children:[e.jsx(_u,{className:"w-4 h-4"}),"Previous"]}),e.jsx("div",{className:"flex items-center gap-1",children:Array.from({length:Math.min(5,o)},(D,C)=>{let P;return o<=5||i<=3?P=C+1:i>=o-2?P=o-4+C:P=i-2+C,e.jsx(M,{variant:i===P?"default":"outline",size:"sm",className:"w-9 h-9 p-0",onClick:()=>S(P),children:P},P)})}),e.jsxs(M,{variant:"outline",size:"sm",onClick:()=>S(i+1),disabled:i===o,children:["Next",e.jsx(vo,{className:"w-4 h-4"})]})]})]})]})}function Kk({onBack:t}){return e.jsx("div",{className:"flex items-center justify-between","data-testid":"detailed-reports-header",children:e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs(M,{variant:"outline",onClick:t,className:"inline-flex items-center gap-2","data-testid":"back-button",children:[e.jsx(zs,{className:"w-4 h-4 mr-2"}),"Back to Dashboard"]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-purple-100 rounded-lg",children:e.jsx(_e,{className:"h-6 w-6 text-purple-600"})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"Detailed Reports"}),e.jsx("p",{className:"text-sm text-gray-600",children:"Comprehensive workflow and activity reports"})]})]})]})})}function jc({dateRange:t,customStartDate:s,customEndDate:a,showCustomDatePicker:r,tempCustomStartDate:n,tempCustomEndDate:i,onDateRangeChange:l,onShowCustomDatePickerChange:o,onStartDateChange:c,onEndDateChange:d,onApply:m,onCancel:u,testIdPrefix:h="date-filter"}){const g=s&&a?`${De(s,"MMM d, yyyy")} - ${De(a,"MMM d, yyyy")}`:"Select dates";return e.jsxs("div",{className:"flex items-center gap-2","data-testid":`${h}-container`,children:[e.jsx(ut,{className:"w-4 h-4 text-muted-foreground"}),e.jsxs(Be,{value:t,onValueChange:l,"data-testid":`${h}-select`,children:[e.jsx(ze,{className:"w-[160px]",children:e.jsx(Ve,{placeholder:"Date Range"})}),e.jsxs(He,{children:[e.jsx(K,{value:"today",children:"Today"}),e.jsx(K,{value:"week",children:"This Week"}),e.jsx(K,{value:"month",children:"This Month"}),e.jsx(K,{value:"custom",children:"Custom Range"})]})]}),t==="custom"&&e.jsxs(oa,{open:r,onOpenChange:o,children:[e.jsx(ca,{asChild:!0,children:e.jsxs(M,{variant:"outline",size:"sm",className:"gap-2","data-testid":`${h}-custom-trigger`,children:[e.jsx(ut,{className:"w-4 h-4"}),g]})}),e.jsx(da,{className:"w-auto p-4",align:"start",sideOffset:8,children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:`${h}-start-date`,className:"text-sm font-medium",children:"Start Date"}),e.jsx(Se,{id:`${h}-start-date`,type:"date",value:n?De(n,"yyyy-MM-dd"):"",onChange:p=>{const y=p.target.value?new Date(p.target.value):void 0;c(y)},max:De(new Date,"yyyy-MM-dd"),className:"w-full","data-testid":`${h}-start-input`})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:`${h}-end-date`,className:"text-sm font-medium",children:"End Date"}),e.jsx(Se,{id:`${h}-end-date`,type:"date",value:i?De(i,"yyyy-MM-dd"):"",onChange:p=>{const y=p.target.value?new Date(p.target.value):void 0;d(y)},min:n?De(n,"yyyy-MM-dd"):void 0,max:De(new Date,"yyyy-MM-dd"),className:"w-full","data-testid":`${h}-end-input`})]})]}),e.jsxs("div",{className:"flex gap-2 pt-2 border-t",children:[e.jsx(M,{size:"sm",onClick:m,disabled:!n||!i,className:"flex-1 bg-re-green hover:bg-re-green/90","data-testid":`${h}-apply-button`,children:"Apply"}),e.jsx(M,{size:"sm",variant:"outline",onClick:u,"data-testid":`${h}-cancel-button`,children:"Cancel"})]})]})})]})]})}function Yk(t){switch(t){case"Login":return"text-blue-700 bg-blue-100 border-blue-200";case"Created Request":return"text-purple-700 bg-purple-100 border-purple-200";case"Approved Request":return"text-emerald-700 bg-emerald-100 border-emerald-200";case"Rejected Request":return"text-red-700 bg-red-100 border-red-200";case"Added Comment":return"text-amber-700 bg-amber-100 border-amber-200";case"Viewed Request":return"text-gray-700 bg-gray-100 border-gray-200";case"Uploaded Document":return"text-indigo-700 bg-indigo-100 border-indigo-200";default:return"text-gray-700 bg-gray-100 border-gray-200"}}function zp(t){switch(t){case"high":return"bg-red-100 text-red-800 border-red-200";case"medium":return"bg-orange-100 text-orange-800 border-orange-200";case"low":return"bg-green-100 text-green-800 border-green-200";default:return"bg-gray-100 text-gray-800 border-gray-200"}}function Hp(t){switch(t){case"Delayed":return"text-red-700 bg-red-100 border-red-200";case"On Time":return"text-emerald-700 bg-emerald-100 border-emerald-200";case"Pending":return"bg-orange-100 text-orange-800 border-orange-200";default:return"bg-gray-100 text-gray-800 border-gray-200"}}function Zk(t){return t>=20?"bg-red-600":t>=10?"bg-orange-500":"bg-amber-500"}function Xk({lifecycleRequests:t,loading:s,loadingPage:a,error:r,pagination:n,dateRange:i,customStartDate:l,customEndDate:o,showCustomDatePicker:c,tempCustomStartDate:d,tempCustomEndDate:m,exporting:u,onDateRangeChange:h,onShowCustomDatePickerChange:g,onStartDateChange:p,onEndDateChange:y,onApplyCustomDate:f,onCancelCustomDate:b,onPageChange:v,onExport:w,onViewRequest:A}){return e.jsxs(te,{className:"shadow-lg hover:shadow-xl transition-shadow","data-testid":"request-lifecycle-report",children:[e.jsxs(ue,{children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-blue-100 rounded-lg",children:e.jsx(Gt,{className:"h-5 w-5 text-blue-600"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-lg text-gray-900",children:"Request Lifecycle Report"}),e.jsx(Te,{className:"text-gray-600",children:"End-to-end workflow status including all approval levels, approvers, dates, and TAT compliance"})]})]}),e.jsxs(M,{variant:"outline",size:"sm",className:"gap-2",onClick:w,disabled:u,"data-testid":"export-lifecycle-button",children:[e.jsx(wt,{className:"w-4 h-4"}),u?"Exporting...":"Download CSV"]})]}),e.jsx("div",{className:"mt-4 flex items-center gap-3 flex-wrap",children:e.jsx(jc,{dateRange:i,customStartDate:l,customEndDate:o,showCustomDatePicker:c,tempCustomStartDate:d,tempCustomEndDate:m,onDateRangeChange:h,onShowCustomDatePickerChange:g,onStartDateChange:p,onEndDateChange:y,onApply:f,onCancel:b,testIdPrefix:"lifecycle"})})]}),e.jsxs(se,{children:[s?e.jsxs("div",{className:"flex items-center justify-center py-12","data-testid":"lifecycle-loading",children:[e.jsx(Je,{className:"w-6 h-6 animate-spin text-gray-400"}),e.jsx("span",{className:"ml-2 text-sm text-gray-600",children:"Loading lifecycle data..."})]}):r?e.jsxs("div",{className:"flex items-center justify-center py-12 text-red-600","data-testid":"lifecycle-error",children:[e.jsx(Ge,{className:"w-5 h-5 mr-2"}),e.jsx("span",{className:"text-sm",children:r})]}):t.length===0?e.jsx("div",{className:"text-center py-12 text-gray-500","data-testid":"lifecycle-empty",children:e.jsx("p",{className:"text-sm",children:"No lifecycle data available"})}):e.jsx("div",{className:"space-y-4",children:t.map(S=>e.jsx("div",{className:"border rounded-xl overflow-hidden","data-testid":`lifecycle-request-${S.id}`,children:e.jsx("div",{className:"p-4 bg-gradient-to-r from-gray-50 to-white hover:bg-gray-100 cursor-pointer transition-all",onClick:()=>A(S.requestId||S.id),children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("div",{className:"flex items-center gap-4",children:e.jsxs("div",{className:"flex flex-col",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("button",{onClick:k=>{k.stopPropagation(),A(S.requestId||S.id)},className:"font-semibold text-sm text-blue-600 hover:text-blue-800 hover:underline cursor-pointer transition-colors","data-testid":`lifecycle-request-link-${S.id}`,children:S.id}),e.jsx(le,{className:zp(S.priority),"data-testid":`lifecycle-priority-${S.id}`,children:S.priority}),e.jsx(le,{className:Hp(S.status),"data-testid":`lifecycle-status-${S.id}`,children:S.status})]}),e.jsx("p",{className:"text-sm text-gray-700",children:S.title}),e.jsxs("p",{className:"text-xs text-gray-500 mt-1",children:["Initiated by ",e.jsx("span",{className:"font-medium",children:S.initiator})," on ",S.initDate]}),S.currentStage&&!S.currentStage.includes("Level")&&e.jsxs("p",{className:"text-xs text-gray-400 mt-0.5",children:["Stage: ",S.currentStage]})]})}),e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs("div",{className:"text-right",children:[e.jsx("p",{className:"text-xs text-gray-500",children:"Current Stage"}),e.jsx("p",{className:"text-sm font-semibold text-gray-900",children:S.currentStage}),e.jsxs("p",{className:"text-xs text-gray-400 mt-0.5",children:["(Level ",S.currentLevel,"/",S.totalLevels,")"]})]}),e.jsxs("div",{className:"text-right",children:[e.jsx("p",{className:"text-xs text-gray-500",children:"Overall TAT"}),e.jsx("p",{className:"text-sm font-semibold text-gray-900",children:S.overallTAT}),S.breachCount>0&&e.jsxs("p",{className:"text-xs text-red-500 mt-0.5",children:[S.breachCount," breach",S.breachCount>1?"es":""]})]}),e.jsx(M,{variant:"ghost",size:"sm",onClick:()=>A(S.requestId||S.id),className:"gap-1.5","data-testid":`lifecycle-view-button-${S.id}`,children:e.jsx(vo,{className:"w-4 h-4"})})]})]})})},S.id))}),n.totalPages>1&&e.jsxs("div",{className:"flex items-center justify-between p-4 border-t relative","data-testid":"lifecycle-pagination",children:[a&&e.jsx("div",{className:"absolute inset-0 bg-white/80 flex items-center justify-center z-10 rounded-b-lg",children:e.jsx(Je,{className:"w-5 h-5 animate-spin text-gray-400"})}),e.jsxs("p",{className:"text-sm text-gray-600",children:["Showing page ",n.page," of ",n.totalPages," (",n.totalRecords," total records)"]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(M,{variant:"outline",size:"sm",onClick:()=>v(n.page-1),disabled:n.page<=1||a,"data-testid":"lifecycle-pagination-prev",children:"Previous"}),e.jsx(M,{variant:"outline",size:"sm",onClick:()=>v(n.page+1),disabled:n.page>=n.totalPages||a,"data-testid":"lifecycle-pagination-next",children:"Next"})]})]})]})]})}function Nc({className:t,...s}){return e.jsx("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:e.jsx("table",{"data-slot":"table",className:we("w-full caption-bottom text-sm",t),...s})})}function wc({className:t,...s}){return e.jsx("thead",{"data-slot":"table-header",className:we("[&_tr]:border-b",t),...s})}function Cc({className:t,...s}){return e.jsx("tbody",{"data-slot":"table-body",className:we("[&_tr:last-child]:border-0",t),...s})}function xr({className:t,...s}){return e.jsx("tr",{"data-slot":"table-row",className:we("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",t),...s})}function ts({className:t,...s}){return e.jsx("th",{"data-slot":"table-head",className:we("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t),...s})}function Yt({className:t,...s}){return e.jsx("td",{"data-slot":"table-cell",className:we("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t),...s})}function Qk({activityLog:t,loading:s,loadingPage:a,error:r,pagination:n,dateRange:i,customStartDate:l,customEndDate:o,showCustomDatePicker:c,tempCustomStartDate:d,tempCustomEndDate:m,filterCategory:u,filterSeverity:h,exporting:g,onDateRangeChange:p,onShowCustomDatePickerChange:y,onStartDateChange:f,onEndDateChange:b,onApplyCustomDate:v,onCancelCustomDate:w,onCategoryChange:A,onSeverityChange:S,onClearFilters:k,onPageChange:F,onExport:T,onViewRequest:D}){const C=u!=="all"||h!=="all"||i!=="month"||l||o;return e.jsxs(te,{className:"shadow-lg hover:shadow-xl transition-shadow","data-testid":"user-activity-log-report",children:[e.jsxs(ue,{children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-indigo-100 rounded-lg",children:e.jsx(Zf,{className:"h-5 w-5 text-indigo-600"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-lg text-gray-900",children:"User Activity Log Report"}),e.jsx(Te,{className:"text-gray-600",children:"Consolidated user actions and activity history"})]})]}),e.jsxs(M,{variant:"outline",size:"sm",className:"gap-2",onClick:T,disabled:g,"data-testid":"export-activity-button",children:[e.jsx(wt,{className:"w-4 h-4"}),g?"Exporting...":"Download CSV"]})]}),e.jsxs("div",{className:"mt-4 flex items-center gap-4 flex-wrap",children:[e.jsx(jc,{dateRange:i,customStartDate:l,customEndDate:o,showCustomDatePicker:c,tempCustomStartDate:d,tempCustomEndDate:m,onDateRangeChange:p,onShowCustomDatePickerChange:y,onStartDateChange:f,onEndDateChange:b,onApply:v,onCancel:w,testIdPrefix:"activity"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("label",{className:"text-sm text-gray-600 whitespace-nowrap",children:"Category:"}),e.jsxs(Be,{value:u,onValueChange:A,"data-testid":"activity-category-filter",children:[e.jsx(ze,{className:"w-40",children:e.jsx(Ve,{placeholder:"All Categories"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Categories"}),e.jsx(K,{value:"WORKFLOW",children:"Workflow"}),e.jsx(K,{value:"COLLABORATION",children:"Collaboration"}),e.jsx(K,{value:"DOCUMENT",children:"Document"}),e.jsx(K,{value:"AUTHENTICATION",children:"Authentication"}),e.jsx(K,{value:"SYSTEM",children:"System"}),e.jsx(K,{value:"OTHER",children:"Other"})]})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("label",{className:"text-sm text-gray-600 whitespace-nowrap",children:"Severity:"}),e.jsxs(Be,{value:h,onValueChange:S,"data-testid":"activity-severity-filter",children:[e.jsx(ze,{className:"w-40",children:e.jsx(Ve,{placeholder:"All Severities"})}),e.jsxs(He,{children:[e.jsx(K,{value:"all",children:"All Severities"}),e.jsx(K,{value:"INFO",children:"Info"}),e.jsx(K,{value:"WARNING",children:"Warning"}),e.jsx(K,{value:"ERROR",children:"Error"}),e.jsx(K,{value:"CRITICAL",children:"Critical"})]})]})]}),C&&e.jsx(M,{variant:"ghost",size:"sm",onClick:k,className:"text-xs","data-testid":"activity-clear-filters",children:"Clear Filters"})]})]}),e.jsx(se,{children:s?e.jsxs("div",{className:"flex items-center justify-center py-12","data-testid":"activity-loading",children:[e.jsx(Je,{className:"w-6 h-6 animate-spin text-gray-400"}),e.jsx("span",{className:"ml-2 text-sm text-gray-600",children:"Loading activity data..."})]}):r?e.jsxs("div",{className:"flex items-center justify-center py-12 text-red-600","data-testid":"activity-error",children:[e.jsx(Ge,{className:"w-5 h-5 mr-2"}),e.jsx("span",{className:"text-sm",children:r})]}):t.length===0?e.jsx("div",{className:"text-center py-12 text-gray-500","data-testid":"activity-empty",children:e.jsx("p",{className:"text-sm",children:"No activity data available"})}):e.jsxs("div",{className:"rounded-lg border",children:[e.jsxs(Nc,{children:[e.jsx(wc,{children:e.jsxs(xr,{className:"bg-gray-50",children:[e.jsx(ts,{className:"font-semibold",children:"Timestamp"}),e.jsx(ts,{className:"font-semibold",children:"User"}),e.jsx(ts,{className:"font-semibold",children:"Action"}),e.jsx(ts,{className:"font-semibold",children:"Details"}),e.jsx(ts,{className:"font-semibold",children:"IP Address"}),e.jsx(ts,{className:"font-semibold",children:"Request ID"})]})}),e.jsx(Cc,{children:t.map((P,R)=>e.jsxs(xr,{className:"hover:bg-gray-50","data-testid":`activity-row-${R}`,children:[e.jsx(Yt,{className:"text-xs font-medium",children:P.timestamp}),e.jsx(Yt,{className:"text-sm",children:P.user}),e.jsx(Yt,{children:e.jsx(le,{className:Yk(P.action),"data-testid":`activity-action-${R}`,children:P.action})}),e.jsx(Yt,{className:"text-sm text-gray-600",children:P.details}),e.jsx(Yt,{className:"text-xs font-mono text-gray-500",children:P.ip&&P.ip!=="N/A"?e.jsx("span",{title:P.userAgent||"",children:P.ip}):e.jsx("span",{className:"text-gray-400 italic",title:"IP address not yet captured",children:"N/A"})}),e.jsx(Yt,{children:P.requestId!=="-"&&P.requestId!=="System Login"?e.jsx("button",{onClick:()=>{const V=P.requestId;V&&D(V)},className:"hover:underline","data-testid":`activity-request-link-${R}`,children:e.jsx(le,{variant:"outline",className:"text-xs cursor-pointer hover:bg-blue-50 hover:border-blue-300 transition-colors",children:P.requestId})}):e.jsx("span",{className:"text-xs text-gray-400",children:"-"})})]},R))})]}),n.totalPages>1&&e.jsxs("div",{className:"flex items-center justify-between p-4 border-t relative","data-testid":"activity-pagination",children:[a&&e.jsx("div",{className:"absolute inset-0 bg-white/80 flex items-center justify-center z-10 rounded-b-lg",children:e.jsx(Je,{className:"w-5 h-5 animate-spin text-gray-400"})}),e.jsxs("p",{className:"text-sm text-gray-600",children:["Showing page ",n.page," of ",n.totalPages," (",n.totalRecords," total records)"]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(M,{variant:"outline",size:"sm",onClick:()=>F(n.page-1),disabled:n.page<=1||a,"data-testid":"activity-pagination-prev",children:"Previous"}),e.jsx(M,{variant:"outline",size:"sm",onClick:()=>F(n.page+1),disabled:n.page>=n.totalPages||a,"data-testid":"activity-pagination-next",children:"Next"})]})]})]})})]})}function Jk({agingWorkflows:t,loading:s,loadingPage:a,error:r,pagination:n,threshold:i,thresholdError:l,dateRange:o,customStartDate:c,customEndDate:d,showCustomDatePicker:m,tempCustomStartDate:u,tempCustomEndDate:h,searchQuery:g,exporting:p,onThresholdChange:y,onThresholdBlur:f,onDateRangeChange:b,onShowCustomDatePickerChange:v,onStartDateChange:w,onEndDateChange:A,onApplyCustomDate:S,onCancelCustomDate:k,onSearchChange:F,onPageChange:T,onExport:D,onViewRequest:C}){return e.jsxs(te,{className:"shadow-lg hover:shadow-xl transition-shadow","data-testid":"workflow-aging-report",children:[e.jsxs(ue,{children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-amber-100 rounded-lg",children:e.jsx(bo,{className:"h-5 w-5 text-amber-600"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-lg text-gray-900",children:"Workflow Aging Report"}),e.jsx(Te,{className:"text-gray-600",children:"Workflows exceeding aging threshold"})]})]}),e.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("label",{className:"text-sm text-gray-600 whitespace-nowrap",children:"Threshold:"}),e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Se,{type:"number",min:"1",value:i,onChange:P=>y(P.target.value),onBlur:f,className:`w-24 ${l?"border-red-500 focus:border-red-500 focus:ring-red-500":""}`,placeholder:"Days","data-testid":"aging-threshold-input"}),e.jsx("span",{className:"text-sm text-gray-600 whitespace-nowrap",children:"days"})]}),l&&e.jsx("span",{className:"text-xs text-red-600",children:l})]})]}),e.jsxs(le,{variant:"outline",className:"font-semibold","data-testid":"aging-total-badge",children:[n.totalRecords," workflows"]}),e.jsxs(M,{variant:"outline",size:"sm",className:"gap-2",onClick:D,disabled:p,"data-testid":"export-aging-button",children:[e.jsx(wt,{className:"w-4 h-4"}),p?"Exporting...":"Download CSV"]})]})]}),e.jsxs("div",{className:"mt-4 flex items-center gap-4 flex-wrap",children:[e.jsx(jc,{dateRange:o,customStartDate:c,customEndDate:d,showCustomDatePicker:m,tempCustomStartDate:u,tempCustomEndDate:h,onDateRangeChange:b,onShowCustomDatePickerChange:v,onStartDateChange:w,onEndDateChange:A,onApply:S,onCancel:k,testIdPrefix:"aging"}),e.jsxs("div",{className:"relative flex-1 min-w-[200px]",children:[e.jsx(vs,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-gray-400"}),e.jsx(Se,{placeholder:"Search by Request ID, Title, or Initiator...",value:g,onChange:P=>F(P.target.value),className:"pl-10","data-testid":"aging-search-input"})]})]})]}),e.jsx(se,{children:s?e.jsxs("div",{className:"flex items-center justify-center py-12","data-testid":"aging-loading",children:[e.jsx(Je,{className:"w-6 h-6 animate-spin text-gray-400"}),e.jsx("span",{className:"ml-2 text-sm text-gray-600",children:"Loading aging data..."})]}):r?e.jsxs("div",{className:"flex items-center justify-center py-12 text-red-600","data-testid":"aging-error",children:[e.jsx(Ge,{className:"w-5 h-5 mr-2"}),e.jsx("span",{className:"text-sm",children:r})]}):t.length===0?e.jsx("div",{className:"text-center py-12 text-gray-500","data-testid":"aging-empty",children:e.jsxs("p",{className:"text-sm",children:["No workflows found exceeding ",i," days threshold"]})}):e.jsxs("div",{className:"rounded-lg border",children:[e.jsxs(Nc,{children:[e.jsx(wc,{children:e.jsxs(xr,{className:"bg-gray-50",children:[e.jsx(ts,{className:"font-semibold",children:"Request ID"}),e.jsx(ts,{className:"font-semibold",children:"Title"}),e.jsx(ts,{className:"font-semibold",children:"Initiator"}),e.jsx(ts,{className:"font-semibold",children:"Start Date"}),e.jsx(ts,{className:"font-semibold",children:"Days Open"}),e.jsx(ts,{className:"font-semibold",children:"Current Stage"}),e.jsx(ts,{className:"font-semibold",children:"Assigned To"}),e.jsx(ts,{className:"font-semibold",children:"Priority"}),e.jsx(ts,{className:"font-semibold",children:"Status"})]})}),e.jsx(Cc,{children:t.map(P=>e.jsxs(xr,{className:"hover:bg-gray-50","data-testid":`aging-workflow-${P.id}`,children:[e.jsx(Yt,{className:"font-medium text-sm",children:e.jsx("button",{onClick:()=>C(P.requestId||P.id),className:"text-blue-600 hover:text-blue-800 hover:underline cursor-pointer transition-colors","data-testid":`aging-request-link-${P.id}`,children:P.id})}),e.jsx(Yt,{className:"text-sm",children:P.title}),e.jsx(Yt,{className:"text-sm",children:P.initiator}),e.jsx(Yt,{className:"text-sm text-gray-600",children:P.startDate}),e.jsx(Yt,{children:e.jsxs(le,{className:`${Zk(P.daysOpen)} text-white border-transparent`,"data-testid":`aging-days-${P.id}`,children:[P.daysOpen," days",e.jsx("span",{className:"ml-1 text-xs opacity-75",children:"(business)"})]})}),e.jsx(Yt,{className:"text-sm",children:P.currentStage}),e.jsx(Yt,{className:"text-sm",children:P.assignedTo&&P.assignedTo!=="N/A"?P.assignedTo:e.jsx("span",{className:"text-gray-400 italic",title:"Assigned approver not available",children:"N/A"})}),e.jsx(Yt,{children:e.jsx(le,{className:zp(P.priority),"data-testid":`aging-priority-${P.id}`,children:P.priority})}),e.jsx(Yt,{children:e.jsx(le,{className:Hp(P.status),"data-testid":`aging-status-${P.id}`,children:P.status})})]},P.id))})]}),n.totalPages>1&&e.jsxs("div",{className:"flex items-center justify-between p-4 border-t relative","data-testid":"aging-pagination",children:[a&&e.jsx("div",{className:"absolute inset-0 bg-white/80 flex items-center justify-center z-10 rounded-b-lg",children:e.jsx(Je,{className:"w-5 h-5 animate-spin text-gray-400"})}),e.jsxs("p",{className:"text-sm text-gray-600",children:["Showing page ",n.page," of ",n.totalPages," (",n.totalRecords," total records)"]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(M,{variant:"outline",size:"sm",onClick:()=>T(n.page-1),disabled:n.page<=1||a,"data-testid":"aging-pagination-prev",children:"Previous"}),e.jsx(M,{variant:"outline",size:"sm",onClick:()=>T(n.page+1),disabled:n.page>=n.totalPages||a,"data-testid":"aging-pagination-next",children:"Next"})]})]})]})})]})}function Dl(t="month"){const[s,a]=x.useState(t),[r,n]=x.useState(void 0),[i,l]=x.useState(void 0),[o,c]=x.useState(!1),[d,m]=x.useState(void 0),[u,h]=x.useState(void 0),g=x.useCallback(A=>{const S=A;a(S),S!=="custom"?(n(void 0),l(void 0),m(void 0),h(void 0),c(!1)):(m(r),h(i),c(!0))},[r,i]),p=x.useCallback(()=>{if(d&&u){if(d>u){const A=d;n(u),l(A),m(u),h(A)}else n(d),l(u);c(!1)}},[d,u]),y=x.useCallback(()=>{c(!1),m(r),h(i),(!r||!i)&&(n(void 0),l(void 0),a("month"))},[r,i]),f=x.useCallback(A=>{A?(m(A),u&&A>u&&h(A)):m(void 0)},[u]),b=x.useCallback(A=>{A?(h(A),d&&A<d&&m(A)):h(void 0)},[d]),v=x.useCallback(()=>r&&i?`${De(r,"MMM d, yyyy")} - ${De(i,"MMM d, yyyy")}`:"Select dates",[r,i]),w=x.useCallback(()=>{a("month"),n(void 0),l(void 0),c(!1),m(void 0),h(void 0)},[]);return{dateRange:s,customStartDate:r,customEndDate:i,showCustomDatePicker:o,tempCustomStartDate:d,tempCustomEndDate:u,setShowCustomDatePicker:c,handleDateRangeChange:g,handleApplyCustomDate:p,handleCancelCustomDate:y,handleStartDateChange:f,handleEndDateChange:b,getDisplayDateRange:v,reset:w}}function qk(t){if(!t&&t!==0)return"N/A";const s=8;if(t<s)return Rt(t);const a=Math.floor(t/s),r=t%s;return r>0?`${a}d ${Rt(r)}`:`${a}d`}function Wp(t){if(!t)return"N/A";try{return new Date(t).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}catch{return t}}function lr(t){if(!t)return"N/A";try{const s=new Date(t),a=s.getFullYear(),r=String(s.getMonth()+1).padStart(2,"0"),n=String(s.getDate()).padStart(2,"0"),i=String(s.getHours()).padStart(2,"0"),l=String(s.getMinutes()).padStart(2,"0");return`${a}-${r}-${n} ${i}:${l}`}catch{return t}}function Gp(t,s){const a=(t||"").toLowerCase();return a.includes("created")||a.includes("create")?"Created Request":a.includes("approval")||a.includes("approved")?"Approved Request":a.includes("rejection")||a.includes("rejected")?"Rejected Request":a.includes("comment")?"Added Comment":a.includes("view")||a.includes("viewed")?"Viewed Request":a.includes("upload")||a.includes("document")?"Uploaded Document":a.includes("login")?"Login":t||"Activity"}const e5=10;function t5({dateRange:t,customStartDate:s,customEndDate:a}){const[r,n]=x.useState([]),[i,l]=x.useState(!0),[o,c]=x.useState(!1),[d,m]=x.useState(null),[u,h]=x.useState({page:1,totalPages:1,totalRecords:0}),g=x.useRef(!0),p=x.useCallback(async(y=1)=>{const f=y===1&&g.current;try{f?l(!0):c(!0),m(null);const b=await Nt.getLifecycleReport(y,e5,t,s,a),v=b.lifecycleData.map(w=>{const A=qk(w.overallTATHours);return{id:w.requestNumber,requestId:w.requestId,title:w.title,priority:w.priority||"medium",status:w.status,initiator:w.initiatorName||"Unknown",initDate:Wp(w.submissionDate),currentStage:w.currentStageName||`Level ${w.currentLevel}`,overallTAT:A,currentLevel:w.currentLevel,totalLevels:w.totalLevels,breachCount:w.breachCount||0}});n(v),h({page:b.pagination.currentPage,totalPages:b.pagination.totalPages,totalRecords:b.pagination.totalRecords})}catch(b){console.error("Failed to fetch lifecycle data:",b),m((b==null?void 0:b.message)||"Failed to load lifecycle data")}finally{f?l(!1):c(!1)}f&&(g.current=!1)},[t,s,a]);return x.useEffect(()=>{t==="custom"&&(!s||!a)||p(1)},[t,s,a]),{lifecycleRequests:r,loading:i,loadingPage:o,error:d,pagination:u,fetchData:p}}const s5=20;function a5({dateRange:t,customStartDate:s,customEndDate:a,filterCategory:r,filterSeverity:n}){const[i,l]=x.useState([]),[o,c]=x.useState(!0),[d,m]=x.useState(!1),[u,h]=x.useState(null),[g,p]=x.useState({page:1,totalPages:1,totalRecords:0}),y=x.useRef(!0),f=x.useCallback(async(b=1)=>{const v=b===1&&y.current;try{v?c(!0):m(!0),h(null);const w=await Nt.getActivityLogReport(b,s5,t,void 0,void 0,r&&r!=="all"?r:void 0,n&&n!=="all"?n:void 0,s,a),A=w.activities.map(S=>{const k=Gp(S.type||"",S.details),F=(S.type||"").toLowerCase()==="login"||S.requestId==="00000000-0000-0000-0000-000000000001"||S.requestId==="SYSTEM_LOGIN",T=F?S.details||"User login":S.requestTitle||S.requestNumber||S.details||"N/A";return{timestamp:S.timestamp?Wp(S.timestamp):"N/A",user:S.userName||"Unknown",action:k,details:T,ip:S.ipAddress||"N/A",userAgent:S.userAgent||null,requestId:F?"System Login":S.requestNumber||S.requestId||"-",userId:S.userId}});l(A),p({page:w.pagination.currentPage,totalPages:w.pagination.totalPages,totalRecords:w.pagination.totalRecords})}catch(w){console.error("Failed to fetch activity data:",w),h((w==null?void 0:w.message)||"Failed to load activity data")}finally{v?c(!1):m(!1)}v&&(y.current=!1)},[r,n,t,s,a]);return x.useEffect(()=>{t==="custom"&&(!s||!a)||f(1)},[r,n,t,s,a]),{activityLog:i,loading:o,loadingPage:d,error:u,pagination:g,fetchData:f}}const r5=20;function n5({threshold:t,dateRange:s,customStartDate:a,customEndDate:r,searchQuery:n=""}){const[i,l]=x.useState([]),[o,c]=x.useState(!0),[d,m]=x.useState(!1),[u,h]=x.useState(null),[g,p]=x.useState({page:1,totalPages:1,totalRecords:0}),y=x.useRef(!0),f=x.useCallback(async(v=1)=>{const w=v===1&&y.current;try{w?c(!0):m(!0),h(null);const A=parseInt(t,10);if(isNaN(A)||A<1){h("Please enter a valid threshold (minimum 1 day)");return}const S=await Nt.getWorkflowAgingReport(A,v,r5,s,a,r),k=S.agingData.map(F=>({id:F.requestNumber||F.requestId,requestId:F.requestId,title:F.title,initiator:F.initiatorName||"Unknown",startDate:F.submissionDate?new Date(F.submissionDate).toLocaleDateString():"N/A",daysOpen:F.daysOpen,currentStage:F.currentStageName||`Level ${F.currentLevel}`,assignedTo:F.currentApproverName||"N/A",priority:F.priority||"medium",status:F.status||"pending"}));l(k),p({page:S.pagination.currentPage,totalPages:S.pagination.totalPages,totalRecords:S.pagination.totalRecords})}catch(A){console.error("Failed to fetch aging data:",A),h((A==null?void 0:A.message)||"Failed to load aging data")}finally{w?c(!1):m(!1)}w&&(y.current=!1)},[t,s,a,r]),b=x.useMemo(()=>i.filter(v=>{var A,S,k;if(!n)return!0;const w=n.toLowerCase();return((A=v.id)==null?void 0:A.toLowerCase().includes(w))||((S=v.title)==null?void 0:S.toLowerCase().includes(w))||((k=v.initiator)==null?void 0:k.toLowerCase().includes(w))}),[i,n]);return x.useEffect(()=>{s==="custom"&&(!a||!r)||f(1)},[t,s,a,r]),{agingWorkflows:b,loading:o,loadingPage:d,error:u,pagination:g,fetchData:f}}function i5(t="7"){const[s,a]=x.useState(t),[r,n]=x.useState(null),i=x.useCallback(o=>{if(o===""){a(""),n(null);return}const c=parseInt(o,10);isNaN(c)||c<1?(n("Minimum threshold is 1 day"),a(o)):(n(null),a(o))},[]),l=x.useCallback(()=>{(s===""||isNaN(parseInt(s,10))||parseInt(s,10)<1)&&(a("1"),n(null))},[s]);return{threshold:s,thresholdError:r,setThreshold:a,handleThresholdChange:i,handleThresholdBlur:l}}async function l5(t,s,a){const r=await Nt.getLifecycleReport(1,1e4,t,s,a),n=[["Request Number","Title","Priority","Overall Status","Initiator","Submission Date","Closure Date","Total Levels","Current Level","Overall TAT (Hours)","Overall TAT (Days)","Breach Count","Level Number","Level Name","Approver Name","Approver Email","Level Status","Level Start Date","Level Completion Date","Level TAT (Hours)","Level TAT (Days)","Level TAT Compliance","Level Elapsed Hours","Level Remaining Hours","Level TAT % Used"].join(",")];for(const i of r.lifecycleData)try{const l=await ks(i.requestId||i.requestNumber),o=i.submissionDate?lr(i.submissionDate):"N/A",c=i.closureDate?lr(i.closureDate):"N/A",d=i.overallTATHours||0,m=d>0?(d/8).toFixed(2):"0",u=i.totalLevels||1,h=Math.min(Math.max(1,i.currentLevel||1),u),g=(l==null?void 0:l.approvals)||[];if(g.length===0){const p=[i.requestNumber||"",`"${(i.title||"").replace(/"/g,'""')}"`,i.priority||"medium",i.status||"",`"${(i.initiatorName||"Unknown").replace(/"/g,'""')}"`,o,c,u.toString(),h.toString(),d.toString(),m,(i.breachCount||0).toString(),"N/A","N/A","N/A","N/A","N/A","N/A","N/A","N/A","N/A","N/A","N/A","N/A","N/A"];n.push(p.join(","))}else g.forEach(p=>{const y=p.levelStartTime?lr(p.levelStartTime):"N/A",f=p.levelEndTime||p.completedAt?lr(p.levelEndTime||p.completedAt):"N/A",b=p.tatHours||0,v=p.tatDays||(b>0?(b/8).toFixed(2):"0");let w="N/A",A="N/A",S="N/A",k="N/A";if(p.levelStartTime){const T=new Date(p.levelStartTime);if(A=(((p.levelEndTime||p.completedAt?new Date(p.levelEndTime||p.completedAt):new Date).getTime()-T.getTime())/(1e3*60*60)).toFixed(2),b>0){const P=parseFloat(A);S=Math.max(0,b-P).toFixed(2),k=(P/b*100).toFixed(2),p.status==="APPROVED"||p.status==="REJECTED"?w=P<=b?"Compliant":"Breached":p.status==="IN_PROGRESS"||p.status==="PENDING"?w=P<=b?"On Track":"At Risk":w="N/A"}}const F=[i.requestNumber||"",`"${(i.title||"").replace(/"/g,'""')}"`,i.priority||"medium",i.status||"",`"${(i.initiatorName||"Unknown").replace(/"/g,'""')}"`,o,c,(i.totalLevels||0).toString(),(i.currentLevel||0).toString(),d.toString(),m,(i.breachCount||0).toString(),(p.levelNumber||"").toString(),`"${(p.levelName||`Level ${p.levelNumber}`).replace(/"/g,'""')}"`,`"${(p.approverName||"N/A").replace(/"/g,'""')}"`,`"${(p.approverEmail||"N/A").replace(/"/g,'""')}"`,p.status||"PENDING",y,f,b.toString(),v.toString(),w,A,S,k];n.push(F.join(","))})}catch(l){console.error(`Failed to fetch details for request ${i.requestNumber}:`,l);const o=i.submissionDate?lr(i.submissionDate):"N/A",c=i.overallTATHours||0,d=c>0?(c/8).toFixed(2):"0",m=i.totalLevels||1,u=Math.min(Math.max(1,i.currentLevel||1),m),h=[i.requestNumber||"",`"${(i.title||"").replace(/"/g,'""')}"`,i.priority||"medium",i.status||"",`"${(i.initiatorName||"Unknown").replace(/"/g,'""')}"`,o,"N/A",m.toString(),u.toString(),c.toString(),d,(i.breachCount||0).toString(),"Error","Error fetching details","N/A","N/A","N/A","N/A","N/A","N/A","N/A","N/A","N/A","N/A","N/A"];n.push(h.join(","))}Ac(n,`lifecycle-report-end-to-end-${new Date().toISOString().split("T")[0]}.csv`)}async function o5(t,s,a,r,n){const i=await Nt.getActivityLogReport(1,1e4,t,void 0,void 0,r&&r!=="all"?r:void 0,n&&n!=="all"?n:void 0,s,a),l=[["Timestamp","User","Action","Details","IP Address","User Agent","Request ID"].join(",")];i.activities.forEach(o=>{const c=Gp(o.type||"",o.details),m=[o.timestamp?lr(o.timestamp):"N/A",`"${(o.userName||"Unknown").replace(/"/g,'""')}"`,`"${c.replace(/"/g,'""')}"`,`"${(o.requestTitle||o.requestNumber||o.details||"N/A").replace(/"/g,'""')}"`,o.ipAddress||"N/A",`"${(o.userAgent||"").replace(/"/g,'""')}"`,o.requestNumber||o.requestId||"-"];l.push(m.join(","))}),Ac(l,`activity-log-report-${new Date().toISOString().split("T")[0]}.csv`)}async function c5(t,s,a,r){const n=await Nt.getWorkflowAgingReport(t,1,1e4,s,a,r),i=[["Request ID","Title","Initiator","Start Date","Days Open (Business)","Current Stage","Assigned To","Priority","Status"].join(",")];n.agingData.forEach(l=>{const o=l.submissionDate?lr(l.submissionDate):"N/A",c=[l.requestNumber||l.requestId||"",`"${(l.title||"").replace(/"/g,'""')}"`,`"${(l.initiatorName||"Unknown").replace(/"/g,'""')}"`,o,(l.daysOpen||0).toString(),`"${(l.currentStageName||`Level ${l.currentLevel}`).replace(/"/g,'""')}"`,`"${(l.currentApproverName||"N/A").replace(/"/g,'""')}"`,l.priority||"medium",l.status||"pending"];i.push(c.join(","))}),Ac(i,`workflow-aging-report-${new Date().toISOString().split("T")[0]}.csv`)}function Ac(t,s){const a=t.join(`
|
||
`),r=new Blob([a],{type:"text/csv;charset=utf-8;"}),n=document.createElement("a"),i=URL.createObjectURL(r);n.setAttribute("href",i),n.setAttribute("download",s),n.style.visibility="hidden",document.body.appendChild(n),n.click(),document.body.removeChild(n)}function d5(){const[t,s]=x.useState(!1),[a,r]=x.useState(!1),[n,i]=x.useState(!1),l=x.useCallback(async(d,m,u)=>{try{s(!0),await l5(d,m,u)}catch(h){console.error("Failed to export lifecycle data:",h),alert("Failed to export lifecycle data. Please try again.")}finally{s(!1)}},[]),o=x.useCallback(async(d,m,u,h,g)=>{try{r(!0),await o5(d,m,u,h,g)}catch(p){console.error("Failed to export activity data:",p),alert("Failed to export activity data. Please try again.")}finally{r(!1)}},[]),c=x.useCallback(async(d,m,u,h)=>{try{i(!0),await c5(d,m,u,h)}catch(g){console.error("Failed to export aging data:",g),alert("Failed to export aging data. Please try again.")}finally{i(!1)}},[]);return{exportingLifecycle:t,exportingActivity:a,exportingAging:n,handleExportLifecycle:l,handleExportActivity:o,handleExportAging:c}}function m5({onBack:t}){const s=Pa(),[a,r]=x.useState(""),[n,i]=x.useState("all"),[l,o]=x.useState("all"),c=Dl("month"),d=Dl("month"),m=Dl("month"),u=i5("7"),h=t5({dateRange:c.dateRange,customStartDate:c.customStartDate,customEndDate:c.customEndDate}),g=a5({dateRange:d.dateRange,customStartDate:d.customStartDate,customEndDate:d.customEndDate,filterCategory:n,filterSeverity:l}),p=n5({threshold:u.threshold,dateRange:m.dateRange,customStartDate:m.customStartDate,customEndDate:m.customEndDate,searchQuery:a}),y=d5(),f=x.useCallback(()=>{t?t():s("/dashboard")},[t,s]),b=x.useCallback(k=>{const{navigateToRequest:F}=require("@/utils/requestNavigation");F({requestId:k,navigate:s})},[s]),v=x.useCallback(()=>{y.handleExportLifecycle(c.dateRange,c.customStartDate,c.customEndDate)},[y,c]),w=x.useCallback(()=>{y.handleExportActivity(d.dateRange,d.customStartDate,d.customEndDate,n,l)},[y,d,n,l]),A=x.useCallback(()=>{const k=parseInt(u.threshold,10);!isNaN(k)&&k>=1&&y.handleExportAging(k,m.dateRange,m.customStartDate,m.customEndDate)},[y,u.threshold,m]),S=x.useCallback(()=>{i("all"),o("all"),d.reset()},[d]);return e.jsx("div",{className:"flex-1 p-3 lg:p-6 overflow-auto min-w-0","data-testid":"detailed-reports",children:e.jsxs("div",{className:"space-y-6 max-w-7xl mx-auto p-4",children:[e.jsx(Kk,{onBack:f}),e.jsx(Xk,{lifecycleRequests:h.lifecycleRequests,loading:h.loading,loadingPage:h.loadingPage,error:h.error,pagination:h.pagination,dateRange:c.dateRange,customStartDate:c.customStartDate,customEndDate:c.customEndDate,showCustomDatePicker:c.showCustomDatePicker,tempCustomStartDate:c.tempCustomStartDate,tempCustomEndDate:c.tempCustomEndDate,exporting:y.exportingLifecycle,onDateRangeChange:c.handleDateRangeChange,onShowCustomDatePickerChange:c.setShowCustomDatePicker,onStartDateChange:c.handleStartDateChange,onEndDateChange:c.handleEndDateChange,onApplyCustomDate:c.handleApplyCustomDate,onCancelCustomDate:c.handleCancelCustomDate,onPageChange:h.fetchData,onExport:v,onViewRequest:b}),e.jsx(Qk,{activityLog:g.activityLog,loading:g.loading,loadingPage:g.loadingPage,error:g.error,pagination:g.pagination,dateRange:d.dateRange,customStartDate:d.customStartDate,customEndDate:d.customEndDate,showCustomDatePicker:d.showCustomDatePicker,tempCustomStartDate:d.tempCustomStartDate,tempCustomEndDate:d.tempCustomEndDate,filterCategory:n,filterSeverity:l,exporting:y.exportingActivity,onDateRangeChange:d.handleDateRangeChange,onShowCustomDatePickerChange:d.setShowCustomDatePicker,onStartDateChange:d.handleStartDateChange,onEndDateChange:d.handleEndDateChange,onApplyCustomDate:d.handleApplyCustomDate,onCancelCustomDate:d.handleCancelCustomDate,onCategoryChange:i,onSeverityChange:o,onClearFilters:S,onPageChange:g.fetchData,onExport:w,onViewRequest:b}),e.jsx(Jk,{agingWorkflows:p.agingWorkflows,loading:p.loading,loadingPage:p.loadingPage,error:p.error,pagination:p.pagination,threshold:u.threshold,thresholdError:u.thresholdError,dateRange:m.dateRange,customStartDate:m.customStartDate,customEndDate:m.customEndDate,showCustomDatePicker:m.showCustomDatePicker,tempCustomStartDate:m.tempCustomStartDate,tempCustomEndDate:m.tempCustomEndDate,searchQuery:a,exporting:y.exportingAging,onThresholdChange:u.handleThresholdChange,onThresholdBlur:u.handleThresholdBlur,onDateRangeChange:m.handleDateRangeChange,onShowCustomDatePickerChange:m.setShowCustomDatePicker,onStartDateChange:m.handleStartDateChange,onEndDateChange:m.handleEndDateChange,onApplyCustomDate:m.handleApplyCustomDate,onCancelCustomDate:m.handleCancelCustomDate,onSearchChange:r,onPageChange:p.fetchData,onExport:A,onViewRequest:b})]})})}function u5({defaultPeriod:t,refreshInterval:s,onDefaultPeriodChange:a,onRefreshIntervalChange:r}){const n=["Today","This Week","This Month","Last Month","This Quarter","This Year","Custom Range"];return e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"default-period",children:"Default Reporting Period"}),e.jsxs(Be,{value:t,onValueChange:a,children:[e.jsx(ze,{id:"default-period",children:e.jsx(Ve,{})}),e.jsx(He,{children:n.map(i=>e.jsx(K,{value:i,children:i},i))})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"refresh-interval",children:"Auto-Refresh Interval (minutes)"}),e.jsx(Se,{id:"refresh-interval",type:"number",min:"1",max:"60",value:s,onChange:i=>r(parseInt(i.target.value)||5)})]})]})}function h5({autoRefresh:t,realTimeUpdates:s,dataExport:a,onAutoRefreshChange:r,onRealTimeUpdatesChange:n,onDataExportChange:i}){return e.jsxs("div",{className:"space-y-3",children:[e.jsx("h4",{className:"font-medium",children:"Data Features"}),e.jsxs("div",{className:"flex items-center justify-between p-4 bg-muted/50 rounded-lg",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:"Enable Auto-Refresh"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Automatically refresh dashboard data at set intervals"})]}),e.jsx(ws,{checked:t,onCheckedChange:r})]}),e.jsxs("div",{className:"flex items-center justify-between p-4 bg-muted/50 rounded-lg",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:"Enable Real-time Updates"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Show live updates when data changes occur"})]}),e.jsx(ws,{checked:s,onCheckedChange:n})]}),e.jsxs("div",{className:"flex items-center justify-between p-4 bg-muted/50 rounded-lg",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:"Enable Data Export"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Allow users to export analytics data and reports"})]}),e.jsx(ws,{checked:a,onCheckedChange:i})]})]})}const x5=["CSV","Excel","PDF","JSON"];function p5({exportFormats:t,onExportFormatsChange:s}){const a=(r,n)=>{s(n?[...t,r]:t.filter(i=>i!==r))};return e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{children:"Allowed Export Formats"}),e.jsx("div",{className:"grid grid-cols-3 gap-2",children:x5.map(r=>e.jsxs("div",{className:"flex items-center space-x-2 p-2 bg-muted/50 rounded",children:[e.jsx(hc,{id:`export-${r}`,checked:t.includes(r),onCheckedChange:n=>a(r,n)}),e.jsx(re,{htmlFor:`export-${r}`,className:"text-sm cursor-pointer",children:r})]},r))})]})}function g5({dataRetention:t,onDataRetentionChange:s}){return e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"data-retention",children:"Historical Data Retention (months)"}),e.jsx(Se,{id:"data-retention",type:"number",min:"1",max:"120",value:t,onChange:a=>s(parseInt(a.target.value)||24)}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Analytics data older than this will be archived or deleted"})]})}function f5(){const[t,s]=x.useState({defaultPeriod:"This Month",refreshInterval:5,autoRefresh:!0,realTimeUpdates:!0,dataExport:!0,exportFormats:["CSV","Excel","PDF"],dataRetention:24}),a=()=>{q.success("Analytics configuration saved successfully")},r=n=>{s(i=>({...i,...n}))};return e.jsxs(te,{children:[e.jsxs(ue,{children:[e.jsx(he,{children:"Analytics & Reporting Configuration"}),e.jsx(Te,{children:"Configure default reporting periods, auto-refresh, export settings, and data retention"})]}),e.jsxs(se,{className:"space-y-6",children:[e.jsx(u5,{defaultPeriod:t.defaultPeriod,refreshInterval:t.refreshInterval,onDefaultPeriodChange:n=>r({defaultPeriod:n}),onRefreshIntervalChange:n=>r({refreshInterval:n})}),e.jsx(Vt,{}),e.jsx(h5,{autoRefresh:t.autoRefresh,realTimeUpdates:t.realTimeUpdates,dataExport:t.dataExport,onAutoRefreshChange:n=>r({autoRefresh:n}),onRealTimeUpdatesChange:n=>r({realTimeUpdates:n}),onDataExportChange:n=>r({dataExport:n})}),e.jsx(Vt,{}),e.jsx(p5,{exportFormats:t.exportFormats,onExportFormatsChange:n=>r({exportFormats:n})}),e.jsx(g5,{dataRetention:t.dataRetention,onDataRetentionChange:n=>r({dataRetention:n})}),e.jsxs(M,{onClick:a,className:"bg-re-green hover:bg-re-green/90",children:[e.jsx(Wa,{className:"w-4 h-4 mr-2"}),"Save Analytics Configuration"]})]})]})}const y5=t=>{switch(t.toUpperCase()){case"ADMIN":return"bg-yellow-100 text-yellow-800 border-yellow-200";case"MANAGEMENT":return"bg-blue-100 text-blue-800 border-blue-200";case"USER":return"bg-gray-100 text-gray-800 border-gray-200";default:return"bg-gray-100 text-gray-800 border-gray-200"}},v5=t=>t.split(" ").map(s=>s[0]).join("").toUpperCase().substring(0,2);function b5({users:t,onEdit:s,onToggleStatus:a,onDelete:r}){return e.jsx("div",{className:"border rounded-lg overflow-hidden",children:e.jsxs(Nc,{children:[e.jsx(wc,{children:e.jsxs(xr,{children:[e.jsx(ts,{children:"User"}),e.jsx(ts,{children:"Role"}),e.jsx(ts,{children:"Department"}),e.jsx(ts,{children:"Status"}),e.jsx(ts,{className:"text-right",children:"Actions"})]})}),e.jsx(Cc,{children:t.length===0?e.jsx(xr,{children:e.jsx(Yt,{colSpan:5,className:"text-center py-8 text-muted-foreground",children:"No users found"})}):t.map(n=>e.jsxs(xr,{className:"hover:bg-muted/50",children:[e.jsx(Yt,{children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(as,{className:"size-10",children:e.jsx(rs,{className:"bg-re-green text-white",children:v5(n.name)})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:n.name}),e.jsx("p",{className:"text-xs text-muted-foreground",children:n.email})]})]})}),e.jsx(Yt,{children:e.jsx(le,{className:y5(n.role),children:n.role})}),e.jsx(Yt,{children:n.department}),e.jsx(Yt,{children:e.jsxs(le,{className:"bg-green-100 text-green-800 border-green-200",children:[e.jsx(Os,{className:"w-3 h-3 mr-1"}),n.status]})}),e.jsx(Yt,{className:"text-right",children:e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[e.jsx(M,{variant:"ghost",size:"sm",onClick:()=>s(n.id),className:"h-8",children:e.jsx(Di,{className:"w-4 h-4"})}),e.jsx(M,{variant:"ghost",size:"sm",onClick:()=>a(n.id),disabled:n.role.toUpperCase()==="ADMIN",className:"h-8",children:e.jsx(Xf,{className:"w-4 h-4"})}),e.jsx(M,{variant:"ghost",size:"sm",onClick:()=>r(n.id),disabled:n.role.toUpperCase()==="ADMIN",className:"h-8 text-destructive hover:text-destructive",children:e.jsx(jo,{className:"w-4 h-4"})})]})})]},n.id))})]})})}function j5({stats:t}){return e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4",children:[e.jsxs("div",{className:"p-4 bg-muted/50 rounded-lg",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Total Users"}),e.jsx("p",{className:"text-2xl font-semibold",children:t.total})]}),e.jsxs("div",{className:"p-4 bg-green-50 rounded-lg",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Active"}),e.jsx("p",{className:"text-2xl font-semibold text-green-600",children:t.active})]}),e.jsxs("div",{className:"p-4 bg-red-50 rounded-lg",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Inactive"}),e.jsx("p",{className:"text-2xl font-semibold text-red-600",children:t.inactive})]}),e.jsxs("div",{className:"p-4 bg-purple-50 rounded-lg",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"Admins"}),e.jsx("p",{className:"text-2xl font-semibold text-purple-600",children:t.admins})]})]})}function N5(t,s){let a=null;return function(...n){const i=()=>{a=null,t(...n)};a&&clearTimeout(a),a=setTimeout(i,s)}}function w5(){const[t,s]=x.useState(""),[a,r]=x.useState([]),[n,i]=x.useState(!1),[l,o]=x.useState(null),[c,d]=x.useState("USER"),[m,u]=x.useState(!1),[h,g]=x.useState(!1),[p,y]=x.useState(null),[f,b]=x.useState([]),[v,w]=x.useState(!1),[A,S]=x.useState({admins:0,management:0,users:0,total:0,active:0,inactive:0}),[k,F]=x.useState("ELEVATED"),[T,D]=x.useState(1),[C,P]=x.useState(1),[R,V]=x.useState(0),I=10,$=x.useRef(null),_=x.useCallback(N5(async W=>{var G,ee,ce;if(!W||!W.startsWith("@")||W.length<2){r([]),i(!1);return}i(!0);try{const Pe=W.slice(1),ie=((G=(await Ls.searchUsers(Pe,20)).data)==null?void 0:G.data)||[];r(ie)}catch(Pe){console.error("Search failed:",Pe),y({type:"error",text:((ce=(ee=Pe.response)==null?void 0:ee.data)==null?void 0:ce.message)||"Failed to search users"})}finally{i(!1)}},300),[]),N=W=>{const G=W.target.value;s(G),_(G)},j=async W=>{var G,ee;try{const ce=f.find(de=>de.email.toLowerCase()===W.toLowerCase());if(ce)return ce.role;const ie=(((ee=(G=(await Ls.getUsersByRole("ALL",1,1e3)).data)==null?void 0:G.data)==null?void 0:ee.users)||[]).find(de=>{var je;return((je=de.email)==null?void 0:je.toLowerCase())===W.toLowerCase()});return ie&&ie.role?ie.role:null}catch(ce){return console.error("Failed to fetch user role:",ce),null}},U=async W=>{o(W),s(W.email),r([]),g(!0);try{const G=await j(W.email);d(G||"USER")}catch(G){console.error("Failed to fetch user role:",G),d("USER")}finally{g(!1)}},z=async()=>{var W,G;if(!l||!c){y({type:"error",text:"Please select a user and role"});return}u(!0),y(null);try{await Ls.assignRole(l.email,c),y({type:"success",text:`Successfully assigned ${c} role to ${l.displayName||l.email}`}),o(null),s(""),d("USER"),await B(),await X(),q.success("Role assigned successfully")}catch(ee){console.error("Role assignment failed:",ee);const ce=((G=(W=ee.response)==null?void 0:W.data)==null?void 0:G.error)||"Failed to assign role";y({type:"error",text:ce}),q.error(ce)}finally{u(!1)}},B=async(W=T)=>{var G,ee,ce,Pe,Oe,ie;w(!0);try{const de=await Ls.getUsersByRole(k,W,I),je=((ee=(G=de.data)==null?void 0:G.data)==null?void 0:ee.users)||[],Me=(Pe=(ce=de.data)==null?void 0:ce.data)==null?void 0:Pe.pagination,ye=(ie=(Oe=de.data)==null?void 0:Oe.data)==null?void 0:ie.summary;b(je.map(ae=>({userId:ae.userId,email:ae.email,displayName:ae.displayName||ae.email,role:ae.role||"USER",department:ae.department,designation:ae.designation,isActive:ae.isActive!==!1}))),Me&&(D(Me.currentPage),P(Me.totalPages),V(Me.totalUsers)),ye&&S(ae=>({...ae,admins:ye.ADMIN||0,management:ye.MANAGEMENT||0,users:ye.USER||0,total:(ye.ADMIN||0)+(ye.MANAGEMENT||0)+(ye.USER||0)}))}catch(de){console.error("Failed to fetch users:",de),q.error("Failed to load users")}finally{w(!1)}},X=async()=>{var W,G,ee,ce,Pe,Oe;try{const ie=await Ls.getRoleStatistics(),de=((G=(W=ie.data)==null?void 0:W.data)==null?void 0:G.statistics)||((ee=ie.data)==null?void 0:ee.statistics)||[],je={admins:parseInt(((ce=de.find(Me=>Me.role==="ADMIN"))==null?void 0:ce.count)||"0"),management:parseInt(((Pe=de.find(Me=>Me.role==="MANAGEMENT"))==null?void 0:Pe.count)||"0"),users:parseInt(((Oe=de.find(Me=>Me.role==="USER"))==null?void 0:Oe.count)||"0")};S(Me=>({...Me,...je,total:je.admins+je.management+je.users,active:Me.active||je.admins+je.management+je.users,inactive:Me.inactive||0}))}catch(ie){console.error("Failed to fetch statistics:",ie)}};x.useEffect(()=>{B(1),X()},[k]);const H=W=>{F(W),D(1)},oe=W=>{B(W)},Y=async(W,G)=>{var ee,ce;try{await Ls.updateUserRole(W,G),q.success("User role updated successfully"),await B(),await X()}catch(Pe){console.error("Failed to update user role:",Pe),q.error(((ce=(ee=Pe.response)==null?void 0:ee.data)==null?void 0:ce.error)||"Failed to update user role")}},E=async W=>{f.find(ee=>ee.userId===W)&&q.info("User status toggle functionality coming soon")},O=async W=>{const G=f.find(ee=>ee.userId===W);if(G){if(G.role==="ADMIN"){q.error("Cannot delete admin user");return}q.info("User deletion functionality coming soon")}};x.useEffect(()=>{const W=G=>{$.current&&!$.current.contains(G.target)&&r([])};return a.length>0&&document.addEventListener("mousedown",W),()=>{document.removeEventListener("mousedown",W)}},[a]);const L={total:A.total,active:A.active,inactive:A.inactive,admins:A.admins};return e.jsxs("div",{className:"space-y-6",children:[e.jsx(j5,{stats:L}),e.jsxs(te,{children:[e.jsx(ue,{children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx(he,{children:"Assign User Role"}),e.jsx(Te,{children:"Search for a user in Okta and assign them a role"})]}),e.jsx(M,{onClick:z,disabled:!l||m,className:"bg-re-green hover:bg-re-green/90",children:m?e.jsxs(e.Fragment,{children:[e.jsx(Je,{className:"w-4 h-4 mr-2 animate-spin"}),"Assigning..."]}):e.jsxs(e.Fragment,{children:[e.jsx(Us,{className:"w-4 h-4 mr-2"}),"Assign Role"]})})]})}),e.jsxs(se,{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-2",ref:$,children:[e.jsx("div",{className:"flex items-center gap-2",children:e.jsxs("div",{className:"relative flex-1",children:[e.jsx(vs,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 w-4 h-4 text-muted-foreground"}),e.jsx(Se,{type:"text",placeholder:"Type @ to search users...",value:t,onChange:N,className:"pl-10 border-gray-200 focus:border-re-green focus:ring-2 focus:ring-re-green/20"}),n&&e.jsx(Je,{className:"absolute right-3 top-1/2 transform -translate-y-1/2 w-4 h-4 text-re-green animate-spin"})]})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Start with @ to search users (e.g., @john)"}),a.length>0&&e.jsxs("div",{className:"border rounded-lg shadow-lg bg-white max-h-60 overflow-y-auto",children:[e.jsx("div",{className:"sticky top-0 bg-muted px-4 py-2 border-b",children:e.jsxs("p",{className:"text-xs font-semibold text-muted-foreground",children:[a.length," user",a.length>1?"s":""," found"]})}),e.jsx("div",{className:"p-3",children:a.map(W=>e.jsxs("button",{onClick:()=>U(W),className:"w-full text-left p-3 hover:bg-muted rounded-lg transition-colors mb-1 last:mb-0",children:[e.jsx("p",{className:"font-medium text-gray-900",children:W.displayName||W.email}),e.jsx("p",{className:"text-sm text-muted-foreground",children:W.email}),W.department&&e.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:[W.department,W.designation?` • ${W.designation}`:""]})]},W.userId))})]})]}),l&&e.jsx("div",{className:"border-2 border-re-green/20 bg-re-green/5 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-lg bg-re-green flex items-center justify-center text-white font-bold shadow-md",children:(l.displayName||l.email).charAt(0).toUpperCase()}),e.jsxs("div",{children:[e.jsx("p",{className:"font-semibold text-gray-900",children:l.displayName||l.email}),e.jsx("p",{className:"text-sm text-muted-foreground",children:l.email}),l.department&&e.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:[l.department,l.designation?` • ${l.designation}`:""]}),h&&e.jsxs("p",{className:"text-xs text-re-green mt-1 flex items-center gap-1",children:[e.jsx(Je,{className:"w-3 h-3 animate-spin"}),"Checking current role..."]})]})]}),e.jsx(M,{variant:"ghost",size:"sm",onClick:()=>{o(null),s(""),d("USER"),g(!1)},children:"Clear"})]})}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"text-sm font-medium",children:"Select Role"}),e.jsxs(Be,{value:c,onValueChange:W=>d(W),disabled:h,children:[e.jsx(ze,{className:"border-gray-200 focus:border-re-green focus:ring-2 focus:ring-re-green/20",children:e.jsx(Ve,{placeholder:h?"Loading current role...":"Select role"})}),e.jsxs(He,{className:"rounded-lg",children:[e.jsx(K,{value:"USER",className:"p-3 rounded-lg my-1",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(kt,{className:"w-4 h-4 text-gray-600"}),e.jsx("span",{children:"User - Regular access"})]})}),e.jsx(K,{value:"MANAGEMENT",className:"p-3 rounded-lg my-1",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Mt,{className:"w-4 h-4 text-blue-600"}),e.jsx("span",{children:"Management - Read all data"})]})}),e.jsx(K,{value:"ADMIN",className:"p-3 rounded-lg my-1",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(br,{className:"w-4 h-4 text-yellow-600"}),e.jsx("span",{children:"Administrator - Full access"})]})})]})]})]}),p&&e.jsx("div",{className:`border-2 rounded-lg p-4 ${p.type==="success"?"border-green-200 bg-green-50":"border-red-200 bg-red-50"}`,children:e.jsxs("div",{className:"flex items-start gap-3",children:[p.type==="success"?e.jsx(Ce,{className:"w-5 h-5 text-green-600 shrink-0 mt-0.5"}):e.jsx(Ge,{className:"w-5 h-5 text-red-600 shrink-0 mt-0.5"}),e.jsx("p",{className:`text-sm ${p.type==="success"?"text-green-800":"text-red-800"}`,children:p.text})]})})]})]}),e.jsxs(te,{children:[e.jsx(ue,{children:e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[e.jsxs("div",{children:[e.jsxs(he,{className:"flex items-center gap-2",children:[e.jsx(Mt,{className:"w-5 h-5 text-re-green"}),"User Management"]}),e.jsxs(Te,{children:["View and manage user accounts and roles (",R," ",k!=="ALL"&&k!=="ELEVATED"?k.toLowerCase():""," users)"]})]}),e.jsx("div",{className:"flex items-center gap-3",children:e.jsxs(Be,{value:k,onValueChange:H,children:[e.jsx(ze,{className:"w-[200px] border-gray-200 focus:border-re-green focus:ring-2 focus:ring-re-green/20",children:e.jsx(Ve,{placeholder:"Filter by role"})}),e.jsxs(He,{children:[e.jsx(K,{value:"ELEVATED",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ss,{className:"w-4 h-4 text-purple-600"}),e.jsxs("span",{children:["Elevated (",A.admins+A.management,")"]})]})}),e.jsx(K,{value:"ADMIN",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(br,{className:"w-4 h-4 text-yellow-600"}),e.jsxs("span",{children:["Admins (",A.admins,")"]})]})}),e.jsx(K,{value:"MANAGEMENT",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Mt,{className:"w-4 h-4 text-blue-600"}),e.jsxs("span",{children:["Management (",A.management,")"]})]})}),e.jsx(K,{value:"USER",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(kt,{className:"w-4 h-4 text-gray-600"}),e.jsxs("span",{children:["Users (",A.users,")"]})]})}),e.jsx(K,{value:"ALL",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Mt,{className:"w-4 h-4 text-gray-600"}),e.jsxs("span",{children:["All Users (",A.admins+A.management+A.users,")"]})]})})]})]})})]})}),e.jsx(se,{className:"pt-6",children:v?e.jsxs("div",{className:"flex flex-col items-center justify-center py-8",children:[e.jsx(Je,{className:"w-6 h-6 animate-spin text-re-green mb-2"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Loading users..."})]}):f.length===0?e.jsxs("div",{className:"text-center py-8",children:[e.jsx("div",{className:"w-12 h-12 rounded-full bg-gray-100 flex items-center justify-center mx-auto mb-3",children:e.jsx(Mt,{className:"w-6 h-6 text-gray-400"})}),e.jsx("p",{className:"font-medium text-gray-700",children:"No users found"}),e.jsx("p",{className:"text-sm text-gray-500 mt-1",children:k==="ELEVATED"?"Assign ADMIN or MANAGEMENT roles to see users here":"No users match the selected filter"})]}):e.jsxs(e.Fragment,{children:[e.jsx(b5,{users:f.map(W=>({id:W.userId,name:W.displayName,email:W.email,role:W.role,department:W.department||"N/A",status:W.isActive?"active":"inactive"})),onEdit:W=>{const G=f.find(ee=>ee.userId===W);if(G){const ee=G.role==="USER"?"MANAGEMENT":G.role==="MANAGEMENT"?"ADMIN":"USER";Y(W,ee)}},onToggleStatus:E,onDelete:O}),C>1&&e.jsxs("div",{className:"flex items-center justify-between pt-4 border-t mt-4",children:[e.jsxs("div",{className:"text-sm text-gray-600",children:["Showing ",(T-1)*I+1," to ",Math.min(T*I,R)," of ",R," users"]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(M,{variant:"outline",size:"sm",onClick:()=>oe(T-1),disabled:T===1,children:"Previous"}),e.jsx("div",{className:"flex items-center gap-1",children:Array.from({length:Math.min(5,C)},(W,G)=>{let ee;return C<=5||T<=3?ee=G+1:T>=C-2?ee=C-4+G:ee=T-2+G,e.jsx(M,{variant:T===ee?"default":"outline",size:"sm",onClick:()=>oe(ee),className:`w-9 h-9 p-0 ${T===ee?"bg-re-green hover:bg-re-green/90":""}`,children:ee},ee)})}),e.jsx(M,{variant:"outline",size:"sm",onClick:()=>oe(T+1),disabled:T===C,children:"Next"})]})]})]})})]})]})}function C5({expressHours:t,standardHours:s,onExpressChange:a,onStandardChange:r}){return e.jsxs(te,{className:"border-0 shadow-sm",children:[e.jsxs(ue,{className:"pb-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ji,{className:"w-5 h-5 text-re-green"}),e.jsx(he,{className:"text-base font-semibold",children:"Priority TAT Settings"})]}),e.jsx(Te,{className:"text-sm",children:"Set default turnaround time in hours for each priority level"})]}),e.jsx(se,{children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"tat-express",className:"text-sm font-medium",children:"Express Priority (hours)"}),e.jsx(Se,{id:"tat-express",type:"number",min:"1",max:"168",value:t,onChange:n=>a(parseInt(n.target.value)||24),className:"border-gray-200 focus:border-re-green focus:ring-2 focus:ring-re-green/20"}),e.jsxs("p",{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e.jsx(Ye,{className:"w-3 h-3"}),"Critical/Emergency requests (24/7, includes weekends)"]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"tat-standard",className:"text-sm font-medium",children:"Standard Priority (hours)"}),e.jsx(Se,{id:"tat-standard",type:"number",min:"1",max:"720",value:s,onChange:n=>r(parseInt(n.target.value)||72),className:"border-gray-200 focus:border-re-green focus:ring-2 focus:ring-re-green/20"}),e.jsxs("p",{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e.jsx(Ye,{className:"w-3 h-3"}),"Regular priority requests (working hours only, excludes weekends & holidays)"]})]})]})})]})}function A5({reminderThreshold1:t,reminderThreshold2:s,onReminderThreshold1Change:a,onReminderThreshold2Change:r}){return e.jsxs(te,{className:"border-0 shadow-sm",children:[e.jsxs(ue,{className:"pb-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(js,{className:"w-5 h-5 text-re-green"}),e.jsx(he,{className:"text-base font-semibold",children:"Auto-Reminder & Escalation"})]}),e.jsx(Te,{className:"text-sm",children:"Configure automatic reminder thresholds based on TAT percentage"})]}),e.jsx(se,{className:"space-y-6",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(re,{htmlFor:"reminder-threshold-1",className:"text-sm font-medium",children:"First Reminder Threshold"}),e.jsxs("span",{className:"text-lg font-semibold text-re-green",children:[t,"%"]})]}),e.jsx(co,{id:"reminder-threshold-1",value:[t],min:1,max:100,step:1,onValueChange:([n])=>{n!==void 0&&a(n)},className:"w-full"}),e.jsxs("p",{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e.jsx(js,{className:"w-3 h-3"}),"Send first gentle reminder when ",t,"% of TAT elapsed"]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(re,{htmlFor:"reminder-threshold-2",className:"text-sm font-medium",children:"Second Reminder Threshold (Escalation)"}),e.jsxs("span",{className:"text-lg font-semibold text-re-green",children:[s,"%"]})]}),e.jsx(co,{id:"reminder-threshold-2",value:[s],min:1,max:100,step:1,onValueChange:([n])=>{n!==void 0&&r(n)},className:"w-full"}),e.jsxs("p",{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e.jsx(os,{className:"w-3 h-3"}),"Send escalation warning when ",s,"% of TAT elapsed"]})]})]})})]})}const on=[{value:1,label:"Monday"},{value:2,label:"Tuesday"},{value:3,label:"Wednesday"},{value:4,label:"Thursday"},{value:5,label:"Friday"},{value:6,label:"Saturday"},{value:7,label:"Sunday"}];function S5({workStartHour:t,workEndHour:s,workStartDay:a,workEndDay:r,onWorkStartHourChange:n,onWorkEndHourChange:i,onWorkStartDayChange:l,onWorkEndDayChange:o}){var c,d,m;return e.jsxs(te,{className:"border-0 shadow-sm",children:[e.jsxs(ue,{className:"pb-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ut,{className:"w-5 h-5 text-re-green"}),e.jsx(he,{className:"text-base font-semibold",children:"Working Hours Configuration"})]}),e.jsx(Te,{className:"text-sm",children:"Define your organization's working hours and days for TAT calculations"})]}),e.jsxs(se,{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"work-start-hour",className:"text-sm font-medium",children:"Working Day Start Hour"}),e.jsx(Se,{id:"work-start-hour",type:"number",min:"0",max:"23",value:t,onChange:u=>n(parseInt(u.target.value)||9),className:"border-gray-200 focus:border-re-green focus:ring-2 focus:ring-re-green/20"}),e.jsxs("p",{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e.jsx(Ye,{className:"w-3 h-3"}),"24-hour format (0-23). Default: 9 AM"]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"work-end-hour",className:"text-sm font-medium",children:"Working Day End Hour"}),e.jsx(Se,{id:"work-end-hour",type:"number",min:"0",max:"23",value:s,onChange:u=>i(parseInt(u.target.value)||18),className:"border-gray-200 focus:border-re-green focus:ring-2 focus:ring-re-green/20"}),e.jsxs("p",{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e.jsx(Ye,{className:"w-3 h-3"}),"24-hour format (0-23). Default: 6 PM"]})]})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"work-start-day",className:"text-sm font-medium",children:"Working Week Start Day"}),e.jsxs(Be,{value:a.toString(),onValueChange:u=>l(parseInt(u)),children:[e.jsx(ze,{id:"work-start-day",className:"border-gray-200 focus:border-re-green focus:ring-2 focus:ring-re-green/20",children:e.jsx(Ve,{placeholder:"Select start day"})}),e.jsx(He,{children:on.map(u=>e.jsx(K,{value:u.value.toString(),children:u.label},u.value))})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Day when the working week starts (1=Monday, 7=Sunday)"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"work-end-day",className:"text-sm font-medium",children:"Working Week End Day"}),e.jsxs(Be,{value:r.toString(),onValueChange:u=>o(parseInt(u)),children:[e.jsx(ze,{id:"work-end-day",className:"border-gray-200 focus:border-re-green focus:ring-2 focus:ring-re-green/20",children:e.jsx(Ve,{placeholder:"Select end day"})}),e.jsx(He,{children:on.map(u=>e.jsx(K,{value:u.value.toString(),children:u.label},u.value))})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Day when the working week ends (1=Monday, 7=Sunday)"})]})]}),e.jsx("div",{className:"p-4 bg-blue-50 border border-blue-200 rounded-md",children:e.jsxs("p",{className:"text-sm text-blue-900",children:[e.jsx("strong",{children:"Current Configuration:"})," Working hours are from ",t,":00 to ",s,":00,",a===r?` ${(c=on.find(u=>u.value===a))==null?void 0:c.label} only`:` ${(d=on.find(u=>u.value===a))==null?void 0:d.label} to ${(m=on.find(u=>u.value===r))==null?void 0:m.label}`]})})]})]})}function T5(){const[t,s]=x.useState(!0),[a,r]=x.useState(!1),[n,i]=x.useState({expressHours:24,standardHours:72,reminderThreshold1:50,reminderThreshold2:75,workStartHour:9,workEndHour:18,workStartDay:1,workEndDay:5});x.useEffect(()=>{l()},[]);const l=async()=>{try{s(!0);const d=await Ui("TAT_SETTINGS"),m={};d.forEach(u=>{m[u.configKey]=u.configValue}),i({expressHours:parseInt(m.DEFAULT_TAT_EXPRESS_HOURS||"24"),standardHours:parseInt(m.DEFAULT_TAT_STANDARD_HOURS||"72"),reminderThreshold1:parseInt(m.TAT_REMINDER_THRESHOLD_1||"50"),reminderThreshold2:parseInt(m.TAT_REMINDER_THRESHOLD_2||"75"),workStartHour:parseInt(m.WORK_START_HOUR||"9"),workEndHour:parseInt(m.WORK_END_HOUR||"18"),workStartDay:parseInt(m.WORK_START_DAY||"1"),workEndDay:parseInt(m.WORK_END_DAY||"5")})}catch(d){console.error("Failed to load TAT configurations:",d),q.error("Failed to load TAT configurations")}finally{s(!1)}},o=async()=>{var d,m;try{r(!0),await Promise.all([bs("DEFAULT_TAT_EXPRESS_HOURS",n.expressHours.toString()),bs("DEFAULT_TAT_STANDARD_HOURS",n.standardHours.toString()),bs("TAT_REMINDER_THRESHOLD_1",n.reminderThreshold1.toString()),bs("TAT_REMINDER_THRESHOLD_2",n.reminderThreshold2.toString()),bs("WORK_START_HOUR",n.workStartHour.toString()),bs("WORK_END_HOUR",n.workEndHour.toString()),bs("WORK_START_DAY",n.workStartDay.toString()),bs("WORK_END_DAY",n.workEndDay.toString())]),q.success("TAT configuration saved successfully"),await l()}catch(u){console.error("Failed to save TAT configuration:",u),q.error(((m=(d=u.response)==null?void 0:d.data)==null?void 0:m.error)||"Failed to save TAT configuration")}finally{r(!1)}},c=d=>{i(m=>({...m,...d}))};return t?e.jsx(te,{className:"shadow-lg border-0 rounded-md",children:e.jsxs(se,{className:"p-12 text-center",children:[e.jsx(Je,{className:"w-8 h-8 animate-spin text-re-green mx-auto mb-4"}),e.jsx("p",{className:"text-sm text-gray-600",children:"Loading TAT configuration..."})]})}):e.jsxs(te,{className:"shadow-lg border-0 rounded-md",children:[e.jsx(ue,{className:"pb-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-gradient-to-br from-slate-600 to-slate-700 rounded-md shadow-md",children:e.jsx(Ye,{className:"h-5 w-5 text-white"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-lg font-semibold text-gray-900",children:"Turn Around Time (TAT) Configuration"}),e.jsx(Te,{className:"text-sm text-gray-600",children:"Set default TAT hours per priority level, working hours, and configure auto-escalation thresholds"})]})]})}),e.jsxs(se,{className:"space-y-6",children:[e.jsx(C5,{expressHours:n.expressHours,standardHours:n.standardHours,onExpressChange:d=>c({expressHours:d}),onStandardChange:d=>c({standardHours:d})}),e.jsx(Vt,{}),e.jsx(S5,{workStartHour:n.workStartHour,workEndHour:n.workEndHour,workStartDay:n.workStartDay,workEndDay:n.workEndDay,onWorkStartHourChange:d=>c({workStartHour:d}),onWorkEndHourChange:d=>c({workEndHour:d}),onWorkStartDayChange:d=>c({workStartDay:d}),onWorkEndDayChange:d=>c({workEndDay:d})}),e.jsx(Vt,{}),e.jsx(A5,{reminderThreshold1:n.reminderThreshold1,reminderThreshold2:n.reminderThreshold2,onReminderThreshold1Change:d=>c({reminderThreshold1:d}),onReminderThreshold2Change:d=>c({reminderThreshold2:d})}),e.jsx("div",{className:"flex justify-end pt-4",children:e.jsx(M,{onClick:o,disabled:a,className:"bg-re-green hover:bg-re-green/90 text-white shadow-md hover:shadow-lg transition-all disabled:opacity-50 disabled:cursor-not-allowed",children:a?e.jsxs(e.Fragment,{children:[e.jsx(Je,{className:"w-4 h-4 mr-2 animate-spin"}),"Saving..."]}):e.jsxs(e.Fragment,{children:[e.jsx(Wa,{className:"w-4 h-4 mr-2"}),"Save TAT Settings"]})})})]})]})}function k5({emailNotifications:t,inAppNotifications:s,autoReminders:a,onEmailNotificationsChange:r,onInAppNotificationsChange:n,onAutoRemindersChange:i}){return e.jsxs("div",{className:"space-y-3",children:[e.jsx("h4",{className:"font-medium",children:"Notification Channels"}),e.jsxs("div",{className:"flex items-center justify-between p-4 bg-muted/50 rounded-lg",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:"Email Notifications"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Send notifications via email"})]}),e.jsx(ws,{checked:t,onCheckedChange:r})]}),e.jsxs("div",{className:"flex items-center justify-between p-4 bg-muted/50 rounded-lg",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:"In-App Notifications"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Show notifications in the portal"})]}),e.jsx(ws,{checked:s,onCheckedChange:n})]}),e.jsxs("div",{className:"flex items-center justify-between p-4 bg-muted/50 rounded-lg",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:"Auto-Reminders"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Automatically send reminders for pending approvals"})]}),e.jsx(ws,{checked:a,onCheckedChange:i})]})]})}function R5({notificationFrequency:t,reminderFrequency:s,onNotificationFrequencyChange:a,onReminderFrequencyChange:r}){return e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"notification-frequency",children:"Notification Frequency"}),e.jsxs(Be,{value:t,onValueChange:a,children:[e.jsx(ze,{id:"notification-frequency",children:e.jsx(Ve,{placeholder:"Select frequency"})}),e.jsxs(He,{children:[e.jsx(K,{value:"Immediate",children:"Immediate"}),e.jsx(K,{value:"Hourly",children:"Hourly"}),e.jsx(K,{value:"Daily",children:"Daily"}),e.jsx(K,{value:"Weekly",children:"Weekly"})]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"reminder-frequency",children:"Reminder Frequency (hours)"}),e.jsx(Se,{id:"reminder-frequency",type:"number",min:"1",max:"168",value:s,onChange:n=>r(parseInt(n.target.value)||12)})]})]})}function D5({emailTemplate:t,onEmailTemplateChange:s}){return e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"email-template",children:"Email Template Message"}),e.jsx(ps,{id:"email-template",rows:5,value:t,onChange:a=>s(a.target.value),className:"resize-none",placeholder:"Enter email template message..."}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Use placeholders: [Name], [Request ID], [TAT], [Status]"})]})}function P5(){const[t,s]=x.useState({emailNotifications:!0,inAppNotifications:!0,autoReminders:!0,notificationFrequency:"Immediate",reminderFrequency:12,emailTemplate:"Dear [Name], You have a pending approval request [Request ID] that requires your attention. TAT remaining: [TAT]. Please review at your earliest convenience."}),a=()=>{q.success("Notification configuration saved successfully")},r=n=>{s(i=>({...i,...n}))};return e.jsxs(te,{children:[e.jsxs(ue,{children:[e.jsx(he,{children:"Notification Configuration"}),e.jsx(Te,{children:"Configure notification channels, frequency, and message templates"})]}),e.jsxs(se,{className:"space-y-6",children:[e.jsx(k5,{emailNotifications:t.emailNotifications,inAppNotifications:t.inAppNotifications,autoReminders:t.autoReminders,onEmailNotificationsChange:n=>r({emailNotifications:n}),onInAppNotificationsChange:n=>r({inAppNotifications:n}),onAutoRemindersChange:n=>r({autoReminders:n})}),e.jsx(Vt,{}),e.jsx(R5,{notificationFrequency:t.notificationFrequency,reminderFrequency:t.reminderFrequency,onNotificationFrequencyChange:n=>r({notificationFrequency:n}),onReminderFrequencyChange:n=>r({reminderFrequency:n})}),e.jsx(D5,{emailTemplate:t.emailTemplate,onEmailTemplateChange:n=>r({emailTemplate:n})}),e.jsxs(M,{onClick:a,className:"bg-re-green hover:bg-re-green/90",children:[e.jsx(Wa,{className:"w-4 h-4 mr-2"}),"Save Notification Settings"]})]})]})}function I5({maxFileSizeMB:t,retentionDays:s,onMaxFileSizeChange:a,onRetentionDaysChange:r}){const n=Math.round(s/365*10)/10;return e.jsxs(te,{className:"border-0 shadow-sm",children:[e.jsxs(ue,{className:"pb-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ps,{className:"w-5 h-5 text-re-green"}),e.jsx(he,{className:"text-base font-semibold",children:"Upload & Retention Settings"})]}),e.jsx(Te,{className:"text-sm",children:"Configure file size limits and document retention period"})]}),e.jsx(se,{children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"max-upload",className:"text-sm font-medium",children:"Maximum Upload Size (MB)"}),e.jsx(Se,{id:"max-upload",type:"number",min:"1",max:"100",value:t,onChange:i=>a(parseInt(i.target.value)||10),className:"border-gray-200 focus:border-re-green focus:ring-2 focus:ring-re-green/20"}),e.jsxs("p",{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e.jsx(Ps,{className:"w-3 h-3"}),"Maximum allowed file size for document uploads"]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"retention",className:"text-sm font-medium",children:"Retention Period (Days)"}),e.jsx(Se,{id:"retention",type:"number",min:"30",max:"3650",value:s,onChange:i=>r(parseInt(i.target.value)||365),className:"border-gray-200 focus:border-re-green focus:ring-2 focus:ring-re-green/20"}),e.jsxs("p",{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e.jsx(Pi,{className:"w-3 h-3"}),"Days to retain documents after workflow closure (",n," years)"]})]})]})})]})}const E5=[{label:"PDF Documents",extensions:["pdf"]},{label:"Microsoft Word",extensions:["doc","docx"]},{label:"Microsoft Excel",extensions:["xls","xlsx"]},{label:"Microsoft PowerPoint",extensions:["ppt","pptx"]},{label:"Images",extensions:["jpg","jpeg","png","gif","bmp","webp"]},{label:"CSV Files",extensions:["csv"]},{label:"Text Files",extensions:["txt","rtf"]}];function M5({allowedFileTypes:t,onAllowedFileTypesChange:s}){const a=t.split(",").map(l=>l.trim().toLowerCase()),r=(l,o)=>{const c=new Set(a);o?l.forEach(d=>c.add(d)):l.forEach(d=>c.delete(d)),s(Array.from(c).join(","))},n=l=>l.some(o=>a.includes(o)),i=l=>{s(l)};return e.jsxs(te,{className:"border-0 shadow-sm",children:[e.jsxs(ue,{className:"pb-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(yo,{className:"w-5 h-5 text-re-green"}),e.jsx(he,{className:"text-base font-semibold",children:"Allowed File Types"})]}),e.jsx(Te,{className:"text-sm",children:"Select which file types are allowed for upload"})]}),e.jsxs(se,{className:"space-y-4",children:[e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:E5.map(l=>{const o=n(l.extensions);return e.jsxs("div",{onClick:()=>r(l.extensions,!o),className:`flex items-center justify-between p-3 rounded-md border-2 cursor-pointer transition-all ${o?"bg-re-green/5 border-re-green/30 hover:border-re-green/50":"bg-gray-50 border-gray-200 hover:border-gray-300"}`,children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:`w-4 h-4 rounded border-2 flex items-center justify-center ${o?"bg-re-green border-re-green":"bg-white border-gray-300"}`,children:o&&e.jsx("svg",{className:"w-3 h-3 text-white",fill:"currentColor",viewBox:"0 0 20 20",children:e.jsx("path",{fillRule:"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",clipRule:"evenodd"})})}),e.jsx("span",{className:`text-sm font-medium ${o?"text-re-green":"text-gray-600"}`,children:l.label})]}),e.jsx("span",{className:"text-xs text-muted-foreground",children:l.extensions.join(", ")})]},l.label)})}),e.jsxs("div",{className:"space-y-2 pt-2",children:[e.jsx(re,{htmlFor:"file-types-manual",className:"text-sm font-medium",children:"File Extensions (comma-separated)"}),e.jsx(Se,{id:"file-types-manual",type:"text",value:t,onChange:l=>i(l.target.value),placeholder:"pdf,doc,docx,xls,xlsx,ppt,pptx,jpg,jpeg,png,gif",className:"border-gray-200 focus:border-re-green focus:ring-2 focus:ring-re-green/20 font-mono text-sm"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Edit directly or use the checkboxes above. Separate extensions with commas."})]})]})]})}function F5(){const[t,s]=x.useState(!0),[a,r]=x.useState(!1),[n,i]=x.useState({maxFileSizeMB:10,retentionDays:365,allowedFileTypes:"pdf,doc,docx,xls,xlsx,ppt,pptx,jpg,jpeg,png,gif"});x.useEffect(()=>{l()},[]);const l=async()=>{try{s(!0);const d=await Ui("DOCUMENT_POLICY"),m={};d.forEach(u=>{m[u.configKey]=u.configValue}),i({maxFileSizeMB:parseInt(m.MAX_FILE_SIZE_MB||"10"),retentionDays:parseInt(m.DOCUMENT_RETENTION_DAYS||"365"),allowedFileTypes:m.ALLOWED_FILE_TYPES||"pdf,doc,docx,xls,xlsx,ppt,pptx,jpg,jpeg,png,gif"})}catch(d){console.error("Failed to load document configurations:",d),q.error("Failed to load document configurations")}finally{s(!1)}},o=async()=>{var d,m;try{r(!0),await Promise.all([bs("MAX_FILE_SIZE_MB",n.maxFileSizeMB.toString()),bs("DOCUMENT_RETENTION_DAYS",n.retentionDays.toString()),bs("ALLOWED_FILE_TYPES",n.allowedFileTypes)]),q.success("Document policy saved successfully"),await l()}catch(u){console.error("Failed to save document configuration:",u),q.error(((m=(d=u.response)==null?void 0:d.data)==null?void 0:m.error)||"Failed to save document configuration")}finally{r(!1)}},c=d=>{i(m=>({...m,...d}))};return t?e.jsx(te,{className:"shadow-lg border-0 rounded-md",children:e.jsxs(se,{className:"p-12 text-center",children:[e.jsx(Je,{className:"w-8 h-8 animate-spin text-re-green mx-auto mb-4"}),e.jsx("p",{className:"text-sm text-gray-600",children:"Loading document policy configuration..."})]})}):e.jsxs(te,{className:"shadow-lg border-0 rounded-md",children:[e.jsx(ue,{className:"pb-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-gradient-to-br from-slate-600 to-slate-700 rounded-md shadow-md",children:e.jsx(_e,{className:"h-5 w-5 text-white"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-lg font-semibold text-gray-900",children:"Document Upload Policy"}),e.jsx(Te,{className:"text-sm text-gray-600",children:"Configure file upload limits, allowed types, and retention policies"})]})]})}),e.jsxs(se,{className:"space-y-6",children:[e.jsx(I5,{maxFileSizeMB:n.maxFileSizeMB,retentionDays:n.retentionDays,onMaxFileSizeChange:d=>c({maxFileSizeMB:d}),onRetentionDaysChange:d=>c({retentionDays:d})}),e.jsx(Vt,{}),e.jsx(M5,{allowedFileTypes:n.allowedFileTypes,onAllowedFileTypesChange:d=>c({allowedFileTypes:d})}),e.jsx("div",{className:"flex justify-end pt-4",children:e.jsx(M,{onClick:o,disabled:a,className:"bg-re-green hover:bg-re-green/90 text-white shadow-md hover:shadow-lg transition-all disabled:opacity-50 disabled:cursor-not-allowed",children:a?e.jsxs(e.Fragment,{children:[e.jsx(Je,{className:"w-4 h-4 mr-2 animate-spin"}),"Saving..."]}):e.jsxs(e.Fragment,{children:[e.jsx(Wa,{className:"w-4 h-4 mr-2"}),"Save Document Policy"]})})})]})]})}function _5(){return e.jsx("div",{className:"p-4 bg-blue-50 border border-blue-200 rounded-lg",children:e.jsxs("p",{className:"text-sm text-blue-800",children:[e.jsx("strong",{children:"Note:"})," These settings control what information is visible to each role on their dashboard. Admins always have access to all metrics."]})})}const L5=["Total Requests","Open Requests","Approved Requests","Rejected Requests","My Pending Actions","TAT Compliance","Delayed Workflows","Average Cycle Time"],O5=t=>{switch(t){case"Initiator":return"bg-blue-100 text-blue-800";case"Approver":return"bg-green-100 text-green-800";case"Spectator":return"bg-gray-100 text-gray-800";default:return"bg-gray-100 text-gray-800"}};function $5({role:t,kpis:s,onKPIToggle:a}){return e.jsxs("div",{className:"space-y-3",children:[e.jsx("h4",{className:"font-medium flex items-center gap-2",children:e.jsxs(le,{className:O5(t),children:[t," Dashboard"]})}),e.jsx("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-2 ml-4",children:L5.map(r=>e.jsxs("div",{className:"flex items-center space-x-2 p-2 bg-muted/50 rounded",children:[e.jsx(hc,{id:`${t.toLowerCase()}-${r}`,checked:s[r]||!1,onCheckedChange:n=>a(r,n===!0)}),e.jsx("label",{htmlFor:`${t.toLowerCase()}-${r}`,className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer",children:r})]},r))})]})}function U5(){const[t,s]=x.useState({Initiator:{"Total Requests":!0,"Open Requests":!0,"Approved Requests":!0,"Rejected Requests":!0,"My Pending Actions":!0,"TAT Compliance":!0,"Delayed Workflows":!0,"Average Cycle Time":!0},Approver:{"Total Requests":!0,"Open Requests":!0,"Approved Requests":!0,"Rejected Requests":!0,"My Pending Actions":!0,"TAT Compliance":!0,"Delayed Workflows":!0,"Average Cycle Time":!0},Spectator:{"Total Requests":!0,"Open Requests":!0,"Approved Requests":!0,"Rejected Requests":!0,"My Pending Actions":!0,"TAT Compliance":!0,"Delayed Workflows":!0,"Average Cycle Time":!0}}),a=()=>{q.success("Dashboard layout saved successfully")},r=(i,l,o)=>{s(c=>({...c,[i]:{...c[i],[l]:o}}))},n=["Initiator","Approver","Spectator"];return e.jsxs(te,{children:[e.jsxs(ue,{children:[e.jsx(he,{children:"Dashboard Layout Configuration"}),e.jsx(Te,{children:"Control which KPI cards are visible for each user role"})]}),e.jsxs(se,{className:"space-y-4",children:[e.jsx(_5,{}),e.jsx("div",{className:"space-y-6",children:n.map(i=>e.jsx($5,{role:i,kpis:t[i]||{},onKPIToggle:(l,o)=>r(i,l,o)},i))}),e.jsxs(M,{onClick:a,className:"bg-re-green hover:bg-re-green/90",children:[e.jsx(Wa,{className:"w-4 h-4 mr-2"}),"Save Dashboard Layout"]})]})]})}function B5({aiEnabled:t,onAiEnabledChange:s}){return e.jsxs(te,{className:"border-0 shadow-sm",children:[e.jsxs(ue,{className:"pb-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ou,{className:"w-5 h-5 text-re-green"}),e.jsx(he,{className:"text-base font-semibold",children:"Vertex AI Gemini Configuration"})]}),e.jsx(Te,{className:"text-sm",children:"Configure AI features. Model and region are configured via environment variables."})]}),e.jsx(se,{className:"space-y-4",children:e.jsxs("div",{className:"flex items-center justify-between p-4 bg-gray-50 border border-gray-200 rounded-md",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-sm",children:"Enable AI Features"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Master toggle to enable/disable all AI-powered features"})]}),e.jsx(ws,{checked:t,onCheckedChange:s})]})})]})}function V5({aiRemarkGeneration:t,onRemarkGenerationChange:s}){return e.jsxs(te,{className:"border-0 shadow-sm",children:[e.jsxs(ue,{className:"pb-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(wi,{className:"w-5 h-5 text-re-green"}),e.jsx(he,{className:"text-base font-semibold",children:"AI Features"})]}),e.jsx(Te,{className:"text-sm",children:"Enable/disable specific AI-powered features"})]}),e.jsx(se,{children:e.jsx("div",{className:"space-y-4",children:e.jsxs("div",{className:"flex items-center justify-between p-4 bg-gray-50 border border-gray-200 rounded-md hover:bg-gray-100 transition-colors",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-sm",children:"AI Remark Generation"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Automatically generate conclusion remarks for workflow closures"})]}),e.jsx(ws,{checked:t,onCheckedChange:s})]})})})]})}function z5({maxRemarkChars:t,onMaxRemarkCharsChange:s}){return e.jsxs(te,{className:"border-0 shadow-sm",children:[e.jsxs(ue,{className:"pb-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Lu,{className:"w-5 h-5 text-re-green"}),e.jsx(he,{className:"text-base font-semibold",children:"AI Parameters"})]}),e.jsx(Te,{className:"text-sm",children:"Configure AI generation parameters"})]}),e.jsx(se,{children:e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"max-remark-chars",className:"text-sm font-medium",children:"Maximum Remark Length"}),e.jsx(Se,{id:"max-remark-chars",type:"number",min:"500",max:"5000",value:t,onChange:a=>s(parseInt(a.target.value)||2e3),className:"border-gray-200 focus:border-re-green focus:ring-2 focus:ring-re-green/20"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Maximum character length for AI-generated conclusion remarks (500-5000 characters)"})]})})]})}function H5(){const[t,s]=x.useState(!0),[a,r]=x.useState(!1),[n,i]=x.useState({aiEnabled:!0,aiRemarkGeneration:!0,maxRemarkChars:2e3});x.useEffect(()=>{l()},[]);const l=async()=>{try{s(!0);const d=await Ui("AI_CONFIGURATION"),m={};d.forEach(u=>{m[u.configKey]=u.configValue}),i({aiEnabled:m.AI_ENABLED==="true",aiRemarkGeneration:m.AI_REMARK_GENERATION_ENABLED==="true",maxRemarkChars:parseInt(m.AI_MAX_REMARK_LENGTH||"2000")})}catch(d){console.error("Failed to load AI configurations:",d),q.error("Failed to load AI configurations")}finally{s(!1)}},o=async()=>{var d,m;try{r(!0),await Promise.all([bs("AI_ENABLED",n.aiEnabled.toString()),bs("AI_REMARK_GENERATION_ENABLED",n.aiRemarkGeneration.toString()),bs("AI_MAX_REMARK_LENGTH",n.maxRemarkChars.toString())]),q.success("AI configuration saved successfully"),await l()}catch(u){console.error("Failed to save AI configuration:",u),q.error(((m=(d=u.response)==null?void 0:d.data)==null?void 0:m.error)||"Failed to save AI configuration")}finally{r(!1)}},c=d=>{i(m=>({...m,...d}))};return t?e.jsx(te,{className:"shadow-lg border-0 rounded-md",children:e.jsxs(se,{className:"p-12 text-center",children:[e.jsx(Je,{className:"w-8 h-8 animate-spin text-re-green mx-auto mb-4"}),e.jsx("p",{className:"text-sm text-gray-600",children:"Loading AI configuration..."})]})}):e.jsxs(te,{className:"shadow-lg border-0 rounded-md",children:[e.jsx(ue,{className:"pb-4",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"p-3 bg-gradient-to-br from-slate-600 to-slate-700 rounded-md shadow-md",children:e.jsx(wi,{className:"h-5 w-5 text-white"})}),e.jsxs("div",{children:[e.jsx(he,{className:"text-lg font-semibold text-gray-900",children:"AI Features Configuration"}),e.jsx(Te,{className:"text-sm text-gray-600",children:"Configure Vertex AI Gemini settings and enable/disable AI-powered features"})]})]})}),e.jsxs(se,{className:"space-y-6",children:[e.jsx(B5,{aiEnabled:n.aiEnabled,onAiEnabledChange:d=>c({aiEnabled:d})}),e.jsx(Vt,{}),e.jsx(V5,{aiRemarkGeneration:n.aiRemarkGeneration,onRemarkGenerationChange:d=>c({aiRemarkGeneration:d})}),e.jsx(Vt,{}),e.jsx(z5,{maxRemarkChars:n.maxRemarkChars,onMaxRemarkCharsChange:d=>c({maxRemarkChars:d})}),e.jsx("div",{className:"flex justify-end pt-4",children:e.jsx(M,{onClick:o,disabled:a,className:"bg-re-green hover:bg-re-green/90 text-white shadow-md hover:shadow-lg transition-all disabled:opacity-50 disabled:cursor-not-allowed",children:a?e.jsxs(e.Fragment,{children:[e.jsx(Je,{className:"w-4 h-4 mr-2 animate-spin"}),"Saving..."]}):e.jsxs(e.Fragment,{children:[e.jsx(Wa,{className:"w-4 h-4 mr-2"}),"Save AI Configuration"]})})})]})]})}const iu=["Admin Only","Initiator Only","Approver Only","Initiator & Approver","Admin & Initiator","Admin & Approver","All Roles"];function W5({spectatorPermission:t,linkSharingPermission:s,onSpectatorPermissionChange:a,onLinkSharingPermissionChange:r}){return e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"spectator-permission",children:"Spectator Addition Permission"}),e.jsxs(Be,{value:t,onValueChange:a,children:[e.jsx(ze,{id:"spectator-permission",children:e.jsx(Ve,{placeholder:"Select permission"})}),e.jsx(He,{children:iu.map(n=>e.jsx(K,{value:n,children:n},n))})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"link-sharing-permission",children:"Link Sharing Permission"}),e.jsxs(Be,{value:s,onValueChange:r,children:[e.jsx(ze,{id:"link-sharing-permission",children:e.jsx(Ve,{placeholder:"Select permission"})}),e.jsx(He,{children:iu.map(n=>e.jsx(K,{value:n,children:n},n))})]})]})]})}function G5({requirePassword:t,allowExternalSharing:s,onRequirePasswordChange:a,onAllowExternalSharingChange:r}){return e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between p-4 bg-muted/50 rounded-lg",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:"Require Password for Shared Links"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Add password protection to workflow sharing links"})]}),e.jsx(ws,{checked:t,onCheckedChange:a})]}),e.jsxs("div",{className:"flex items-center justify-between p-4 bg-muted/50 rounded-lg",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:"Allow External Sharing"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Enable sharing workflows with external users outside the organization"})]}),e.jsx(ws,{checked:s,onCheckedChange:r})]})]})}function K5(){const[t,s]=x.useState({spectatorPermission:"Initiator & Approver",linkSharingPermission:"Admin & Initiator",requirePassword:!0,allowExternalSharing:!1}),a=()=>{q.success("Sharing policy saved successfully")},r=n=>{s(i=>({...i,...n}))};return e.jsxs(te,{children:[e.jsxs(ue,{children:[e.jsx(he,{children:"Workflow Sharing Policy"}),e.jsx(Te,{children:"Control who can add spectators and share workflow links"})]}),e.jsxs(se,{className:"space-y-6",children:[e.jsx(W5,{spectatorPermission:t.spectatorPermission,linkSharingPermission:t.linkSharingPermission,onSpectatorPermissionChange:n=>r({spectatorPermission:n}),onLinkSharingPermissionChange:n=>r({linkSharingPermission:n})}),e.jsx(Vt,{}),e.jsx(G5,{requirePassword:t.requirePassword,allowExternalSharing:t.allowExternalSharing,onRequirePasswordChange:n=>r({requirePassword:n}),onAllowExternalSharingChange:n=>r({allowExternalSharing:n})}),e.jsxs(M,{onClick:a,className:"bg-re-green hover:bg-re-green/90",children:[e.jsx(Wa,{className:"w-4 h-4 mr-2"}),"Save Sharing Policy"]})]})]})}function Y5(){const{user:t}=Zt(),[s,a]=x.useState(""),[r,n]=x.useState("sharing"),i=[{name:"Request Volume & Status",count:4,kpis:[{id:"total-requests",title:"Total Requests Created",description:"Count of all workflow requests created in a selected period.",value:5,change:12,changeType:"up",period:"Month",visibleTo:["Initiator","Management","Admin"],category:"Request Volume & Status",bgColor:"bg-blue-50",borderColor:"border-blue-200"},{id:"open-requests",title:"Open Requests",description:"Number of workflows currently in progress with age.",value:3,change:-5,changeType:"down",period:"Today",visibleTo:["Initiator","Management","Admin"],category:"Request Volume & Status",bgColor:"bg-blue-50",borderColor:"border-blue-200"},{id:"approved-requests",title:"Approved Requests",description:"Requests fully approved and closed.",value:1,change:8,changeType:"up",period:"Month",visibleTo:["Initiator","Management","Admin"],category:"Request Volume & Status",bgColor:"bg-blue-50",borderColor:"border-blue-200"},{id:"rejected-requests",title:"Rejected Requests",description:"Requests rejected at any approval stage.",value:1,period:"Month",visibleTo:["Initiator","Management","Admin"],category:"Request Volume & Status",bgColor:"bg-blue-50",borderColor:"border-blue-200"}]},{name:"TAT Efficiency",count:3,kpis:[{id:"avg-tat-compliance",title:"Average TAT Compliance %",description:"% of workflows completed within defined TAT vs breached ones at every level.",value:100,unit:"%",change:3,changeType:"up",period:"Month",visibleTo:["Initiator","Management","Admin"],category:"TAT Efficiency",bgColor:"bg-green-50",borderColor:"border-green-200"},{id:"avg-approval-cycle",title:"Avg Approval Cycle Time (Days)",description:"Average total time from creation to closure.",value:5.2,unit:" days",change:-15,changeType:"down",period:"Month",visibleTo:["Initiator","Management","Admin"],category:"TAT Efficiency",bgColor:"bg-green-50",borderColor:"border-green-200",thresholdBreached:!0},{id:"delayed-workflows",title:"Delayed Workflows",description:"Requests currently breaching their TAT.",value:0,change:-2,changeType:"down",period:"Today",visibleTo:["Initiator","Management","Admin"],category:"TAT Efficiency",bgColor:"bg-green-50",borderColor:"border-green-200"}]},{name:"Approver Load",count:2,kpis:[{id:"pending-actions",title:"Pending Actions (My Queue)",description:"Requests currently awaiting user's approval with age.",value:3,period:"Today",visibleTo:["Management","Admin"],category:"Approver Load",bgColor:"bg-orange-50",borderColor:"border-orange-200"},{id:"approvals-completed",title:"Approvals Completed (Today/Week)",description:"Count of actions taken within a time frame.",value:0,change:22,changeType:"up",period:"Week",visibleTo:["Management","Admin"],category:"Approver Load",bgColor:"bg-orange-50",borderColor:"border-orange-200"}]},{name:"Engagement & Quality",count:2,kpis:[{id:"comments-worknotes",title:"Comments / Work Notes Added",description:"Measures collaboration activity.",value:8,change:18,changeType:"up",period:"Week",visibleTo:["Management","Admin"],category:"Engagement & Quality",bgColor:"bg-purple-50",borderColor:"border-purple-200"},{id:"attachments-uploaded",title:"Attachments Uploaded",description:"Number of documents added to workflows.",value:16,change:10,changeType:"up",period:"Month",visibleTo:["Initiator","Management","Admin"],category:"Engagement & Quality",bgColor:"bg-purple-50",borderColor:"border-purple-200"}]},{name:"AI & Closure Insights",count:2,kpis:[{id:"avg-conclusion-length",title:"Avg Conclusion Remark Length",description:"Indicates depth of closure remarks (optional).",value:85,unit:" chars",change:5,changeType:"up",period:"Month",visibleTo:["Management","Admin"],category:"AI & Closure Insights",bgColor:"bg-pink-50",borderColor:"border-pink-200"},{id:"ai-summary-adoption",title:"AI Summary Adoption %",description:"How many closures used AI-generated text vs manual edits.",value:0,unit:"%",change:25,changeType:"up",period:"Month",visibleTo:["Management","Admin"],category:"AI & Closure Insights",bgColor:"bg-pink-50",borderColor:"border-pink-200"}]}],l=i.map(d=>({...d,kpis:d.kpis.filter(m=>m.title.toLowerCase().includes(s.toLowerCase())||m.description.toLowerCase().includes(s.toLowerCase())||m.category.toLowerCase().includes(s.toLowerCase()))})).filter(d=>d.kpis.length>0),o=i.reduce((d,m)=>d+m.count,0),c=d=>{switch(d){case"Initiator":return"bg-blue-100 text-blue-800 border-blue-200";case"Management":return"bg-orange-100 text-orange-800 border-orange-200";case"Admin":return"bg-purple-100 text-purple-800 border-purple-200";default:return"bg-gray-100 text-gray-800 border-gray-200"}};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsxs("h1",{className:"text-re-black flex items-center gap-2",children:[e.jsx(ss,{className:"w-8 h-8 text-re-green"}),"Admin Control Panel"]}),e.jsx("p",{className:"text-muted-foreground",children:"Manage users, configure system settings, and control portal behavior"})]}),e.jsxs(le,{className:"bg-re-green/10 text-re-green border-re-green/20 px-4 py-2",children:[e.jsx(ss,{className:"w-4 h-4 mr-2"}),"Administrator: ",(t==null?void 0:t.displayName)||"Admin User"]})]}),e.jsx(Vt,{}),e.jsxs(Vr,{value:r,onValueChange:n,className:"flex flex-col gap-2 space-y-4",children:[e.jsxs(zr,{className:"text-muted-foreground items-center justify-center rounded-xl p-[3px] bg-muted grid w-full grid-cols-9 h-auto",children:[e.jsxs(vt,{value:"kpi",className:"flex items-center gap-2",children:[e.jsx(ci,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:"KPI Config"})]}),e.jsxs(vt,{value:"analytics",className:"flex items-center gap-2",children:[e.jsx(Bs,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Analytics"})]}),e.jsxs(vt,{value:"users",className:"flex items-center gap-2",children:[e.jsx(Mt,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Users"})]}),e.jsxs(vt,{value:"tat",className:"flex items-center gap-2",children:[e.jsx(Ye,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:"TAT"})]}),e.jsxs(vt,{value:"notifications",className:"flex items-center gap-2",children:[e.jsx(js,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Notify"})]}),e.jsxs(vt,{value:"documents",className:"flex items-center gap-2",children:[e.jsx(_e,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Docs"})]}),e.jsxs(vt,{value:"dashboard",className:"flex items-center gap-2",children:[e.jsx(Qf,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Dashboard"})]}),e.jsxs(vt,{value:"ai",className:"flex items-center gap-2",children:[e.jsx(Ou,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:"AI"})]}),e.jsxs(vt,{value:"sharing",className:"flex items-center gap-2",children:[e.jsx(Mr,{className:"w-4 h-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Sharing"})]})]}),e.jsx(bt,{value:"kpi",className:"flex-1 outline-none space-y-4",children:e.jsxs(te,{children:[e.jsx(ue,{children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx(he,{children:"KPI Configuration"}),e.jsx(Te,{children:"Configure which KPIs are enabled, visible to specific roles, and set alert thresholds"})]}),e.jsxs(le,{className:"bg-blue-50 text-blue-700",children:[o," / ",o," KPIs Active"]})]})}),e.jsxs(se,{className:"space-y-6",children:[e.jsx("div",{className:"flex items-center gap-2",children:e.jsxs("div",{className:"relative flex-1",children:[e.jsx(vs,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 w-4 h-4 text-muted-foreground"}),e.jsx(Se,{placeholder:"Search KPIs by name, description, or category...",value:s,onChange:d=>a(d.target.value),className:"pl-10"})]})}),e.jsx("div",{className:"grid grid-cols-2 md:grid-cols-5 gap-4",children:i.map(d=>e.jsxs("div",{className:"p-4 bg-muted/50 rounded-lg",children:[e.jsx("p",{className:"text-xs text-muted-foreground",children:d.name}),e.jsx("p",{className:"text-2xl font-semibold",children:d.count})]},d.name))}),l.map(d=>e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Gt,{className:"w-5 h-5 text-re-green"}),e.jsx("h3",{className:"font-semibold",children:d.name}),e.jsxs(le,{variant:"outline",className:"ml-auto",children:[d.kpis.length," Active"]})]}),e.jsx("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-3",children:d.kpis.map(m=>e.jsx("div",{className:`p-4 border rounded-lg ${m.bgColor} ${m.borderColor} transition-all hover:shadow-md ${m.thresholdBreached?"ring-2 ring-orange-500":""}`,children:e.jsx("div",{className:"flex items-start justify-between gap-4",children:e.jsxs("div",{className:"flex-1 space-y-3",children:[e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsxs("div",{className:"flex-1",children:[e.jsx("h4",{className:"font-medium text-sm mb-1",children:m.title}),e.jsx("p",{className:"text-xs text-muted-foreground line-clamp-1",children:m.description})]}),e.jsx(le,{className:"bg-green-100 text-green-800 text-xs",children:"Active"})]}),e.jsxs("div",{className:"flex items-end gap-3 py-2",children:[e.jsx("div",{children:e.jsxs("div",{className:"flex items-baseline gap-1",children:[e.jsx("span",{className:"text-4xl font-bold text-re-black",children:m.value}),m.unit&&e.jsx("span",{className:"text-lg text-muted-foreground",children:m.unit})]})}),m.change!==void 0&&e.jsxs("div",{className:`flex items-center gap-1 text-xs px-2 py-1 rounded ${m.changeType==="up"?"bg-green-100 text-green-700":"bg-red-100 text-red-700"}`,children:[m.changeType==="up"?e.jsx(Jf,{className:"w-3 h-3"}):e.jsx(qf,{className:"w-3 h-3"}),e.jsxs("span",{className:"font-semibold",children:[Math.abs(m.change),"%"]})]})]}),e.jsxs("div",{className:"space-y-2 pt-2 border-t",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[e.jsx("span",{className:"text-xs text-muted-foreground",children:"Visible:"}),m.visibleTo.map(u=>e.jsx(le,{className:`${c(u)} text-xs px-1.5 py-0`,children:u},u))]}),e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsxs("span",{className:"text-muted-foreground",children:["Period: ",m.period]}),m.thresholdBreached&&e.jsxs("div",{className:"flex items-center gap-1 text-orange-600",children:[e.jsx(Ge,{className:"w-3 h-3"}),e.jsx("span",{className:"font-medium",children:"Threshold Breached!"})]})]})]})]})})},m.id))})]},d.name))]})]})}),e.jsx(bt,{value:"analytics",className:"flex-1 outline-none space-y-4",children:e.jsx(f5,{})}),e.jsx(bt,{value:"users",className:"flex-1 outline-none space-y-4",children:e.jsx(w5,{})}),e.jsx(bt,{value:"tat",className:"flex-1 outline-none space-y-4",children:e.jsx(T5,{})}),e.jsx(bt,{value:"notifications",className:"flex-1 outline-none space-y-4",children:e.jsx(P5,{})}),e.jsx(bt,{value:"documents",className:"flex-1 outline-none space-y-4",children:e.jsx(F5,{})}),e.jsx(bt,{value:"dashboard",className:"flex-1 outline-none space-y-4",children:e.jsx(U5,{})}),e.jsx(bt,{value:"ai",className:"flex-1 outline-none space-y-4",children:e.jsx(H5,{})}),e.jsx(bt,{value:"sharing",className:"flex-1 outline-none space-y-4",children:e.jsx(K5,{})})]})]})}function Z5({isOpen:t,onClose:s,action:a,requestId:r,requestTitle:n,onSubmit:i}){const[l,o]=x.useState(""),[c,d]=x.useState(!1),m=async()=>{if(!(!l.trim()||l.length>500)){d(!0);try{await i(a,l.trim()),o(""),s()}catch(y){console.error("Error submitting approval action:",y)}finally{d(!1)}}},u=()=>{o(""),s()},g=a==="approve"?{title:"Approve Request",description:"Please provide your approval comments and remarks",icon:Ce,iconColor:"text-green-600",buttonColor:"bg-green-600 hover:bg-green-700",badgeColor:"bg-green-100 text-green-800 border-green-200",placeholder:"Enter your approval comments and any conditions or notes..."}:{title:"Reject Request",description:"Please provide detailed reasons for rejection",icon:gt,iconColor:"text-red-600",buttonColor:"bg-red-600 hover:bg-red-700",badgeColor:"bg-red-100 text-red-800 border-red-200",placeholder:"Enter detailed reasons for rejection and any suggestions for improvement..."},p=g.icon;return e.jsx(ct,{open:t,onOpenChange:u,children:e.jsxs(lt,{className:"max-w-2xl bg-white",children:[e.jsxs(dt,{children:[e.jsxs("div",{className:"flex items-center gap-3 mb-2",children:[e.jsx("div",{className:`p-2 rounded-lg ${a==="approve"?"bg-green-100":"bg-red-100"}`,children:e.jsx(p,{className:`w-6 h-6 ${g.iconColor}`})}),e.jsxs("div",{className:"flex-1",children:[e.jsx(ot,{className:"text-xl",children:g.title}),e.jsx(Lt,{className:"mt-1",children:g.description})]})]}),e.jsxs("div",{className:"space-y-3 p-4 bg-gray-50 rounded-lg border",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"font-medium text-gray-900",children:"Request ID:"}),e.jsx(le,{variant:"outline",className:"font-mono",children:r})]}),e.jsxs("div",{children:[e.jsx("span",{className:"font-medium text-gray-900",children:"Title:"}),e.jsx("p",{className:"text-gray-700 mt-1",children:n})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-medium text-gray-900",children:"Action:"}),e.jsxs(le,{className:g.badgeColor,variant:"outline",children:[e.jsx(p,{className:"w-3 h-3 mr-1"}),a==="approve"?"APPROVE":"REJECT"]})]})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(re,{htmlFor:"comment",className:"text-sm font-semibold text-gray-900",children:"Comments & Remarks *"}),e.jsx(ps,{id:"comment",placeholder:g.placeholder,value:l,onChange:y=>o(y.target.value.slice(0,500)),className:"min-h-[120px] resize-none",rows:6}),e.jsxs("div",{className:"flex items-center justify-between text-xs text-gray-500",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(os,{className:"w-3 h-3"}),"Comments are required and will be visible to all participants"]}),e.jsxs("span",{children:[l.length,"/500"]})]})]}),a==="reject"&&e.jsx("div",{className:"p-3 bg-orange-50 border border-orange-200 rounded-lg",children:e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(os,{className:"w-4 h-4 text-orange-600 mt-0.5 flex-shrink-0"}),e.jsxs("div",{className:"text-sm",children:[e.jsx("p",{className:"font-medium text-orange-800",children:"Rejection Guidelines"}),e.jsx("p",{className:"text-orange-700 mt-1",children:"Please provide specific, actionable feedback to help the initiator improve their request."})]})]})}),a==="approve"&&e.jsx("div",{className:"p-3 bg-green-50 border border-green-200 rounded-lg",children:e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(Ce,{className:"w-4 h-4 text-green-600 mt-0.5 flex-shrink-0"}),e.jsxs("div",{className:"text-sm",children:[e.jsx("p",{className:"font-medium text-green-800",children:"Approval Confirmation"}),e.jsx("p",{className:"text-green-700 mt-1",children:"This request will be forwarded to the next approver or completed if this is the final step."})]})]})})]}),e.jsxs(Ct,{className:"gap-2",children:[e.jsx(M,{variant:"outline",onClick:u,disabled:c,children:"Cancel"}),e.jsx(M,{onClick:m,disabled:!l.trim()||c||l.length>500,className:g.buttonColor,children:c?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"w-4 h-4 border-2 border-white border-t-transparent rounded-full animate-spin mr-2"}),"Processing..."]}):e.jsxs(e.Fragment,{children:[e.jsx(p,{className:"w-4 h-4 mr-2"}),a==="approve"?"Approve Request":"Reject Request"]})})]})]})})}var X5=(t,s,a,r,n,i,l,o)=>{let c=document.documentElement,d=["light","dark"];function m(g){(Array.isArray(t)?t:[t]).forEach(p=>{let y=p==="class",f=y&&i?n.map(b=>i[b]||b):n;y?(c.classList.remove(...f),c.classList.add(i&&i[g]?i[g]:g)):c.setAttribute(p,g)}),u(g)}function u(g){o&&d.includes(g)&&(c.style.colorScheme=g)}function h(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(r)m(r);else try{let g=localStorage.getItem(s)||a,p=l&&g==="system"?h():g;m(p)}catch{}},Q5=x.createContext(void 0),J5={setTheme:t=>{},themes:[]},q5=()=>{var t;return(t=x.useContext(Q5))!=null?t:J5};x.memo(({forcedTheme:t,storageKey:s,attribute:a,enableSystem:r,enableColorScheme:n,defaultTheme:i,value:l,themes:o,nonce:c,scriptProps:d})=>{let m=JSON.stringify([a,s,i,t,o,l,r,n]).slice(1,-1);return x.createElement("script",{...d,suppressHydrationWarning:!0,nonce:typeof window>"u"?c:"",dangerouslySetInnerHTML:{__html:`(${X5.toString()})(${m})`}})});const e4=({...t})=>{const{theme:s="system"}=q5();return e.jsx(e0,{theme:s,className:"toaster group",style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)"},...t})};function t4({open:t,onClose:s,onSelect:a,managers:r=[],errorType:n,message:i,isLoading:l=!1}){const o=c=>{a(c)};return e.jsx(ct,{open:t,onOpenChange:s,children:e.jsxs(lt,{className:"sm:max-w-[600px]",children:[e.jsxs(dt,{children:[e.jsx(ot,{className:"flex items-center gap-2",children:n==="NO_MANAGER_FOUND"?e.jsxs(e.Fragment,{children:[e.jsx(Ge,{className:"w-5 h-5 text-amber-500"}),"Manager Not Found"]}):e.jsxs(e.Fragment,{children:[e.jsx(Os,{className:"w-5 h-5 text-blue-500"}),"Select Your Manager"]})}),e.jsx(Lt,{children:n==="NO_MANAGER_FOUND"?e.jsxs("div",{className:"mt-2",children:[e.jsx("p",{className:"text-sm text-gray-600",children:i||"No reporting manager found in the system. Please ensure your manager is correctly configured in your profile."}),e.jsx("p",{className:"text-sm text-gray-500 mt-2",children:"Please contact your administrator to update your manager information, or try again later."})]}):e.jsx("div",{className:"mt-2",children:e.jsx("p",{className:"text-sm text-gray-600",children:i||"Multiple managers were found with the same name. Please select the correct manager from the list below."})})})]}),e.jsx("div",{className:"mt-4",children:n==="NO_MANAGER_FOUND"?e.jsx("div",{className:"bg-amber-50 border border-amber-200 rounded-lg p-4",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(Ge,{className:"w-5 h-5 text-amber-600 flex-shrink-0 mt-0.5"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("p",{className:"text-sm font-medium text-amber-900",children:"Unable to Proceed"}),e.jsx("p",{className:"text-sm text-amber-700 mt-1",children:"We couldn't find your reporting manager in the system. The claim request cannot be created without a valid manager assigned."})]})]})}):e.jsx("div",{className:"space-y-3 max-h-[400px] overflow-y-auto",children:r.map(c=>e.jsx("div",{className:"border rounded-lg p-4 hover:bg-gray-50 transition-colors cursor-pointer",onClick:()=>!l&&o(c.email),children:e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"flex items-start gap-3 flex-1",children:[e.jsx("div",{className:"w-10 h-10 rounded-full bg-blue-100 flex items-center justify-center flex-shrink-0",children:e.jsx(kt,{className:"w-5 h-5 text-blue-600"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"flex items-center gap-2 mb-1",children:e.jsx("p",{className:"font-medium text-gray-900",children:c.displayName||`${c.firstName||""} ${c.lastName||""}`.trim()||"Unknown"})}),e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm text-gray-600",children:[e.jsx(Ta,{className:"w-4 h-4"}),e.jsx("span",{className:"truncate",children:c.email})]}),c.department&&e.jsxs("div",{className:"flex items-center gap-2 text-sm text-gray-500",children:[e.jsx(go,{className:"w-4 h-4"}),e.jsx("span",{children:c.department})]})]})]})]}),e.jsx(M,{onClick:d=>{d.stopPropagation(),o(c.email)},disabled:l,className:"flex-shrink-0",size:"sm",children:"Select"})]})},c.userId))})}),e.jsx("div",{className:"flex justify-end gap-3 mt-6",children:n==="NO_MANAGER_FOUND"?e.jsx(M,{onClick:s,variant:"outline",children:"Close"}):e.jsx(e.Fragment,{children:e.jsx(M,{onClick:s,variant:"outline",disabled:l,children:"Cancel"})})})]})})}function s4({onViewRequest:t}){const{user:s}=Zt();return Ii(s)?e.jsx(xk,{onViewRequest:t}):e.jsx(fk,{onViewRequest:t})}function lu({onNavigate:t,onNewRequest:s}){const[a,r]=x.useState(!1),[n,i]=x.useState(!0);return x.useEffect(()=>{try{const l=st.getUserData();r((l==null?void 0:l.jobTitle)==="Dealer")}catch(l){console.error("[App] Error checking dealer status:",l),r(!1)}finally{i(!1)}},[]),n?e.jsx("div",{className:"flex items-center justify-center h-screen",children:e.jsxs("div",{className:"flex flex-col items-center gap-4",children:[e.jsx("div",{className:"w-8 h-8 animate-spin rounded-full border-4 border-blue-600 border-t-transparent"}),e.jsx("p",{className:"text-muted-foreground",children:"Loading..."})]})}):a?e.jsx($S,{onNavigate:t,onNewRequest:s}):e.jsx(Mv,{onNavigate:t,onNewRequest:s})}function a4({onLogout:t}){const s=Pa(),[a,r]=x.useState(null),[n,i]=x.useState([]),[l,o]=x.useState(""),[c,d]=x.useState(""),[m,u]=x.useState(!1),[h,g]=x.useState(null);x.useEffect(()=>{const k=localStorage.getItem("dynamicRequests");if(k)try{const F=JSON.parse(k);i(F)}catch(F){console.error("Error parsing dynamic requests:",F)}},[]),x.useEffect(()=>{n.length>0&&localStorage.setItem("dynamicRequests",JSON.stringify(n))},[n]);const p=k=>{if(k==="profile"){s("/profile");return}if(k==="settings"){s("/settings");return}k.startsWith("/")?s(k):s(`/${k}`)},y=async(k,F,T,D)=>{o(k),d(F||"Unknown Request");const{navigateToRequest:C}=await Zn(async()=>{const{navigateToRequest:P}=await import("./requestNavigation-BHUhqpDm.js");return{navigateToRequest:P}},__vite__mapDeps([8,1,2,3,4,5,6,7]));C({requestId:k,requestTitle:F,status:T,request:D,navigate:s})},f=()=>{s(-1)},b=()=>{s("/new-request")},v=k=>{var D,C,P,R,V,I,$,_,N,j,U;if(k.templateType){k.templateType==="claim-management"&&s("/claim-management");return}if(k.backendId){s("/my-requests");return}const F=`RE-REQ-2024-${String(Object.keys(qx).length+n.length+1).padStart(3,"0")}`,T={id:F,title:k.title,description:k.description||"",category:k.category||"General",subcategory:k.subcategory||"",status:"pending",priority:k.priority||"standard",amount:k.budget||"N/A",slaProgress:0,slaRemaining:"5 days",slaEndDate:new Date(Date.now()+5*24*60*60*1e3).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"numeric",hour12:!0}),currentStep:1,totalSteps:((D=k.approvers)==null?void 0:D.length)||1,currentApprover:((P=(C=k.approvers)==null?void 0:C[0])==null?void 0:P.name)||((I=(V=(R=k.approvers)==null?void 0:R[0])==null?void 0:V.email)==null?void 0:I.split("@")[0])||"Pending Assignment",approverLevel:`1 of ${(($=k.approvers)==null?void 0:$.length)||1}`,template:"custom",initiator:{name:"Current User",role:k.initiatorRole||"Employee",department:k.department||"General",email:"current.user@royalenfield.com",phone:"+91 98765 43290",avatar:"CU"},department:k.department||"General",createdAt:new Date().toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"numeric",hour12:!0}),updatedAt:new Date().toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"numeric",hour12:!0}),dueDate:new Date(Date.now()+5*24*60*60*1e3).toISOString(),submittedDate:new Date().toISOString(),estimatedCompletion:new Date(Date.now()+5*24*60*60*1e3).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"}),conclusionRemark:"",approvalFlow:(k.approvers||[]).filter(z=>z).map((z,B)=>{var oe;const X=(z==null?void 0:z.name)||((oe=z==null?void 0:z.email)==null?void 0:oe.split("@")[0])||`Approver ${B+1}`,H=(z==null?void 0:z.email)||"";return{step:B+1,approver:`${X}${H?` (${H})`:""}`,role:(z==null?void 0:z.role)||`Level ${(z==null?void 0:z.level)||B+1} Approver`,status:B===0?"pending":"waiting",tatHours:z!=null&&z.tat?typeof z.tat=="string"?parseInt(z.tat):z.tat:48,elapsedHours:0,assignedAt:B===0?new Date().toISOString():null,comment:null,timestamp:null}}),documents:[],spectators:(k.spectators||[]).filter(z=>z&&(z.name||z.email)).map(z=>{var X;const B=(z==null?void 0:z.name)||((X=z==null?void 0:z.email)==null?void 0:X.split("@")[0])||"Observer";return{name:B,role:(z==null?void 0:z.role)||(z==null?void 0:z.department)||"Observer",avatar:B.split(" ").map(H=>H[0]).join("").toUpperCase().slice(0,2)||"OB"}}),auditTrail:[{type:"created",action:"Request Created",details:`Custom request "${k.title}" created`,user:"Current User",timestamp:new Date().toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"numeric",hour12:!0})},{type:"assignment",action:"Assigned to Approver",details:`Request assigned to ${((N=(_=k.approvers)==null?void 0:_[0])==null?void 0:N.name)||((U=(j=k.approvers)==null?void 0:j[0])==null?void 0:U.email)||"first approver"}`,user:"System",timestamp:new Date().toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"numeric",hour12:!0})}],tags:k.tags||["custom-request"]};i([...n,T]),s("/my-requests"),q.success("Request Submitted Successfully!",{description:`Your request "${k.title}" (${F}) has been created and sent for approval.`,duration:5e3})},w=(k,F)=>new Promise(T=>{setTimeout(()=>{k==="approve"?q.success("Request Approved",{description:"The request has been approved and forwarded to the next step.",duration:5e3}):q.error("Request Rejected",{description:"The request has been rejected and returned to the initiator.",duration:5e3}),r(null),T(!0)},1e3)}),A=()=>{r(null)},S=async(k,F)=>{var T,D,C,P,R,V,I;try{const $={activityName:k.activityName,activityType:k.activityType,dealerCode:k.dealerCode,dealerName:k.dealerName,dealerEmail:k.dealerEmail||void 0,dealerPhone:k.dealerPhone||void 0,dealerAddress:k.dealerAddress||void 0,activityDate:k.activityDate?new Date(k.activityDate).toISOString():void 0,location:k.location,requestDescription:k.requestDescription,periodStartDate:k.periodStartDate?new Date(k.periodStartDate).toISOString():void 0,periodEndDate:k.periodEndDate?new Date(k.periodEndDate).toISOString():void 0,estimatedBudget:k.estimatedBudget||void 0,approvers:k.approvers||[]},_=await I2($);if(!_||!_.request)throw new Error("Invalid response from server: Request object not found");const N=_.request;if(!N.requestNumber&&!N.requestId)throw new Error("Invalid response from server: Request identifier not found");u(!1),g(null),q.success("Claim Request Submitted",{description:"Your claim management request has been created successfully."}),N.requestNumber?s(`/request/${N.requestNumber}`):N.requestId?s(`/request/${N.requestId}`):s("/my-requests")}catch($){console.error("[App] Error creating claim request:",$);const _=(T=$==null?void 0:$.response)==null?void 0:T.data,N=(_==null?void 0:_.code)||((D=_==null?void 0:_.error)==null?void 0:D.code);if(N==="NO_MANAGER_FOUND"){g({errorType:"NO_MANAGER_FOUND",message:(_==null?void 0:_.message)||((C=_==null?void 0:_.error)==null?void 0:C.message)||"No reporting manager found. Please ensure your manager is correctly configured in the system.",pendingClaimData:k}),u(!0);return}if(N==="MULTIPLE_MANAGERS_FOUND"){const U=(_==null?void 0:_.managers)||((P=_==null?void 0:_.error)==null?void 0:P.managers)||[];g({errorType:"MULTIPLE_MANAGERS_FOUND",managers:U,message:(_==null?void 0:_.message)||((R=_==null?void 0:_.error)==null?void 0:R.message)||"Multiple managers found. Please select one.",pendingClaimData:k}),u(!0);return}const j=((I=(V=$==null?void 0:$.response)==null?void 0:V.data)==null?void 0:I.message)||($==null?void 0:$.message)||"Failed to create claim request";q.error("Failed to Submit Claim Request",{description:j})}};return e.jsxs("div",{className:"min-h-screen h-screen flex flex-col overflow-hidden bg-background",children:[e.jsxs(r0,{children:[e.jsx(qt,{path:"/login/callback",element:e.jsx(qu,{})}),e.jsx(qt,{path:"/",element:e.jsx(fs,{currentPage:"dashboard",onNavigate:p,onNewRequest:b,onLogout:t,children:e.jsx(lu,{onNavigate:p,onNewRequest:b})})}),e.jsx(qt,{path:"/dashboard",element:e.jsx(fs,{currentPage:"dashboard",onNavigate:p,onNewRequest:b,onLogout:t,children:e.jsx(lu,{onNavigate:p,onNewRequest:b})})}),e.jsx(qt,{path:"/open-requests",element:e.jsx(fs,{currentPage:"open-requests",onNavigate:p,onNewRequest:b,onLogout:t,children:e.jsx(ZS,{onViewRequest:y})})}),e.jsx(qt,{path:"/closed-requests",element:e.jsx(fs,{currentPage:"closed-requests",onNavigate:p,onNewRequest:b,onLogout:t,children:e.jsx(fT,{onViewRequest:y})})}),e.jsx(qt,{path:"/shared-summaries",element:e.jsx(fs,{currentPage:"shared-summaries",onNavigate:p,onNewRequest:b,onLogout:t,children:e.jsx(wT,{})})}),e.jsx(qt,{path:"/shared-summaries/:sharedSummaryId",element:e.jsx(fs,{currentPage:"shared-summaries",onNavigate:p,onNewRequest:b,onLogout:t,children:e.jsx(CT,{})})}),e.jsx(qt,{path:"/my-requests",element:e.jsx(fs,{currentPage:"my-requests",onNavigate:p,onNewRequest:b,onLogout:t,children:e.jsx(zT,{onViewRequest:y,dynamicRequests:n})})}),e.jsx(qt,{path:"/requests",element:e.jsx(fs,{currentPage:"requests",onNavigate:p,onNewRequest:b,onLogout:t,children:e.jsx(s4,{onViewRequest:y})})}),e.jsx(qt,{path:"/approver-performance",element:e.jsx(fs,{currentPage:"approver-performance",onNavigate:p,onNewRequest:b,onLogout:t,children:e.jsx(Pk,{})})}),e.jsx(qt,{path:"/request/:requestId",element:e.jsx(fs,{currentPage:"request-detail",onNavigate:p,onNewRequest:b,onLogout:t,children:e.jsx(NT,{requestId:"",onBack:f,dynamicRequests:n})})}),e.jsx(qt,{path:"/work-notes/:requestId",element:e.jsx(AT,{})}),e.jsx(qt,{path:"/new-request",element:e.jsx(Xm,{onBack:f,onSubmit:v})}),e.jsx(qt,{path:"/edit-request/:requestId",element:e.jsx(Xm,{onBack:f,onSubmit:v,requestId:void 0,isEditMode:!0})}),e.jsx(qt,{path:"/claim-management",element:e.jsx(kS,{onBack:f,onSubmit:S})}),e.jsx(qt,{path:"/profile",element:e.jsx(fs,{currentPage:"profile",onNavigate:p,onNewRequest:b,onLogout:t,children:e.jsx(Ik,{})})}),e.jsx(qt,{path:"/settings",element:e.jsx(fs,{currentPage:"settings",onNavigate:p,onNewRequest:b,onLogout:t,children:e.jsx(Wk,{})})}),e.jsx(qt,{path:"/notifications",element:e.jsx(fs,{currentPage:"notifications",onNavigate:p,onNewRequest:b,onLogout:t,children:e.jsx(Gk,{onNavigate:p})})}),e.jsx(qt,{path:"/detailed-reports",element:e.jsx(fs,{currentPage:"detailed-reports",onNavigate:p,onNewRequest:b,onLogout:t,children:e.jsx(m5,{})})}),e.jsx(qt,{path:"/admin",element:e.jsx(fs,{currentPage:"admin",onNavigate:p,onNewRequest:b,onLogout:t,children:e.jsx(Y5,{})})})]}),e.jsx(e4,{position:"top-right",toastOptions:{style:{background:"var(--card)",color:"var(--card-foreground)",border:"1px solid var(--border)"}}}),e.jsx(t4,{open:m,onClose:()=>{u(!1),g(null)},onSelect:async k=>{h!=null&&h.pendingClaimData&&await S(h.pendingClaimData)},managers:h==null?void 0:h.managers,errorType:(h==null?void 0:h.errorType)||"NO_MANAGER_FOUND",message:h==null?void 0:h.message,isLoading:!1}),a&&e.jsx(Z5,{isOpen:!!a,onClose:A,action:a,requestId:l,requestTitle:c,onSubmit:w})]})}function r4(t){const{onLogout:s}=t||{};return e.jsx(a0,{children:e.jsx(a4,{onLogout:s})})}function n4(){const{isAuthenticated:t,isLoading:s,error:a,user:r,logout:n}=Zt(),[i,l]=x.useState(!1),o=typeof window<"u"&&window.location.pathname==="/login/callback",c=async()=>{try{if(!n){console.error("🔵 ERROR: logout function is undefined!");return}await n()}catch(d){console.error("🔵 Logout error in handleLogout:",d);try{localStorage.clear(),sessionStorage.clear(),window.location.href="/"}catch(m){console.error("🔵 Error during emergency cleanup:",m)}}};if(x.useEffect(()=>{},[t,s,a,r]),o){const d=typeof window<"u"?new URLSearchParams(window.location.search):null,m=d==null?void 0:d.get("code"),u=d==null?void 0:d.get("error");if(!m&&!u){console.log("🚪 AuthenticatedApp: Logout redirect detected, redirecting to home");const g=new URLSearchParams;return g.set("tanflow_logged_out","true"),g.set("logout",Date.now().toString()),window.location.replace(`/?${g.toString()}`),e.jsx("div",{className:"flex items-center justify-center min-h-screen bg-gradient-to-br from-slate-50 to-slate-100",children:e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-4 border-slate-900 border-t-transparent mx-auto mb-4"}),e.jsx("p",{className:"text-gray-600",children:"Redirecting..."})]})})}return(typeof window<"u"?sessionStorage.getItem("auth_provider"):null)==="tanflow"?e.jsx(Ay,{}):e.jsx(qu,{})}return s?e.jsx("div",{className:"flex items-center justify-center min-h-screen bg-gradient-to-br from-slate-50 to-slate-100",children:e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-4 border-slate-900 border-t-transparent mx-auto mb-4"}),e.jsx("p",{className:"text-gray-600",children:"Loading authentication..."})]})}):a?(console.error("Authentication Error:",a),e.jsx("div",{className:"flex items-center justify-center min-h-screen bg-gradient-to-br from-slate-50 to-slate-100",children:e.jsxs("div",{className:"bg-red-50 border border-red-200 text-red-700 px-6 py-4 rounded-lg max-w-md",children:[e.jsx("h3",{className:"font-semibold mb-2",children:"Authentication Error"}),e.jsx("p",{className:"text-sm mb-4",children:a.message}),e.jsx("button",{onClick:()=>window.location.reload(),className:"bg-red-600 text-white px-4 py-2 rounded hover:bg-red-700",children:"Retry"})]})})):t?e.jsxs(e.Fragment,{children:[e.jsx(r4,{onLogout:c}),i&&e.jsx(Ty,{isOpen:i,onClose:()=>l(!1)})]}):e.jsx(Cy,{})}const si=()=>{try{return!0}catch{return!1}},i4=()=>{if(si())return null;try{return localStorage.getItem("token")}catch{return null}},l4={user:null,token:i4(),isAuthenticated:!1,isLoading:!1,error:null},Kp=_r({name:"auth",initialState:l4,reducers:{loginStart:t=>{t.isLoading=!0,t.error=null},loginSuccess:(t,s)=>{if(t.isLoading=!1,t.isAuthenticated=!0,t.user=s.payload.user,t.token=s.payload.token,t.error=null,!si())try{localStorage.setItem("token",s.payload.token)}catch{}},loginFailure:(t,s)=>{if(t.isLoading=!1,t.isAuthenticated=!1,t.user=null,t.token=null,t.error=s.payload,!si())try{localStorage.removeItem("token")}catch{}},logout:t=>{if(t.isAuthenticated=!1,t.user=null,t.token=null,t.error=null,!si())try{localStorage.removeItem("token")}catch{}},clearError:t=>{t.error=null},updateUser:(t,s)=>{t.user=s.payload}}}),{loginStart:j4,loginSuccess:N4,loginFailure:w4,logout:C4,clearError:A4,updateUser:S4}=Kp.actions,o4=s0({reducer:{auth:Kp.reducer,dashboard:rh.reducer,requests:Fp.reducer,myRequests:Pp.reducer,openRequests:ih.reducer,closedRequests:kp.reducer},middleware:t=>t({serializableCheck:{ignoredActions:["persist/PERSIST"]}}),devTools:!1});_l.createRoot(document.getElementById("root")).render(e.jsx(qg.StrictMode,{children:e.jsx(C0,{store:o4,children:e.jsx(W0,{children:e.jsx(n4,{})})})}));export{be as a,b4 as g};
|
||
//# sourceMappingURL=index-3WbeUbeV.js.map
|