@ssgc/alert-console 2.10.6 → 2.10.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),d=require("react"),h=require("antd"),ht=require("@ant-design/icons"),Ne=require("react-toastify"),yt=require("@tanstack/react-query"),Ta="#FF3B30",ba="#FF9500",Na="#FFCC00",ka="#34C759",_t={critical:Ta,high:ba,medium:Na,low:ka},mn={Critical:_t.critical,High:_t.high,Medium:_t.medium,Low:_t.low};function Ia(t){return mn[t]||mn.Low}function fn(t){if(!t||typeof t!="string")return 0;const e=t.trim().split(":");if(e.length!==3)return 0;const[s,n,r]=e,a=Number.parseInt(s,10),o=Number.parseInt(n,10),l=Number.parseFloat(r||"0"),c=Number.isFinite(a)?a:0,u=Number.isFinite(o)?o:0,m=Number.isFinite(l)?l:0;return c*3600+u*60+m}function hn(t){return t.toLowerCase().replaceAll("'","").replaceAll("‘","").replaceAll("’","")}const tr="",Ea=tr,ja="",Ma="",Oa="",Da="",yn={snl:{alerts:tr,rules:Ea},schools:{alerts:ja,rules:Ma},transit:{alerts:Oa,rules:Da}};function Oe(t,e){const s=(t||"").replace(/\/+$/,""),n=e.startsWith("/")?e:`/${e}`;return`${s}${n}`}function Ca(){try{const t=localStorage.getItem("authToken");return t?{Authorization:`Bearer ${t}`}:{}}catch{return{}}}function Ut(t,e){if(!e)return t;const s=new URL(t);return Object.entries(e).forEach(([n,r])=>{r!=null&&String(r).length>0&&s.searchParams.set(n,String(r))}),s.toString()}async function De(t,e){const s={...e.headers,...Ca()},n=await fetch(t,{...e,headers:s});if(n.status===401)throw window.location.href="/login",new Error("Unauthorized");if(n.status===204)return{};const r=await n.text();let a={};if(r)try{a=JSON.parse(r)}catch{a={ok:n.ok,status:n.status,raw:r}}if(!n.ok){const o=a?.errorMessage||a?.message||`HTTP ${n.status}`,l=new Error(o);throw l.status=n.status,l}return a}function Ra(t){const e={"Content-Type":"application/json",...t.headers||{}};return{async listAlerts(s){const n=Oe(t.baseUrl,"/api/Alert"),r=Ut(n,{page:s?.pageNumber??1,pageSize:s?.pageSize??10,...s?.anomalyId!==void 0&&{anomalyId:s.anomalyId},...s?.spaceId!==void 0&&{spaceId:s.spaceId},...s?.severityName!==void 0&&{severity:s.severityName},...s?.thirdPartyIds?.length&&{thirdPartyIds:s.thirdPartyIds.join(",")},...s?.searchText&&{searchText:s.searchText},isArchived:s?.isArchived??!1}),a=await De(r,{method:"GET",headers:e}),o=Array.isArray(a)?a:[],l=o.length>0?o[0].totalRecords??o.length:0;return{items:o,total:l}},async getAlertStatusList(){const s=Oe(t.baseUrl,"/api/Alert/AlertStatusList"),n=await De(s,{method:"GET",headers:e});return Array.isArray(n)?n:n&&typeof n=="object"&&Array.isArray(n.data)?n.data:[]},async getAlertsReport(s){const n=Oe(t.baseUrl,"/Alerts/GetAlertsReport"),r=Ut(n,s),a=await De(r,{method:"GET",headers:e});return Array.isArray(a)?a:[]},async updateAlertStatus(s){const n=Oe(t.baseUrl,"/api/Alert/status");return De(n,{method:"PUT",headers:e,body:JSON.stringify(s??{})})},async getAlertTimeline(s){const n=Oe(t.baseUrl,`/api/Alert/alertTimelines/${s}`);return De(n,{method:"GET",headers:e})},async getAdminSettings(){const s=Oe(t.baseUrl,"/api/Alert/GetAdminSettings"),n=await De(s,{method:"GET",headers:e});if(n&&typeof n=="object"){if("data"in n)return n.data;if("userId"in n)return n}return null},async setAdminSettings(s){const n=Oe(t.baseUrl,"/api/Alert/SetAdminSettings"),r={userId:0,isAdminSetting:!0,sortBy:s?.sortBy??"",groupBy:s?.groupBy??null};return De(n,{method:"POST",headers:e,body:JSON.stringify(r)})},async getPreferenceSettings(){const s=Oe(t.baseUrl,"/api/Alert/GetPreferenceSettings"),n=await De(s,{method:"GET",headers:e});if(n&&typeof n=="object"){if("data"in n)return n.data;if("anomalyIds"in n)return n}return null},async setPreferenceSettings(s){const n=Oe(t.baseUrl,"/api/Alert/SetPreferenceSettings"),r=await De(n,{method:"POST",headers:e,body:JSON.stringify(s??{})}),a=r?.responseStatus??!0,o=r?.data??r?.message??"Preferences updated successfully.";return{responseStatus:a,errorMessage:a?"":r?.errorMessage??r?.message??"",statusCode:200,data:o}},async getAlertNotifications(s){const n=Oe(t.baseUrl,"/api/Alert/GetNotifications"),r=Ut(n,{alertId:s}),a=await De(r,{method:"GET",headers:e});return Array.isArray(a)?a:a&&typeof a=="object"&&Array.isArray(a.data)?a.data:[]},async notifyFamilyMembers(s){const n=Oe(t.baseUrl,"/api/Alert/NotificationToFamilyMembers"),r=Ut(n,{alertId:s});return De(r,{method:"POST",headers:e})},async sendSMSorEmailNotifications(s,n,r){const a=Oe(t.baseUrl,"/api/Alert/SendSMSorEmailNotifications"),o=Ut(a,{alertId:s,isEmail:n,isSMS:r});return De(o,{method:"POST",headers:e})},async getTimeZoneMasters(){const s=Oe(t.baseUrl,"/api/UserPreference/GetTimeZoneMasters"),n=await De(s,{method:"GET",headers:e});return Array.isArray(n)?n:n&&typeof n=="object"&&Array.isArray(n.data)?n.data:[]},async getMyAppPreferences(){const s=Oe(t.baseUrl,"/api/UserPreference/GetMyAppPreferences"),n=await De(s,{method:"GET",headers:e});if(n&&typeof n=="object"){const r=n.data??n;if(r?.timeZoneUniqueId)return{timeZoneUniqueId:r.timeZoneUniqueId}}return null},async getAllSpaces(){const s=Oe(t.baseUrl,"/api/Spaces/GetAllSpaces"),n=await De(s,{method:"GET",headers:e});return(Array.isArray(n)?n:Array.isArray(n?.data)?n.data:[]).map(a=>({spaceId:a?.spaceId??a?.SpaceId,spaceName:a?.spaceName??a?.SpaceName??""}))}}}function pn(t,e){const s=(t||"").replace(/\/+$/,""),n=e.startsWith("/")?e:`/${e}`;return`${s}${n}`}function Ua(){try{const t=localStorage.getItem("authToken");return t?{Authorization:`Bearer ${t}`}:{}}catch{return{}}}async function Jt(t,e){const s={...e.headers,...Ua()},n=await fetch(t,{...e,headers:s});if(n.status===401)throw window.location.href="/login",new Error("Unauthorized");if(n.status===204)return{};const r=await n.text();let a={};if(r)try{a=JSON.parse(r)}catch{a={ok:n.ok,status:n.status,raw:r}}if(!n.ok){const o=a?.errorMessage||a?.message||`HTTP ${n.status}`;throw new Error(o)}return a}function La(t){const e={"Content-Type":"application/json",...t.headers||{}},s=pn(t.baseUrl,"/api/Rules"),n=pn(t.baseUrl,"/api/Rules/lookups");return{async getRules(){const r=await Jt(s,{method:"GET",headers:e});return Array.isArray(r)?r:[]},async setEscalationSettings(r){return Jt(s,{method:"POST",headers:e,body:JSON.stringify(r??{})})},async getLookups(){return Jt(n,{method:"GET",headers:e})},async updateRule(r,a){const o=`${s}/${r}`;return Jt(o,{method:"PUT",headers:e,body:JSON.stringify(a??{})})}}}function Fa(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var is={exports:{}},$a=is.exports,gn;function Pa(){return gn||(gn=1,(function(t,e){(function(s,n){t.exports=n()})($a,(function(){var s=1e3,n=6e4,r=36e5,a="millisecond",o="second",l="minute",c="hour",u="day",m="week",f="month",g="quarter",p="year",x="date",k="Invalid Date",b=/^(\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,H={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(j){var A=["th","st","nd","rd"],v=j%100;return"["+j+(A[(v-20)%10]||A[v]||A[0])+"]"}},K=function(j,A,v){var E=String(j);return!E||E.length>=A?j:""+Array(A+1-E.length).join(v)+j},I={s:K,z:function(j){var A=-j.utcOffset(),v=Math.abs(A),E=Math.floor(v/60),T=v%60;return(A<=0?"+":"-")+K(E,2,"0")+":"+K(T,2,"0")},m:function j(A,v){if(A.date()<v.date())return-j(v,A);var E=12*(v.year()-A.year())+(v.month()-A.month()),T=A.clone().add(E,f),O=v-T<0,U=A.clone().add(E+(O?-1:1),f);return+(-(E+(v-T)/(O?T-U:U-T))||0)},a:function(j){return j<0?Math.ceil(j)||0:Math.floor(j)},p:function(j){return{M:f,y:p,w:m,d:u,D:x,h:c,m:l,s:o,ms:a,Q:g}[j]||String(j||"").toLowerCase().replace(/s$/,"")},u:function(j){return j===void 0}},D="en",V={};V[D]=H;var C="$isDayjsObject",q=function(j){return j instanceof re||!(!j||!j[C])},y=function j(A,v,E){var T;if(!A)return D;if(typeof A=="string"){var O=A.toLowerCase();V[O]&&(T=O),v&&(V[O]=v,T=O);var U=A.split("-");if(!T&&U.length>1)return j(U[0])}else{var Y=A.name;V[Y]=A,T=Y}return!E&&T&&(D=T),T||!E&&D},S=function(j,A){if(q(j))return j.clone();var v=typeof A=="object"?A:{};return v.date=j,v.args=arguments,new re(v)},M=I;M.l=y,M.i=q,M.w=function(j,A){return S(j,{locale:A.$L,utc:A.$u,x:A.$x,$offset:A.$offset})};var re=(function(){function j(v){this.$L=y(v.locale,null,!0),this.parse(v),this.$x=this.$x||v.x||{},this[C]=!0}var A=j.prototype;return A.parse=function(v){this.$d=(function(E){var T=E.date,O=E.utc;if(T===null)return new Date(NaN);if(M.u(T))return new Date;if(T instanceof Date)return new Date(T);if(typeof T=="string"&&!/Z$/i.test(T)){var U=T.match(b);if(U){var Y=U[2]-1||0,G=(U[7]||"0").substring(0,3);return O?new Date(Date.UTC(U[1],Y,U[3]||1,U[4]||0,U[5]||0,U[6]||0,G)):new Date(U[1],Y,U[3]||1,U[4]||0,U[5]||0,U[6]||0,G)}}return new Date(T)})(v),this.init()},A.init=function(){var v=this.$d;this.$y=v.getFullYear(),this.$M=v.getMonth(),this.$D=v.getDate(),this.$W=v.getDay(),this.$H=v.getHours(),this.$m=v.getMinutes(),this.$s=v.getSeconds(),this.$ms=v.getMilliseconds()},A.$utils=function(){return M},A.isValid=function(){return this.$d.toString()!==k},A.isSame=function(v,E){var T=S(v);return this.startOf(E)<=T&&T<=this.endOf(E)},A.isAfter=function(v,E){return S(v)<this.startOf(E)},A.isBefore=function(v,E){return this.endOf(E)<S(v)},A.$g=function(v,E,T){return M.u(v)?this[E]:this.set(T,v)},A.unix=function(){return Math.floor(this.valueOf()/1e3)},A.valueOf=function(){return this.$d.getTime()},A.startOf=function(v,E){var T=this,O=!!M.u(E)||E,U=M.p(v),Y=function(Te,fe){var $=M.w(T.$u?Date.UTC(T.$y,fe,Te):new Date(T.$y,fe,Te),T);return O?$:$.endOf(u)},G=function(Te,fe){return M.w(T.toDate()[Te].apply(T.toDate("s"),(O?[0,0,0,0]:[23,59,59,999]).slice(fe)),T)},_=this.$W,ie=this.$M,ce=this.$D,ke="set"+(this.$u?"UTC":"");switch(U){case p:return O?Y(1,0):Y(31,11);case f:return O?Y(1,ie):Y(0,ie+1);case m:var ee=this.$locale().weekStart||0,pe=(_<ee?_+7:_)-ee;return Y(O?ce-pe:ce+(6-pe),ie);case u:case x:return G(ke+"Hours",0);case c:return G(ke+"Minutes",1);case l:return G(ke+"Seconds",2);case o:return G(ke+"Milliseconds",3);default:return this.clone()}},A.endOf=function(v){return this.startOf(v,!1)},A.$set=function(v,E){var T,O=M.p(v),U="set"+(this.$u?"UTC":""),Y=(T={},T[u]=U+"Date",T[x]=U+"Date",T[f]=U+"Month",T[p]=U+"FullYear",T[c]=U+"Hours",T[l]=U+"Minutes",T[o]=U+"Seconds",T[a]=U+"Milliseconds",T)[O],G=O===u?this.$D+(E-this.$W):E;if(O===f||O===p){var _=this.clone().set(x,1);_.$d[Y](G),_.init(),this.$d=_.set(x,Math.min(this.$D,_.daysInMonth())).$d}else Y&&this.$d[Y](G);return this.init(),this},A.set=function(v,E){return this.clone().$set(v,E)},A.get=function(v){return this[M.p(v)]()},A.add=function(v,E){var T,O=this;v=Number(v);var U=M.p(E),Y=function(ie){var ce=S(O);return M.w(ce.date(ce.date()+Math.round(ie*v)),O)};if(U===f)return this.set(f,this.$M+v);if(U===p)return this.set(p,this.$y+v);if(U===u)return Y(1);if(U===m)return Y(7);var G=(T={},T[l]=n,T[c]=r,T[o]=s,T)[U]||1,_=this.$d.getTime()+v*G;return M.w(_,this)},A.subtract=function(v,E){return this.add(-1*v,E)},A.format=function(v){var E=this,T=this.$locale();if(!this.isValid())return T.invalidDate||k;var O=v||"YYYY-MM-DDTHH:mm:ssZ",U=M.z(this),Y=this.$H,G=this.$m,_=this.$M,ie=T.weekdays,ce=T.months,ke=T.meridiem,ee=function(fe,$,P,he){return fe&&(fe[$]||fe(E,O))||P[$].slice(0,he)},pe=function(fe){return M.s(Y%12||12,fe,"0")},Te=ke||function(fe,$,P){var he=fe<12?"AM":"PM";return P?he.toLowerCase():he};return O.replace(B,(function(fe,$){return $||(function(P){switch(P){case"YY":return String(E.$y).slice(-2);case"YYYY":return M.s(E.$y,4,"0");case"M":return _+1;case"MM":return M.s(_+1,2,"0");case"MMM":return ee(T.monthsShort,_,ce,3);case"MMMM":return ee(ce,_);case"D":return E.$D;case"DD":return M.s(E.$D,2,"0");case"d":return String(E.$W);case"dd":return ee(T.weekdaysMin,E.$W,ie,2);case"ddd":return ee(T.weekdaysShort,E.$W,ie,3);case"dddd":return ie[E.$W];case"H":return String(Y);case"HH":return M.s(Y,2,"0");case"h":return pe(1);case"hh":return pe(2);case"a":return Te(Y,G,!0);case"A":return Te(Y,G,!1);case"m":return String(G);case"mm":return M.s(G,2,"0");case"s":return String(E.$s);case"ss":return M.s(E.$s,2,"0");case"SSS":return M.s(E.$ms,3,"0");case"Z":return U}return null})(fe)||U.replace(":","")}))},A.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},A.diff=function(v,E,T){var O,U=this,Y=M.p(E),G=S(v),_=(G.utcOffset()-this.utcOffset())*n,ie=this-G,ce=function(){return M.m(U,G)};switch(Y){case p:O=ce()/12;break;case f:O=ce();break;case g:O=ce()/3;break;case m:O=(ie-_)/6048e5;break;case u:O=(ie-_)/864e5;break;case c:O=ie/r;break;case l:O=ie/n;break;case o:O=ie/s;break;default:O=ie}return T?O:M.a(O)},A.daysInMonth=function(){return this.endOf(f).$D},A.$locale=function(){return V[this.$L]},A.locale=function(v,E){if(!v)return this.$L;var T=this.clone(),O=y(v,E,!0);return O&&(T.$L=O),T},A.clone=function(){return M.w(this.$d,this)},A.toDate=function(){return new Date(this.valueOf())},A.toJSON=function(){return this.isValid()?this.toISOString():null},A.toISOString=function(){return this.$d.toISOString()},A.toString=function(){return this.$d.toUTCString()},j})(),me=re.prototype;return S.prototype=me,[["$ms",a],["$s",o],["$m",l],["$H",c],["$W",u],["$M",f],["$y",p],["$D",x]].forEach((function(j){me[j[1]]=function(A){return this.$g(A,j[0],j[1])}})),S.extend=function(j,A){return j.$i||(j(A,re,S),j.$i=!0),S},S.locale=y,S.isDayjs=q,S.unix=function(j){return S(1e3*j)},S.en=V[D],S.Ls=V,S.p={},S}))})(is)),is.exports}var Wa=Pa();const Ba=Fa(Wa);function sr(t){if(!t)return"By Severity";const e=t.trim().toLowerCase();return e.includes("created")?"By Created Date":e.includes("updated")||e.includes("modified")?"By Updated Date":"By Severity"}function nr(t){if(!t||typeof t!="string")return{hours:0,minutes:0,seconds:0};const e=t.split(":").map(a=>parseInt(a,10)),s=Number.isFinite(e[0])?e[0]:0,n=Number.isFinite(e[1])?e[1]:0,r=Number.isFinite(e[2])?e[2]:0;return{hours:s,minutes:n,seconds:r}}function Sn(t){const{hours:e,minutes:s,seconds:n}=nr(t);return Ba().hour(e).minute(s).second(n).millisecond(0)}function Le(t,e){const s=(t||"").replace(/\/+$/,""),n=e.startsWith("/")?e:`/${e}`;return`${s}${n}`}function Va(){try{const t=localStorage.getItem("authToken");return t?{Authorization:`Bearer ${t}`}:{}}catch{return{}}}function Kt(t,e){if(!e)return t;const s=new URL(t);return Object.entries(e).forEach(([n,r])=>{r!=null&&String(r).length>0&&s.searchParams.set(n,String(r))}),s.toString()}async function Fe(t,e){const s={...e.headers,...Va()},n=await fetch(t,{...e,headers:s});if(n.status===401)throw window.location.href="/login",new Error("Unauthorized");if(n.status===204)return{};const r=await n.text();let a={};if(r)try{a=JSON.parse(r)}catch{a={ok:n.ok,status:n.status,raw:r}}if(!n.ok){const o=a?.Message||`HTTP ${n.status}`;throw new Error(o)}return a}const de=(...t)=>t.find(e=>e!=null);function Ft(t,e,s={}){const n={};for(const r of e){const a=s[r]??r.charAt(0).toUpperCase()+r.slice(1);n[r]=t?.[a]??t?.[r]}return n}function Za(t){return Array.isArray(t)?t.map(e=>Ft(e,["alertLogId","alertId","status","description","actionNotes","createdDate","createdBy","modifiedDate","modifiedBy"])):t}function za(t){return{id:String(de(t?.AlertId,t?.alertId)??""),alertNumber:de(t?.AlertNumber,t?.alertNumber),priority:de(t?.Priority,t?.priority,"Low"),timestamp:de(t?.UpdatedUtc,t?.timestamp,""),statusType:de(t?.Status,t?.statusType,""),description:de(t?.Description,t?.description,""),eventName:de(t?.EventName,t?.eventName),ruleName:de(t?.RuleName,t?.ruleName),spaceId:de(t?.SpaceId,t?.spaceId),spaceName:de(t?.SpaceName,t?.spaceName),anomalyId:de(t?.AnomalyId,t?.anomalyId),severityId:de(t?.SeverityId,t?.severityId),assignTeam:de(t?.AssignTeam,t?.assignTeam),cameraName:de(t?.CameraName,t?.cameraName),type:de(t?.Type,t?.type),mediaDetails:de(t?.MediaDetails,t?.mediaDetails,t?.MediaUrls,t?.mediaUrls),additionalMedia:de(t?.AdditionalMedia,t?.additionalMedia),timeElapsed:de(t?.TimeElapsed,t?.timeElapsed),timeRemaining:de(t?.TimeRemaining,t?.timeRemaining),anomalyName:de(t?.AnomalyName,t?.anomalyName),alertDetails:de(t?.AlertDetails,t?.alertDetails),statusHistory:Za(de(t?.StatusHistory,t?.statusHistory)),isEmailSent:de(t?.IsEmailSent,t?.isEmailSent),isSMSSent:de(t?.IsSMSSent,t?.isSMSSent),timeZoneUniqueId:de(t?.TimeZoneUniqueId,t?.timeZoneUniqueId)}}function Ha(t){const e={"Content-Type":"application/json",...t.headers||{}};return{async listAlerts(s){const n=Le(t.baseUrl,"/api/detectionpolicy/alerts"),r=Kt(n,{customerId:"99e5c8b5-b9d4-4d35-8885-7f121c532664",pageSize:s?.pageSize??10,page:s?.pageNumber??1,...s?.anomalyId!==void 0&&{anomalyId:s.anomalyId},...s?.spaceId!==void 0&&{spaceId:s.spaceId},...s?.severityId!==void 0&&{severityId:s.severityId},...s?.thirdPartyIds?.length&&{ThirdPartyIds:s.thirdPartyIds.join(",")},...s?.searchText&&{searchText:s.searchText},isArchived:s?.isArchived??!1}),a=await Fe(r,{method:"GET",headers:e});return{items:Array.isArray(a?.Items)?a.Items.map(za):[],total:a?.Total}},async getAlertStatusList(){const s=Le(t.baseUrl,"/api/detectionpolicy/alerts/StatusList"),n=await Fe(s,{method:"GET",headers:e});return(Array.isArray(n)?n:[]).map(a=>Ft(a,["alertStatusId","value","statusName"]))},async getAlertsReport(s){const n=Le(t.baseUrl,"/api/detectionpolicy/alerts/GetAlertsReport"),r=Kt(n,s),a=await Fe(r,{method:"GET",headers:e});return Array.isArray(a)?a:[]},async updateAlertStatus(s){const n=Le(t.baseUrl,"/api/detectionpolicy/alerts/Log"),r={AlertId:s.alertId??s.alertUniqueId??s.AlertId,Status:s.status??s.Status??"",Notes:s.notes??s.Notes??""};return Fe(n,{method:"POST",headers:e,body:JSON.stringify(r)})},async getAdminSettings(){const s=Le(t.baseUrl,"/api/detectionpolicy/alerts/GetAdminSettings"),n=await Fe(s,{method:"GET",headers:e});if(n&&typeof n=="object"){const r=n.data??n.Data??n;if(r&&typeof r=="object")return Ft(r,["userId","isAdminSetting","sortBy"],{sortBy:"SortOption"})}return null},async setAdminSettings(s){const n=Le(t.baseUrl,"/api/detectionpolicy/alerts/SetAdminSettings"),r={Settings:{UserId:0,IsAdminSetting:!0,SortOption:s?.sortBy??"",GroupBy:s?.groupBy??null}};return Fe(n,{method:"POST",headers:e,body:JSON.stringify(r)})},async getPreferenceSettings(){const s=Le(t.baseUrl,"/api/detectionpolicy/alerts/GetPreferenceSettings"),n=await Fe(s,{method:"GET",headers:e});if(n&&typeof n=="object"){if("data"in n)return n.data;if("anomalyIds"in n)return n}return null},async setPreferenceSettings(s){const n=Le(t.baseUrl,"/api/detectionpolicy/alerts/SetPreferenceSettings"),r=u=>{const{hours:m,minutes:f,seconds:g}=nr(u);return(m*3600+f*60+g)*1e7},a={Settings:{UserId:0,AnomalyIds:Array.isArray(s?.anomalyIds)?s.anomalyIds.map(u=>String(u)):[],DoNotDisturbStart:{Ticks:r(s?.doNotDisturbStart)},DoNotDisturbEnd:{Ticks:r(s?.doNotDisturbEnd)},InApp:!!s?.inApp,SMS:!!s?.sms,Email:!!s?.email,SortBy:s?.sortBy??""}},o=await Fe(n,{method:"POST",headers:e,body:JSON.stringify(a)}),l=o?.responseStatus??!0,c=o?.data??o?.message??"Preferences updated successfully.";return{responseStatus:l,errorMessage:l?"":o?.errorMessage??o?.Message??o?.message??"",statusCode:200,data:c}},async sendSMSorEmailNotifications(s,n,r){const a=Le(t.baseUrl,"/api/detectionpolicy/alerts/SendSMSorEmailNotifications"),o=Kt(a,{alertId:s,isEmail:n,isSMS:r});return Fe(o,{method:"POST",headers:e})},async getAlertNotifications(s){const n=Le(t.baseUrl,"/api/detectionpolicy/alerts/GetNotifications"),r=Kt(n,{alertId:s}),a=await Fe(r,{method:"GET",headers:e});let o=[];return Array.isArray(a)?o=a:Array.isArray(a?.data)&&(o=a.data),o.map(l=>Ft(l,["alertNotificationSentId","alertId","notificationType","receipientName","receipentPhoneNumber","messageSID","messageStatus","receipientEmail","notificationReceipientType","sentAt"]))},async getTimeZoneMasters(){const s=Le(t.baseUrl,"/api/TimeZoneMaster"),n=await Fe(s,{method:"GET",headers:e});return(Array.isArray(n?.Data)?n.Data:[]).map(a=>Ft(a,["timeZoneUniqueId","ianaTimeZoneId","timeZoneName","offset"]))},async getAllSpaces(){const s=t.spacesBaseUrl||t.baseUrl,n=Le(s,"/api/AllSpaces"),r=await Fe(n,{method:"GET",headers:e});return(Array.isArray(r?.Data)?r.Data:[]).map(o=>({spaceId:o?.SpaceId??o?.spaceId,spaceName:o?.SpaceName??o?.spaceName??""}))},async getMyAppPreferences(){const s=Le(t.baseUrl,"/MyProfile"),n=await Fe(s,{method:"GET",headers:e}),r=n?.data?.userGuid??n?.Data?.userGuid??n?.userGuid;if(!r)return null;const a=Le(t.baseUrl,`/api/GetMyAppPreferences/${r}`),o=await Fe(a,{method:"GET",headers:e});if(o&&typeof o=="object"){const l=o.data??o.Data??o,c=l?.timeZoneUniqueId??l?.TimeZoneUniqueId;if(c)return{timeZoneUniqueId:c}}return null}}}function qa(){try{const t=localStorage.getItem("authToken");return t?{Authorization:`Bearer ${t}`}:{}}catch{return{}}}async function Qe(t,e){const s={...e.headers,...qa()},n=await fetch(t,{...e,headers:s});if(n.status===401)throw window.location.href="/login",new Error("Unauthorized");if(n.status===204)return{};const r=await n.text();let a={};if(r)try{a=JSON.parse(r)}catch{a={ok:n.ok,status:n.status,raw:r}}if(!n.ok){const o=a?.errorMessage||a?.message||`HTTP ${n.status}`;throw new Error(o)}return a}function Ga(t){const e={"Content-Type":"application/json",...t.headers||{}},s=new URL("/api/detectionpolicy/rules",t.baseUrl).toString();return{async getRules(){const n=await Qe(s,{method:"GET",headers:e});return(Array.isArray(n?.Data)?n?.Data:[]).map(a=>({...a,ruleId:a.ruleId??a.RuleId,ruleName:a.ruleName??a.RuleName??a.Name,escalationSettings:a.escalationSettings??a.EscalationSettings}))},async setEscalationSettings(n){return Qe(s,{method:"POST",headers:e,body:JSON.stringify(n??{})})},async getLookups(){const n=y=>new URL(y,t.baseUrl).toString(),r=t.userManagementBaseUrl||t.baseUrl,a=[Qe(n("/api/detectionpolicy/lookups/actiontypes"),{method:"GET",headers:e}),Qe(n("/api/detectionpolicy/lookups/anomalies"),{method:"GET",headers:e}),Qe(n("/api/detectionpolicy/lookups/thirdparty"),{method:"GET",headers:e}),Qe(n("/api/detectionpolicy/lookups/severity"),{method:"GET",headers:e}),Qe(n("/api/detectionpolicy/lookups/scheduletypes"),{method:"GET",headers:e}),Qe(new URL("/user/user-roles",r).toString(),{method:"GET",headers:e})],[o,l,c,u,m,f]=await Promise.allSettled(a),g=y=>{if(y.status!=="fulfilled")return[];const S=y.value;return Array.isArray(S)?S:Array.isArray(S?.Data)?S.Data:Array.isArray(S?.data)?S.data:[]},p=g(o),x=g(l),k=g(c),b=g(u),B=g(m),H=f.status==="fulfilled"?f.value:null;let K=[];Array.isArray(H)?K=H:Array.isArray(H?.Data)?K=H.Data:Array.isArray(H?.data)&&(K=H.data);const I=p.map(y=>({actionTypeId:Number(y?.ActionTypeId),name:y?.DisplayName??y?.Name??""})),D=x.map(y=>({recordId:y?.AnomalyId,anomalyName:y?.DisplayName??y?.Name??""})),V=k.map(y=>({thirdPartyId:Number(y?.ThirdPartyId),thirdPartyName:y?.ThirdPartyName??y?.Name??""})),C=K.map(y=>({userRoleId:y.UserRoleId??y.userRoleId??y.Id??y.id??0,userRoleName:y.UserRoleName??y.userRoleName??y.Name??y.name??""})),q={actionTypes:I,anomalies:D,thirdParties:V};return b.length&&(q.severities=b.map(y=>({severityId:y?.SeverityId??y?.severityId,severityName:y?.DisplayName??y?.SeverityName??y?.Name??y?.name??""}))),B.length&&(q.scheduleTypes=B),C.length&&(q.userRoles=C),q},async updateRule(n,r){const a=`${s}/${n}`,{escalationSettings:o,Anomaly:l,Severity:c,...u}=r??{};return Qe(a,{method:"PUT",headers:e,body:JSON.stringify({...u,CustomerId:"99e5c8b5-b9d4-4d35-8885-7f121c532664",Version:{DeDupWindowSeconds:0,IncludeSubjectInHash:!0},AnomalyId:l?.AnomalyId,SeverityId:c?.SeverityId,EscalationSettings:o?{...o,ThirdPartyIds:o.thirdPartyId??[]}:{}})})}}}function Ya(){try{const t=localStorage.getItem("authToken");return t?{Authorization:`Bearer ${t}`}:{}}catch{return{}}}async function st(t,e){const s={...e.headers,...Ya()},n=await fetch(t,{...e,headers:s});if(n.status===401)throw window.location.href="/login",new Error("Unauthorized");if(n.status===204)return{};const r=await n.text();let a={};if(r)try{a=JSON.parse(r)}catch{a={ok:n.ok,status:n.status,raw:r}}if(!n.ok){const o=a?.errorMessage||a?.message||`HTTP ${n.status}`;throw new Error(o)}return a}function _a(t){const e={"Content-Type":"application/json",...t.headers||{}},s=new URL("/list-rule",t.baseUrl).toString();return{async getRules(){const n=await st(s,{method:"POST",headers:e,body:JSON.stringify({command:"get-all"})});return(Array.isArray(n?.data)?n.data:[]).map(a=>({...a,ruleId:a.RuleId??a.ruleId,ruleName:a.RuleName??a.ruleName,ruleDesc:a.RuleDesc??a.ruleDesc??null}))},async setEscalationSettings(n){return st(s,{method:"POST",headers:e,body:JSON.stringify(n??{})})},async getLookups(){const n=C=>new URL(C,t.baseUrl).toString(),r=t.userManagementBaseUrl||t.baseUrl,a=[st(n("/api/ActionTypeMaster/GetAll"),{method:"GET",headers:e}),st(n("/api/anomaly/anomaly-list"),{method:"POST",headers:e,body:JSON.stringify({RuleLevel:1})}),st(n("/api/Lookup/ThirdParties"),{method:"GET",headers:e}),st(n("/api/anomaly/severity-list"),{method:"GET",headers:e}),st(new URL("/user/user-roles",r).toString(),{method:"GET",headers:e})],[o,l,c,u,m]=await Promise.allSettled(a),f=C=>{if(C.status!=="fulfilled")return[];const q=C.value;return Array.isArray(q)?q:Array.isArray(q?.data)?q.data:[]},g=f(o),p=f(l),x=f(c),k=f(u),b=m.status==="fulfilled"?m.value:null,B=g.map(C=>({actionTypeId:C?.ActionTypeUniqueId,name:C?.Name??""})),H=p.map(C=>({recordId:C?.AnomalyId,anomalyName:C?.DisplayName??C?.Name??""})),K=x.map(C=>({thirdPartyId:Number(C?.ThirdPartyId),thirdPartyName:C?.ThirdPartyName??C?.Name??""}));let I=[];Array.isArray(b)?I=b:Array.isArray(b?.Data)?I=b.Data:Array.isArray(b?.data)&&(I=b.data);const D=I.map(C=>({userRoleId:C.userRoleId??0,userRoleName:C.userRoleName??""})),V={actionTypes:B,anomalies:H,thirdParties:K};return k.length&&(V.severities=k.map(C=>({SeverityId:C.SeverityId,DisplayName:C.SeverityName??C.DisplayName??""}))),D.length&&(V.userRoles=D),V},async updateRule(n,r){const a=new URL("/update-rule",t.baseUrl).toString(),{escalationSettings:o,ruleId:l,ruleName:c,ruleDesc:u,...m}=r??{},f=o??{},g=(f.escalationSettingsActionTypeIds??[]).filter(x=>x!=null&&!Number.isNaN(x)),p={Level1UserRoleId:f.level1UserRoleId??0,Level1PostAssistTime:f.level1PostAssistTime??0,Level2UserRoleId:f.level2UserRoleId??0,Level2PostAssistTime:f.level2PostAssistTime??0,Level3UserRoleId:f.level3UserRoleId??0,Level3PostAssistTime:f.level3PostAssistTime??0,EscalationSettingsActionTypeIds:g,ThirdPartyIds:f.thirdPartyId??[],HumanLoop:f.humanLoop??!1};return st(a,{method:"POST",headers:e,body:JSON.stringify({...m,RuleId:l??m.RuleId??n,RuleName:c??m.RuleName,RuleDesc:u??m.RuleDesc??null,ActionTypeUniqueIdList:g,EscalationSettings:p})})}}}function We(t,e){const s=(t||"").replace(/\/+$/,""),n=e.startsWith("/")?e:`/${e}`;return`${s}${n}`}function Ja(){try{const t=localStorage.getItem("authToken");return t?{Authorization:`Bearer ${t}`}:{}}catch{return{}}}function Qt(t,e){if(!e)return t;const s=new URL(t);return Object.entries(e).forEach(([n,r])=>{r!=null&&String(r).length>0&&s.searchParams.set(n,String(r))}),s.toString()}async function Be(t,e){const s={...e.headers,...Ja()},n=await fetch(t,{...e,headers:s});if(n.status===401)throw window.location.href="/login",new Error("Unauthorized");if(n.status===204)return{};const r=await n.text();let a={};if(r)try{a=JSON.parse(r)}catch{a={ok:n.ok,status:n.status,raw:r}}if(!n.ok){const o=a?.errorMessage||a?.message||`HTTP ${n.status}`;throw new Error(o)}return a}function Ka(t){const e={"Content-Type":"application/json",...t.headers||{}};return{async listAlerts(s){const n=We(t.baseUrl,"/api/Alerts"),r=Qt(n,{pageSize:s?.pageSize??10,pageNumber:s?.pageNumber??1,...s?.spaceNumber!==void 0&&{spaceNumber:s.spaceNumber},...s?.anomalyId!==void 0&&{anomalyId:s.anomalyId},...s?.severityId!==void 0&&{severityId:s.severityId},...s?.thirdPartyIds?.length&&{thirdPartyIds:s.thirdPartyIds.join(",")},...s?.isArchived!==void 0&&{isArchived:s.isArchived}}),a=await Be(r,{method:"GET",headers:e});if(Array.isArray(a))return a;if(a&&typeof a=="object"){if(Array.isArray(a.items))return{items:a.items,total:typeof a.total=="number"?a.total:void 0};if(Array.isArray(a.data))return{items:a.data,total:typeof a.total=="number"?a.total:void 0};if(Array.isArray(a.alerts))return{items:a.alerts,total:typeof a.total=="number"?a.total:void 0}}return[]},async getAlertStatusList(){const s=We(t.baseUrl,"/api/Alerts/GetAlertStatus"),n=await Be(s,{method:"GET",headers:e});return Array.isArray(n)?n:n&&typeof n=="object"&&Array.isArray(n.data)?n.data:[]},async getAlertsReport(s){const n=We(t.baseUrl,"/Alerts/GetAlertsReport"),r=Qt(n,s),a=await Be(r,{method:"GET",headers:e});return Array.isArray(a)?a:[]},async updateAlertStatus(s){const n=We(t.baseUrl,"/api/Alerts/UpdateAlertLog"),r={alertId:s.alertId,action:s.status,notes:s.notes};return Be(n,{method:"PUT",headers:e,body:JSON.stringify(r??{})})},async getAdminSettings(){const s=We(t.baseUrl,"/api/Alerts/GetAdminSettings"),n=await Be(s,{method:"GET",headers:e});if(n&&typeof n=="object"){if("data"in n)return n.data;if("userId"in n)return n}return null},async setAdminSettings(s){const n=We(t.baseUrl,"/api/Alerts/SetAdminSettings"),r={userId:0,isAdminSetting:!0,sortBy:s?.sortBy??"",groupBy:s?.groupBy??null};return Be(n,{method:"POST",headers:e,body:JSON.stringify(r)})},async getPreferenceSettings(){const s=We(t.baseUrl,"/api/Alerts/GetPreferenceSettings"),n=await Be(s,{method:"GET",headers:e});if(n&&typeof n=="object"){if("data"in n)return n.data;if("anomalyIds"in n)return n}return null},async setPreferenceSettings(s){const n=We(t.baseUrl,"/api/Alerts/SetPreferenceSettings"),r=await Be(n,{method:"POST",headers:e,body:JSON.stringify(s??{})}),a=r?.responseStatus??!0,o=r?.data??r?.message??"Preferences updated successfully.";return{responseStatus:a,errorMessage:a?"":r?.errorMessage??r?.message??"",statusCode:200,data:o}},async getAlertNotifications(s){const n=We(t.baseUrl,"/api/Alerts/GetNotifications"),r=Qt(n,{alertId:s}),a=await Be(r,{method:"GET",headers:e});return Array.isArray(a)?a:a&&typeof a=="object"&&Array.isArray(a.data)?a.data:[]},async sendSMSorEmailNotifications(s,n,r){const a=We(t.baseUrl,"/api/Alerts/SendSMSorEmailNotifications"),o=Qt(a,{alertId:s,isEmail:n,isSMS:r});return Be(o,{method:"POST",headers:e})},async getTimeZoneMasters(){const s=We(t.baseUrl,"/api/UserPreference/GetTimeZoneMasters"),n=await Be(s,{method:"GET",headers:e});return Array.isArray(n)?n:n&&typeof n=="object"&&Array.isArray(n.data)?n.data:[]},async getMyAppPreferences(){const s=We(t.baseUrl,"/api/UserPreference/GetMyAppPreferences"),n=await Be(s,{method:"GET",headers:e});if(n&&typeof n=="object"){const r=n.data??n;if(r?.timeZoneUniqueId)return{timeZoneUniqueId:r.timeZoneUniqueId}}return null}}}const rr=d.createContext(null);function ar({tenant:t="snl",override:e,timeZone:s,userManagementDomain:n,spacesBaseUrl:r,children:a}){const o=d.useMemo(()=>{const c=e?.alertsBaseUrl?.trim()||yn[t]?.alerts||"";let u=e?.rulesBaseUrl?.trim()||yn[t]?.rules||"";t==="snl"&&(u=c);const m=e?.headers;return{tenant:t,alertsBaseUrl:c,rulesBaseUrl:u,headers:m,timeZone:s,userManagementDomain:n,spacesBaseUrl:r}},[t,e?.alertsBaseUrl,e?.rulesBaseUrl,JSON.stringify(e?.headers||{}),s,n,r]),l=d.useMemo(()=>{const c={baseUrl:o.alertsBaseUrl,headers:o.headers},u={baseUrl:o.rulesBaseUrl,headers:o.headers},m={schools:()=>Ha({...c,spacesBaseUrl:o.spacesBaseUrl}),transit:()=>Ka(c),snl:()=>Ra(c)},f={schools:()=>Ga({...u,userManagementBaseUrl:o.userManagementDomain}),transit:()=>_a({...u,userManagementBaseUrl:o.userManagementDomain}),snl:()=>La({baseUrl:o.alertsBaseUrl,headers:o.headers})};return{config:o,alerts:m[o.tenant](),rules:f[o.tenant]()}},[o]);return i.jsx(rr.Provider,{value:l,children:a})}function $e(){const t=d.useContext(rr);if(!t)throw new Error("useApi must be used inside ApiProvider");return t}const Qa={Critical:"#FFE2E2",High:"#FF95004D",Medium:"#FEF9C2",Low:"#E0EDFF"},Xa={Critical:"#FF3B30",High:"#FFB86A",Medium:"#FFCC00",Low:"#007AFF"},Js=6,Ks=7;function xn(t,e,s){const n=t===Js,r=t===Ks,a=e.isEmailSent??!1,o=e.isSMSSent??!1,l=n&&a||r&&o,c=n?"Send Email":r?"Send SMS":s,u=n&&a?"Email sent":r&&o?"SMS sent":c,m=n&&a?"Email sent":r&&o?"SMS sent":`Click to ${c}`;return{isDisabled:l,buttonText:u,tooltipTitle:m}}function Ns(t,e){return`${t}-${e?"email":"sms"}`}function Xt(t){return t===Js||t===Ks}function hs({value:t,onChange:e,options:s,className:n,dropdownWidth:r}){return i.jsx(h.Select,{className:n,options:s,value:t,onChange:e,dropdownMatchSelectWidth:r??260})}const ei=[{label:"All levels",value:"All"},{label:"Critical",value:"Critical"},{label:"High",value:"High"},{label:"Medium",value:"Medium"},{label:"Low",value:"Low"}];function ti({value:t,onChange:e,options:s}){return i.jsx(hs,{className:"w-[140px]",value:t,onChange:e,options:s||ei})}const si=[{label:"All Types",value:"All"},{label:"Weapon Detection",value:"Weapon"},{label:"Unauthorized Access",value:"Unauthorized"},{label:"Aggressive Behavior",value:"Aggressive"}];function ni({value:t,onChange:e,options:s}){return i.jsx(hs,{className:"w-[220px]",dropdownWidth:280,value:t,onChange:e,options:s||si})}function ri({value:t,onChange:e,options:s}){return i.jsx(hs,{className:"w-[100px]",value:t,onChange:e,options:s||[]})}const ai=[{label:"All",value:"All"},{label:"SOS",value:"SOS"},{label:"911",value:"911"},{label:"Aegix",value:"Aegix"},{label:"Eli",value:"Eli"},{label:"Skydio",value:"Skydio"}];function ii({value:t,onChange:e,options:s}){return i.jsx(hs,{className:"w-[130px]",value:t,onChange:e,options:s||ai})}function ir({columns:t,data:e,loading:s=!1,pageSize:n=10,total:r,currentPage:a,rowKey:o="id",toolbar:l,tableProps:c,onPageChange:u}){const f=r===void 0&&a!==void 0?e.length===n?a*n+1:(a-1)*n+e.length:void 0;return i.jsxs("div",{children:[l,i.jsx(h.Table,{rowKey:o,dataSource:e,columns:t,loading:s,pagination:{pageSize:n,current:a,total:r??f,showSizeChanger:!1,showTotal:g=>`Total: ${g}`,onChange:u},bordered:!0,...c})]})}function oi(t){if(!t||typeof t!="string")return!1;const e=t.split("?")[0].toLowerCase();return e.endsWith(".mp4")||e.endsWith(".webm")||e.endsWith(".ogg")||e.endsWith(".m3u8")}function Fs(t){const e=(t?.mediaType||t?.type||"").toString().toLowerCase();return e==="video"||e==="mp4"?!0:oi(t?.mediaUrl||t)}function li(t){const e=t?.mediaUrl;let s=null;if(Array.isArray(e))s=e;else if(typeof e=="string")try{const n=JSON.parse(e);Array.isArray(n)&&(s=n)}catch{}return s&&s.length>0?s.map(n=>({...t,mediaUrl:n})):[t]}function or(t){const e=t;return e?(Array.isArray(e)?e:[e]).flatMap(li):[]}const nt=16,rt=2,vn={Low:"#22c55e",Medium:"#fde047",High:"#fb2c36",Critical:"#7a0707"};function lr({boxes:t,priority:e="High"}){const s=vn[e]??vn.High;return i.jsx(i.Fragment,{children:t.map((n,r)=>i.jsxs("div",{className:"absolute pointer-events-none",style:{left:n.x,top:n.y,width:n.width,height:n.height},children:[i.jsx("div",{className:"absolute left-0 whitespace-nowrap rounded-sm px-2 py-1 text-[10px] font-semibold text-white",style:{backgroundColor:s,transform:"translateY(-100%)"},children:n.label}),i.jsx("div",{className:"absolute top-0 left-0",style:{width:nt,height:nt,borderTop:`${rt}px solid ${s}`,borderLeft:`${rt}px solid ${s}`}}),i.jsx("div",{className:"absolute top-0 right-0",style:{width:nt,height:nt,borderTop:`${rt}px solid ${s}`,borderRight:`${rt}px solid ${s}`}}),i.jsx("div",{className:"absolute bottom-0 left-0",style:{width:nt,height:nt,borderBottom:`${rt}px solid ${s}`,borderLeft:`${rt}px solid ${s}`}}),i.jsx("div",{className:"absolute bottom-0 right-0",style:{width:nt,height:nt,borderBottom:`${rt}px solid ${s}`,borderRight:`${rt}px solid ${s}`}})]},`${n.label}-${r}`))})}const ci=t=>{if(!t)return[0,0,0,0];if(typeof t=="string")return t.replace(/[()[\]\s]/g,"").split(",").map(Number);if(!Array.isArray(t)||t.length===0)return[0,0,0,0];const e=t[0];return typeof e=="string"?e.replace(/[()[\]\s]/g,"").split(",").map(Number):Array.isArray(e)?e.map(Number):t.map(Number)},cr=(t,e,s,n,r)=>{if(!e||!s||!n||!r)return[];const a=Math.min(n/e,r/s),o=(n-e*a)/2,l=(r-s*a)/2;return t.flatMap(c=>{const[u,m,f,g]=ci(c.bbox_xyxy);return u>e||f>e||m>s||g>s?[]:[{personName:c.personName,x:u*a+o,y:m*a+l,width:(f-u)*a,height:(g-m)*a}]})},wn={naturalWidth:0,naturalHeight:0,renderedWidth:0,renderedHeight:0};function ur(){const t=d.useRef(null),[e,s]=d.useState(wn),n=d.useCallback(()=>{const a=t.current;a&&s({naturalWidth:a.naturalWidth,naturalHeight:a.naturalHeight,renderedWidth:a.offsetWidth,renderedHeight:a.offsetHeight})},[]),r=d.useCallback(()=>{s(wn)},[]);return{imageRef:t,dimensions:e,onLoad:n,resetDimensions:r}}const dr=({isOpen:t,onClose:e,src:s,type:n="image",detections:r=[],priority:a})=>{const[o,l]=d.useState(!1),{imageRef:c,dimensions:u,onLoad:m,resetDimensions:f}=ur(),g=d.useMemo(()=>cr(r,u.naturalWidth,u.naturalHeight,u.renderedWidth,u.renderedHeight),[r,u]),p=d.useMemo(()=>g.map(x=>({...x,label:x.personName||""})),[g]);return d.useEffect(()=>{t&&(l(!1),f())},[t,s,f]),d.useLayoutEffect(()=>{c.current?.complete&&m()},[m]),d.useEffect(()=>{t&&(!s||o)&&e()},[t,s,o,e]),t?i.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-70",role:"button",tabIndex:0,"aria-label":"Close media preview",onClick:e,onKeyDown:x=>{(x.key==="Enter"||x.key===" ")&&(x.preventDefault(),e())},onTouchStart:e,children:i.jsx("div",{className:"relative max-w-5xl max-h-[90vh] w-full flex items-center justify-center",onClick:x=>x.stopPropagation(),children:n==="image"?i.jsxs("div",{style:{position:"relative",display:"inline-block"},children:[i.jsx("img",{ref:c,src:s,alt:"preview",className:"object-contain rounded-lg shadow-lg max-w-full max-h-[90vh]",onLoad:m,onError:()=>l(!0)}),i.jsx(lr,{boxes:p,priority:a}),i.jsx("button",{onClick:e,className:"absolute top-3 right-3 text-white bg-black/50 rounded-full p-2 hover:bg-black/70",children:"✕"})]}):i.jsxs("div",{style:{position:"relative",display:"inline-block"},children:[i.jsx("video",{src:s,controls:!0,className:"object-contain rounded-lg shadow-lg max-w-full max-h-[90vh]",onError:()=>l(!0)}),i.jsx("button",{onClick:e,className:"absolute top-3 right-3 text-white bg-black/50 rounded-full p-2 hover:bg-black/70",children:"✕"})]})})}):null};const ui=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),di=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,s,n)=>n?n.toUpperCase():s.toLowerCase()),An=t=>{const e=di(t);return e.charAt(0).toUpperCase()+e.slice(1)},mr=(...t)=>t.filter((e,s,n)=>!!e&&e.trim()!==""&&n.indexOf(e)===s).join(" ").trim(),mi=t=>{for(const e in t)if(e.startsWith("aria-")||e==="role"||e==="title")return!0};var fi={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const hi=d.forwardRef(({color:t="currentColor",size:e=24,strokeWidth:s=2,absoluteStrokeWidth:n,className:r="",children:a,iconNode:o,...l},c)=>d.createElement("svg",{ref:c,...fi,width:e,height:e,stroke:t,strokeWidth:n?Number(s)*24/Number(e):s,className:mr("lucide",r),...!a&&!mi(l)&&{"aria-hidden":"true"},...l},[...o.map(([u,m])=>d.createElement(u,m)),...Array.isArray(a)?a:[a]]));const Qs=(t,e)=>{const s=d.forwardRef(({className:n,...r},a)=>d.createElement(hi,{ref:a,iconNode:e,className:mr(`lucide-${ui(An(t))}`,`lucide-${t}`,n),...r}));return s.displayName=An(t),s};const yi=[["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}],["path",{d:"M10.41 10.41a2 2 0 1 1-2.83-2.83",key:"1bzlo9"}],["line",{x1:"13.5",x2:"6",y1:"13.5",y2:"21",key:"1q0aeu"}],["line",{x1:"18",x2:"21",y1:"12",y2:"15",key:"5mozeu"}],["path",{d:"M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59",key:"mmje98"}],["path",{d:"M21 15V5a2 2 0 0 0-2-2H9",key:"43el77"}]],fr=Qs("image-off",yi);const pi=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],gi=Qs("loader-circle",pi);const Si=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]],xi=Qs("maximize-2",Si);function vi(t){const s=or(t.mediaDetails)[0];if(!s)return null;const n=s.mediaUrl??s;return typeof n!="string"||!n.length?null:{url:n,item:s}}function hr({record:t}){const e=d.useMemo(()=>vi(t),[t]),[s,n]=d.useState(!1),[r,a]=d.useState(!1),o=d.useMemo(()=>t.bbox_xyxy?[{bbox_xyxy:t.bbox_xyxy,personName:t.personName}]:[],[t.bbox_xyxy,t.personName]);if(d.useEffect(()=>{a(!1)},[e?.url]),!e)return i.jsx("span",{className:"text-gray-400 text-sm",children:"—"});const{url:l,item:c}=e,u=Fs(c),m=u?"video":"image",f="block w-[72px] h-[54px] object-cover bg-gray-100 border border-gray-200 rounded-sm";return i.jsxs(i.Fragment,{children:[i.jsx("button",{type:"button",disabled:r,className:"p-0 border-0 bg-transparent rounded-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-1 cursor-pointer disabled:cursor-not-allowed disabled:opacity-60","aria-label":r?"Preview unavailable":"Expand preview",onClick:()=>n(!0),children:r?i.jsx("span",{className:`${f} flex items-center justify-center text-gray-400`,children:i.jsx(fr,{size:20,"aria-hidden":!0})}):u?i.jsx("video",{src:l,className:f,muted:!0,playsInline:!0,preload:"metadata",onError:()=>a(!0)}):i.jsx("img",{src:l,alt:"",className:f,onError:()=>a(!0)})}),i.jsx(dr,{isOpen:s,onClose:()=>n(!1),src:l,type:m,detections:o,priority:t.priority})]})}function wi(t,e){const[s,n]=d.useState(t);return d.useEffect(()=>{const r=window.setTimeout(()=>n(t),e);return()=>window.clearTimeout(r)},[t,e]),s}function Xs({data:t,loading:e=!1,pageSize:s=10,total:n,currentPage:r,columns:a,renderActions:o,onAlertIdClick:l,onRefetch:c,onPageChange:u,onFilterChange:m,resetKey:f}){const[g,p]=d.useState("All"),[x,k]=d.useState("All"),[b,B]=d.useState("All"),[H,K]=d.useState("All"),[I,D]=d.useState(""),[V,C]=d.useState(r??1);d.useEffect(()=>{f!==void 0&&(p("All"),k("All"),B("All"),K("All"),D(""),C(1))},[f]),d.useEffect(()=>{r!==void 0&&C(r)},[r]);const[q,y]=d.useState([{label:"All",value:"All"}]),[S,M]=d.useState([]),[re,me]=d.useState([]),[j,A]=d.useState([]),[v,E]=d.useState(new Set),{rules:T,alerts:O,config:U}=$e(),Y=U.tenant==="schools",G=U.tenant==="transit",_=wi(I,600),ie=Y&&_.trim()?100:s,ce={6:{title:"Email",kind:"icon",icon:i.jsx(ht.MailOutlined,{})},7:{title:"SMS",kind:"icon",icon:i.jsx(ht.MessageOutlined,{})}};d.useEffect(()=>{if(!O.getAllSpaces)return;let $=!0;return(async()=>{try{const P=await O.getAllSpaces();if($){const he=P.map(oe=>({label:G?String(oe.spaceNumber??oe.spaceName??""):oe.spaceName,value:String(G?oe.spaceNumber??oe.spaceId:oe.spaceId)}));M([{label:"All",value:"All"},...he])}}catch(P){console.error("Error loading space options",P)}})(),()=>{$=!1}},[O,G]),d.useEffect(()=>{let $=!0;return(async()=>{try{const P=await T.getLookups(),oe=(Array.isArray(P.thirdParties)?P.thirdParties:[]).map(xe=>({label:xe.thirdPartyName,value:String(xe.thirdPartyId)})),we=(Array.isArray(P.anomalies)?P.anomalies:[]).map(xe=>({label:xe.anomalyName,value:xe.anomalyId})),Ie=(Array.isArray(P.severities)?P.severities:[]).map(xe=>({label:xe.severityName,value:String(xe.severityId)}));$&&(y([{label:"All",value:"All"},...oe]),we.length&&me([{label:"All Types",value:"All"},...we]),Ie.length&&A([{label:"All levels",value:"All"},...Ie]))}catch(P){console.error("Error loading filter options",P)}})(),()=>{$=!1}},[T]),d.useEffect(()=>{if(!m)return;const $=j.find(he=>he.value===g),P={anomalyId:re.length>1&&x!=="All"?x:void 0,spaceId:!G&&S.length>1&&b!=="All"?b:void 0,spaceNumber:G&&S.length>1&&b!=="All"?b:void 0,severityId:j.length>1&&g!=="All"?g:void 0,severityName:j.length>1&&g!=="All"?$?.label:void 0,thirdPartyIds:H==="All"?void 0:[Number(H)],searchText:_.trim()||void 0};m(P),u?.(1)},[x,b,g,H,_,re.length,S.length,j.length,G,Y]);const ke=re.length>1?re:void 0,ee=S.length>1?S:void 0,pe=j.length>1?j:void 0,Te=[{title:"Severity",dataIndex:"priority",key:"priority",width:120,render:$=>i.jsx(h.Tag,{className:"px-[10px] py-[2px]",style:{border:`2px solid ${Xa[$]}`,backgroundColor:Qa[$]},children:$})},{title:"Tracker",key:"tracker",width:140,render:($,P)=>i.jsx("a",{onClick:he=>{he.preventDefault(),l?.(P,{tab:"track",sourceTab:"active"})},className:"text-blue-600 hover:underline",children:"Tracker"})},{title:"Call to action/Human in the loop",key:"actions",width:320,render:($,P)=>{if(o)return i.jsx(i.Fragment,{children:o(P)});const he=async(Ue,St)=>{const xt=Ns(P.id,Ue);E(be=>new Set(be).add(xt));try{const be=await O.sendSMSorEmailNotifications?.(P.id,Ue,St);be?.responseStatus||be?.Success||be?.success?(Ne.toast.success(be?.message||be.data||(Ue?"Email sent successfully":"SMS sent successfully")),c?.()):Ne.toast.error(be?.message||be?.data||be?.errorMessage||"Failed to send notification")}catch(be){Ne.toast.error(be?.message||"Failed to send notification")}finally{E(be=>{const vt=new Set(be);return vt.delete(xt),vt})}},oe=Js,Re=Ks,we=ce[oe],He=ce[Re],Ie=xn(oe,P,we?.title),xe=xn(Re,P,He?.title),Ct=Ns(P.id,!0),ct=Ns(P.id,!1),gt=Xt(oe)&&v.has(Ct),Je=Xt(Re)&&v.has(ct);return i.jsxs(h.Space,{size:"middle",children:[i.jsx(h.Tooltip,{title:Ie.tooltipTitle,children:i.jsx(h.Button,{size:"small",disabled:Ie.isDisabled,loading:gt,onClick:Xt(oe)?()=>he(!0,!1):void 0,icon:!gt&&we?.icon,className:"flex flex-col items-center justify-center gap-1",style:{height:"fit-content"},children:Ie.buttonText})},String(oe)),i.jsx(h.Tooltip,{title:xe.tooltipTitle,children:i.jsx(h.Button,{size:"small",disabled:xe.isDisabled,loading:Je,onClick:Xt(Re)?()=>he(!1,!0):void 0,icon:!Je&&He?.icon,className:"flex flex-col items-center justify-center gap-1",style:{height:"fit-content"},children:xe.buttonText})},String(Re))]})}},{title:"Alert Timestamp",dataIndex:"timestamp",key:"timestamp",width:220,render:($,P)=>{const he=P?.timeElapsed,oe=P?.timeRemaining,Re=he?fn(he):0,we=oe?fn(oe):0,He=Math.round(Re/(Re+we)*100);return i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"w-[70px]",children:"Elapsed:"}),i.jsx("span",{className:"font-medium",children:he??"-"})]}),i.jsx(h.Progress,{percent:He,showInfo:!1,size:"small",strokeColor:Ia(P.priority)}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"w-[70px]",children:"Remaining"}),i.jsx("span",{className:"font-medium",children:oe??"-"})]})]})}},{title:"Status",dataIndex:"statusType",key:"statusType",width:140},{title:"Description",dataIndex:"description",key:"description",render:($,P)=>i.jsxs("div",{children:[i.jsx("a",{onClick:he=>{he.preventDefault(),l?.(P,{sourceTab:"active"})},className:"inline-block mb-1 text-blue-600",children:P.alertNumber}),i.jsx("div",{className:"text-black/65",children:$})]})},{title:"Preview",key:"preview",width:100,align:"center",render:($,P)=>i.jsx(hr,{record:P})}],fe=a&&a.length?a:Te;return i.jsx("div",{children:i.jsx(ir,{rowKey:"id",data:t,columns:fe,loading:e,pageSize:ie,total:n,currentPage:V,onPageChange:u,toolbar:i.jsxs(h.Row,{gutter:[12,12],className:"mb-3",align:"middle",children:[i.jsx(h.Col,{flex:"none",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{children:"Severity"}),i.jsx(ti,{value:g,onChange:p,options:pe})]})}),i.jsx(h.Col,{flex:"none",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{children:"Anomaly type"}),i.jsx(ni,{value:x,onChange:k,options:ke})]})}),i.jsx(h.Col,{flex:"none",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{children:G?"Bus Number":"Space"}),i.jsx(ri,{value:b,onChange:B,options:ee})]})}),i.jsx(h.Col,{flex:"none",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{children:"Action Taken"}),i.jsx(ii,{value:H,onChange:K,options:q})]})}),i.jsx(h.Col,{flex:"auto"}),i.jsx(h.Col,{flex:"none",children:i.jsx(h.Input.Search,{allowClear:!0,placeholder:"Search",onSearch:D,onChange:$=>D($.target.value),className:"w-[260px] ",enterButton:!0})})]})})})}const Ai=["completed","false positive","face doesn't match name","safe","supervised exit","elopement confirmed"];function en(){const{alerts:t}=$e(),e=yt.useQueryClient();return yt.useMutation({mutationFn:s=>t.updateAlertStatus(s),onSuccess:()=>{e.invalidateQueries({queryKey:["alerts","list"]}),e.invalidateQueries({queryKey:["alerts","report"]})}})}class pt extends Error{}class Ti extends pt{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}}class bi extends pt{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}}class Ni extends pt{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}}class Nt extends pt{}class yr extends pt{constructor(e){super(`Invalid unit ${e}`)}}class Ee extends pt{}class at extends pt{constructor(){super("Zone is an abstract class")}}const N="numeric",_e="short",Pe="long",us={year:N,month:N,day:N},pr={year:N,month:_e,day:N},ki={year:N,month:_e,day:N,weekday:_e},gr={year:N,month:Pe,day:N},Sr={year:N,month:Pe,day:N,weekday:Pe},xr={hour:N,minute:N},vr={hour:N,minute:N,second:N},wr={hour:N,minute:N,second:N,timeZoneName:_e},Ar={hour:N,minute:N,second:N,timeZoneName:Pe},Tr={hour:N,minute:N,hourCycle:"h23"},br={hour:N,minute:N,second:N,hourCycle:"h23"},Nr={hour:N,minute:N,second:N,hourCycle:"h23",timeZoneName:_e},kr={hour:N,minute:N,second:N,hourCycle:"h23",timeZoneName:Pe},Ir={year:N,month:N,day:N,hour:N,minute:N},Er={year:N,month:N,day:N,hour:N,minute:N,second:N},jr={year:N,month:_e,day:N,hour:N,minute:N},Mr={year:N,month:_e,day:N,hour:N,minute:N,second:N},Ii={year:N,month:_e,day:N,weekday:_e,hour:N,minute:N},Or={year:N,month:Pe,day:N,hour:N,minute:N,timeZoneName:_e},Dr={year:N,month:Pe,day:N,hour:N,minute:N,second:N,timeZoneName:_e},Cr={year:N,month:Pe,day:N,weekday:Pe,hour:N,minute:N,timeZoneName:Pe},Rr={year:N,month:Pe,day:N,weekday:Pe,hour:N,minute:N,second:N,timeZoneName:Pe};class zt{get type(){throw new at}get name(){throw new at}get ianaName(){return this.name}get isUniversal(){throw new at}offsetName(e,s){throw new at}formatOffset(e,s){throw new at}offset(e){throw new at}equals(e){throw new at}get isValid(){throw new at}}let ks=null;class ys extends zt{static get instance(){return ks===null&&(ks=new ys),ks}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:s,locale:n}){return Hr(e,s,n)}formatOffset(e,s){return Bt(this.offset(e),s)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}}const $s=new Map;function Ei(t){let e=$s.get(t);return e===void 0&&(e=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),$s.set(t,e)),e}const ji={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Mi(t,e){const s=t.format(e).replace(/\u200E/g,""),n=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(s),[,r,a,o,l,c,u,m]=n;return[o,r,a,l,c,u,m]}function Oi(t,e){const s=t.formatToParts(e),n=[];for(let r=0;r<s.length;r++){const{type:a,value:o}=s[r],l=ji[a];a==="era"?n[l]=o:F(l)||(n[l]=parseInt(o,10))}return n}const Is=new Map;class tt extends zt{static create(e){let s=Is.get(e);return s===void 0&&Is.set(e,s=new tt(e)),s}static resetCache(){Is.clear(),$s.clear()}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=tt.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:s,locale:n}){return Hr(e,s,n,this.name)}formatOffset(e,s){return Bt(this.offset(e),s)}offset(e){if(!this.valid)return NaN;const s=new Date(e);if(isNaN(s))return NaN;const n=Ei(this.name);let[r,a,o,l,c,u,m]=n.formatToParts?Oi(n,s):Mi(n,s);l==="BC"&&(r=-Math.abs(r)+1);const g=gs({year:r,month:a,day:o,hour:c===24?0:c,minute:u,second:m,millisecond:0});let p=+s;const x=p%1e3;return p-=x>=0?x:1e3+x,(g-p)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}}let Tn={};function Di(t,e={}){const s=JSON.stringify([t,e]);let n=Tn[s];return n||(n=new Intl.ListFormat(t,e),Tn[s]=n),n}const Ps=new Map;function Ws(t,e={}){const s=JSON.stringify([t,e]);let n=Ps.get(s);return n===void 0&&(n=new Intl.DateTimeFormat(t,e),Ps.set(s,n)),n}const Bs=new Map;function Ci(t,e={}){const s=JSON.stringify([t,e]);let n=Bs.get(s);return n===void 0&&(n=new Intl.NumberFormat(t,e),Bs.set(s,n)),n}const Vs=new Map;function Ri(t,e={}){const{base:s,...n}=e,r=JSON.stringify([t,n]);let a=Vs.get(r);return a===void 0&&(a=new Intl.RelativeTimeFormat(t,e),Vs.set(r,a)),a}let $t=null;function Ui(){return $t||($t=new Intl.DateTimeFormat().resolvedOptions().locale,$t)}const Zs=new Map;function Ur(t){let e=Zs.get(t);return e===void 0&&(e=new Intl.DateTimeFormat(t).resolvedOptions(),Zs.set(t,e)),e}const zs=new Map;function Li(t){let e=zs.get(t);if(!e){const s=new Intl.Locale(t);e="getWeekInfo"in s?s.getWeekInfo():s.weekInfo,"minimalDays"in e||(e={...Lr,...e}),zs.set(t,e)}return e}function Fi(t){const e=t.indexOf("-x-");e!==-1&&(t=t.substring(0,e));const s=t.indexOf("-u-");if(s===-1)return[t];{let n,r;try{n=Ws(t).resolvedOptions(),r=t}catch{const c=t.substring(0,s);n=Ws(c).resolvedOptions(),r=c}const{numberingSystem:a,calendar:o}=n;return[r,a,o]}}function $i(t,e,s){return(s||e)&&(t.includes("-u-")||(t+="-u"),s&&(t+=`-ca-${s}`),e&&(t+=`-nu-${e}`)),t}function Pi(t){const e=[];for(let s=1;s<=12;s++){const n=L.utc(2009,s,1);e.push(t(n))}return e}function Wi(t){const e=[];for(let s=1;s<=7;s++){const n=L.utc(2016,11,13+s);e.push(t(n))}return e}function es(t,e,s,n){const r=t.listingMode();return r==="error"?null:r==="en"?s(e):n(e)}function Bi(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||Ur(t.locale).numberingSystem==="latn"}class Vi{constructor(e,s,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;const{padTo:r,floor:a,...o}=n;if(!s||Object.keys(o).length>0){const l={useGrouping:!1,...n};n.padTo>0&&(l.minimumIntegerDigits=n.padTo),this.inf=Ci(e,l)}}format(e){if(this.inf){const s=this.floor?Math.floor(e):e;return this.inf.format(s)}else{const s=this.floor?Math.floor(e):an(e,3);return ve(s,this.padTo)}}}class Zi{constructor(e,s,n){this.opts=n,this.originalZone=void 0;let r;if(this.opts.timeZone)this.dt=e;else if(e.zone.type==="fixed"){const o=-1*(e.offset/60),l=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&tt.create(l).valid?(r=l,this.dt=e):(r="UTC",this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type==="system"?this.dt=e:e.zone.type==="iana"?(this.dt=e,r=e.zone.name):(r="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);const a={...this.opts};a.timeZone=a.timeZone||r,this.dtf=Ws(s,a)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){const e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(s=>{if(s.type==="timeZoneName"){const n=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...s,value:n}}else return s}):e}resolvedOptions(){return this.dtf.resolvedOptions()}}class zi{constructor(e,s,n){this.opts={style:"long",...n},!s&&Zr()&&(this.rtf=Ri(e,n))}format(e,s){return this.rtf?this.rtf.format(e,s):fo(s,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,s){return this.rtf?this.rtf.formatToParts(e,s):[]}}const Lr={firstDay:1,minimalDays:4,weekend:[6,7]};class ne{static fromOpts(e){return ne.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,s,n,r,a=!1){const o=e||Se.defaultLocale,l=o||(a?"en-US":Ui()),c=s||Se.defaultNumberingSystem,u=n||Se.defaultOutputCalendar,m=qs(r)||Se.defaultWeekSettings;return new ne(l,c,u,m,o)}static resetCache(){$t=null,Ps.clear(),Bs.clear(),Vs.clear(),Zs.clear(),zs.clear()}static fromObject({locale:e,numberingSystem:s,outputCalendar:n,weekSettings:r}={}){return ne.create(e,s,n,r)}constructor(e,s,n,r,a){const[o,l,c]=Fi(e);this.locale=o,this.numberingSystem=s||l||null,this.outputCalendar=n||c||null,this.weekSettings=r,this.intl=$i(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=a,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=Bi(this)),this.fastNumbersCached}listingMode(){const e=this.isEnglish(),s=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&s?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:ne.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,qs(e.weekSettings)||this.weekSettings,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,s=!1){return es(this,e,Yr,()=>{const n=this.intl==="ja"||this.intl.startsWith("ja-");s&=!n;const r=s?{month:e,day:"numeric"}:{month:e},a=s?"format":"standalone";if(!this.monthsCache[a][e]){const o=n?l=>this.dtFormatter(l,r).format():l=>this.extract(l,r,"month");this.monthsCache[a][e]=Pi(o)}return this.monthsCache[a][e]})}weekdays(e,s=!1){return es(this,e,Kr,()=>{const n=s?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},r=s?"format":"standalone";return this.weekdaysCache[r][e]||(this.weekdaysCache[r][e]=Wi(a=>this.extract(a,n,"weekday"))),this.weekdaysCache[r][e]})}meridiems(){return es(this,void 0,()=>Qr,()=>{if(!this.meridiemCache){const e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[L.utc(2016,11,13,9),L.utc(2016,11,13,19)].map(s=>this.extract(s,e,"dayperiod"))}return this.meridiemCache})}eras(e){return es(this,e,Xr,()=>{const s={era:e};return this.eraCache[e]||(this.eraCache[e]=[L.utc(-40,1,1),L.utc(2017,1,1)].map(n=>this.extract(n,s,"era"))),this.eraCache[e]})}extract(e,s,n){const r=this.dtFormatter(e,s),a=r.formatToParts(),o=a.find(l=>l.type.toLowerCase()===n);return o?o.value:null}numberFormatter(e={}){return new Vi(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,s={}){return new Zi(e,this.intl,s)}relFormatter(e={}){return new zi(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Di(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||Ur(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:zr()?Li(this.locale):Lr}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}}let Es=null;class Ce extends zt{static get utcInstance(){return Es===null&&(Es=new Ce(0)),Es}static instance(e){return e===0?Ce.utcInstance:new Ce(e)}static parseSpecifier(e){if(e){const s=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(s)return new Ce(Ss(s[1],s[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Bt(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Bt(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,s){return Bt(this.fixed,s)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}}class Hi extends zt{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function ot(t,e){if(F(t)||t===null)return e;if(t instanceof zt)return t;if(Ki(t)){const s=t.toLowerCase();return s==="default"?e:s==="local"||s==="system"?ys.instance:s==="utc"||s==="gmt"?Ce.utcInstance:Ce.parseSpecifier(s)||tt.create(t)}else return lt(t)?Ce.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new Hi(t)}const tn={arab:"[٠-٩]",arabext:"[۰-۹]",bali:"[᭐-᭙]",beng:"[০-৯]",deva:"[०-९]",fullwide:"[0-9]",gujr:"[૦-૯]",hanidec:"[〇|一|二|三|四|五|六|七|八|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-໙]",limb:"[᥆-᥏]",mlym:"[൦-൯]",mong:"[᠐-᠙]",mymr:"[၀-၉]",orya:"[୦-୯]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-๙]",tibt:"[༠-༩]",latn:"\\d"},bn={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},qi=tn.hanidec.replace(/[\[|\]]/g,"").split("");function Gi(t){let e=parseInt(t,10);if(isNaN(e)){e="";for(let s=0;s<t.length;s++){const n=t.charCodeAt(s);if(t[s].search(tn.hanidec)!==-1)e+=qi.indexOf(t[s]);else for(const r in bn){const[a,o]=bn[r];n>=a&&n<=o&&(e+=n-a)}}return parseInt(e,10)}else return e}const Hs=new Map;function Yi(){Hs.clear()}function qe({numberingSystem:t},e=""){const s=t||"latn";let n=Hs.get(s);n===void 0&&(n=new Map,Hs.set(s,n));let r=n.get(e);return r===void 0&&(r=new RegExp(`${tn[s]}${e}`),n.set(e,r)),r}let Nn=()=>Date.now(),kn="system",In=null,En=null,jn=null,Mn=60,On,Dn=null;class Se{static get now(){return Nn}static set now(e){Nn=e}static set defaultZone(e){kn=e}static get defaultZone(){return ot(kn,ys.instance)}static get defaultLocale(){return In}static set defaultLocale(e){In=e}static get defaultNumberingSystem(){return En}static set defaultNumberingSystem(e){En=e}static get defaultOutputCalendar(){return jn}static set defaultOutputCalendar(e){jn=e}static get defaultWeekSettings(){return Dn}static set defaultWeekSettings(e){Dn=qs(e)}static get twoDigitCutoffYear(){return Mn}static set twoDigitCutoffYear(e){Mn=e%100}static get throwOnInvalid(){return On}static set throwOnInvalid(e){On=e}static resetCaches(){ne.resetCache(),tt.resetCache(),L.resetCache(),Yi()}}class Ye{constructor(e,s){this.reason=e,this.explanation=s}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}const Fr=[0,31,59,90,120,151,181,212,243,273,304,334],$r=[0,31,60,91,121,152,182,213,244,274,305,335];function Ze(t,e){return new Ye("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function sn(t,e,s){const n=new Date(Date.UTC(t,e-1,s));t<100&&t>=0&&n.setUTCFullYear(n.getUTCFullYear()-1900);const r=n.getUTCDay();return r===0?7:r}function Pr(t,e,s){return s+(Ht(t)?$r:Fr)[e-1]}function Wr(t,e){const s=Ht(t)?$r:Fr,n=s.findIndex(a=>a<e),r=e-s[n];return{month:n+1,day:r}}function nn(t,e){return(t-e+7)%7+1}function ds(t,e=4,s=1){const{year:n,month:r,day:a}=t,o=Pr(n,r,a),l=nn(sn(n,r,a),s);let c=Math.floor((o-l+14-e)/7),u;return c<1?(u=n-1,c=Vt(u,e,s)):c>Vt(n,e,s)?(u=n+1,c=1):u=n,{weekYear:u,weekNumber:c,weekday:l,...xs(t)}}function Cn(t,e=4,s=1){const{weekYear:n,weekNumber:r,weekday:a}=t,o=nn(sn(n,1,e),s),l=kt(n);let c=r*7+a-o-7+e,u;c<1?(u=n-1,c+=kt(u)):c>l?(u=n+1,c-=kt(n)):u=n;const{month:m,day:f}=Wr(u,c);return{year:u,month:m,day:f,...xs(t)}}function js(t){const{year:e,month:s,day:n}=t,r=Pr(e,s,n);return{year:e,ordinal:r,...xs(t)}}function Rn(t){const{year:e,ordinal:s}=t,{month:n,day:r}=Wr(e,s);return{year:e,month:n,day:r,...xs(t)}}function Un(t,e){if(!F(t.localWeekday)||!F(t.localWeekNumber)||!F(t.localWeekYear)){if(!F(t.weekday)||!F(t.weekNumber)||!F(t.weekYear))throw new Nt("Cannot mix locale-based week fields with ISO-based week fields");return F(t.localWeekday)||(t.weekday=t.localWeekday),F(t.localWeekNumber)||(t.weekNumber=t.localWeekNumber),F(t.localWeekYear)||(t.weekYear=t.localWeekYear),delete t.localWeekday,delete t.localWeekNumber,delete t.localWeekYear,{minDaysInFirstWeek:e.getMinDaysInFirstWeek(),startOfWeek:e.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function _i(t,e=4,s=1){const n=ps(t.weekYear),r=ze(t.weekNumber,1,Vt(t.weekYear,e,s)),a=ze(t.weekday,1,7);return n?r?a?!1:Ze("weekday",t.weekday):Ze("week",t.weekNumber):Ze("weekYear",t.weekYear)}function Ji(t){const e=ps(t.year),s=ze(t.ordinal,1,kt(t.year));return e?s?!1:Ze("ordinal",t.ordinal):Ze("year",t.year)}function Br(t){const e=ps(t.year),s=ze(t.month,1,12),n=ze(t.day,1,ms(t.year,t.month));return e?s?n?!1:Ze("day",t.day):Ze("month",t.month):Ze("year",t.year)}function Vr(t){const{hour:e,minute:s,second:n,millisecond:r}=t,a=ze(e,0,23)||e===24&&s===0&&n===0&&r===0,o=ze(s,0,59),l=ze(n,0,59),c=ze(r,0,999);return a?o?l?c?!1:Ze("millisecond",r):Ze("second",n):Ze("minute",s):Ze("hour",e)}function F(t){return typeof t>"u"}function lt(t){return typeof t=="number"}function ps(t){return typeof t=="number"&&t%1===0}function Ki(t){return typeof t=="string"}function Qi(t){return Object.prototype.toString.call(t)==="[object Date]"}function Zr(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function zr(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function Xi(t){return Array.isArray(t)?t:[t]}function Ln(t,e,s){if(t.length!==0)return t.reduce((n,r)=>{const a=[e(r),r];return n&&s(n[0],a[0])===n[0]?n:a},null)[1]}function eo(t,e){return e.reduce((s,n)=>(s[n]=t[n],s),{})}function Et(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function qs(t){if(t==null)return null;if(typeof t!="object")throw new Ee("Week settings must be an object");if(!ze(t.firstDay,1,7)||!ze(t.minimalDays,1,7)||!Array.isArray(t.weekend)||t.weekend.some(e=>!ze(e,1,7)))throw new Ee("Invalid week settings");return{firstDay:t.firstDay,minimalDays:t.minimalDays,weekend:Array.from(t.weekend)}}function ze(t,e,s){return ps(t)&&t>=e&&t<=s}function to(t,e){return t-e*Math.floor(t/e)}function ve(t,e=2){const s=t<0;let n;return s?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function it(t){if(!(F(t)||t===null||t===""))return parseInt(t,10)}function dt(t){if(!(F(t)||t===null||t===""))return parseFloat(t)}function rn(t){if(!(F(t)||t===null||t==="")){const e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function an(t,e,s="round"){const n=10**e;switch(s){case"expand":return t>0?Math.ceil(t*n)/n:Math.floor(t*n)/n;case"trunc":return Math.trunc(t*n)/n;case"round":return Math.round(t*n)/n;case"floor":return Math.floor(t*n)/n;case"ceil":return Math.ceil(t*n)/n;default:throw new RangeError(`Value rounding ${s} is out of range`)}}function Ht(t){return t%4===0&&(t%100!==0||t%400===0)}function kt(t){return Ht(t)?366:365}function ms(t,e){const s=to(e-1,12)+1,n=t+(e-s)/12;return s===2?Ht(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][s-1]}function gs(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(t.year,t.month-1,t.day)),+e}function Fn(t,e,s){return-nn(sn(t,1,e),s)+e-1}function Vt(t,e=4,s=1){const n=Fn(t,e,s),r=Fn(t+1,e,s);return(kt(t)-n+r)/7}function Gs(t){return t>99?t:t>Se.twoDigitCutoffYear?1900+t:2e3+t}function Hr(t,e,s,n=null){const r=new Date(t),a={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(a.timeZone=n);const o={timeZoneName:e,...a},l=new Intl.DateTimeFormat(s,o).formatToParts(r).find(c=>c.type.toLowerCase()==="timezonename");return l?l.value:null}function Ss(t,e){let s=parseInt(t,10);Number.isNaN(s)&&(s=0);const n=parseInt(e,10)||0,r=s<0||Object.is(s,-0)?-n:n;return s*60+r}function qr(t){const e=Number(t);if(typeof t=="boolean"||t===""||!Number.isFinite(e))throw new Ee(`Invalid unit value ${t}`);return e}function fs(t,e){const s={};for(const n in t)if(Et(t,n)){const r=t[n];if(r==null)continue;s[e(n)]=qr(r)}return s}function Bt(t,e){const s=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),r=t>=0?"+":"-";switch(e){case"short":return`${r}${ve(s,2)}:${ve(n,2)}`;case"narrow":return`${r}${s}${n>0?`:${n}`:""}`;case"techie":return`${r}${ve(s,2)}${ve(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function xs(t){return eo(t,["hour","minute","second","millisecond"])}const so=["January","February","March","April","May","June","July","August","September","October","November","December"],Gr=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],no=["J","F","M","A","M","J","J","A","S","O","N","D"];function Yr(t){switch(t){case"narrow":return[...no];case"short":return[...Gr];case"long":return[...so];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const _r=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Jr=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],ro=["M","T","W","T","F","S","S"];function Kr(t){switch(t){case"narrow":return[...ro];case"short":return[...Jr];case"long":return[..._r];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const Qr=["AM","PM"],ao=["Before Christ","Anno Domini"],io=["BC","AD"],oo=["B","A"];function Xr(t){switch(t){case"narrow":return[...oo];case"short":return[...io];case"long":return[...ao];default:return null}}function lo(t){return Qr[t.hour<12?0:1]}function co(t,e){return Kr(e)[t.weekday-1]}function uo(t,e){return Yr(e)[t.month-1]}function mo(t,e){return Xr(e)[t.year<0?0:1]}function fo(t,e,s="always",n=!1){const r={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},a=["hours","minutes","seconds"].indexOf(t)===-1;if(s==="auto"&&a){const f=t==="days";switch(e){case 1:return f?"tomorrow":`next ${r[t][0]}`;case-1:return f?"yesterday":`last ${r[t][0]}`;case 0:return f?"today":`this ${r[t][0]}`}}const o=Object.is(e,-0)||e<0,l=Math.abs(e),c=l===1,u=r[t],m=n?c?u[1]:u[2]||u[1]:c?r[t][0]:t;return o?`${l} ${m} ago`:`in ${l} ${m}`}function $n(t,e){let s="";for(const n of t)n.literal?s+=n.val:s+=e(n.val);return s}const ho={D:us,DD:pr,DDD:gr,DDDD:Sr,t:xr,tt:vr,ttt:wr,tttt:Ar,T:Tr,TT:br,TTT:Nr,TTTT:kr,f:Ir,ff:jr,fff:Or,ffff:Cr,F:Er,FF:Mr,FFF:Dr,FFFF:Rr};class je{static create(e,s={}){return new je(e,s)}static parseFormat(e){let s=null,n="",r=!1;const a=[];for(let o=0;o<e.length;o++){const l=e.charAt(o);l==="'"?((n.length>0||r)&&a.push({literal:r||/^\s+$/.test(n),val:n===""?"'":n}),s=null,n="",r=!r):r||l===s?n+=l:(n.length>0&&a.push({literal:/^\s+$/.test(n),val:n}),n=l,s=l)}return n.length>0&&a.push({literal:r||/^\s+$/.test(n),val:n}),a}static macroTokenToFormatOpts(e){return ho[e]}constructor(e,s){this.opts=s,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,s){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...s}).format()}dtFormatter(e,s={}){return this.loc.dtFormatter(e,{...this.opts,...s})}formatDateTime(e,s){return this.dtFormatter(e,s).format()}formatDateTimeParts(e,s){return this.dtFormatter(e,s).formatToParts()}formatInterval(e,s){return this.dtFormatter(e.start,s).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,s){return this.dtFormatter(e,s).resolvedOptions()}num(e,s=0,n=void 0){if(this.opts.forceSimple)return ve(e,s);const r={...this.opts};return s>0&&(r.padTo=s),n&&(r.signDisplay=n),this.loc.numberFormatter(r).format(e)}formatDateTimeFromString(e,s){const n=this.loc.listingMode()==="en",r=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",a=(p,x)=>this.loc.extract(e,p,x),o=p=>e.isOffsetFixed&&e.offset===0&&p.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,p.format):"",l=()=>n?lo(e):a({hour:"numeric",hourCycle:"h12"},"dayperiod"),c=(p,x)=>n?uo(e,p):a(x?{month:p}:{month:p,day:"numeric"},"month"),u=(p,x)=>n?co(e,p):a(x?{weekday:p}:{weekday:p,month:"long",day:"numeric"},"weekday"),m=p=>{const x=je.macroTokenToFormatOpts(p);return x?this.formatWithSystemDefault(e,x):p},f=p=>n?mo(e,p):a({era:p},"era"),g=p=>{switch(p){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return l();case"d":return r?a({day:"numeric"},"day"):this.num(e.day);case"dd":return r?a({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return u("short",!0);case"cccc":return u("long",!0);case"ccccc":return u("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return u("short",!1);case"EEEE":return u("long",!1);case"EEEEE":return u("narrow",!1);case"L":return r?a({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return r?a({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return c("short",!0);case"LLLL":return c("long",!0);case"LLLLL":return c("narrow",!0);case"M":return r?a({month:"numeric"},"month"):this.num(e.month);case"MM":return r?a({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return c("short",!1);case"MMMM":return c("long",!1);case"MMMMM":return c("narrow",!1);case"y":return r?a({year:"numeric"},"year"):this.num(e.year);case"yy":return r?a({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return r?a({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return r?a({year:"numeric"},"year"):this.num(e.year,6);case"G":return f("short");case"GG":return f("long");case"GGGGG":return f("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return m(p)}};return $n(je.parseFormat(s),g)}formatDurationFromString(e,s){const n=this.opts.signMode==="negativeLargestOnly"?-1:1,r=m=>{switch(m[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},a=(m,f)=>g=>{const p=r(g);if(p){const x=f.isNegativeDuration&&p!==f.largestUnit?n:1;let k;return this.opts.signMode==="negativeLargestOnly"&&p!==f.largestUnit?k="never":this.opts.signMode==="all"?k="always":k="auto",this.num(m.get(p)*x,g.length,k)}else return g},o=je.parseFormat(s),l=o.reduce((m,{literal:f,val:g})=>f?m:m.concat(g),[]),c=e.shiftTo(...l.map(r).filter(m=>m)),u={isNegativeDuration:c<0,largestUnit:Object.keys(c.values)[0]};return $n(o,a(c,u))}}const ea=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function jt(...t){const e=t.reduce((s,n)=>s+n.source,"");return RegExp(`^${e}$`)}function Mt(...t){return e=>t.reduce(([s,n,r],a)=>{const[o,l,c]=a(e,r);return[{...s,...o},l||n,c]},[{},null,1]).slice(0,2)}function Ot(t,...e){if(t==null)return[null,null];for(const[s,n]of e){const r=s.exec(t);if(r)return n(r)}return[null,null]}function ta(...t){return(e,s)=>{const n={};let r;for(r=0;r<t.length;r++)n[t[r]]=it(e[s+r]);return[n,null,s+r]}}const sa=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,yo=`(?:${sa.source}?(?:\\[(${ea.source})\\])?)?`,on=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,na=RegExp(`${on.source}${yo}`),ln=RegExp(`(?:[Tt]${na.source})?`),po=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,go=/(\d{4})-?W(\d\d)(?:-?(\d))?/,So=/(\d{4})-?(\d{3})/,xo=ta("weekYear","weekNumber","weekDay"),vo=ta("year","ordinal"),wo=/(\d{4})-(\d\d)-(\d\d)/,ra=RegExp(`${on.source} ?(?:${sa.source}|(${ea.source}))?`),Ao=RegExp(`(?: ${ra.source})?`);function It(t,e,s){const n=t[e];return F(n)?s:it(n)}function To(t,e){return[{year:It(t,e),month:It(t,e+1,1),day:It(t,e+2,1)},null,e+3]}function Dt(t,e){return[{hours:It(t,e,0),minutes:It(t,e+1,0),seconds:It(t,e+2,0),milliseconds:rn(t[e+3])},null,e+4]}function qt(t,e){const s=!t[e]&&!t[e+1],n=Ss(t[e+1],t[e+2]),r=s?null:Ce.instance(n);return[{},r,e+3]}function Gt(t,e){const s=t[e]?tt.create(t[e]):null;return[{},s,e+1]}const bo=RegExp(`^T?${on.source}$`),No=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function ko(t){const[e,s,n,r,a,o,l,c,u]=t,m=e[0]==="-",f=c&&c[0]==="-",g=(p,x=!1)=>p!==void 0&&(x||p&&m)?-p:p;return[{years:g(dt(s)),months:g(dt(n)),weeks:g(dt(r)),days:g(dt(a)),hours:g(dt(o)),minutes:g(dt(l)),seconds:g(dt(c),c==="-0"),milliseconds:g(rn(u),f)}]}const Io={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function cn(t,e,s,n,r,a,o){const l={year:e.length===2?Gs(it(e)):it(e),month:Gr.indexOf(s)+1,day:it(n),hour:it(r),minute:it(a)};return o&&(l.second=it(o)),t&&(l.weekday=t.length>3?_r.indexOf(t)+1:Jr.indexOf(t)+1),l}const Eo=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function jo(t){const[,e,s,n,r,a,o,l,c,u,m,f]=t,g=cn(e,r,n,s,a,o,l);let p;return c?p=Io[c]:u?p=0:p=Ss(m,f),[g,new Ce(p)]}function Mo(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}const Oo=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,Do=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,Co=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function Pn(t){const[,e,s,n,r,a,o,l]=t;return[cn(e,r,n,s,a,o,l),Ce.utcInstance]}function Ro(t){const[,e,s,n,r,a,o,l]=t;return[cn(e,l,s,n,r,a,o),Ce.utcInstance]}const Uo=jt(po,ln),Lo=jt(go,ln),Fo=jt(So,ln),$o=jt(na),aa=Mt(To,Dt,qt,Gt),Po=Mt(xo,Dt,qt,Gt),Wo=Mt(vo,Dt,qt,Gt),Bo=Mt(Dt,qt,Gt);function Vo(t){return Ot(t,[Uo,aa],[Lo,Po],[Fo,Wo],[$o,Bo])}function Zo(t){return Ot(Mo(t),[Eo,jo])}function zo(t){return Ot(t,[Oo,Pn],[Do,Pn],[Co,Ro])}function Ho(t){return Ot(t,[No,ko])}const qo=Mt(Dt);function Go(t){return Ot(t,[bo,qo])}const Yo=jt(wo,Ao),_o=jt(ra),Jo=Mt(Dt,qt,Gt);function Ko(t){return Ot(t,[Yo,aa],[_o,Jo])}const Wn="Invalid Duration",ia={weeks:{days:7,hours:168,minutes:10080,seconds:10080*60,milliseconds:10080*60*1e3},days:{hours:24,minutes:1440,seconds:1440*60,milliseconds:1440*60*1e3},hours:{minutes:60,seconds:3600,milliseconds:3600*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},Qo={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:2184*60,seconds:2184*60*60,milliseconds:2184*60*60*1e3},months:{weeks:4,days:30,hours:720,minutes:720*60,seconds:720*60*60,milliseconds:720*60*60*1e3},...ia},Ve=146097/400,At=146097/4800,Xo={years:{quarters:4,months:12,weeks:Ve/7,days:Ve,hours:Ve*24,minutes:Ve*24*60,seconds:Ve*24*60*60,milliseconds:Ve*24*60*60*1e3},quarters:{months:3,weeks:Ve/28,days:Ve/4,hours:Ve*24/4,minutes:Ve*24*60/4,seconds:Ve*24*60*60/4,milliseconds:Ve*24*60*60*1e3/4},months:{weeks:At/7,days:At,hours:At*24,minutes:At*24*60,seconds:At*24*60*60,milliseconds:At*24*60*60*1e3},...ia},ft=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],el=ft.slice(0).reverse();function Xe(t,e,s=!1){const n={values:s?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new Q(n)}function oa(t,e){let s=e.milliseconds??0;for(const n of el.slice(1))e[n]&&(s+=e[n]*t[n].milliseconds);return s}function Bn(t,e){const s=oa(t,e)<0?-1:1;ft.reduceRight((n,r)=>{if(F(e[r]))return n;if(n){const a=e[n]*s,o=t[r][n],l=Math.floor(a/o);e[r]+=l*s,e[n]-=l*o*s}return r},null),ft.reduce((n,r)=>{if(F(e[r]))return n;if(n){const a=e[n]%1;e[n]-=a,e[r]+=a*t[n][r]}return r},null)}function Vn(t){const e={};for(const[s,n]of Object.entries(t))n!==0&&(e[s]=n);return e}class Q{constructor(e){const s=e.conversionAccuracy==="longterm"||!1;let n=s?Xo:Qo;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||ne.create(),this.conversionAccuracy=s?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,s){return Q.fromObject({milliseconds:e},s)}static fromObject(e,s={}){if(e==null||typeof e!="object")throw new Ee(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new Q({values:fs(e,Q.normalizeUnit),loc:ne.fromObject(s),conversionAccuracy:s.conversionAccuracy,matrix:s.matrix})}static fromDurationLike(e){if(lt(e))return Q.fromMillis(e);if(Q.isDuration(e))return e;if(typeof e=="object")return Q.fromObject(e);throw new Ee(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,s){const[n]=Ho(e);return n?Q.fromObject(n,s):Q.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,s){const[n]=Go(e);return n?Q.fromObject(n,s):Q.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,s=null){if(!e)throw new Ee("need to specify a reason the Duration is invalid");const n=e instanceof Ye?e:new Ye(e,s);if(Se.throwOnInvalid)throw new Ni(n);return new Q({invalid:n})}static normalizeUnit(e){const s={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!s)throw new yr(e);return s}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,s={}){const n={...s,floor:s.round!==!1&&s.floor!==!1};return this.isValid?je.create(this.loc,n).formatDurationFromString(this,e):Wn}toHuman(e={}){if(!this.isValid)return Wn;const s=e.showZeros!==!1,n=ft.map(r=>{const a=this.values[r];return F(a)||a===0&&!s?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:r.slice(0,-1)}).format(a)}).filter(r=>r);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=an(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;const s=this.toMillis();return s<0||s>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},L.fromMillis(s,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?oa(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;const s=Q.fromDurationLike(e),n={};for(const r of ft)(Et(s.values,r)||Et(this.values,r))&&(n[r]=s.get(r)+this.get(r));return Xe(this,{values:n},!0)}minus(e){if(!this.isValid)return this;const s=Q.fromDurationLike(e);return this.plus(s.negate())}mapUnits(e){if(!this.isValid)return this;const s={};for(const n of Object.keys(this.values))s[n]=qr(e(this.values[n],n));return Xe(this,{values:s},!0)}get(e){return this[Q.normalizeUnit(e)]}set(e){if(!this.isValid)return this;const s={...this.values,...fs(e,Q.normalizeUnit)};return Xe(this,{values:s})}reconfigure({locale:e,numberingSystem:s,conversionAccuracy:n,matrix:r}={}){const o={loc:this.loc.clone({locale:e,numberingSystem:s}),matrix:r,conversionAccuracy:n};return Xe(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;const e=this.toObject();return Bn(this.matrix,e),Xe(this,{values:e},!0)}rescale(){if(!this.isValid)return this;const e=Vn(this.normalize().shiftToAll().toObject());return Xe(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>Q.normalizeUnit(o));const s={},n={},r=this.toObject();let a;for(const o of ft)if(e.indexOf(o)>=0){a=o;let l=0;for(const u in n)l+=this.matrix[u][o]*n[u],n[u]=0;lt(r[o])&&(l+=r[o]);const c=Math.trunc(l);s[o]=c,n[o]=(l*1e3-c*1e3)/1e3}else lt(r[o])&&(n[o]=r[o]);for(const o in n)n[o]!==0&&(s[a]+=o===a?n[o]:n[o]/this.matrix[a][o]);return Bn(this.matrix,s),Xe(this,{values:s},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;const e={};for(const s of Object.keys(this.values))e[s]=this.values[s]===0?0:-this.values[s];return Xe(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;const e=Vn(this.values);return Xe(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function s(n,r){return n===void 0||n===0?r===void 0||r===0:n===r}for(const n of ft)if(!s(this.values[n],e.values[n]))return!1;return!0}}const Tt="Invalid Interval";function tl(t,e){return!t||!t.isValid?ge.invalid("missing or invalid start"):!e||!e.isValid?ge.invalid("missing or invalid end"):e<t?ge.invalid("end before start",`The end of an interval must be after its start, but you had start=${t.toISO()} and end=${e.toISO()}`):null}class ge{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,s=null){if(!e)throw new Ee("need to specify a reason the Interval is invalid");const n=e instanceof Ye?e:new Ye(e,s);if(Se.throwOnInvalid)throw new bi(n);return new ge({invalid:n})}static fromDateTimes(e,s){const n=Lt(e),r=Lt(s),a=tl(n,r);return a??new ge({start:n,end:r})}static after(e,s){const n=Q.fromDurationLike(s),r=Lt(e);return ge.fromDateTimes(r,r.plus(n))}static before(e,s){const n=Q.fromDurationLike(s),r=Lt(e);return ge.fromDateTimes(r.minus(n),r)}static fromISO(e,s){const[n,r]=(e||"").split("/",2);if(n&&r){let a,o;try{a=L.fromISO(n,s),o=a.isValid}catch{o=!1}let l,c;try{l=L.fromISO(r,s),c=l.isValid}catch{c=!1}if(o&&c)return ge.fromDateTimes(a,l);if(o){const u=Q.fromISO(r,s);if(u.isValid)return ge.after(a,u)}else if(c){const u=Q.fromISO(n,s);if(u.isValid)return ge.before(l,u)}}return ge.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds",s){if(!this.isValid)return NaN;const n=this.start.startOf(e,s);let r;return s?.useLocaleWeeks?r=this.end.reconfigure({locale:n.locale}):r=this.end,r=r.startOf(e,s),Math.floor(r.diff(n,e).get(e))+(r.valueOf()!==this.end.valueOf())}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:s}={}){return this.isValid?ge.fromDateTimes(e||this.s,s||this.e):this}splitAt(...e){if(!this.isValid)return[];const s=e.map(Lt).filter(o=>this.contains(o)).sort((o,l)=>o.toMillis()-l.toMillis()),n=[];let{s:r}=this,a=0;for(;r<this.e;){const o=s[a]||this.e,l=+o>+this.e?this.e:o;n.push(ge.fromDateTimes(r,l)),r=l,a+=1}return n}splitBy(e){const s=Q.fromDurationLike(e);if(!this.isValid||!s.isValid||s.as("milliseconds")===0)return[];let{s:n}=this,r=1,a;const o=[];for(;n<this.e;){const l=this.start.plus(s.mapUnits(c=>c*r));a=+l>+this.e?this.e:l,o.push(ge.fromDateTimes(n,a)),n=a,r+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;const s=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return s>=n?null:ge.fromDateTimes(s,n)}union(e){if(!this.isValid)return this;const s=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return ge.fromDateTimes(s,n)}static merge(e){const[s,n]=e.sort((r,a)=>r.s-a.s).reduce(([r,a],o)=>a?a.overlaps(o)||a.abutsStart(o)?[r,a.union(o)]:[r.concat([a]),o]:[r,o],[[],null]);return n&&s.push(n),s}static xor(e){let s=null,n=0;const r=[],a=e.map(c=>[{time:c.s,type:"s"},{time:c.e,type:"e"}]),o=Array.prototype.concat(...a),l=o.sort((c,u)=>c.time-u.time);for(const c of l)n+=c.type==="s"?1:-1,n===1?s=c.time:(s&&+s!=+c.time&&r.push(ge.fromDateTimes(s,c.time)),s=null);return ge.merge(r)}difference(...e){return ge.xor([this].concat(e)).map(s=>this.intersection(s)).filter(s=>s&&!s.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} – ${this.e.toISO()})`:Tt}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=us,s={}){return this.isValid?je.create(this.s.loc.clone(s),e).formatInterval(this):Tt}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Tt}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Tt}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Tt}toFormat(e,{separator:s=" – "}={}){return this.isValid?`${this.s.toFormat(e)}${s}${this.e.toFormat(e)}`:Tt}toDuration(e,s){return this.isValid?this.e.diff(this.s,e,s):Q.invalid(this.invalidReason)}mapEndpoints(e){return ge.fromDateTimes(e(this.s),e(this.e))}}class ts{static hasDST(e=Se.defaultZone){const s=L.now().setZone(e).set({month:12});return!e.isUniversal&&s.offset!==s.set({month:6}).offset}static isValidIANAZone(e){return tt.isValidZone(e)}static normalizeZone(e){return ot(e,Se.defaultZone)}static getStartOfWeek({locale:e=null,locObj:s=null}={}){return(s||ne.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:s=null}={}){return(s||ne.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:s=null}={}){return(s||ne.create(e)).getWeekendDays().slice()}static months(e="long",{locale:s=null,numberingSystem:n=null,locObj:r=null,outputCalendar:a="gregory"}={}){return(r||ne.create(s,n,a)).months(e)}static monthsFormat(e="long",{locale:s=null,numberingSystem:n=null,locObj:r=null,outputCalendar:a="gregory"}={}){return(r||ne.create(s,n,a)).months(e,!0)}static weekdays(e="long",{locale:s=null,numberingSystem:n=null,locObj:r=null}={}){return(r||ne.create(s,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:s=null,numberingSystem:n=null,locObj:r=null}={}){return(r||ne.create(s,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return ne.create(e).meridiems()}static eras(e="short",{locale:s=null}={}){return ne.create(s,null,"gregory").eras(e)}static features(){return{relative:Zr(),localeWeek:zr()}}}function Zn(t,e){const s=r=>r.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=s(e)-s(t);return Math.floor(Q.fromMillis(n).as("days"))}function sl(t,e,s){const n=[["years",(c,u)=>u.year-c.year],["quarters",(c,u)=>u.quarter-c.quarter+(u.year-c.year)*4],["months",(c,u)=>u.month-c.month+(u.year-c.year)*12],["weeks",(c,u)=>{const m=Zn(c,u);return(m-m%7)/7}],["days",Zn]],r={},a=t;let o,l;for(const[c,u]of n)s.indexOf(c)>=0&&(o=c,r[c]=u(t,e),l=a.plus(r),l>e?(r[c]--,t=a.plus(r),t>e&&(l=t,r[c]--,t=a.plus(r))):t=l);return[t,r,l,o]}function nl(t,e,s,n){let[r,a,o,l]=sl(t,e,s);const c=e-r,u=s.filter(f=>["hours","minutes","seconds","milliseconds"].indexOf(f)>=0);u.length===0&&(o<e&&(o=r.plus({[l]:1})),o!==r&&(a[l]=(a[l]||0)+c/(o-r)));const m=Q.fromObject(a,n);return u.length>0?Q.fromMillis(c,n).shiftTo(...u).plus(m):m}const rl="missing Intl.DateTimeFormat.formatToParts support";function X(t,e=s=>s){return{regex:t,deser:([s])=>e(Gi(s))}}const al=" ",la=`[ ${al}]`,ca=new RegExp(la,"g");function il(t){return t.replace(/\./g,"\\.?").replace(ca,la)}function zn(t){return t.replace(/\./g,"").replace(ca," ").toLowerCase()}function Ge(t,e){return t===null?null:{regex:RegExp(t.map(il).join("|")),deser:([s])=>t.findIndex(n=>zn(s)===zn(n))+e}}function Hn(t,e){return{regex:t,deser:([,s,n])=>Ss(s,n),groups:e}}function ss(t){return{regex:t,deser:([e])=>e}}function ol(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function ll(t,e){const s=qe(e),n=qe(e,"{2}"),r=qe(e,"{3}"),a=qe(e,"{4}"),o=qe(e,"{6}"),l=qe(e,"{1,2}"),c=qe(e,"{1,3}"),u=qe(e,"{1,6}"),m=qe(e,"{1,9}"),f=qe(e,"{2,4}"),g=qe(e,"{4,6}"),p=b=>({regex:RegExp(ol(b.val)),deser:([B])=>B,literal:!0}),k=(b=>{if(t.literal)return p(b);switch(b.val){case"G":return Ge(e.eras("short"),0);case"GG":return Ge(e.eras("long"),0);case"y":return X(u);case"yy":return X(f,Gs);case"yyyy":return X(a);case"yyyyy":return X(g);case"yyyyyy":return X(o);case"M":return X(l);case"MM":return X(n);case"MMM":return Ge(e.months("short",!0),1);case"MMMM":return Ge(e.months("long",!0),1);case"L":return X(l);case"LL":return X(n);case"LLL":return Ge(e.months("short",!1),1);case"LLLL":return Ge(e.months("long",!1),1);case"d":return X(l);case"dd":return X(n);case"o":return X(c);case"ooo":return X(r);case"HH":return X(n);case"H":return X(l);case"hh":return X(n);case"h":return X(l);case"mm":return X(n);case"m":return X(l);case"q":return X(l);case"qq":return X(n);case"s":return X(l);case"ss":return X(n);case"S":return X(c);case"SSS":return X(r);case"u":return ss(m);case"uu":return ss(l);case"uuu":return X(s);case"a":return Ge(e.meridiems(),0);case"kkkk":return X(a);case"kk":return X(f,Gs);case"W":return X(l);case"WW":return X(n);case"E":case"c":return X(s);case"EEE":return Ge(e.weekdays("short",!1),1);case"EEEE":return Ge(e.weekdays("long",!1),1);case"ccc":return Ge(e.weekdays("short",!0),1);case"cccc":return Ge(e.weekdays("long",!0),1);case"Z":case"ZZ":return Hn(new RegExp(`([+-]${l.source})(?::(${n.source}))?`),2);case"ZZZ":return Hn(new RegExp(`([+-]${l.source})(${n.source})?`),2);case"z":return ss(/[a-z_+-/]{1,256}?/i);case" ":return ss(/[^\S\n\r]/);default:return p(b)}})(t)||{invalidReason:rl};return k.token=t,k}const cl={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function ul(t,e,s){const{type:n,value:r}=t;if(n==="literal"){const c=/^\s+$/.test(r);return{literal:!c,val:c?" ":r}}const a=e[n];let o=n;n==="hour"&&(e.hour12!=null?o=e.hour12?"hour12":"hour24":e.hourCycle!=null?e.hourCycle==="h11"||e.hourCycle==="h12"?o="hour12":o="hour24":o=s.hour12?"hour12":"hour24");let l=cl[o];if(typeof l=="object"&&(l=l[a]),l)return{literal:!1,val:l}}function dl(t){return[`^${t.map(s=>s.regex).reduce((s,n)=>`${s}(${n.source})`,"")}$`,t]}function ml(t,e,s){const n=t.match(e);if(n){const r={};let a=1;for(const o in s)if(Et(s,o)){const l=s[o],c=l.groups?l.groups+1:1;!l.literal&&l.token&&(r[l.token.val[0]]=l.deser(n.slice(a,a+c))),a+=c}return[n,r]}else return[n,{}]}function fl(t){const e=a=>{switch(a){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}};let s=null,n;return F(t.z)||(s=tt.create(t.z)),F(t.Z)||(s||(s=new Ce(t.Z)),n=t.Z),F(t.q)||(t.M=(t.q-1)*3+1),F(t.h)||(t.h<12&&t.a===1?t.h+=12:t.h===12&&t.a===0&&(t.h=0)),t.G===0&&t.y&&(t.y=-t.y),F(t.u)||(t.S=rn(t.u)),[Object.keys(t).reduce((a,o)=>{const l=e(o);return l&&(a[l]=t[o]),a},{}),s,n]}let Ms=null;function hl(){return Ms||(Ms=L.fromMillis(1555555555555)),Ms}function yl(t,e){if(t.literal)return t;const s=je.macroTokenToFormatOpts(t.val),n=fa(s,e);return n==null||n.includes(void 0)?t:n}function ua(t,e){return Array.prototype.concat(...t.map(s=>yl(s,e)))}class da{constructor(e,s){if(this.locale=e,this.format=s,this.tokens=ua(je.parseFormat(s),e),this.units=this.tokens.map(n=>ll(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){const[n,r]=dl(this.units);this.regex=RegExp(n,"i"),this.handlers=r}}explainFromTokens(e){if(this.isValid){const[s,n]=ml(e,this.regex,this.handlers),[r,a,o]=n?fl(n):[null,null,void 0];if(Et(n,"a")&&Et(n,"H"))throw new Nt("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:s,matches:n,result:r,zone:a,specificOffset:o}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function ma(t,e,s){return new da(t,s).explainFromTokens(e)}function pl(t,e,s){const{result:n,zone:r,specificOffset:a,invalidReason:o}=ma(t,e,s);return[n,r,a,o]}function fa(t,e){if(!t)return null;const n=je.create(e,t).dtFormatter(hl()),r=n.formatToParts(),a=n.resolvedOptions();return r.map(o=>ul(o,t,a))}const Os="Invalid DateTime",qn=864e13;function Pt(t){return new Ye("unsupported zone",`the zone "${t.name}" is not supported`)}function Ds(t){return t.weekData===null&&(t.weekData=ds(t.c)),t.weekData}function Cs(t){return t.localWeekData===null&&(t.localWeekData=ds(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}function mt(t,e){const s={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new L({...s,...e,old:s})}function ha(t,e,s){let n=t-e*60*1e3;const r=s.offset(n);if(e===r)return[n,e];n-=(r-e)*60*1e3;const a=s.offset(n);return r===a?[n,r]:[t-Math.min(r,a)*60*1e3,Math.max(r,a)]}function ns(t,e){t+=e*60*1e3;const s=new Date(t);return{year:s.getUTCFullYear(),month:s.getUTCMonth()+1,day:s.getUTCDate(),hour:s.getUTCHours(),minute:s.getUTCMinutes(),second:s.getUTCSeconds(),millisecond:s.getUTCMilliseconds()}}function os(t,e,s){return ha(gs(t),e,s)}function Gn(t,e){const s=t.o,n=t.c.year+Math.trunc(e.years),r=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,a={...t.c,year:n,month:r,day:Math.min(t.c.day,ms(n,r))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=Q.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),l=gs(a);let[c,u]=ha(l,s,t.zone);return o!==0&&(c+=o,u=t.zone.offset(c)),{ts:c,o:u}}function bt(t,e,s,n,r,a){const{setZone:o,zone:l}=s;if(t&&Object.keys(t).length!==0||e){const c=e||l,u=L.fromObject(t,{...s,zone:c,specificOffset:a});return o?u:u.setZone(l)}else return L.invalid(new Ye("unparsable",`the input "${r}" can't be parsed as ${n}`))}function rs(t,e,s=!0){return t.isValid?je.create(ne.create("en-US"),{allowZ:s,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Rs(t,e,s){const n=t.c.year>9999||t.c.year<0;let r="";if(n&&t.c.year>=0&&(r+="+"),r+=ve(t.c.year,n?6:4),s==="year")return r;if(e){if(r+="-",r+=ve(t.c.month),s==="month")return r;r+="-"}else if(r+=ve(t.c.month),s==="month")return r;return r+=ve(t.c.day),r}function Yn(t,e,s,n,r,a,o){let l=!s||t.c.millisecond!==0||t.c.second!==0,c="";switch(o){case"day":case"month":case"year":break;default:if(c+=ve(t.c.hour),o==="hour")break;if(e){if(c+=":",c+=ve(t.c.minute),o==="minute")break;l&&(c+=":",c+=ve(t.c.second))}else{if(c+=ve(t.c.minute),o==="minute")break;l&&(c+=ve(t.c.second))}if(o==="second")break;l&&(!n||t.c.millisecond!==0)&&(c+=".",c+=ve(t.c.millisecond,3))}return r&&(t.isOffsetFixed&&t.offset===0&&!a?c+="Z":t.o<0?(c+="-",c+=ve(Math.trunc(-t.o/60)),c+=":",c+=ve(Math.trunc(-t.o%60))):(c+="+",c+=ve(Math.trunc(t.o/60)),c+=":",c+=ve(Math.trunc(t.o%60)))),a&&(c+="["+t.zone.ianaName+"]"),c}const ya={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},gl={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},Sl={ordinal:1,hour:0,minute:0,second:0,millisecond:0},ls=["year","month","day","hour","minute","second","millisecond"],xl=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],vl=["year","ordinal","hour","minute","second","millisecond"];function cs(t){const e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[t.toLowerCase()];if(!e)throw new yr(t);return e}function _n(t){switch(t.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return cs(t)}}function wl(t){if(Wt===void 0&&(Wt=Se.now()),t.type!=="iana")return t.offset(Wt);const e=t.name;let s=Ys.get(e);return s===void 0&&(s=t.offset(Wt),Ys.set(e,s)),s}function Jn(t,e){const s=ot(e.zone,Se.defaultZone);if(!s.isValid)return L.invalid(Pt(s));const n=ne.fromObject(e);let r,a;if(F(t.year))r=Se.now();else{for(const c of ls)F(t[c])&&(t[c]=ya[c]);const o=Br(t)||Vr(t);if(o)return L.invalid(o);const l=wl(s);[r,a]=os(t,l,s)}return new L({ts:r,zone:s,loc:n,o:a})}function Kn(t,e,s){const n=F(s.round)?!0:s.round,r=F(s.rounding)?"trunc":s.rounding,a=(l,c)=>(l=an(l,n||s.calendary?0:2,s.calendary?"round":r),e.loc.clone(s).relFormatter(s).format(l,c)),o=l=>s.calendary?e.hasSame(t,l)?0:e.startOf(l).diff(t.startOf(l),l).get(l):e.diff(t,l).get(l);if(s.unit)return a(o(s.unit),s.unit);for(const l of s.units){const c=o(l);if(Math.abs(c)>=1)return a(c,l)}return a(t>e?-0:0,s.units[s.units.length-1])}function Qn(t){let e={},s;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],s=Array.from(t).slice(0,t.length-1)):s=Array.from(t),[e,s]}let Wt;const Ys=new Map;class L{constructor(e){const s=e.zone||Se.defaultZone;let n=e.invalid||(Number.isNaN(e.ts)?new Ye("invalid input"):null)||(s.isValid?null:Pt(s));this.ts=F(e.ts)?Se.now():e.ts;let r=null,a=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(s))[r,a]=[e.old.c,e.old.o];else{const l=lt(e.o)&&!e.old?e.o:s.offset(this.ts);r=ns(this.ts,l),n=Number.isNaN(r.year)?new Ye("invalid input"):null,r=n?null:r,a=n?null:l}this._zone=s,this.loc=e.loc||ne.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=r,this.o=a,this.isLuxonDateTime=!0}static now(){return new L({})}static local(){const[e,s]=Qn(arguments),[n,r,a,o,l,c,u]=s;return Jn({year:n,month:r,day:a,hour:o,minute:l,second:c,millisecond:u},e)}static utc(){const[e,s]=Qn(arguments),[n,r,a,o,l,c,u]=s;return e.zone=Ce.utcInstance,Jn({year:n,month:r,day:a,hour:o,minute:l,second:c,millisecond:u},e)}static fromJSDate(e,s={}){const n=Qi(e)?e.valueOf():NaN;if(Number.isNaN(n))return L.invalid("invalid input");const r=ot(s.zone,Se.defaultZone);return r.isValid?new L({ts:n,zone:r,loc:ne.fromObject(s)}):L.invalid(Pt(r))}static fromMillis(e,s={}){if(lt(e))return e<-qn||e>qn?L.invalid("Timestamp out of range"):new L({ts:e,zone:ot(s.zone,Se.defaultZone),loc:ne.fromObject(s)});throw new Ee(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,s={}){if(lt(e))return new L({ts:e*1e3,zone:ot(s.zone,Se.defaultZone),loc:ne.fromObject(s)});throw new Ee("fromSeconds requires a numerical input")}static fromObject(e,s={}){e=e||{};const n=ot(s.zone,Se.defaultZone);if(!n.isValid)return L.invalid(Pt(n));const r=ne.fromObject(s),a=fs(e,_n),{minDaysInFirstWeek:o,startOfWeek:l}=Un(a,r),c=Se.now(),u=F(s.specificOffset)?n.offset(c):s.specificOffset,m=!F(a.ordinal),f=!F(a.year),g=!F(a.month)||!F(a.day),p=f||g,x=a.weekYear||a.weekNumber;if((p||m)&&x)throw new Nt("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(g&&m)throw new Nt("Can't mix ordinal dates with month/day");const k=x||a.weekday&&!p;let b,B,H=ns(c,u);k?(b=xl,B=gl,H=ds(H,o,l)):m?(b=vl,B=Sl,H=js(H)):(b=ls,B=ya);let K=!1;for(const S of b){const M=a[S];F(M)?K?a[S]=B[S]:a[S]=H[S]:K=!0}const I=k?_i(a,o,l):m?Ji(a):Br(a),D=I||Vr(a);if(D)return L.invalid(D);const V=k?Cn(a,o,l):m?Rn(a):a,[C,q]=os(V,u,n),y=new L({ts:C,zone:n,o:q,loc:r});return a.weekday&&p&&e.weekday!==y.weekday?L.invalid("mismatched weekday",`you can't specify both a weekday of ${a.weekday} and a date of ${y.toISO()}`):y.isValid?y:L.invalid(y.invalid)}static fromISO(e,s={}){const[n,r]=Vo(e);return bt(n,r,s,"ISO 8601",e)}static fromRFC2822(e,s={}){const[n,r]=Zo(e);return bt(n,r,s,"RFC 2822",e)}static fromHTTP(e,s={}){const[n,r]=zo(e);return bt(n,r,s,"HTTP",s)}static fromFormat(e,s,n={}){if(F(e)||F(s))throw new Ee("fromFormat requires an input string and a format");const{locale:r=null,numberingSystem:a=null}=n,o=ne.fromOpts({locale:r,numberingSystem:a,defaultToEN:!0}),[l,c,u,m]=pl(o,e,s);return m?L.invalid(m):bt(l,c,n,`format ${s}`,e,u)}static fromString(e,s,n={}){return L.fromFormat(e,s,n)}static fromSQL(e,s={}){const[n,r]=Ko(e);return bt(n,r,s,"SQL",e)}static invalid(e,s=null){if(!e)throw new Ee("need to specify a reason the DateTime is invalid");const n=e instanceof Ye?e:new Ye(e,s);if(Se.throwOnInvalid)throw new Ti(n);return new L({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,s={}){const n=fa(e,ne.fromObject(s));return n?n.map(r=>r?r.val:null).join(""):null}static expandFormat(e,s={}){return ua(je.parseFormat(e),ne.fromObject(s)).map(r=>r.val).join("")}static resetCache(){Wt=void 0,Ys.clear()}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Ds(this).weekYear:NaN}get weekNumber(){return this.isValid?Ds(this).weekNumber:NaN}get weekday(){return this.isValid?Ds(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Cs(this).weekday:NaN}get localWeekNumber(){return this.isValid?Cs(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Cs(this).weekYear:NaN}get ordinal(){return this.isValid?js(this.c).ordinal:NaN}get monthShort(){return this.isValid?ts.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?ts.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?ts.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?ts.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];const e=864e5,s=6e4,n=gs(this.c),r=this.zone.offset(n-e),a=this.zone.offset(n+e),o=this.zone.offset(n-r*s),l=this.zone.offset(n-a*s);if(o===l)return[this];const c=n-o*s,u=n-l*s,m=ns(c,o),f=ns(u,l);return m.hour===f.hour&&m.minute===f.minute&&m.second===f.second&&m.millisecond===f.millisecond?[mt(this,{ts:c}),mt(this,{ts:u})]:[this]}get isInLeapYear(){return Ht(this.year)}get daysInMonth(){return ms(this.year,this.month)}get daysInYear(){return this.isValid?kt(this.year):NaN}get weeksInWeekYear(){return this.isValid?Vt(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?Vt(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){const{locale:s,numberingSystem:n,calendar:r}=je.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:s,numberingSystem:n,outputCalendar:r}}toUTC(e=0,s={}){return this.setZone(Ce.instance(e),s)}toLocal(){return this.setZone(Se.defaultZone)}setZone(e,{keepLocalTime:s=!1,keepCalendarTime:n=!1}={}){if(e=ot(e,Se.defaultZone),e.equals(this.zone))return this;if(e.isValid){let r=this.ts;if(s||n){const a=e.offset(this.ts),o=this.toObject();[r]=os(o,a,e)}return mt(this,{ts:r,zone:e})}else return L.invalid(Pt(e))}reconfigure({locale:e,numberingSystem:s,outputCalendar:n}={}){const r=this.loc.clone({locale:e,numberingSystem:s,outputCalendar:n});return mt(this,{loc:r})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;const s=fs(e,_n),{minDaysInFirstWeek:n,startOfWeek:r}=Un(s,this.loc),a=!F(s.weekYear)||!F(s.weekNumber)||!F(s.weekday),o=!F(s.ordinal),l=!F(s.year),c=!F(s.month)||!F(s.day),u=l||c,m=s.weekYear||s.weekNumber;if((u||o)&&m)throw new Nt("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&o)throw new Nt("Can't mix ordinal dates with month/day");let f;a?f=Cn({...ds(this.c,n,r),...s},n,r):F(s.ordinal)?(f={...this.toObject(),...s},F(s.day)&&(f.day=Math.min(ms(f.year,f.month),f.day))):f=Rn({...js(this.c),...s});const[g,p]=os(f,this.o,this.zone);return mt(this,{ts:g,o:p})}plus(e){if(!this.isValid)return this;const s=Q.fromDurationLike(e);return mt(this,Gn(this,s))}minus(e){if(!this.isValid)return this;const s=Q.fromDurationLike(e).negate();return mt(this,Gn(this,s))}startOf(e,{useLocaleWeeks:s=!1}={}){if(!this.isValid)return this;const n={},r=Q.normalizeUnit(e);switch(r){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0;break}if(r==="weeks")if(s){const a=this.loc.getStartOfWeek(),{weekday:o}=this;o<a&&(n.weekNumber=this.weekNumber-1),n.weekday=a}else n.weekday=1;if(r==="quarters"){const a=Math.ceil(this.month/3);n.month=(a-1)*3+1}return this.set(n)}endOf(e,s){return this.isValid?this.plus({[e]:1}).startOf(e,s).minus(1):this}toFormat(e,s={}){return this.isValid?je.create(this.loc.redefaultToEN(s)).formatDateTimeFromString(this,e):Os}toLocaleString(e=us,s={}){return this.isValid?je.create(this.loc.clone(s),e).formatDateTime(this):Os}toLocaleParts(e={}){return this.isValid?je.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:s=!1,suppressMilliseconds:n=!1,includeOffset:r=!0,extendedZone:a=!1,precision:o="milliseconds"}={}){if(!this.isValid)return null;o=cs(o);const l=e==="extended";let c=Rs(this,l,o);return ls.indexOf(o)>=3&&(c+="T"),c+=Yn(this,l,s,n,r,a,o),c}toISODate({format:e="extended",precision:s="day"}={}){return this.isValid?Rs(this,e==="extended",cs(s)):null}toISOWeekDate(){return rs(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:s=!1,includeOffset:n=!0,includePrefix:r=!1,extendedZone:a=!1,format:o="extended",precision:l="milliseconds"}={}){return this.isValid?(l=cs(l),(r&&ls.indexOf(l)>=3?"T":"")+Yn(this,o==="extended",s,e,n,a,l)):null}toRFC2822(){return rs(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return rs(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Rs(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:s=!1,includeOffsetSpace:n=!0}={}){let r="HH:mm:ss.SSS";return(s||e)&&(n&&(r+=" "),s?r+="z":e&&(r+="ZZ")),rs(this,r,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Os}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};const s={...this.c};return e.includeConfig&&(s.outputCalendar=this.outputCalendar,s.numberingSystem=this.loc.numberingSystem,s.locale=this.loc.locale),s}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,s="milliseconds",n={}){if(!this.isValid||!e.isValid)return Q.invalid("created by diffing an invalid DateTime");const r={locale:this.locale,numberingSystem:this.numberingSystem,...n},a=Xi(s).map(Q.normalizeUnit),o=e.valueOf()>this.valueOf(),l=o?this:e,c=o?e:this,u=nl(l,c,a,r);return o?u.negate():u}diffNow(e="milliseconds",s={}){return this.diff(L.now(),e,s)}until(e){return this.isValid?ge.fromDateTimes(this,e):this}hasSame(e,s,n){if(!this.isValid)return!1;const r=e.valueOf(),a=this.setZone(e.zone,{keepLocalTime:!0});return a.startOf(s,n)<=r&&r<=a.endOf(s,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;const s=e.base||L.fromObject({},{zone:this.zone}),n=e.padding?this<s?-e.padding:e.padding:0;let r=["years","months","days","hours","minutes","seconds"],a=e.unit;return Array.isArray(e.unit)&&(r=e.unit,a=void 0),Kn(s,this.plus(n),{...e,numeric:"always",units:r,unit:a})}toRelativeCalendar(e={}){return this.isValid?Kn(e.base||L.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(L.isDateTime))throw new Ee("min requires all arguments be DateTimes");return Ln(e,s=>s.valueOf(),Math.min)}static max(...e){if(!e.every(L.isDateTime))throw new Ee("max requires all arguments be DateTimes");return Ln(e,s=>s.valueOf(),Math.max)}static fromFormatExplain(e,s,n={}){const{locale:r=null,numberingSystem:a=null}=n,o=ne.fromOpts({locale:r,numberingSystem:a,defaultToEN:!0});return ma(o,e,s)}static fromStringExplain(e,s,n={}){return L.fromFormatExplain(e,s,n)}static buildFormatParser(e,s={}){const{locale:n=null,numberingSystem:r=null}=s,a=ne.fromOpts({locale:n,numberingSystem:r,defaultToEN:!0});return new da(a,e)}static fromFormatParser(e,s,n={}){if(F(e)||F(s))throw new Ee("fromFormatParser requires an input string and a format parser");const{locale:r=null,numberingSystem:a=null}=n,o=ne.fromOpts({locale:r,numberingSystem:a,defaultToEN:!0});if(!o.equals(s.locale))throw new Ee(`fromFormatParser called with a locale of ${o}, but the format parser was created for ${s.locale}`);const{result:l,zone:c,specificOffset:u,invalidReason:m}=s.explainFromTokens(e);return m?L.invalid(m):bt(l,c,n,`format ${s.format}`,e,u)}static get DATE_SHORT(){return us}static get DATE_MED(){return pr}static get DATE_MED_WITH_WEEKDAY(){return ki}static get DATE_FULL(){return gr}static get DATE_HUGE(){return Sr}static get TIME_SIMPLE(){return xr}static get TIME_WITH_SECONDS(){return vr}static get TIME_WITH_SHORT_OFFSET(){return wr}static get TIME_WITH_LONG_OFFSET(){return Ar}static get TIME_24_SIMPLE(){return Tr}static get TIME_24_WITH_SECONDS(){return br}static get TIME_24_WITH_SHORT_OFFSET(){return Nr}static get TIME_24_WITH_LONG_OFFSET(){return kr}static get DATETIME_SHORT(){return Ir}static get DATETIME_SHORT_WITH_SECONDS(){return Er}static get DATETIME_MED(){return jr}static get DATETIME_MED_WITH_SECONDS(){return Mr}static get DATETIME_MED_WITH_WEEKDAY(){return Ii}static get DATETIME_FULL(){return Or}static get DATETIME_FULL_WITH_SECONDS(){return Dr}static get DATETIME_HUGE(){return Cr}static get DATETIME_HUGE_WITH_SECONDS(){return Rr}}function Lt(t){if(L.isDateTime(t))return t;if(t&&t.valueOf&&lt(t.valueOf()))return L.fromJSDate(t);if(t&&typeof t=="object")return L.fromObject(t);throw new Ee(`Unknown datetime argument: ${t}, of type ${typeof t}`)}function Al(t,e){return t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!0,timeZone:e})}function Tl(t,e){try{const s=L.fromJSDate(t,{zone:"utc"}).setZone(e),n=s.toJSDate().toLocaleString("en-US",{timeZone:e,timeZoneName:"short"}).split(" ").pop()||void 0,r=s.toFormat("ZZ")||void 0;return{abbr:n,offset:r}}catch{return{}}}function bl(t){if(!t)return"-";try{const e=new Date(t),s=u=>String(u).padStart(2,"0"),n=s(e.getMonth()+1),r=s(e.getDate()),a=e.getFullYear(),o=s(e.getHours()),l=s(e.getMinutes()),c=s(e.getSeconds());return`${n}/${r}/${a} ${o}:${l}:${c}`}catch{return"-"}}function Zt(t,e="UTC"){if(!t)return"-";const s=L.fromISO(t,{zone:"utc"}).setZone(e);if(!s.isValid)return"-";const n=s.offsetNameShort,r=s.toFormat("ZZZZ"),a=n.startsWith("GMT")||n===r?r:`${n}/${r}`;return`${s.toFormat("MM/dd/yyyy, hh:mm:ss a")} (${a})`}const Nl={Critical:"#FF3B30",High:"#FFB86A",Medium:"#FFCC00",Low:"#007AFF"},kl={Critical:"#FFE2E2",High:"#FF95004D",Medium:"#FEF9C2",Low:"#E0EDFF"};function pa({alerts:t,loading:e=!1,pageSize:s=10,total:n,currentPage:r,onAlertIdClick:a,onAlertView:o,onFilterChange:l,onPageChange:c,onRefetch:u,resetKey:m}){const f=en(),g=async k=>{try{const b=await f.mutateAsync({alertUniqueId:k.alertId??k.id,alertId:k.id,status:"Reopen",notes:"Reopened",modifiedBy:0});if(b?.responseStatus||b?.Success){const B=b?.Message||b?.data||"Alert reopened successfully.";Ne.toast.success(B)}else{const B=b?.errorMessage||b?.Message||"Failed to reopen alert";Ne.toast.error(B)}}catch{Ne.toast.error("Failed to reopen alert. Please try again.")}},p=[{title:"Severity",dataIndex:"priority",key:"priority",width:120,render:k=>i.jsx(h.Tag,{className:"px-[10px] py-[2px]",style:{border:`2px solid ${Nl[k]}`,backgroundColor:kl[String(k)]},children:k})},{title:"Timestamp",dataIndex:"timestamp",key:"timestamp",width:200,render:k=>bl(k)},{title:"Status",dataIndex:"statusType",key:"statusType",width:140},{title:"Description",dataIndex:"description",key:"description",render:(k,b)=>i.jsxs("div",{children:[i.jsx("a",{onClick:B=>{B.preventDefault(),a?.(b,{sourceTab:"archived"})},className:"inline-block mb-1 text-blue-600",children:b.alertNumber}),i.jsx("div",{className:"text-black/65",children:k})]})},{title:"Preview",key:"preview",width:100,align:"center",render:(k,b)=>i.jsx(hr,{record:b})},{title:"",key:"menu",width:60,align:"right",render:(k,b)=>i.jsx(h.Dropdown,{trigger:["click"],menu:{items:[{key:"reopen",label:"Reopen"}],onClick:({key:B})=>{B==="reopen"&&g(b)}},children:i.jsx(h.Button,{type:"text",icon:i.jsx(ht.MoreOutlined,{})})})}],x=l?t:(t||[]).filter(k=>{const b=hn(k.statusType||"");return Ai.some(B=>b.includes(hn(B)))});return i.jsx(Xs,{data:x,loading:e,pageSize:s,total:n,currentPage:r,columns:p,renderActions:void 0,onAlertIdClick:a,onAlertView:o,onFilterChange:l,onPageChange:c,onRefetch:u,resetKey:m,excludeCompleted:!1})}function Il({size:t=120,time:e,timeZone:s="America/New_York"}){const{hours:n,minutes:r,seconds:a}=d.useMemo(()=>{const f=new Intl.DateTimeFormat("en-US",{timeZone:s,hour:"numeric",minute:"numeric",second:"numeric",hour12:!1}).formatToParts(e);return{hours:parseInt(f.find(g=>g.type==="hour")?.value||"0",10),minutes:parseInt(f.find(g=>g.type==="minute")?.value||"0",10),seconds:parseInt(f.find(g=>g.type==="second")?.value||"0",10)}},[e,s]),o=a*6,l=r*6+a*.1,c=n%12*30+r*.5,u=t/2;return i.jsxs("div",{className:"relative rounded-full border border-gray-300 bg-white",style:{width:t,height:t},role:"img","aria-label":"Analog Clock",children:[[...Array(12)].map((m,f)=>{const g=f*30,p=6,x=u-4,k=x-p,b=(g-90)*(Math.PI/180),B=u+k*Math.cos(b),H=u+k*Math.sin(b),K=u+x*Math.cos(b),I=u+x*Math.sin(b);return i.jsx("svg",{className:"absolute inset-0",width:t,height:t,children:i.jsx("line",{x1:B,y1:H,x2:K,y2:I,stroke:"#9CA3AF",strokeWidth:f%3===0?2:1,strokeLinecap:"round"})},f)}),i.jsx("svg",{className:"absolute inset-0",width:t,height:t,style:{transform:`rotate(${c}deg)`},children:i.jsx("line",{x1:u,y1:u,x2:u,y2:u-t*.25,stroke:"#1F2937",strokeWidth:4,strokeLinecap:"round"})}),i.jsx("svg",{className:"absolute inset-0",width:t,height:t,style:{transform:`rotate(${l}deg)`},children:i.jsx("line",{x1:u,y1:u,x2:u,y2:u-t*.35,stroke:"#374151",strokeWidth:3,strokeLinecap:"round"})}),i.jsx("svg",{className:"absolute inset-0",width:t,height:t,style:{transform:`rotate(${o}deg)`},children:i.jsx("line",{x1:u,y1:u+t*.08,x2:u,y2:u-t*.38,stroke:"#EF4444",strokeWidth:1.5,strokeLinecap:"round"})}),i.jsx("div",{className:"absolute bg-gray-900 rounded-full",style:{width:8,height:8,left:u-4,top:u-4}})]})}function ga({label:t="USA",timeZone:e="America/New_York",updateIntervalMs:s=1e3,className:n}){const[r,a]=d.useState(new Date);d.useEffect(()=>{const u=setInterval(()=>a(new Date),s);return()=>clearInterval(u)},[s]);const o=d.useMemo(()=>Al(r,e),[r,e]),{abbr:l,offset:c}=d.useMemo(()=>Tl(r,e),[r,e]);return i.jsxs("div",{className:`flex items-center gap-3 ${n||""}`,children:[i.jsx(Il,{time:r,timeZone:e,size:80}),i.jsxs("div",{className:"flex flex-col items-baseline gap-1",children:[i.jsxs("div",{className:"flex items-center gap-2 text-sm text-gray-600",children:[i.jsx("span",{className:"uppercase",children:t}),l&&i.jsxs("span",{className:"p-2 rounded-md border text-[10px] leading-none text-gray-600 bg-gray-50",children:[l," ",c]})]}),i.jsx("div",{className:"text-2xl font-semibold text-gray-700 tracking-wide",children:o})]})]})}const{Text:El}=h.Typography;function jl({sortBy:t,onChange:e,showActions:s,onSave:n,onClear:r,saving:a}){return i.jsxs(h.Row,{gutter:[16,16],align:"middle",children:[i.jsx(h.Col,{xs:24,md:8,lg:5,children:i.jsxs(h.Space,{className:"w-full items-center",direction:"horizontal",size:12,children:[i.jsx(El,{className:"text-gray-600 whitespace-nowrap",children:"Sort By:"}),i.jsx(h.Select,{placeholder:"By Severity",value:t,onChange:o=>e({sortBy:o}),options:[{label:"By Severity",value:"By Severity"},{label:"By Created Date",value:"By Created Date"}],className:"w-full",style:{minWidth:"200px"}})]})}),i.jsx(h.Col,{xs:24,md:8,style:{alignSelf:"end"},children:s?i.jsxs(h.Space,{className:"w-full",direction:"horizontal",size:8,children:[i.jsx(h.Button,{onClick:r,disabled:a,children:"Clear"}),i.jsx(h.Button,{type:"primary",onClick:n,loading:a,children:"Save"})]}):null})]})}const _s=t=>i.jsxs(h.Tag,{children:[i.jsx(ht.PlusOutlined,{})," ",t.length," more"]}),{Text:et}=h.Typography;function Ml(t){const{selectedRule:e,setSelectedRule:s,ruleOptions:n,minsOptions:r,roleOptions:a,l1mins:o,setL1mins:l,l1role:c,setL1role:u,l2mins:m,setL2mins:f,l2role:g,setL2role:p,l3mins:x,setL3mins:k,l3role:b,setL3role:B,actions:H,setActions:K,thirdPartyIds:I,setThirdPartyIds:D,humanLoop:V,setHumanLoop:C,isAutoExpire:q,setAutoExpire:y,onClear:S,onSave:M,saving:re,onActionTypesLoaded:me}=t,{rules:j,config:A}=$e(),v=A.tenant==="schools",[E,T]=d.useState([]),[O,U]=d.useState([]),[Y,G]=d.useState(!1);d.useEffect(()=>{let ee=!1;return(async()=>{try{G(!0);const pe=await j.getLookups();if(ee||!pe||!Array.isArray(pe.actionTypes))return;const Te=pe.actionTypes.map($=>({label:$.name,value:String($.actionTypeId)}));T(Te),me&&me(pe.actionTypes);const fe=Array.isArray(pe.thirdParties)?pe.thirdParties.map($=>({label:$.thirdPartyName,value:$.thirdPartyIds??$.thirdPartyId})):[];U(fe)}catch(pe){console.error("Error loading lookups",pe)}finally{ee||G(!1)}})(),()=>{ee=!0}},[]);const _=typeof o=="number"||typeof c=="number",ie=typeof m=="number"||typeof g=="number",ce=typeof o=="number"||typeof c=="number"||typeof m=="number"||typeof g=="number"||typeof x=="number"||typeof b=="number"||Array.isArray(H)&&H.length>0||Array.isArray(I)&&I.length>0||!!V||!!q,ke=!!e&&ce&&!re;return i.jsxs(h.Spin,{spinning:!!re||Y,children:[i.jsxs(h.Row,{gutter:[16,16],align:"bottom",children:[i.jsx(h.Col,{xs:24,sm:12,md:8,lg:4,children:i.jsxs("div",{children:[i.jsx(et,{className:"text-gray-700 font-medium block mb-1",children:"Rules"}),i.jsx(h.Select,{placeholder:"Rules",value:e,onChange:s,options:n,className:"w-full"})]})}),i.jsx(h.Col,{xs:24,sm:12,md:8,lg:4,children:i.jsxs("div",{children:[i.jsxs(h.Row,{gutter:8,children:[i.jsx(h.Col,{span:10,children:i.jsx(et,{className:"text-gray-700 font-medium block mb-1",children:"Level 1 (mins)"})}),i.jsx(h.Col,{span:14,children:i.jsx(et,{className:"text-gray-700 font-medium block mb-1",children:"Escalate to"})})]}),i.jsxs(h.Row,{gutter:8,children:[i.jsx(h.Col,{span:10,children:i.jsx(h.Select,{className:"w-full",placeholder:"Mins",value:o,onChange:l,options:r})}),i.jsx(h.Col,{span:14,children:i.jsx(h.Select,{placeholder:"Escalate to",className:"w-full",value:c,onChange:u,options:a})})]})]})}),_&&i.jsx(h.Col,{xs:24,sm:12,md:8,lg:4,children:i.jsxs("div",{children:[i.jsxs(h.Row,{gutter:8,children:[i.jsx(h.Col,{span:10,children:i.jsx(et,{className:"text-gray-700 font-medium block mb-1",children:"Level 2 (mins)"})}),i.jsx(h.Col,{span:14,children:i.jsx(et,{className:"text-gray-700 font-medium block mb-1",children:"Escalate to"})})]}),i.jsxs(h.Row,{gutter:8,children:[i.jsx(h.Col,{span:10,children:i.jsx(h.Select,{className:"w-full",placeholder:"Mins",value:m,onChange:f,options:r})}),i.jsx(h.Col,{span:14,children:i.jsx(h.Select,{placeholder:"Escalate to",className:"w-full",value:g,onChange:p,options:a})})]})]})}),ie&&i.jsx(h.Col,{xs:24,sm:12,md:8,lg:4,children:i.jsxs("div",{children:[i.jsxs(h.Row,{gutter:8,children:[i.jsx(h.Col,{span:10,children:i.jsx(et,{className:"text-gray-700 font-medium block mb-1",children:"Level 3 (mins)"})}),i.jsx(h.Col,{span:14,children:i.jsx(et,{className:"text-gray-700 font-medium block mb-1",children:"Escalate to"})})]}),i.jsxs(h.Row,{gutter:8,children:[i.jsx(h.Col,{span:10,children:i.jsx(h.Select,{className:"w-full",placeholder:"Mins",value:x,onChange:k,options:r})}),i.jsx(h.Col,{span:14,children:i.jsx(h.Select,{placeholder:"Escalate to",className:"w-full",value:b,onChange:B,options:a})})]})]})}),i.jsx(h.Col,{xs:24,sm:12,md:8,lg:4,children:i.jsxs("div",{children:[i.jsx(et,{className:"text-gray-700 font-medium block mb-1",children:"Pick Actions"}),i.jsx(h.Select,{mode:"multiple",placeholder:"Select response actions",className:"w-full",value:H,onChange:K,options:E,maxTagCount:1,maxTagPlaceholder:_s})]})}),i.jsx(h.Col,{xs:24,sm:12,md:8,lg:4,children:i.jsxs("div",{children:[i.jsx(et,{className:"text-gray-700 font-medium block mb-1",children:"Notify"}),i.jsx(h.Select,{mode:"multiple",placeholder:"Notify",className:"w-full",value:I,onChange:D,options:O,maxCount:2,maxTagPlaceholder:_s})]})})]}),i.jsxs(h.Row,{gutter:[16,16],align:"bottom",className:"mt-4 items-center",children:[i.jsx(h.Col,{xs:24,sm:12,md:8,lg:7,children:i.jsxs("div",{className:"flex items-center h-full gap-8",children:[!v&&i.jsx(h.Checkbox,{checked:V,onChange:ee=>C(ee.target.checked),className:"w-full",children:"Human-In-The-Loop"}),i.jsx(h.Checkbox,{checked:q,onChange:ee=>y(ee.target.checked),className:"w-full",children:"Auto-expire in 5 minutes"})]})}),i.jsx(h.Col,{xs:24,sm:12,md:8,children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(h.Button,{onClick:S,children:"Clear"}),i.jsx(h.Button,{type:"primary",onClick:M,loading:!!re,disabled:!ke,children:"Save"})]})})]})]})}function Ol({entries:t,userRoles:e,onEdit:s,loading:n}){const{config:r}=$e(),a=r.tenant==="schools",o=new Map(e.map(c=>[c.userRoleId,c.userRoleName])),l=c=>c.map(u=>o.get(u)||String(u)).join(", ");return i.jsx(h.Table,{rowKey:"id",dataSource:t,pagination:{pageSize:10,showSizeChanger:!0,showTotal:(c,u)=>`${u[0]}-${u[1]} of ${c} items`},loading:n,columns:[{title:"Rule",dataIndex:"ruleOrSeverityLabel",key:"rule"},{title:"Level 1",key:"l1",render:(c,u)=>i.jsxs("span",{children:[u.l1.minutes?`Action taken in (${u.l1.minutes} Mins)`:"No Action taken in 0 Min",u.l1.roles?.length?`, Escalate to (${l(u.l1.roles)})`:""]})},{title:"Level 2",key:"l2",render:(c,u)=>i.jsxs("span",{children:[u.l2.minutes?`Action taken in (${u.l2.minutes} Mins)`:"No Action taken in 0 Min",u.l2.roles?.length?`, Escalate to (${l(u.l2.roles)})`:""]})},{title:"Level 3",key:"l3",render:(c,u)=>i.jsxs("span",{children:[u.l3.minutes?`Action taken in (${u.l3.minutes} Mins)`:"No Action taken in 0 Min",u.l3.roles?.length?`, Escalate to (${l(u.l3.roles)})`:""]})},{title:"Pick Actions",key:"actionsCol",render:(c,u)=>u.actions?.length?u.actions.join(", "):"-"},{title:"Notify",key:"notify",render:(c,u)=>u.notify?.length?u.notify.join(", "):"-"},...a?[]:[{title:"Human-In-The-Loop",key:"humanLoop",render:(c,u)=>u.humanLoop?"Yes":"No"}],{title:"Auto Expire",key:"isAutoExpire",render:(c,u)=>u.isAutoExpire?"Yes":"No"},{title:"Actions",key:"ops",render:(c,u)=>i.jsx(h.Button,{type:"text",onClick:()=>s(u.id),children:i.jsx(ht.EditOutlined,{})})}]})}const{Title:Dl,Text:Us}=h.Typography;function Sa({userRoles:t,rules:e,rawRules:s}){const{rules:n}=$e(),[r,a]=d.useState(!1),[o,l]=d.useState(!1),[c,u]=d.useState(s),[m,f]=d.useState(),[g,p]=d.useState([]),x=d.useMemo(()=>t.map(I=>({label:I.userRoleName,value:I.userRoleId})),[t]),k=d.useMemo(()=>(e||[]).map(I=>({label:I.Name||"-",value:I.RuleId||I.Name||""})),[e]),b=d.useMemo(()=>(e||[]).map((I,D)=>({key:I.RuleId||I.Name||String(D),ruleName:I.Name||"-",ruleDesc:I.Description||""})),[e]);d.useEffect(()=>{let I=!1;return(async()=>{try{a(!0);const D=await n.getRules();I||u(Array.isArray(D)?D:[])}catch{!I&&Array.isArray(s)&&u(s)}finally{I||a(!1)}})(),()=>{I=!0}},[]),d.useEffect(()=>{!c&&Array.isArray(s)&&u(s)},[s]),d.useEffect(()=>{if(!m||!Array.isArray(c)){p([]);return}const I=c.find(V=>V?.ruleId===m||V?.RuleId===m||V?.ruleName===m),D=I?.userRoleIds??I?.UserRoleIds;p(Array.isArray(D)?D:[])},[m,c]);const B=d.useMemo(()=>{if(!Array.isArray(c)||!c.length)return{};const I={};for(const D of b){const V=c.find(y=>y?.ruleId===D.key||y?.ruleName===D.key||y?.RuleId===D.key||y?.ruleName===D.ruleName||y?.Name===D.ruleName),C=V?.userRoleIds??V?.UserRoleIds,q=Array.isArray(C)?C:[];q.length&&(I[D.key]=q)}return I},[c,b]),H=()=>{f(void 0),p([])},K=async()=>{if(!m){Ne.toast.info("Please select a rule");return}try{l(!0);const I=Array.isArray(c)?c.find(y=>y?.ruleId===m||y?.RuleId===m||y?.ruleName===m):void 0,D=typeof I?.recordId=="number"?I.recordId:I?.ruleId||I?.RuleId||void 0;if(!I||!D)throw new Error(`Unable to find rule identifier for rule ${m}`);const V=g.map(y=>{const S=t.find(M=>M.userRoleId===y);return{id:y,name:S?.userRoleName??String(y)}}),C={...I,ruleId:m,userRoleIds:g,userRoles:V},q=await n.updateRule(D,C);if(!q?.responseStatus&&!q?.Success&&!q?.success)Ne.toast.error(q?.errorMessage||q?.Message||"Error saving Alert Assignment");else{Ne.toast.success("Alert assignment saved"),f(void 0),p([]);try{const y=await n.getRules();u(Array.isArray(y)?y:[])}catch(y){console.error("Failed to refresh rules after save",y)}}}catch(I){console.error("Failed to save alert assignment",I),Ne.toast.error(I instanceof Error?I.message:"Error saving Alert Assignment")}finally{l(!1)}};return i.jsxs("div",{className:"w-full",children:[i.jsx(Dl,{level:4,className:"!mb-4",children:"Alert Assignment"}),i.jsx(h.Spin,{spinning:o||r,children:i.jsxs(h.Row,{gutter:[16,16],align:"bottom",className:"mb-6",children:[i.jsx(h.Col,{xs:24,sm:12,md:8,lg:6,children:i.jsxs("div",{children:[i.jsx(Us,{className:"text-gray-700 font-medium block mb-1",children:"Rules"}),i.jsx(h.Select,{placeholder:"Rules",value:m,onChange:f,options:k,className:"w-full"})]})}),i.jsx(h.Col,{xs:24,sm:12,md:8,lg:8,children:i.jsxs("div",{children:[i.jsx(Us,{className:"text-gray-700 font-medium block mb-1",children:"Alert Notification To"}),i.jsx(h.Select,{mode:"multiple",placeholder:"Select roles",className:"w-full",value:g,onChange:p,options:x,maxTagCount:1,maxTagPlaceholder:_s})]})}),i.jsx(h.Col,{xs:24,sm:12,md:8,lg:4,children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(h.Button,{onClick:H,disabled:o,children:"Cancel"}),i.jsx(h.Button,{type:"primary",onClick:K,loading:o,disabled:o||!m,children:"Save"})]})})]})}),i.jsx(h.Table,{rowKey:"key",dataSource:b,loading:r,pagination:{pageSize:10,showSizeChanger:!0,showTotal:(I,D)=>`${D[0]}-${D[1]} of ${I} items`},columns:[{title:"Rule Name",dataIndex:"ruleName",key:"ruleName"},{title:"Description",dataIndex:"ruleDesc",key:"ruleDesc"},{title:"Alert Notification To",key:"assign",render:(I,D)=>{const V=B[D.key]??[];return V.length?i.jsx("div",{className:"flex flex-wrap gap-1",children:V.map(C=>{const q=t.find(y=>y.userRoleId===C);return i.jsx(h.Tag,{children:q?.userRoleName??String(C)},C)})}):i.jsx(Us,{type:"secondary",children:"—"})}}]})]})}const{Title:Xn}=h.Typography;function Ls(t){return!t||typeof t!="object"?{}:{level1UserRoleId:t.level1UserRoleId??t.Level1UserRoleId,level1PostAssistTime:t.level1PostAssistTime??t.Level1PostAssistTime,level2UserRoleId:t.level2UserRoleId??t.Level2UserRoleId,level2PostAssistTime:t.level2PostAssistTime??t.Level2PostAssistTime,level3UserRoleId:t.level3UserRoleId??t.Level3UserRoleId,level3PostAssistTime:t.level3PostAssistTime??t.Level3PostAssistTime,escalationSettingsActionTypeIds:t.escalationSettingsActionTypeIds??t.EscalationSettingsActionTypeIds,thirdPartyId:t.thirdPartyId??t.ThirdPartyId??t.ThirdPartyIds,humanLoop:t.humanLoop??t.HumanLoop,isAutoExpire:t.isAutoExpire??t.IsAutoExpire}}function xa({severities:t,rules:e,userRoles:s,rawRules:n,loadingRules:r,onSave:a}){const{rules:o,alerts:l}=$e(),[c,u]=d.useState("By Severity"),[m,f]=d.useState("By severity"),[g,p]=d.useState("By Severity"),[x,k]=d.useState(!1),[b,B]=d.useState(!1),[H,K]=d.useState(!1),[I,D]=d.useState(null),[V,C]=d.useState("rules"),[q,y]=d.useState(),[S,M]=d.useState(),[re,me]=d.useState(),[j,A]=d.useState(),[v,E]=d.useState(),[T,O]=d.useState(),[U,Y]=d.useState(),[G,_]=d.useState(),[ie,ce]=d.useState([]),[ke,ee]=d.useState([]),[pe,Te]=d.useState(!1),[fe,$]=d.useState(!1),[P,he]=d.useState({}),[oe,Re]=d.useState({}),[we,He]=d.useState(s||[]),[Ie,xe]=d.useState([]),[Ct,ct]=d.useState(!1),[gt,Je]=d.useState(!1),[Ue,St]=d.useState(n||[]);d.useEffect(()=>{n&&n.length&&St(n)},[n]),d.useEffect(()=>{if(!Ue||!Ue.length)return;const R=Object.keys(P).length>0||Object.keys(oe).length>0;if(Ie.length&&!R)return;const te=Ue.map((J,W)=>{const le=e.find(ye=>ye.RuleId===(J.ruleId||J.ruleName))?.Name||J.ruleName||J.Name||"-",Z=Ls(J.escalationSettings),se=typeof Z.level1UserRoleId=="number"&&Z.level1UserRoleId>0?[Z.level1UserRoleId]:[],Ke=typeof Z.level2UserRoleId=="number"&&Z.level2UserRoleId>0?[Z.level2UserRoleId]:[],Rt=typeof Z.level3UserRoleId=="number"&&Z.level3UserRoleId>0?[Z.level3UserRoleId]:[],z=(Array.isArray(Z.escalationSettingsActionTypeIds)?Z.escalationSettingsActionTypeIds:[]).map(ye=>P[ye]||String(ye)),Ae=(Array.isArray(Z.thirdPartyId)?Z.thirdPartyId:[]).map(ye=>oe[ye]||String(ye)),Me=typeof Z.humanLoop=="boolean"?Z.humanLoop:null,ue=typeof Z.isAutoExpire=="boolean"?Z.isAutoExpire:null;return{id:String(J.ruleId||J.ruleName||W),ruleOrSeverityLabel:le,l1:{minutes:Z.level1PostAssistTime??void 0,roles:se},l2:{minutes:Z.level2PostAssistTime??void 0,roles:Ke},l3:{minutes:Z.level3PostAssistTime??void 0,roles:Rt},actions:z,notify:Ae,humanLoop:Me,isAutoExpire:ue}});xe(te)},[Ue,e,P,oe]);const xt=d.useMemo(()=>t.map(R=>({label:R.DisplayName,value:R.SeverityId})),[t]),be=d.useMemo(()=>e.map(R=>({label:R.Name,value:R.RuleId})),[e]),vt=d.useMemo(()=>we.map(R=>({label:R.userRoleName,value:R.userRoleId})),[we]),vs=d.useMemo(()=>[1,3,5,10,15,20,30,45,60].map(R=>({label:`${R}`,value:R})),[]);d.useEffect(()=>{let R=!1;async function te(){try{K(!0),D(null);const J=await l.getAdminSettings();if(!R&&J){const W=sr(J.sortBy);u(W),p(W),k(!1)}}catch(J){if(!R){const W=J instanceof Error?J.message:"Failed to load admin settings";D(W)}}finally{R||K(!1)}}return te(),()=>{R=!0}},[]),d.useEffect(()=>{if(!S)return;const R=le=>{const Z=Number(le);return!isNaN(Z)&&Z>0?Z:void 0},te=le=>{const Z=Number(le);return!isNaN(Z)&&Z>0?Z:void 0},J=(Ue||[]).find(le=>le?.ruleId===S||le?.ruleName===S||le?.RuleId===S),W=Ls(J?.escalationSettings);if(W&&typeof W=="object"){me(te(W.level1PostAssistTime)),A(R(W.level1UserRoleId)),E(te(W.level2PostAssistTime)),O(R(W.level2UserRoleId)),Y(te(W.level3PostAssistTime)),_(R(W.level3UserRoleId));const le=Array.isArray(W.escalationSettingsActionTypeIds)?W.escalationSettingsActionTypeIds:[];ce(le.map(Z=>String(Z))),ee(Array.isArray(W.thirdPartyId)?W.thirdPartyId:[]),Te(!!W.humanLoop),$(!!W.isAutoExpire)}},[V,S,Ue]);const ws=async()=>{try{Je(!0);const R=await o.getRules(),te=Array.isArray(R)?R:Array.isArray(R?.data)?R.data:[];St(te);const J=te.map((W,le)=>{const Z=e.find(ye=>ye.RuleId===(W.ruleId||W.ruleName))?.Name||W.ruleName||W.Name||"-",se=Ls(W.escalationSettings??W.EscalationSettings),Ke=typeof se.level1UserRoleId=="number"&&se.level1UserRoleId>0?[se.level1UserRoleId]:[],Rt=typeof se.level2UserRoleId=="number"&&se.level2UserRoleId>0?[se.level2UserRoleId]:[],w=typeof se.level3UserRoleId=="number"&&se.level3UserRoleId>0?[se.level3UserRoleId]:[],ae=(Array.isArray(se.escalationSettingsActionTypeIds)?se.escalationSettingsActionTypeIds:[]).map(ye=>P[ye]||String(ye)),Me=(Array.isArray(se.thirdPartyId)?se.thirdPartyId:[]).map(ye=>oe[ye]||String(ye)),ue=typeof se.humanLoop=="boolean"?se.humanLoop:null;return{id:String(W.ruleId||W.ruleName||le),ruleOrSeverityLabel:Z,l1:{minutes:se.level1PostAssistTime??void 0,roles:Ke},l2:{minutes:se.level2PostAssistTime??void 0,roles:Rt},l3:{minutes:se.level3PostAssistTime??void 0,roles:w},actions:ae,notify:Me,humanLoop:ue}});xe(J)}catch(R){console.error("Failed to refetch entries",R)}finally{Je(!1)}};d.useEffect(()=>{let R=!1;return(async()=>{try{const te=await o.getLookups();if(R||!te)return;const J={};if(Array.isArray(te.thirdParties))for(const le of te.thirdParties){const Z=le.thirdPartyIds??le.thirdPartyId;typeof Z=="number"&&(J[Z]=le.thirdPartyName)}Re(J);const W=Array.isArray(te.userRoles)?te.userRoles.map(le=>({userRoleId:le.userRoleId??le.id,userRoleName:le.userRoleName??le.name})):[];R||He(W.length?W:s||[])}catch(te){console.error("Error loading lookups",te)}})(),()=>{R=!0}},[]);const dn=async()=>{B(!0);try{const R=await l.setAdminSettings({sortBy:c,groupBy:"string"});R?.responseStatus&&R?.data&&Ne.toast.success(R.data),p(c),k(!1)}catch(R){console.error("Error saving admin settings",R)}finally{B(!1)}},As=()=>{u(g),k(!1)},Ts=async()=>{ct(!0),a?.({ruleId:S,levels:[{minutes:re,role:j},{minutes:v,role:T},{minutes:U,role:G}],actions:ie,thirdPartyIds:ke,humanLoop:pe,isAutoExpire:fe});try{if(S){const te=Array.isArray(ie)?ie.map(se=>Number.isNaN(Number(se))?se:Number(se)):[],J=(Ue||[]).find(se=>se?.ruleId===S||se?.ruleName===S||se?.RuleId===S),W=typeof J?.recordId=="number"?J.recordId:J?.ruleId||J?.RuleId||void 0;if(!J||!W){Ne.toast.error("Unable to find rule identifier for update");return}const le={...J,escalationSettings:{level1UserRoleId:j??0,level1PostAssistTime:re??0,level2UserRoleId:T??0,level2PostAssistTime:v??0,level3UserRoleId:G??0,level3PostAssistTime:U??0,escalationSettingsActionTypeIds:te,thirdPartyId:Array.isArray(ke)?ke:[],humanLoop:pe,isAutoExpire:fe}},Z=await o.updateRule(W,le);Z?.responseStatus||Z?.Success||Z?.success?(Ne.toast.success("Escalation settings saved"),await ws(),M(void 0),me(void 0),A(void 0),E(void 0),O(void 0),Y(void 0),_(void 0),ce([]),ee([]),Te(!1),$(!1)):Ne.toast.error(Z?.errorMessage||Z?.Message||"Error saving Escalation Settings")}}catch(te){console.error("Error saving escalation settings",te)}finally{ct(!1)}},bs=()=>{u("By Severity"),f("By severity"),C("rules"),y(void 0),M(void 0),me(void 0),A(void 0),E(void 0),O(void 0),Y(void 0),_(void 0),ce([]),ee([]),Te(!1),$(!1)};return i.jsxs("div",{className:"w-full",children:[i.jsxs("div",{className:"mb-6",children:[i.jsx(Xn,{level:4,className:"!mb-2",children:"Admin Settings"}),i.jsxs(h.Spin,{spinning:H,children:[I?i.jsxs("div",{className:"text-sm text-red-600 mb-2",children:["Failed to load settings: ",I]}):null,i.jsx(jl,{sortBy:c,groupBy:m,onChange:R=>{R.sortBy&&(u(R.sortBy),k(!0)),R.groupBy&&(f(R.groupBy),k(!0))},showActions:x,onSave:dn,onClear:As,saving:b})]})]}),i.jsx(h.Divider,{className:"my-6"}),i.jsxs("div",{children:[i.jsx(Xn,{level:4,className:"!mb-4",children:"Escalation Settings"}),i.jsx(Ml,{escBasis:V,setEscBasis:C,selectedSeverity:q,setSelectedSeverity:y,selectedRule:S,setSelectedRule:M,severityOptions:xt,ruleOptions:be,minsOptions:vs,roleOptions:vt,l1mins:re,setL1mins:me,l1role:j,setL1role:A,l2mins:v,setL2mins:E,l2role:T,setL2role:O,l3mins:U,setL3mins:Y,l3role:G,setL3role:_,actions:ie,setActions:ce,thirdPartyIds:ke,setThirdPartyIds:ee,humanLoop:pe,setHumanLoop:Te,onClear:bs,onSave:Ts,saving:Ct,onActionTypesLoaded:R=>{const te={};for(const J of R)typeof J.actionTypeId=="number"&&(te[J.actionTypeId]=J.name);he(te)},isAutoExpire:fe,setAutoExpire:$})]}),i.jsx(h.Divider,{className:"my-6"}),i.jsx(Ol,{entries:Ie,userRoles:we,loading:gt||r,onEdit:R=>{C("rules");const te=Ie.find(W=>W.id===R),J=e.find(W=>W.RuleId===R)||(te?e.find(W=>W.Name===te.ruleOrSeverityLabel):void 0);M(J?J.RuleId:R)}}),i.jsx(h.Divider,{className:"my-6"}),i.jsx(Sa,{userRoles:we,rules:e,rawRules:n}),i.jsx(h.Divider,{})]})}const{Title:er,Text:as}=h.Typography;function Cl({severities:t,rules:e,onSave:s,onCancel:n}){const{rules:r,alerts:a}=$e(),o=[{label:"By Severity",value:"By Severity"},{label:"By Created Date",value:"By Created Date"}],[l,c]=d.useState("By Severity"),[u,m]=d.useState(new Set),[f,g]=d.useState(null),[p,x]=d.useState(null),[k,b]=d.useState({inApp:!1,sms:!1,email:!1}),[B,H]=d.useState([]),[K,I]=d.useState(!0),[D,V]=d.useState(!1);d.useEffect(()=>{let y=!1;return(async()=>{try{const S=await a.getPreferenceSettings();if(y||!S)return;b({inApp:!!S.inApp,sms:!!S.sms,email:!!S.email});const M=sr(S.sortBy);c(M==="By Created Date"?"By Created Date":"By Severity"),g(Sn(S.doNotDisturbStart)),x(Sn(S.doNotDisturbEnd)),Array.isArray(S.anomalyIds)&&m(new Set(S.anomalyIds.map(re=>String(re))))}catch(S){console.error("Error in loading my preferences: ",S)}})(),()=>{y=!0}},[]),d.useEffect(()=>{let y=!1;return(async()=>{try{I(!0);const S=await r.getLookups();if(y||!S)return;const M=Array.isArray(S.anomalies)?S.anomalies:[];H(M)}catch(S){console.error("Failed to load anomalies lookups",S)}finally{y||I(!1)}})(),()=>{y=!0}},[]);const C=y=>{m(S=>{const M=new Set(S);return M.has(y)?M.delete(y):M.add(y),M})},q=async()=>{s?.({sortBy:l,subscribedRuleIds:Array.from(u),dnd:{from:f,to:p},channels:k});try{V(!0);const y=f?f.format?.("HH:mm:ss")??"00:00:00":"00:00:00",S=p?p.format?.("HH:mm:ss")??"00:00:00":"00:00:00",M=Array.from(u).map(me=>Number(me)).filter(me=>Number.isFinite(me)),re=await a.setPreferenceSettings({anomalyIds:M,doNotDisturbStart:y,doNotDisturbEnd:S,inApp:!!k.inApp,sms:!!k.sms,email:!!k.email,sortBy:l});re?.responseStatus&&Ne.toast.success(re?.data||"Preferences updated successfully.")}catch(y){console.error("Error in saving my preferences: ",y)}finally{V(!1)}};return i.jsxs("div",{className:"w-full",children:[i.jsx(h.Row,{gutter:[16,16],align:"middle",className:"mb-4",children:i.jsx(h.Col,{xs:24,md:8,children:i.jsxs(h.Space,{direction:"horizontal",size:12,className:"w-full items-center",children:[i.jsx(as,{className:"text-gray-600",children:"Sort By:"}),i.jsx(h.Select,{className:"w-[240px]",value:l,options:o,onChange:c})]})})}),i.jsxs("div",{className:"mb-4",children:[i.jsx(er,{level:5,className:"!mb-2",children:"Anomalies"}),K?i.jsx("div",{className:"py-4",children:i.jsx(h.Spin,{})}):i.jsx(h.Space,{direction:"vertical",size:10,className:"w-full",children:(Array.isArray(B)?B:[]).map(y=>{const S=String(y.recordId),M=y.anomalyName;return i.jsx(h.Checkbox,{checked:u.has(S),onChange:()=>C(S),children:M},S)})})]}),i.jsxs("div",{className:"mb-4",children:[i.jsx(er,{level:5,className:"!mb-2",children:"Notification Timing & Channels"}),i.jsx(h.Row,{gutter:[16,16],align:"middle",className:"mb-3",children:i.jsx(h.Col,{xs:24,md:12,children:i.jsxs(h.Space,{direction:"horizontal",size:12,className:"w-full items-center",children:[i.jsx(as,{children:"Do Not Disturb mode:"}),i.jsxs(h.Space,{size:12,className:"w-full",children:[i.jsxs(h.Space,{direction:"horizontal",size:8,className:"items-center",children:[i.jsx(as,{children:"From"}),i.jsx(h.TimePicker,{value:f,onChange:y=>g(y),format:"HH:mm"})]}),i.jsxs(h.Space,{direction:"horizontal",size:8,className:"items-center",children:[i.jsx(as,{children:"To"}),i.jsx(h.TimePicker,{value:p,onChange:y=>x(y),format:"HH:mm"})]})]})]})})}),i.jsxs(h.Row,{gutter:[24,12],children:[i.jsx(h.Col,{children:i.jsx(h.Checkbox,{checked:k.inApp,onChange:y=>b({...k,inApp:y.target.checked}),children:"In-app"})}),i.jsx(h.Col,{children:i.jsx(h.Checkbox,{checked:k.sms,onChange:y=>b({...k,sms:y.target.checked}),children:"SMS"})}),i.jsx(h.Col,{children:i.jsx(h.Checkbox,{checked:k.email,onChange:y=>b({...k,email:y.target.checked}),children:"Email"})})]})]}),i.jsx(h.Divider,{}),i.jsxs(h.Space,{className:"gap-3",children:[i.jsx(h.Button,{onClick:n,disabled:D,children:"Cancel"}),i.jsx(h.Button,{type:"primary",onClick:q,loading:D,children:"Save"})]})]})}function va({severities:t,rules:e,userRoles:s,rawRules:n,loadingRules:r}){return i.jsx("div",{className:"w-full",children:i.jsx(xa,{severities:t,rules:e,userRoles:s,rawRules:n,loadingRules:r})})}const Rl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAIZSURBVHgBnZW/b9NAFMe/z3H6i1ZNJUBFQsL/QQkLCFBtRhhKF1ibhBmpXbtgFlYqsTG0gRGWwgAjMb8EYmjYGN0pCCrVVaX+SBxf37PiqHWcOu5Xsux79+6j77vz3RH66IbdsDTQPCFngmBwqMCPBwVXoe204Fd/2ZfrSWMpHrDshtGCvsY9FlKkFNYD+Es/7EtuX+itp1sLnLrScTWoPMYsfnty/lUPtAOs4syiUgQOoWHJpG9kdBiX11Z+UaZCk1YT+vOzACuzYxgf7hZbyBGvhTi9af+7SkQbyKi7M8N4ZJ5D+eU2dg9UN07KvyNOS8io6UkNFXMMj1/vnACKAuTmNXZpIqME+LF+iIbX7ukjkClODWTQw+ujuGYMYfXzXnICbxSBDrxAUvYDhkrZp6ggUC8+sDI7mpj9YmESb3/uJ5Z9TJ5A3eORvzsBpgs6lufGT2TKPNY3fbxh6Knis0FTSjnx+LP3u5DJicDi/t7MCFadPaRJQTl02/5vKcKnpITluYkwrWjksebs48Pvg3SoUkXtq32hxt+1pITI8Zc/zcGACN59ty/WdWnklV5ukZ+49wU8MUJIF3mBGlqUr3Dv1+wpl20v9UuP75pElyrgc3XK7UJFbLvK4DJiv9ggDmWcjO9G4imWvW00yV/hjvtpOFnpQOVLkcO+0EhyevGrROG1ol1hREFc8ZGxyddIje+v9c4i9+gI5z7MozLxclgAAAAASUVORK5CYII=",Ul="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAKeSURBVHgBjVVdbtpAEJ5ZmygPfTBSaVWpUt0bwFuURgJOUG5QeoLACbw+QeAEwA3SGxgJokh9CDeI+xSpTRU/Imw8nbFZx6QQGAl5d2fm229+dkDYI2f6oaUAOwhWExBcPnL4FwFBSLCexpCMf+qPi12++PKgpR/cGOwRa1pwQIjgOoWkf6s/hOVzVd588R+/xWjf5YAY8Y0+ErQrZFfnXg3lK3uGm7A+RISOxfbit5NprqBxxgBoeEIVHehqtI9lSz+5McaaITaA2J17bycFaBayMOS8IaT+zHuv4Ui58P9oAvB4Ga0paUgqbFGswL5idIcIx3P9DCiXrQB7iJawcTiCkMMIUlj7Jo8zr6Yv/EfRXXIqRnzUxnP9u46Id8Q5Sslq3+pqWErHAPKqvxROC/ZMuJwKJ8bkPouUkrYUqgt5IgMDKAxfAYT8nAZnmR2A5J47YSjrFKyOYpZN2SiIJ8YjRqVfASyAFVg9s2F2gXwRsClMXdnYcFpq5PyiQ8KEilaywc79+aEow2i7fdCF46SIpuTvCGi2kWSXjCM4QqS4Zl3yjwQ0UySwrBfGRJNjQKW4ZrmEpL45CxUDTGWdgmoZgxOoDA6zxYgr7ZudhWk3x6Sp4kl0nZmgujQhcH5Cvqy/Hxi5hdL+dgsWxR2rma4FkLeDw+PMM243+t2YB0jDDI9nMBquyWqI3tjmLYguQfqDzxebty/DIcnePr9jfePVfDhSzv2/Hs8LAY3kMmFfTCl+rl3uu1GWF6Jx+X3vkpa+58jeeNyXvY3Pd8N+a0hvgK9ge3hMTmG5CPTnSICWcFpXaDfZUcAck99yOnZM/id3hcmAFV/hgEilU6p0TcH2gpZYS98xc/kXUJ8YImPFzfeLh0cgXbMp8n/yD3ySPZSK0MWKAAAAAElFTkSuQmCC";function Yt(){const{config:t}=$e();return{timeZoneDetails:d.useMemo(()=>{const s=t.timeZone||Intl.DateTimeFormat().resolvedOptions().timeZone;return{timeZoneUniqueId:"",ianaTimeZoneId:s,timeZoneName:s,offset:""}},[t.timeZone]),loading:!1}}function Ll(t){const e=(t.status||"").toLowerCase()==="completed"?i.jsx("img",{src:Rl,alt:"completed",style:{width:20,height:20}}):i.jsx("img",{src:Ul,alt:"pending",style:{width:20,height:20}});return{title:i.jsxs("div",{className:"flex flex-col gap-0 min-w-0",children:[i.jsxs("div",{className:"flex flex-col",children:[i.jsx("span",{className:"block text-sm break-words mb-1 overflow-visible whitespace-normal",children:i.jsx("b",{children:t.title})}),t.description?i.jsx("span",{className:"text-gray-500 text-xs",children:t.description}):null]}),t.timestamp?i.jsx("span",{className:"text-gray-500 text-xs",children:t.timestamp}):null]}),icon:e,description:null}}function Fl({data:t}){const{timeZoneDetails:e}=Yt();return i.jsx("div",{className:"w-full",children:i.jsx(h.Tabs,{type:"card",items:[{key:"action",label:"Action Taken",children:i.jsxs("div",{className:"w-full",style:{maxHeight:"50vh",overflowY:"auto"},children:[i.jsx(h.Card,{className:"mb-4 rounded-md p-4",bordered:!0,children:i.jsxs("div",{className:"grid grid-cols-4 gap-6 text-xs",children:[i.jsxs("div",{className:"flex flex-col gap-1",children:[i.jsx("span",{className:"text-gray-500",children:"Alert ID"}),i.jsx("span",{className:"text-black",children:t.summary.alertNumber})]}),i.jsxs("div",{className:"flex flex-col gap-1",children:[i.jsx("span",{className:"text-gray-500",children:"Severity"}),i.jsx("span",{className:"text-black",children:t.summary.severity})]}),i.jsxs("div",{className:"flex flex-col gap-1",children:[i.jsx("span",{className:"text-gray-500",children:"Location"}),i.jsx("span",{className:"text-black",children:t.summary.location})]})]})}),i.jsxs(h.Card,{className:"rounded-md p-4",bordered:!0,children:[i.jsx("div",{className:"flex items-center justify-between",children:i.jsx("h4",{className:"text-sm text-black font-medium",children:"Response Timeline/ Audit trail/log"})}),i.jsx("div",{className:"mt-2",children:i.jsx(h.Steps,{direction:"vertical",size:"small",current:1,items:(t.timeline||[]).map(Ll)})})]})]})},{key:"notification",label:"Notification Sent",children:i.jsxs("div",{className:"grid grid-cols-2 gap-4",style:{maxHeight:"50vh",overflowY:"auto"},children:[(t.notifications||[]).map((s,n)=>i.jsxs(h.Card,{className:"rounded-md p-4",bordered:!0,children:[i.jsxs("div",{className:"flex items-start justify-between",children:[i.jsxs("div",{className:"flex flex-col",children:[i.jsx("h4",{className:"text-sm text-black font-medium",children:s.channelLabel}),i.jsx("span",{className:"text-xs text-gray-500 mt-1",children:Zt(s.sentAt,e?.ianaTimeZoneId)})]}),i.jsxs("span",{className:"text-[11px] px-2 py-1 rounded-full bg-green-50 text-green-700 border border-green-200",children:[s.delivered,"/",s.total," Delivered"]})]}),i.jsxs("div",{className:"mt-4 text-xs",children:[i.jsxs("div",{className:"text-black",children:[" ",s.messageTitle]}),s.messageBody?i.jsx("div",{className:"text-gray-600",children:s.messageBody}):null]}),i.jsxs("div",{className:"mt-4",children:[i.jsxs("div",{className:"text-xs text-black font-medium",children:["Recipients (",s.total,")"]}),i.jsx("div",{className:"mt-2 flex flex-col gap-3 text-xs",children:(s.recipients||[]).map((r,a)=>{const o=String(r?.notificationReceipientType||"").toLowerCase()==="EscalationNotification".toLowerCase();return i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"flex flex-col",children:[i.jsxs("span",{className:"text-black",children:[r.name," -"," ",i.jsx("span",{style:{color:o?"#FF3B30":"#FFB86A"},children:o?"Escalation Notification":"Alert Notification"})]}),i.jsxs("span",{className:"text-gray-500",children:[r.role," . ",r.phone]})]}),i.jsx("span",{className:`text-[11px] px-3 py-[2px] rounded ${r.status==="Delivered"?"bg-green-50 text-green-700 border border-green-200":"bg-red-50 text-red-700 border border-red-200"}`,children:r.status})]},a)})})]})]},n)),t?.notifications?.length?null:i.jsx("span",{className:"text-gray-500 text-xs",children:"No notifications."})]})}]})})}const $l=({alertId:t,id:e,priority:s,spaceName:n,alertNumber:r,statusHistory:a,notifGroups:o})=>{const l={alertId:t??String(e??""),incidentId:"-",severity:s||"",location:n||"",alertNumber:r??""},{timeZoneDetails:c}=Yt(),u=a?.length?a.map(f=>{const g=(f?.status||f?.eventStatus||"").toLowerCase()==="completed"?"Completed":"Inprogress",p=f?.createdDate?Zt(f.createdDate,c?.ianaTimeZoneId):f?.timestamp?Zt(f.timestamp,c?.ianaTimeZoneId):"";return{status:g,title:f?.status||f?.eventStatus||"Status Update",description:f?.description||f?.actionNotes||"",timestamp:p}}):[],m={summary:l,timeline:u,notifications:o??[]};return i.jsx(Fl,{data:m})},Pl=({url:t,alt:e,isLoading:s,priority:n,detections:r,onLoadSuccess:a,onError:o})=>{const{imageRef:l,dimensions:c,onLoad:u}=ur(),m=d.useMemo(()=>cr(r,c.naturalWidth,c.naturalHeight,c.renderedWidth,c.renderedHeight),[r,c]),f=d.useMemo(()=>m.map(g=>({...g,label:g.personName||""})),[m]);return i.jsxs("div",{style:{position:"relative",display:"inline-block"},children:[i.jsx("img",{ref:l,src:t,alt:e,className:`max-w-full max-h-[90vh] object-contain rounded-lg shadow-lg transition-opacity duration-200 ${s?"opacity-0":"opacity-100"}`,onLoad:()=>{u(),a()},onError:o}),i.jsx(lr,{boxes:f,priority:n})]})},Wl=({items:t})=>{const{timeZoneDetails:e}=Yt(),s=a=>a.replace(/([a-z])([A-Z])/g,"$1 $2"),r=(()=>{if(!t?.length||t.length<2)return null;const a=new Date(t[0].timeStamp).getTime(),o=new Date(t[t.length-1].timeStamp).getTime(),l=Math.floor((o-a)/1e3),c=Math.floor(l/3600),u=Math.floor(l%3600/60),m=l%60;return[c>0?`${c}h`:null,u>0?`${u}m`:null,`${m}s`].filter(Boolean).join(" ")})();return i.jsxs("div",{className:"bg-[#F7F7F7] rounded-lg p-4",children:[i.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[i.jsx("div",{className:"font-semibold text-base",children:"Alert Timeline"}),r&&i.jsxs(h.Tag,{color:"blue",children:["Total Duration: ",r]})]}),t?.length?i.jsx(h.Timeline,{items:t.map(a=>({dot:i.jsx("div",{className:"w-4 h-4 rounded-full border-2 border-blue-500 bg-white flex items-center justify-center",children:i.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-500"})}),children:i.jsxs("div",{className:"pb-4",children:[i.jsx("div",{className:"font-semibold text-[15px] text-[#1F2937]",children:s(a.eventName)}),i.jsxs("div",{className:"text-[#6B7280] text-sm",children:["Timestamp:"," ",Zt(a.timeStamp,e?.ianaTimeZoneId)]}),a.timeElapsed&&i.jsxs("div",{className:"text-[#6B7280] text-sm",children:["Time Elapsed: ",a.timeElapsed,"s"]})]})}))}):i.jsx("div",{className:"text-center text-gray-500 py-8",children:"No Alert Timelines Found"})]})},Bl={Critical:"#FF3B30",High:"#FFB86A",Medium:"#FFCC00",Low:"#007AFF"},Vl={Critical:"#FFE2E2",High:"#FF95004D",Medium:"#FEF9C2",Low:"#E0EDFF"},Zl={"elopement attempt":"elopement","elopement completed":"elopement","watchlist person detected":"watchlist","watch list person detected":"watchlist","brandished guns & knives":"weapon","brandished guns and knives":"weapon"},zl=({isModalOpen:t,handleModalClose:e,selectedRow:s,fetchAlertLogs:n,alertStatusList:r=[],alertStatusLoading:a=!1,initialTab:o="details",sourceTab:l,onAlertView:c,showAlertTimeline:u})=>{const[m,f]=d.useState(),[g,p]=d.useState(""),[x,k]=d.useState(!1),[b,B]=d.useState([]),H=d.useRef(null),[K,I]=d.useState("details"),[D,V]=d.useState(void 0),C=en(),{alerts:q,rules:y,config:S}=$e(),{timeZoneDetails:M}=Yt(),[re,me]=d.useState(null),[j,A]=d.useState(!1),[v,E]=d.useState(!1),[T,O]=d.useState(void 0),[U,Y]=d.useState(void 0),[G,_]=d.useState({}),[ie,ce]=d.useState({}),ke=(w,z,ae)=>{const Ae=ie[w];return G[w]===!1&&!Ae?i.jsxs("div",{className:"w-full flex flex-col items-center justify-center min-h-[200px] bg-gray-100 rounded-lg gap-2 text-gray-400",children:[i.jsx(fr,{size:40}),i.jsx("span",{className:"text-sm",children:"Media not available"})]}):i.jsxs("div",{className:"relative w-full flex justify-center items-center min-h-[200px]",children:[Ae&&i.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-gray-100 rounded-lg z-10",children:i.jsx(gi,{size:32,className:"animate-spin text-gray-400"})}),i.jsx(Pl,{url:w,alt:z.caption||`media-${ae}`,isLoading:Ae,priority:we,detections:Ue,onLoadSuccess:()=>ce(Me=>({...Me,[w]:!1})),onError:()=>ce(Me=>({...Me,[w]:!1}))})]})},ee=s?.originalData||{},{eventName:pe,eventDisplayName:Te,anomalyName:fe,alertId:$,timestamp:P,description:he,spaceName:oe,assignTeam:Re,priority:we,statusType:He,id:Ie,alertDetails:xe,statusHistory:Ct,mediaDetails:ct,alertNumber:gt}=ee,Je=ee.bbox_xyxy,Ue=d.useMemo(()=>Je?[{bbox_xyxy:Je,personName:ee.personName}]:[],[Je,ee.personName]),St=S.tenant==="snl"?Te||pe||"Alert Event":pe||"Alert Event",xt=w=>{const z=String(w||"").toLowerCase();return z==="delivered"||z==="sent"?"Delivered":z==="failed"?"Failed":"Queued"},be=w=>({name:w?.receipientName||w?.recipientName||"-",role:w?.receipientRoleName||"",phone:w?.receipentPhoneNumber||w?.recipientPhoneNumber||w?.receipientEmail||w?.recipientEmail||"",status:xt(w?.messageStatus),notificationReceipientType:w?.notificationReceipientType||""}),vt=(w,z)=>{const ae=z.map(be),Ae=ae.filter(wt=>wt.status==="Delivered").length,Me=z.map(wt=>wt?.sentAt).filter(Boolean).sort((wt,ut)=>new Date(ut).getTime()-new Date(wt).getTime())[0],ye=(z[0]||{})?.severityName||`${w} Notification`;return{channelLabel:`${w} Notification`,sentAt:Me||"",messageTitle:ye,messageBody:"",total:ae.length,delivered:Ae,recipients:ae}},vs=w=>{const z=new Map;return(w||[]).forEach(ae=>{const Ae=String(ae?.notificationType||"Unknown"),Me=z.get(Ae)||[];Me.push(ae),z.set(Ae,Me)}),Array.from(z.entries()).map(([ae,Ae])=>vt(ae,Ae))},ws=async w=>{try{const z=await q.getAlertNotifications(w),ae=vs(z);V(ae)}catch{V(void 0)}};d.useEffect(()=>{if(K!=="track"||!Ie)return;let w=!1;return ws(Ie).then(()=>{w&&V(void 0)}),()=>{w=!0}},[K,Ie]),d.useEffect(()=>{if(!$){B([]);return}(async()=>{try{const z=await q.getAlertTimeline?.(String($));B(z||[])}catch{B([])}})()},[$]),d.useEffect(()=>{t?I(o):(f(void 0),p(""))},[t,o]),d.useEffect(()=>{!t||!c||c([{personName:ee.personName,faceId:ee.faceId,mediaDetails:ee.mediaDetails}])},[t]),d.useEffect(()=>{if(!t||S.tenant!=="snl")return;let w=!1;return A(!0),y.getLookups().then(z=>{w||(me(z.alertStatusTypes??[]),A(!1))}).catch(()=>{w||(me([]),A(!1))}),()=>{w=!0}},[t,S.tenant]);const As=l==="archived"||["completed","false positive"].includes(String(He||"").toLowerCase()),Ts=w=>{const z=String(w?.value||"").toLowerCase(),ae=String(w?.statusName||"").toLowerCase();return z.includes("reopen")||ae.includes("reopen")},bs=String(fe||"").trim().toLowerCase(),R=Zl[bs]??"general",te=r.filter(w=>{const z=Ts(w);return typeof l<"u"?l==="archived"?z:!z:As?z:!z}).map(w=>({value:w.value,label:w.statusName})),J=re??[],W=w=>!!w.isWatchListStatus,le=w=>!!w.isWeapontStatus,Z=J.filter(w=>{switch(R){case"elopement":return w.isElopementStatus;case"watchlist":return W(w);case"weapon":return le(w);default:return!w.isElopementStatus&&!W(w)&&!le(w)}}).map(w=>({value:w.alertStatusTypeName,label:w.alertStatusTypeName})),se=S.tenant==="snl"&&re!==null?Z:te,Ke=d.useMemo(()=>or(ct),[ct]);d.useEffect(()=>{let w=!1;const z=new AbortController,ae=async ue=>{if(ue){w||_(ye=>({...ye,[ue]:!1}));try{const ye=await fetch(ue,{method:"HEAD",signal:z.signal});if(ye.ok){w||_(ut=>({...ut,[ue]:!0}));return}if(ye.status===404){w||_(ut=>({...ut,[ue]:!1}));return}if(!(await fetch(ue,{method:"GET",signal:z.signal})).ok)throw new Error("Media not available");w||_(ut=>({...ut,[ue]:!0}))}catch{w||_(ye=>({...ye,[ue]:!1}))}}};_({});const Ae=Ke.filter(ue=>!Fs(ue)).map(ue=>ue?.mediaUrl||ue).filter(ue=>typeof ue=="string"&&ue.length>0),Me={};return Ae.forEach(ue=>{Me[ue]=!0}),ce(Me),Ae.forEach(ue=>ae(ue)),()=>{w=!0,z.abort()}},[Ke]);const Rt=async()=>{try{k(!0);const w={alertUniqueId:$,alertId:Ie,status:m?String(m):void 0,notes:g.trim(),modifiedBy:0},z=await C.mutateAsync(w);if(z?.responseStatus||z?.Success){const ae=z?.Message||z?.data||"Alert updated successfully.";Ne.toast.success(ae,{autoClose:1500,onClose:()=>{n(),e()}}),f(void 0),p("")}else{const ae=z?.errorMessage||z?.Message||"Failed to update alert status";Ne.toast.error(ae)}}catch(w){console.error("Error updating alert status:",w),Ne.toast.error("Failed to update alert status. Please try again.")}finally{k(!1)}};return i.jsx(h.Modal,{open:t,onCancel:e,width:1e3,footer:K==="details"?i.jsxs("div",{className:"flex flex-row gap-2 justify-start",children:[i.jsx(h.Button,{onClick:e,className:"!bg-[#6C757D] !text-white !border-[#6C757D] hover:!bg-[#5c636a] hover:!text-white hover:!border-[#5c636a]",children:"Cancel"}),i.jsx(h.Button,{type:"primary",onClick:Rt,loading:x,children:x?"Saving...":"Save Changes"})]}):null,children:s&&i.jsx(h.Tabs,{activeKey:K,onChange:w=>I(w),items:[{key:"details",label:"Alert Detail",children:i.jsxs("div",{className:"grid grid-cols-2 gap-2",style:{maxHeight:"50vh",overflowY:"auto"},children:[i.jsxs("div",{className:"flex flex-col gap-2",children:[i.jsx("div",{className:"text-sm font-bold",children:St}),xe?.firstName?i.jsxs("div",{className:"text-sm text-gray-500",children:["Resident ID/Name: ",xe?.firstName," ",xe?.lastName||""," ","  ",xe?.residentId||""]}):null,i.jsxs("div",{className:"text-sm text-gray-500",children:["Timestamp:"," ",Zt(P,M?.ianaTimeZoneId)]}),i.jsxs("div",{className:"font-sm text-gray-500",children:[i.jsx("b",{className:"text-black text-sm/6",children:"Description:"})," ",he||"No description available"]}),oe&&i.jsxs("div",{className:"font-sm text-gray-500",children:["Space: ",oe]}),Re&&i.jsxs("div",{className:"font-sm text-gray-500",children:["Assigned to: ",Re]}),i.jsxs("div",{className:"flex gap-2 justify-start mt-3",children:[i.jsxs(h.Tag,{className:"font-sm text-gray-500 rounded-[8px] py-2 px-3",style:{border:`2px solid ${Bl[String(we)]||"#DFE4EA"}`,backgroundColor:Vl[String(we)]},children:["Severity: ",we||"N/A"]}),i.jsxs(h.Tag,{className:"font-sm text-gray-500 rounded-[8px] py-2 px-3",style:String(He||"").toLowerCase()==="completed"?{background:"#E7F6EC",border:"0.68px solid var(--Green, #34C759)"}:{background:"#E0EDFF",border:"1px solid var(--Grays-Gray-4, #D1D1D6)"},children:["Status: ",He||"N/A"]})]}),i.jsx("div",{className:"w-full flex flex-col justify-start items-start mt-2 font-bold",children:i.jsxs("div",{className:"w-full mt-4",children:[i.jsx("div",{className:"flex flex-col gap-2",children:i.jsx(h.Select,{placeholder:"Change Status",className:"w-full text-gray-500",onChange:w=>f(w),value:m,options:se,loading:S.tenant==="snl"?j:a})}),i.jsxs("div",{className:"flex flex-col gap-2 mt-3",children:[i.jsx("label",{htmlFor:"action-details-input",className:"text-xs text-gray-500 font-medium",children:"Action Taken (Comments)"}),i.jsx("textarea",{id:"action-details-input",placeholder:"Enter details...",className:"w-full text-gray-500 h-20 border border-grey-500 rounded-md p-2",value:g,onChange:w=>p(w.target.value)})]})]})})]}),i.jsxs("div",{className:"flex flex-col gap-4",children:[i.jsxs("div",{className:"w-full mt-1",children:[i.jsxs("div",{className:"w-full flex items-center justify-between",children:[i.jsx("h3",{className:"text-black font-bold text-sm",children:"Camera Footage"}),Ke.length>1?i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("button",{type:"button",onClick:()=>H.current?.prev?.(),className:"w-6 h-6 flex items-center justify-center rounded-full bg-gray-200 hover:bg-gray-300 text-gray-600","aria-label":"Previous media",children:i.jsx(ht.LeftOutlined,{style:{fontSize:12}})}),i.jsx("button",{type:"button",onClick:()=>H.current?.next?.(),className:"w-6 h-6 flex items-center justify-center rounded-full bg-gray-200 hover:bg-gray-300 text-gray-600","aria-label":"Next media",children:i.jsx(ht.RightOutlined,{style:{fontSize:12}})})]}):null]}),Ke.length?i.jsx("div",{className:"w-full",children:i.jsx(h.Carousel,{ref:H,dots:!0,className:"w-full",children:Ke.map((w,z)=>{const ae=w.mediaUrl||w,Ae=Fs(w);return i.jsxs("div",{className:"flex justify-center items-center relative",children:[Ae?i.jsxs("video",{width:"240",height:"200",controls:!0,className:"max-w-full max-h-[90vh] object-contain rounded-lg shadow-lg",children:[i.jsx("source",{src:ae}),"Your browser does not support the video tag."]}):ke(String(ae),w,z),w.caption&&i.jsx("p",{className:"text-xs text-gray-500 mt-1",children:w.caption}),!Ae&&G[String(ae)]?i.jsx("button",{onClick:()=>{E(!0),O(ae),Y(w.type||"image")},className:"absolute bottom-3 right-3 text-white bg-black/50 rounded-full p-2 hover:bg-black/70",children:i.jsx(xi,{size:20})}):null]},String(ae)||z)})})}):null]}),u&&i.jsx(Wl,{items:b})]}),i.jsx(dr,{isOpen:v,onClose:()=>E(!1),src:T||"",type:U||"image",detections:Ue,priority:we})]})},{key:"track",label:"Track Incident",children:i.jsx($l,{alertId:$,id:Ie,priority:we,spaceName:oe,alertNumber:gt,statusHistory:Ct,notifGroups:D})}]})})};function wa(){const{alerts:t}=$e(),e=yt.useQuery({queryKey:["alerts","statusList"],queryFn:()=>t.getAlertStatusList(),staleTime:5*6e4});return{list:e.data??[],loading:e.isLoading,error:e.error,refetch:e.refetch}}function un({alerts:t,loading:e=!1,columns:s,total:n,currentPage:r,onRefetch:a,onPageChange:o,onFilterChange:l,onAlertView:c,showAlertTimeline:u}){const[m,f]=d.useState(!1),[g,p]=d.useState(null),[x,k]=d.useState("details"),{list:b,loading:B}=wa(),{timeZoneDetails:H}=Yt(),K=H?.timeZoneName??"UTC",I=H?.ianaTimeZoneId??"UTC";function D(re,me){p(re),k(me?.tab??"details"),q(me?.sourceTab??"active"),f(!0)}function V(){f(!1)}const[C,q]=d.useState("active"),[y,S]=d.useState(0),M=g?{originalData:{...g,alertId:g.alertId??g.id,mediaDetails:g.mediaDetails}}:null;return i.jsxs("div",{className:"p-6 flex flex-col items-start justify-start min-h-screen w-full overflow-auto",children:[i.jsxs("div",{className:"w-full grid grid-cols-3 sm:grid-cols-1 items-center mb-4",children:[i.jsx("h1",{className:"text-xl font-bold text-black",children:"Alert Console"}),i.jsx("div",{className:"flex items-center justify-start sm:justify-center",children:i.jsx(ga,{label:K,timeZone:I})})]}),i.jsx(h.Tabs,{defaultActiveKey:"active",className:"w-full",tabBarStyle:{fontSize:"medium"},onChange:re=>{const me=re==="archived";S(j=>j+1),o?.(1),l?.({isArchived:me})},items:[{key:"active",label:"Active",children:i.jsx(Xs,{data:t,loading:e,pageSize:10,total:n,currentPage:r,columns:s||[],onAlertIdClick:D,onAlertView:c,onRefetch:a,onPageChange:o,onFilterChange:l,resetKey:y})},{key:"archived",label:"Archived",children:i.jsx(pa,{alerts:t,loading:e,columns:s||[],total:n,currentPage:r,onAlertIdClick:D,onAlertView:c,onFilterChange:l,onPageChange:o,onRefetch:a,resetKey:y})},{key:"settings",label:"Settings",children:i.jsx(Hl,{})}]}),i.jsx(zl,{isModalOpen:m,handleModalClose:V,selectedRow:M,fetchAlertLogs:()=>{},alertStatusList:b,alertStatusLoading:B,initialTab:x,sourceTab:C,onAlertView:c,showAlertTimeline:u})]})}function Hl(){const[t,e]=d.useState([]),[s,n]=d.useState([]),[r,a]=d.useState([]),[o,l]=d.useState([]),[c,u]=d.useState(!0),{rules:m}=$e();return d.useEffect(()=>{let f=!0;return(async()=>{try{const g=await m.getRules();if(!f)return;l(Array.isArray(g)?g:[]);const p=(g||[]).map((x,k)=>({RuleId:x.ruleId||x.ruleName||String(k),Name:x.ruleName||x.Name||"-",Description:x.ruleDesc||x.Description||"",SeverityId:0}));e(p);try{const x=await m.getLookups(),k=Array.isArray(x?.userRoles)?x.userRoles.map(b=>({userRoleId:b.userRoleId??b.id,userRoleName:b.userRoleName??b.name})):[];n(k),a(Array.isArray(x?.severities)?x.severities:[])}catch{}}catch{}finally{f&&u(!1)}})(),()=>{f=!1}},[]),i.jsx(va,{severities:r,rules:t,userRoles:s,rawRules:o,loadingRules:c})}function ql(t){return Array.isArray(t)?{items:t}:t}function Aa(t=1,e){const{alerts:s,config:n}=$e(),r=n.tenant==="schools"&&!!String(e?.searchText??"").trim(),a=yt.useQuery({queryKey:["alerts","list",n.tenant,t,e],queryFn:()=>{const o={...e};return n.tenant==="schools"?(o.pageNumber=t,o.pageSize=r?100:10):(o.pageNumber=t,o.pageSize=10),s.listAlerts(o).then(ql)},staleTime:r?0:3e4});return{alerts:a.data?.items??[],total:a.data?.total,loading:a.isLoading,error:a.error,refetch:a.refetch}}function Gl(t){const[e,s]=d.useState(1),[n,r]=d.useState({}),{alerts:a,total:o,loading:l,refetch:c}=Aa(e,n);d.useEffect(()=>{!l&&a.length>0&&t.onAlertView?.(a)},[a,l]);const u=m=>{"isArchived"in m?r({isArchived:m.isArchived}):r(f=>({...f,...m}))};return i.jsx(un,{alerts:a,loading:l,columns:t.columns,total:o,currentPage:e,onRefetch:c,onPageChange:s,onFilterChange:u,onAlertView:t.onAlertView,showAlertTimeline:t.showAlertTimeline})}function Yl({tenant:t,apiDomain:e,rulesDomain:s,headers:n,timeZone:r,userManagementDomain:a,spacesBaseUrl:o,alerts:l,loading:c,columns:u,onAlertView:m,showAlertTimeline:f}){const[g]=d.useState(()=>new yt.QueryClient({defaultOptions:{queries:{retry:(x,k)=>{const b=k.response?.status??k?.status;return b>=400&&b<=500?!1:x<2},refetchOnWindowFocus:!1}}})),p=d.useMemo(()=>({alertsBaseUrl:e,rulesBaseUrl:s||e,headers:n||void 0}),[e,s,n]);return i.jsx(yt.QueryClientProvider,{client:g,children:i.jsx(ar,{tenant:t,override:p,timeZone:r,userManagementDomain:a,spacesBaseUrl:o,children:Array.isArray(l)?i.jsx(un,{alerts:l,loading:!!c,columns:u,onAlertView:m,showAlertTimeline:f}):i.jsx(Gl,{columns:u,onAlertView:m,showAlertTimeline:f})})})}function _l(t){const{alerts:e}=$e(),s=yt.useQuery({queryKey:["alerts","report",t],queryFn:()=>e.getAlertsReport(t),staleTime:6e4});return{data:s.data??[],loading:s.isLoading,error:s.error,refetch:s.refetch}}const Jl=[{title:"ID",dataIndex:"id",key:"id",width:120},{title:"Priority",dataIndex:"priority",key:"priority",width:120},{title:"Timestamp",dataIndex:"timestamp",key:"timestamp",width:220},{title:"Status",dataIndex:"statusType",key:"statusType",width:140},{title:"Description",dataIndex:"description",key:"description"}];exports.AlertAssignment=Sa;exports.AlertConsole=un;exports.AlertConsoleWidget=Yl;exports.AlertsTable=Xs;exports.ApiProvider=ar;exports.ArchivedTable=pa;exports.Clock=ga;exports.DataTable=ir;exports.MyPreferencesPanel=Cl;exports.SettingsPanel=xa;exports.SettingsTabs=va;exports.exampleAlertColumns=Jl;exports.useAlertStatusList=wa;exports.useAlerts=Aa;exports.useAlertsReport=_l;exports.useApi=$e;exports.useUpdateAlertStatus=en;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),d=require("react"),h=require("antd"),ht=require("@ant-design/icons"),Ne=require("react-toastify"),yt=require("@tanstack/react-query"),Ta="#FF3B30",ba="#FF9500",Na="#FFCC00",ka="#34C759",_t={critical:Ta,high:ba,medium:Na,low:ka},mn={Critical:_t.critical,High:_t.high,Medium:_t.medium,Low:_t.low};function Ia(t){return mn[t]||mn.Low}function fn(t){if(!t||typeof t!="string")return 0;const e=t.trim().split(":");if(e.length!==3)return 0;const[s,n,r]=e,a=Number.parseInt(s,10),o=Number.parseInt(n,10),l=Number.parseFloat(r||"0"),c=Number.isFinite(a)?a:0,u=Number.isFinite(o)?o:0,m=Number.isFinite(l)?l:0;return c*3600+u*60+m}function hn(t){return t.toLowerCase().replaceAll("'","").replaceAll("‘","").replaceAll("’","")}const tr="",Ea=tr,ja="",Ma="",Oa="",Da="",yn={snl:{alerts:tr,rules:Ea},schools:{alerts:ja,rules:Ma},transit:{alerts:Oa,rules:Da}};function Oe(t,e){const s=(t||"").replace(/\/+$/,""),n=e.startsWith("/")?e:`/${e}`;return`${s}${n}`}function Ca(){try{const t=localStorage.getItem("authToken");return t?{Authorization:`Bearer ${t}`}:{}}catch{return{}}}function Ut(t,e){if(!e)return t;const s=new URL(t);return Object.entries(e).forEach(([n,r])=>{r!=null&&String(r).length>0&&s.searchParams.set(n,String(r))}),s.toString()}async function De(t,e){const s={...e.headers,...Ca()},n=await fetch(t,{...e,headers:s});if(n.status===401)throw window.location.href="/login",new Error("Unauthorized");if(n.status===204)return{};const r=await n.text();let a={};if(r)try{a=JSON.parse(r)}catch{a={ok:n.ok,status:n.status,raw:r}}if(!n.ok){const o=a?.errorMessage||a?.message||`HTTP ${n.status}`,l=new Error(o);throw l.status=n.status,l}return a}function Ra(t){const e={"Content-Type":"application/json",...t.headers||{}};return{async listAlerts(s){const n=Oe(t.baseUrl,"/api/Alert"),r=Ut(n,{page:s?.pageNumber??1,pageSize:s?.pageSize??10,...s?.anomalyId!==void 0&&{anomalyId:s.anomalyId},...s?.spaceId!==void 0&&{spaceId:s.spaceId},...s?.severityName!==void 0&&{severity:s.severityName},...s?.thirdPartyIds?.length&&{thirdPartyIds:s.thirdPartyIds.join(",")},...s?.searchText&&{searchText:s.searchText},isArchived:s?.isArchived??!1}),a=await De(r,{method:"GET",headers:e}),o=Array.isArray(a)?a:[],l=o.length>0?o[0].totalRecords??o.length:0;return{items:o,total:l}},async getAlertStatusList(){const s=Oe(t.baseUrl,"/api/Alert/AlertStatusList"),n=await De(s,{method:"GET",headers:e});return Array.isArray(n)?n:n&&typeof n=="object"&&Array.isArray(n.data)?n.data:[]},async getAlertsReport(s){const n=Oe(t.baseUrl,"/Alerts/GetAlertsReport"),r=Ut(n,s),a=await De(r,{method:"GET",headers:e});return Array.isArray(a)?a:[]},async updateAlertStatus(s){const n=Oe(t.baseUrl,"/api/Alert/status");return De(n,{method:"PUT",headers:e,body:JSON.stringify(s??{})})},async getAlertTimeline(s){const n=Oe(t.baseUrl,`/api/Alert/alertTimelines/${s}`);return De(n,{method:"GET",headers:e})},async getAdminSettings(){const s=Oe(t.baseUrl,"/api/Alert/GetAdminSettings"),n=await De(s,{method:"GET",headers:e});if(n&&typeof n=="object"){if("data"in n)return n.data;if("userId"in n)return n}return null},async setAdminSettings(s){const n=Oe(t.baseUrl,"/api/Alert/SetAdminSettings"),r={userId:0,isAdminSetting:!0,sortBy:s?.sortBy??"",groupBy:s?.groupBy??null};return De(n,{method:"POST",headers:e,body:JSON.stringify(r)})},async getPreferenceSettings(){const s=Oe(t.baseUrl,"/api/Alert/GetPreferenceSettings"),n=await De(s,{method:"GET",headers:e});if(n&&typeof n=="object"){if("data"in n)return n.data;if("anomalyIds"in n)return n}return null},async setPreferenceSettings(s){const n=Oe(t.baseUrl,"/api/Alert/SetPreferenceSettings"),r=await De(n,{method:"POST",headers:e,body:JSON.stringify(s??{})}),a=r?.responseStatus??!0,o=r?.data??r?.message??"Preferences updated successfully.";return{responseStatus:a,errorMessage:a?"":r?.errorMessage??r?.message??"",statusCode:200,data:o}},async getAlertNotifications(s){const n=Oe(t.baseUrl,"/api/Alert/GetNotifications"),r=Ut(n,{alertId:s}),a=await De(r,{method:"GET",headers:e});return Array.isArray(a)?a:a&&typeof a=="object"&&Array.isArray(a.data)?a.data:[]},async notifyFamilyMembers(s){const n=Oe(t.baseUrl,"/api/Alert/NotificationToFamilyMembers"),r=Ut(n,{alertId:s});return De(r,{method:"POST",headers:e})},async sendSMSorEmailNotifications(s,n,r){const a=Oe(t.baseUrl,"/api/Alert/SendSMSorEmailNotifications"),o=Ut(a,{alertId:s,isEmail:n,isSMS:r});return De(o,{method:"POST",headers:e})},async getTimeZoneMasters(){const s=Oe(t.baseUrl,"/api/UserPreference/GetTimeZoneMasters"),n=await De(s,{method:"GET",headers:e});return Array.isArray(n)?n:n&&typeof n=="object"&&Array.isArray(n.data)?n.data:[]},async getMyAppPreferences(){const s=Oe(t.baseUrl,"/api/UserPreference/GetMyAppPreferences"),n=await De(s,{method:"GET",headers:e});if(n&&typeof n=="object"){const r=n.data??n;if(r?.timeZoneUniqueId)return{timeZoneUniqueId:r.timeZoneUniqueId}}return null},async getAllSpaces(){const s=Oe(t.baseUrl,"/api/Spaces/GetAllSpaces"),n=await De(s,{method:"GET",headers:e});return(Array.isArray(n)?n:Array.isArray(n?.data)?n.data:[]).map(a=>({spaceId:a?.spaceId??a?.SpaceId,spaceName:a?.spaceName??a?.SpaceName??""}))}}}function pn(t,e){const s=(t||"").replace(/\/+$/,""),n=e.startsWith("/")?e:`/${e}`;return`${s}${n}`}function Ua(){try{const t=localStorage.getItem("authToken");return t?{Authorization:`Bearer ${t}`}:{}}catch{return{}}}async function Jt(t,e){const s={...e.headers,...Ua()},n=await fetch(t,{...e,headers:s});if(n.status===401)throw window.location.href="/login",new Error("Unauthorized");if(n.status===204)return{};const r=await n.text();let a={};if(r)try{a=JSON.parse(r)}catch{a={ok:n.ok,status:n.status,raw:r}}if(!n.ok){const o=a?.errorMessage||a?.message||`HTTP ${n.status}`;throw new Error(o)}return a}function La(t){const e={"Content-Type":"application/json",...t.headers||{}},s=pn(t.baseUrl,"/api/Rules"),n=pn(t.baseUrl,"/api/Rules/lookups");return{async getRules(){const r=await Jt(s,{method:"GET",headers:e});return Array.isArray(r)?r:[]},async setEscalationSettings(r){return Jt(s,{method:"POST",headers:e,body:JSON.stringify(r??{})})},async getLookups(){return Jt(n,{method:"GET",headers:e})},async updateRule(r,a){const o=`${s}/${r}`;return Jt(o,{method:"PUT",headers:e,body:JSON.stringify(a??{})})}}}function Fa(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var is={exports:{}},$a=is.exports,gn;function Pa(){return gn||(gn=1,(function(t,e){(function(s,n){t.exports=n()})($a,(function(){var s=1e3,n=6e4,r=36e5,a="millisecond",o="second",l="minute",c="hour",u="day",m="week",f="month",g="quarter",p="year",x="date",k="Invalid Date",b=/^(\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,H={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(j){var A=["th","st","nd","rd"],v=j%100;return"["+j+(A[(v-20)%10]||A[v]||A[0])+"]"}},K=function(j,A,v){var E=String(j);return!E||E.length>=A?j:""+Array(A+1-E.length).join(v)+j},I={s:K,z:function(j){var A=-j.utcOffset(),v=Math.abs(A),E=Math.floor(v/60),T=v%60;return(A<=0?"+":"-")+K(E,2,"0")+":"+K(T,2,"0")},m:function j(A,v){if(A.date()<v.date())return-j(v,A);var E=12*(v.year()-A.year())+(v.month()-A.month()),T=A.clone().add(E,f),O=v-T<0,U=A.clone().add(E+(O?-1:1),f);return+(-(E+(v-T)/(O?T-U:U-T))||0)},a:function(j){return j<0?Math.ceil(j)||0:Math.floor(j)},p:function(j){return{M:f,y:p,w:m,d:u,D:x,h:c,m:l,s:o,ms:a,Q:g}[j]||String(j||"").toLowerCase().replace(/s$/,"")},u:function(j){return j===void 0}},D="en",V={};V[D]=H;var C="$isDayjsObject",q=function(j){return j instanceof re||!(!j||!j[C])},y=function j(A,v,E){var T;if(!A)return D;if(typeof A=="string"){var O=A.toLowerCase();V[O]&&(T=O),v&&(V[O]=v,T=O);var U=A.split("-");if(!T&&U.length>1)return j(U[0])}else{var Y=A.name;V[Y]=A,T=Y}return!E&&T&&(D=T),T||!E&&D},S=function(j,A){if(q(j))return j.clone();var v=typeof A=="object"?A:{};return v.date=j,v.args=arguments,new re(v)},M=I;M.l=y,M.i=q,M.w=function(j,A){return S(j,{locale:A.$L,utc:A.$u,x:A.$x,$offset:A.$offset})};var re=(function(){function j(v){this.$L=y(v.locale,null,!0),this.parse(v),this.$x=this.$x||v.x||{},this[C]=!0}var A=j.prototype;return A.parse=function(v){this.$d=(function(E){var T=E.date,O=E.utc;if(T===null)return new Date(NaN);if(M.u(T))return new Date;if(T instanceof Date)return new Date(T);if(typeof T=="string"&&!/Z$/i.test(T)){var U=T.match(b);if(U){var Y=U[2]-1||0,G=(U[7]||"0").substring(0,3);return O?new Date(Date.UTC(U[1],Y,U[3]||1,U[4]||0,U[5]||0,U[6]||0,G)):new Date(U[1],Y,U[3]||1,U[4]||0,U[5]||0,U[6]||0,G)}}return new Date(T)})(v),this.init()},A.init=function(){var v=this.$d;this.$y=v.getFullYear(),this.$M=v.getMonth(),this.$D=v.getDate(),this.$W=v.getDay(),this.$H=v.getHours(),this.$m=v.getMinutes(),this.$s=v.getSeconds(),this.$ms=v.getMilliseconds()},A.$utils=function(){return M},A.isValid=function(){return this.$d.toString()!==k},A.isSame=function(v,E){var T=S(v);return this.startOf(E)<=T&&T<=this.endOf(E)},A.isAfter=function(v,E){return S(v)<this.startOf(E)},A.isBefore=function(v,E){return this.endOf(E)<S(v)},A.$g=function(v,E,T){return M.u(v)?this[E]:this.set(T,v)},A.unix=function(){return Math.floor(this.valueOf()/1e3)},A.valueOf=function(){return this.$d.getTime()},A.startOf=function(v,E){var T=this,O=!!M.u(E)||E,U=M.p(v),Y=function(Te,fe){var $=M.w(T.$u?Date.UTC(T.$y,fe,Te):new Date(T.$y,fe,Te),T);return O?$:$.endOf(u)},G=function(Te,fe){return M.w(T.toDate()[Te].apply(T.toDate("s"),(O?[0,0,0,0]:[23,59,59,999]).slice(fe)),T)},_=this.$W,ie=this.$M,ce=this.$D,ke="set"+(this.$u?"UTC":"");switch(U){case p:return O?Y(1,0):Y(31,11);case f:return O?Y(1,ie):Y(0,ie+1);case m:var ee=this.$locale().weekStart||0,pe=(_<ee?_+7:_)-ee;return Y(O?ce-pe:ce+(6-pe),ie);case u:case x:return G(ke+"Hours",0);case c:return G(ke+"Minutes",1);case l:return G(ke+"Seconds",2);case o:return G(ke+"Milliseconds",3);default:return this.clone()}},A.endOf=function(v){return this.startOf(v,!1)},A.$set=function(v,E){var T,O=M.p(v),U="set"+(this.$u?"UTC":""),Y=(T={},T[u]=U+"Date",T[x]=U+"Date",T[f]=U+"Month",T[p]=U+"FullYear",T[c]=U+"Hours",T[l]=U+"Minutes",T[o]=U+"Seconds",T[a]=U+"Milliseconds",T)[O],G=O===u?this.$D+(E-this.$W):E;if(O===f||O===p){var _=this.clone().set(x,1);_.$d[Y](G),_.init(),this.$d=_.set(x,Math.min(this.$D,_.daysInMonth())).$d}else Y&&this.$d[Y](G);return this.init(),this},A.set=function(v,E){return this.clone().$set(v,E)},A.get=function(v){return this[M.p(v)]()},A.add=function(v,E){var T,O=this;v=Number(v);var U=M.p(E),Y=function(ie){var ce=S(O);return M.w(ce.date(ce.date()+Math.round(ie*v)),O)};if(U===f)return this.set(f,this.$M+v);if(U===p)return this.set(p,this.$y+v);if(U===u)return Y(1);if(U===m)return Y(7);var G=(T={},T[l]=n,T[c]=r,T[o]=s,T)[U]||1,_=this.$d.getTime()+v*G;return M.w(_,this)},A.subtract=function(v,E){return this.add(-1*v,E)},A.format=function(v){var E=this,T=this.$locale();if(!this.isValid())return T.invalidDate||k;var O=v||"YYYY-MM-DDTHH:mm:ssZ",U=M.z(this),Y=this.$H,G=this.$m,_=this.$M,ie=T.weekdays,ce=T.months,ke=T.meridiem,ee=function(fe,$,P,he){return fe&&(fe[$]||fe(E,O))||P[$].slice(0,he)},pe=function(fe){return M.s(Y%12||12,fe,"0")},Te=ke||function(fe,$,P){var he=fe<12?"AM":"PM";return P?he.toLowerCase():he};return O.replace(B,(function(fe,$){return $||(function(P){switch(P){case"YY":return String(E.$y).slice(-2);case"YYYY":return M.s(E.$y,4,"0");case"M":return _+1;case"MM":return M.s(_+1,2,"0");case"MMM":return ee(T.monthsShort,_,ce,3);case"MMMM":return ee(ce,_);case"D":return E.$D;case"DD":return M.s(E.$D,2,"0");case"d":return String(E.$W);case"dd":return ee(T.weekdaysMin,E.$W,ie,2);case"ddd":return ee(T.weekdaysShort,E.$W,ie,3);case"dddd":return ie[E.$W];case"H":return String(Y);case"HH":return M.s(Y,2,"0");case"h":return pe(1);case"hh":return pe(2);case"a":return Te(Y,G,!0);case"A":return Te(Y,G,!1);case"m":return String(G);case"mm":return M.s(G,2,"0");case"s":return String(E.$s);case"ss":return M.s(E.$s,2,"0");case"SSS":return M.s(E.$ms,3,"0");case"Z":return U}return null})(fe)||U.replace(":","")}))},A.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},A.diff=function(v,E,T){var O,U=this,Y=M.p(E),G=S(v),_=(G.utcOffset()-this.utcOffset())*n,ie=this-G,ce=function(){return M.m(U,G)};switch(Y){case p:O=ce()/12;break;case f:O=ce();break;case g:O=ce()/3;break;case m:O=(ie-_)/6048e5;break;case u:O=(ie-_)/864e5;break;case c:O=ie/r;break;case l:O=ie/n;break;case o:O=ie/s;break;default:O=ie}return T?O:M.a(O)},A.daysInMonth=function(){return this.endOf(f).$D},A.$locale=function(){return V[this.$L]},A.locale=function(v,E){if(!v)return this.$L;var T=this.clone(),O=y(v,E,!0);return O&&(T.$L=O),T},A.clone=function(){return M.w(this.$d,this)},A.toDate=function(){return new Date(this.valueOf())},A.toJSON=function(){return this.isValid()?this.toISOString():null},A.toISOString=function(){return this.$d.toISOString()},A.toString=function(){return this.$d.toUTCString()},j})(),me=re.prototype;return S.prototype=me,[["$ms",a],["$s",o],["$m",l],["$H",c],["$W",u],["$M",f],["$y",p],["$D",x]].forEach((function(j){me[j[1]]=function(A){return this.$g(A,j[0],j[1])}})),S.extend=function(j,A){return j.$i||(j(A,re,S),j.$i=!0),S},S.locale=y,S.isDayjs=q,S.unix=function(j){return S(1e3*j)},S.en=V[D],S.Ls=V,S.p={},S}))})(is)),is.exports}var Wa=Pa();const Ba=Fa(Wa);function sr(t){if(!t)return"By Severity";const e=t.trim().toLowerCase();return e.includes("created")?"By Created Date":e.includes("updated")||e.includes("modified")?"By Updated Date":"By Severity"}function nr(t){if(!t||typeof t!="string")return{hours:0,minutes:0,seconds:0};const e=t.split(":").map(a=>parseInt(a,10)),s=Number.isFinite(e[0])?e[0]:0,n=Number.isFinite(e[1])?e[1]:0,r=Number.isFinite(e[2])?e[2]:0;return{hours:s,minutes:n,seconds:r}}function Sn(t){const{hours:e,minutes:s,seconds:n}=nr(t);return Ba().hour(e).minute(s).second(n).millisecond(0)}function Le(t,e){const s=(t||"").replace(/\/+$/,""),n=e.startsWith("/")?e:`/${e}`;return`${s}${n}`}function Va(){try{const t=localStorage.getItem("authToken");return t?{Authorization:`Bearer ${t}`}:{}}catch{return{}}}function Kt(t,e){if(!e)return t;const s=new URL(t);return Object.entries(e).forEach(([n,r])=>{r!=null&&String(r).length>0&&s.searchParams.set(n,String(r))}),s.toString()}async function Fe(t,e){const s={...e.headers,...Va()},n=await fetch(t,{...e,headers:s});if(n.status===401)throw window.location.href="/login",new Error("Unauthorized");if(n.status===204)return{};const r=await n.text();let a={};if(r)try{a=JSON.parse(r)}catch{a={ok:n.ok,status:n.status,raw:r}}if(!n.ok){const o=a?.Message||`HTTP ${n.status}`;throw new Error(o)}return a}const de=(...t)=>t.find(e=>e!=null);function Ft(t,e,s={}){const n={};for(const r of e){const a=s[r]??r.charAt(0).toUpperCase()+r.slice(1);n[r]=t?.[a]??t?.[r]}return n}function Za(t){return Array.isArray(t)?t.map(e=>Ft(e,["alertLogId","alertId","status","description","actionNotes","createdDate","createdBy","modifiedDate","modifiedBy"])):t}function za(t){return{id:String(de(t?.AlertId,t?.alertId)??""),alertNumber:de(t?.AlertNumber,t?.alertNumber),priority:de(t?.Priority,t?.priority,"Low"),timestamp:de(t?.UpdatedUtc,t?.timestamp,""),statusType:de(t?.Status,t?.statusType,""),description:de(t?.Description,t?.description,""),eventName:de(t?.EventName,t?.eventName),ruleName:de(t?.RuleName,t?.ruleName),spaceId:de(t?.SpaceId,t?.spaceId),spaceName:de(t?.SpaceName,t?.spaceName),anomalyId:de(t?.AnomalyId,t?.anomalyId),severityId:de(t?.SeverityId,t?.severityId),assignTeam:de(t?.AssignTeam,t?.assignTeam),cameraName:de(t?.CameraName,t?.cameraName),type:de(t?.Type,t?.type),mediaDetails:de(t?.MediaDetails,t?.mediaDetails,t?.MediaUrls,t?.mediaUrls),additionalMedia:de(t?.AdditionalMedia,t?.additionalMedia),timeElapsed:de(t?.TimeElapsed,t?.timeElapsed),timeRemaining:de(t?.TimeRemaining,t?.timeRemaining),anomalyName:de(t?.AnomalyName,t?.anomalyName),alertDetails:de(t?.AlertDetails,t?.alertDetails),statusHistory:Za(de(t?.StatusHistory,t?.statusHistory)),isEmailSent:de(t?.IsEmailSent,t?.isEmailSent),isSMSSent:de(t?.IsSMSSent,t?.isSMSSent),timeZoneUniqueId:de(t?.TimeZoneUniqueId,t?.timeZoneUniqueId)}}function Ha(t){const e={"Content-Type":"application/json",...t.headers||{}};return{async listAlerts(s){const n=Le(t.baseUrl,"/api/detectionpolicy/alerts"),r=Kt(n,{customerId:"99e5c8b5-b9d4-4d35-8885-7f121c532664",pageSize:s?.pageSize??10,page:s?.pageNumber??1,...s?.anomalyId!==void 0&&{anomalyId:s.anomalyId},...s?.spaceId!==void 0&&{spaceId:s.spaceId},...s?.severityId!==void 0&&{severityId:s.severityId},...s?.thirdPartyIds?.length&&{ThirdPartyIds:s.thirdPartyIds.join(",")},...s?.searchText&&{searchText:s.searchText},isArchived:s?.isArchived??!1}),a=await Fe(r,{method:"GET",headers:e});return{items:Array.isArray(a?.Items)?a.Items.map(za):[],total:a?.Total}},async getAlertStatusList(){const s=Le(t.baseUrl,"/api/detectionpolicy/alerts/StatusList"),n=await Fe(s,{method:"GET",headers:e});return(Array.isArray(n)?n:[]).map(a=>Ft(a,["alertStatusId","value","statusName"]))},async getAlertsReport(s){const n=Le(t.baseUrl,"/api/detectionpolicy/alerts/GetAlertsReport"),r=Kt(n,s),a=await Fe(r,{method:"GET",headers:e});return Array.isArray(a)?a:[]},async updateAlertStatus(s){const n=Le(t.baseUrl,"/api/detectionpolicy/alerts/Log"),r={AlertId:s.alertId??s.alertUniqueId??s.AlertId,Status:s.status??s.Status??"",Notes:s.notes??s.Notes??""};return Fe(n,{method:"POST",headers:e,body:JSON.stringify(r)})},async getAdminSettings(){const s=Le(t.baseUrl,"/api/detectionpolicy/alerts/GetAdminSettings"),n=await Fe(s,{method:"GET",headers:e});if(n&&typeof n=="object"){const r=n.data??n.Data??n;if(r&&typeof r=="object")return Ft(r,["userId","isAdminSetting","sortBy"],{sortBy:"SortOption"})}return null},async setAdminSettings(s){const n=Le(t.baseUrl,"/api/detectionpolicy/alerts/SetAdminSettings"),r={Settings:{UserId:0,IsAdminSetting:!0,SortOption:s?.sortBy??"",GroupBy:s?.groupBy??null}};return Fe(n,{method:"POST",headers:e,body:JSON.stringify(r)})},async getPreferenceSettings(){const s=Le(t.baseUrl,"/api/detectionpolicy/alerts/GetPreferenceSettings"),n=await Fe(s,{method:"GET",headers:e});if(n&&typeof n=="object"){if("data"in n)return n.data;if("anomalyIds"in n)return n}return null},async setPreferenceSettings(s){const n=Le(t.baseUrl,"/api/detectionpolicy/alerts/SetPreferenceSettings"),r=u=>{const{hours:m,minutes:f,seconds:g}=nr(u);return(m*3600+f*60+g)*1e7},a={Settings:{UserId:0,AnomalyIds:Array.isArray(s?.anomalyIds)?s.anomalyIds.map(u=>String(u)):[],DoNotDisturbStart:{Ticks:r(s?.doNotDisturbStart)},DoNotDisturbEnd:{Ticks:r(s?.doNotDisturbEnd)},InApp:!!s?.inApp,SMS:!!s?.sms,Email:!!s?.email,SortBy:s?.sortBy??""}},o=await Fe(n,{method:"POST",headers:e,body:JSON.stringify(a)}),l=o?.responseStatus??!0,c=o?.data??o?.message??"Preferences updated successfully.";return{responseStatus:l,errorMessage:l?"":o?.errorMessage??o?.Message??o?.message??"",statusCode:200,data:c}},async sendSMSorEmailNotifications(s,n,r){const a=Le(t.baseUrl,"/api/detectionpolicy/alerts/SendSMSorEmailNotifications"),o=Kt(a,{alertId:s,isEmail:n,isSMS:r});return Fe(o,{method:"POST",headers:e})},async getAlertNotifications(s){const n=Le(t.baseUrl,"/api/detectionpolicy/alerts/GetNotifications"),r=Kt(n,{alertId:s}),a=await Fe(r,{method:"GET",headers:e});let o=[];return Array.isArray(a)?o=a:Array.isArray(a?.data)&&(o=a.data),o.map(l=>Ft(l,["alertNotificationSentId","alertId","notificationType","receipientName","receipentPhoneNumber","messageSID","messageStatus","receipientEmail","notificationReceipientType","sentAt"]))},async getTimeZoneMasters(){const s=Le(t.baseUrl,"/api/TimeZoneMaster"),n=await Fe(s,{method:"GET",headers:e});return(Array.isArray(n?.Data)?n.Data:[]).map(a=>Ft(a,["timeZoneUniqueId","ianaTimeZoneId","timeZoneName","offset"]))},async getAllSpaces(){const s=t.spacesBaseUrl||t.baseUrl,n=Le(s,"/api/AllSpaces"),r=await Fe(n,{method:"GET",headers:e});return(Array.isArray(r?.Data)?r.Data:[]).map(o=>({spaceId:o?.SpaceId??o?.spaceId,spaceName:o?.SpaceName??o?.spaceName??""}))},async getMyAppPreferences(){const s=Le(t.baseUrl,"/MyProfile"),n=await Fe(s,{method:"GET",headers:e}),r=n?.data?.userGuid??n?.Data?.userGuid??n?.userGuid;if(!r)return null;const a=Le(t.baseUrl,`/api/GetMyAppPreferences/${r}`),o=await Fe(a,{method:"GET",headers:e});if(o&&typeof o=="object"){const l=o.data??o.Data??o,c=l?.timeZoneUniqueId??l?.TimeZoneUniqueId;if(c)return{timeZoneUniqueId:c}}return null}}}function qa(){try{const t=localStorage.getItem("authToken");return t?{Authorization:`Bearer ${t}`}:{}}catch{return{}}}async function Qe(t,e){const s={...e.headers,...qa()},n=await fetch(t,{...e,headers:s});if(n.status===401)throw window.location.href="/login",new Error("Unauthorized");if(n.status===204)return{};const r=await n.text();let a={};if(r)try{a=JSON.parse(r)}catch{a={ok:n.ok,status:n.status,raw:r}}if(!n.ok){const o=a?.errorMessage||a?.message||`HTTP ${n.status}`;throw new Error(o)}return a}function Ga(t){const e={"Content-Type":"application/json",...t.headers||{}},s=new URL("/api/detectionpolicy/rules",t.baseUrl).toString();return{async getRules(){const n=await Qe(s,{method:"GET",headers:e});return(Array.isArray(n?.Data)?n?.Data:[]).map(a=>({...a,ruleId:a.ruleId??a.RuleId,ruleName:a.ruleName??a.RuleName??a.Name,escalationSettings:a.escalationSettings??a.EscalationSettings}))},async setEscalationSettings(n){return Qe(s,{method:"POST",headers:e,body:JSON.stringify(n??{})})},async getLookups(){const n=y=>new URL(y,t.baseUrl).toString(),r=t.userManagementBaseUrl||t.baseUrl,a=[Qe(n("/api/detectionpolicy/lookups/actiontypes"),{method:"GET",headers:e}),Qe(n("/api/detectionpolicy/lookups/anomalies"),{method:"GET",headers:e}),Qe(n("/api/detectionpolicy/lookups/thirdparty"),{method:"GET",headers:e}),Qe(n("/api/detectionpolicy/lookups/severity"),{method:"GET",headers:e}),Qe(n("/api/detectionpolicy/lookups/scheduletypes"),{method:"GET",headers:e}),Qe(new URL("/user/user-roles",r).toString(),{method:"GET",headers:e})],[o,l,c,u,m,f]=await Promise.allSettled(a),g=y=>{if(y.status!=="fulfilled")return[];const S=y.value;return Array.isArray(S)?S:Array.isArray(S?.Data)?S.Data:Array.isArray(S?.data)?S.data:[]},p=g(o),x=g(l),k=g(c),b=g(u),B=g(m),H=f.status==="fulfilled"?f.value:null;let K=[];Array.isArray(H)?K=H:Array.isArray(H?.Data)?K=H.Data:Array.isArray(H?.data)&&(K=H.data);const I=p.map(y=>({actionTypeId:Number(y?.ActionTypeId),name:y?.DisplayName??y?.Name??""})),D=x.map(y=>({recordId:y?.AnomalyId,anomalyName:y?.DisplayName??y?.Name??""})),V=k.map(y=>({thirdPartyId:Number(y?.ThirdPartyId),thirdPartyName:y?.ThirdPartyName??y?.Name??""})),C=K.map(y=>({userRoleId:y.UserRoleId??y.userRoleId??y.Id??y.id??0,userRoleName:y.UserRoleName??y.userRoleName??y.Name??y.name??""})),q={actionTypes:I,anomalies:D,thirdParties:V};return b.length&&(q.severities=b.map(y=>({severityId:y?.SeverityId??y?.severityId,severityName:y?.DisplayName??y?.SeverityName??y?.Name??y?.name??""}))),B.length&&(q.scheduleTypes=B),C.length&&(q.userRoles=C),q},async updateRule(n,r){const a=`${s}/${n}`,{escalationSettings:o,Anomaly:l,Severity:c,...u}=r??{};return Qe(a,{method:"PUT",headers:e,body:JSON.stringify({...u,CustomerId:"99e5c8b5-b9d4-4d35-8885-7f121c532664",Version:{DeDupWindowSeconds:0,IncludeSubjectInHash:!0},AnomalyId:l?.AnomalyId,SeverityId:c?.SeverityId,EscalationSettings:o?{...o,ThirdPartyIds:o.thirdPartyId??[]}:{}})})}}}function Ya(){try{const t=localStorage.getItem("authToken");return t?{Authorization:`Bearer ${t}`}:{}}catch{return{}}}async function st(t,e){const s={...e.headers,...Ya()},n=await fetch(t,{...e,headers:s});if(n.status===401)throw window.location.href="/login",new Error("Unauthorized");if(n.status===204)return{};const r=await n.text();let a={};if(r)try{a=JSON.parse(r)}catch{a={ok:n.ok,status:n.status,raw:r}}if(!n.ok){const o=a?.errorMessage||a?.message||`HTTP ${n.status}`;throw new Error(o)}return a}function _a(t){const e={"Content-Type":"application/json",...t.headers||{}},s=new URL("/list-rule",t.baseUrl).toString();return{async getRules(){const n=await st(s,{method:"POST",headers:e,body:JSON.stringify({command:"get-all"})});return(Array.isArray(n?.data)?n.data:[]).map(a=>({...a,ruleId:a.RuleId??a.ruleId,ruleName:a.RuleName??a.ruleName,ruleDesc:a.RuleDesc??a.ruleDesc??null}))},async setEscalationSettings(n){return st(s,{method:"POST",headers:e,body:JSON.stringify(n??{})})},async getLookups(){const n=C=>new URL(C,t.baseUrl).toString(),r=t.userManagementBaseUrl||t.baseUrl,a=[st(n("/api/ActionTypeMaster/GetAll"),{method:"GET",headers:e}),st(n("/api/anomaly/anomaly-list"),{method:"POST",headers:e,body:JSON.stringify({RuleLevel:1})}),st(n("/api/Lookup/ThirdParties"),{method:"GET",headers:e}),st(n("/api/anomaly/severity-list"),{method:"GET",headers:e}),st(new URL("/user/user-roles",r).toString(),{method:"GET",headers:e})],[o,l,c,u,m]=await Promise.allSettled(a),f=C=>{if(C.status!=="fulfilled")return[];const q=C.value;return Array.isArray(q)?q:Array.isArray(q?.data)?q.data:[]},g=f(o),p=f(l),x=f(c),k=f(u),b=m.status==="fulfilled"?m.value:null,B=g.map(C=>({actionTypeId:C?.ActionTypeUniqueId,name:C?.Name??""})),H=p.map(C=>({recordId:C?.AnomalyId,anomalyName:C?.DisplayName??C?.Name??""})),K=x.map(C=>({thirdPartyId:Number(C?.ThirdPartyId),thirdPartyName:C?.ThirdPartyName??C?.Name??""}));let I=[];Array.isArray(b)?I=b:Array.isArray(b?.Data)?I=b.Data:Array.isArray(b?.data)&&(I=b.data);const D=I.map(C=>({userRoleId:C.userRoleId??0,userRoleName:C.userRoleName??""})),V={actionTypes:B,anomalies:H,thirdParties:K};return k.length&&(V.severities=k.map(C=>({SeverityId:C.SeverityId,DisplayName:C.SeverityName??C.DisplayName??""}))),D.length&&(V.userRoles=D),V},async updateRule(n,r){const a=new URL("/update-rule",t.baseUrl).toString(),{escalationSettings:o,ruleId:l,ruleName:c,ruleDesc:u,...m}=r??{},f=o??{},g=(f.escalationSettingsActionTypeIds??[]).filter(x=>x!=null&&!Number.isNaN(x)),p={Level1UserRoleId:f.level1UserRoleId??0,Level1PostAssistTime:f.level1PostAssistTime??0,Level2UserRoleId:f.level2UserRoleId??0,Level2PostAssistTime:f.level2PostAssistTime??0,Level3UserRoleId:f.level3UserRoleId??0,Level3PostAssistTime:f.level3PostAssistTime??0,EscalationSettingsActionTypeIds:g,ThirdPartyIds:f.thirdPartyId??[],HumanLoop:f.humanLoop??!1};return st(a,{method:"POST",headers:e,body:JSON.stringify({...m,RuleId:l??m.RuleId??n,RuleName:c??m.RuleName,RuleDesc:u??m.RuleDesc??null,ActionTypeUniqueIdList:g,EscalationSettings:p})})}}}function We(t,e){const s=(t||"").replace(/\/+$/,""),n=e.startsWith("/")?e:`/${e}`;return`${s}${n}`}function Ja(){try{const t=localStorage.getItem("authToken");return t?{Authorization:`Bearer ${t}`}:{}}catch{return{}}}function Qt(t,e){if(!e)return t;const s=new URL(t);return Object.entries(e).forEach(([n,r])=>{r!=null&&String(r).length>0&&s.searchParams.set(n,String(r))}),s.toString()}async function Be(t,e){const s={...e.headers,...Ja()},n=await fetch(t,{...e,headers:s});if(n.status===401)throw window.location.href="/login",new Error("Unauthorized");if(n.status===204)return{};const r=await n.text();let a={};if(r)try{a=JSON.parse(r)}catch{a={ok:n.ok,status:n.status,raw:r}}if(!n.ok){const o=a?.errorMessage||a?.message||`HTTP ${n.status}`;throw new Error(o)}return a}function Ka(t){const e={"Content-Type":"application/json",...t.headers||{}};return{async listAlerts(s){const n=We(t.baseUrl,"/api/Alerts"),r=Qt(n,{pageSize:s?.pageSize??10,pageNumber:s?.pageNumber??1,...s?.spaceNumber!==void 0&&{spaceNumber:s.spaceNumber},...s?.anomalyId!==void 0&&{anomalyId:s.anomalyId},...s?.severityId!==void 0&&{severityId:s.severityId},...s?.thirdPartyIds?.length&&{thirdPartyIds:s.thirdPartyIds.join(",")},...s?.isArchived!==void 0&&{isArchived:s.isArchived}}),a=await Be(r,{method:"GET",headers:e});if(Array.isArray(a))return a;if(a&&typeof a=="object"){if(Array.isArray(a.items))return{items:a.items,total:typeof a.total=="number"?a.total:void 0};if(Array.isArray(a.data))return{items:a.data,total:typeof a.total=="number"?a.total:void 0};if(Array.isArray(a.alerts))return{items:a.alerts,total:typeof a.total=="number"?a.total:void 0}}return[]},async getAlertStatusList(){const s=We(t.baseUrl,"/api/Alerts/GetAlertStatus"),n=await Be(s,{method:"GET",headers:e});return Array.isArray(n)?n:n&&typeof n=="object"&&Array.isArray(n.data)?n.data:[]},async getAlertsReport(s){const n=We(t.baseUrl,"/Alerts/GetAlertsReport"),r=Qt(n,s),a=await Be(r,{method:"GET",headers:e});return Array.isArray(a)?a:[]},async updateAlertStatus(s){const n=We(t.baseUrl,"/api/Alerts/UpdateAlertLog"),r={alertId:s.alertId,action:s.status,notes:s.notes};return Be(n,{method:"PUT",headers:e,body:JSON.stringify(r??{})})},async getAdminSettings(){const s=We(t.baseUrl,"/api/Alerts/GetAdminSettings"),n=await Be(s,{method:"GET",headers:e});if(n&&typeof n=="object"){if("data"in n)return n.data;if("userId"in n)return n}return null},async setAdminSettings(s){const n=We(t.baseUrl,"/api/Alerts/SetAdminSettings"),r={userId:0,isAdminSetting:!0,sortBy:s?.sortBy??"",groupBy:s?.groupBy??null};return Be(n,{method:"POST",headers:e,body:JSON.stringify(r)})},async getPreferenceSettings(){const s=We(t.baseUrl,"/api/Alerts/GetPreferenceSettings"),n=await Be(s,{method:"GET",headers:e});if(n&&typeof n=="object"){if("data"in n)return n.data;if("anomalyIds"in n)return n}return null},async setPreferenceSettings(s){const n=We(t.baseUrl,"/api/Alerts/SetPreferenceSettings"),r=await Be(n,{method:"POST",headers:e,body:JSON.stringify(s??{})}),a=r?.responseStatus??!0,o=r?.data??r?.message??"Preferences updated successfully.";return{responseStatus:a,errorMessage:a?"":r?.errorMessage??r?.message??"",statusCode:200,data:o}},async getAlertNotifications(s){const n=We(t.baseUrl,"/api/Alerts/GetNotifications"),r=Qt(n,{alertId:s}),a=await Be(r,{method:"GET",headers:e});return Array.isArray(a)?a:a&&typeof a=="object"&&Array.isArray(a.data)?a.data:[]},async sendSMSorEmailNotifications(s,n,r){const a=We(t.baseUrl,"/api/Alerts/SendSMSorEmailNotifications"),o=Qt(a,{alertId:s,isEmail:n,isSMS:r});return Be(o,{method:"POST",headers:e})},async getTimeZoneMasters(){const s=We(t.baseUrl,"/api/UserPreference/GetTimeZoneMasters"),n=await Be(s,{method:"GET",headers:e});return Array.isArray(n)?n:n&&typeof n=="object"&&Array.isArray(n.data)?n.data:[]},async getMyAppPreferences(){const s=We(t.baseUrl,"/api/UserPreference/GetMyAppPreferences"),n=await Be(s,{method:"GET",headers:e});if(n&&typeof n=="object"){const r=n.data??n;if(r?.timeZoneUniqueId)return{timeZoneUniqueId:r.timeZoneUniqueId}}return null}}}const rr=d.createContext(null);function ar({tenant:t="snl",override:e,timeZone:s,userManagementDomain:n,spacesBaseUrl:r,children:a}){const o=d.useMemo(()=>{const c=e?.alertsBaseUrl?.trim()||yn[t]?.alerts||"";let u=e?.rulesBaseUrl?.trim()||yn[t]?.rules||"";t==="snl"&&(u=c);const m=e?.headers;return{tenant:t,alertsBaseUrl:c,rulesBaseUrl:u,headers:m,timeZone:s,userManagementDomain:n,spacesBaseUrl:r}},[t,e?.alertsBaseUrl,e?.rulesBaseUrl,JSON.stringify(e?.headers||{}),s,n,r]),l=d.useMemo(()=>{const c={baseUrl:o.alertsBaseUrl,headers:o.headers},u={baseUrl:o.rulesBaseUrl,headers:o.headers},m={schools:()=>Ha({...c,spacesBaseUrl:o.spacesBaseUrl}),transit:()=>Ka(c),snl:()=>Ra(c)},f={schools:()=>Ga({...u,userManagementBaseUrl:o.userManagementDomain}),transit:()=>_a({...u,userManagementBaseUrl:o.userManagementDomain}),snl:()=>La({baseUrl:o.alertsBaseUrl,headers:o.headers})};return{config:o,alerts:m[o.tenant](),rules:f[o.tenant]()}},[o]);return i.jsx(rr.Provider,{value:l,children:a})}function $e(){const t=d.useContext(rr);if(!t)throw new Error("useApi must be used inside ApiProvider");return t}const Qa={Critical:"#FFE2E2",High:"#FF95004D",Medium:"#FEF9C2",Low:"#E0EDFF"},Xa={Critical:"#FF3B30",High:"#FFB86A",Medium:"#FFCC00",Low:"#007AFF"},Js=6,Ks=7;function xn(t,e,s){const n=t===Js,r=t===Ks,a=e.isEmailSent??!1,o=e.isSMSSent??!1,l=n&&a||r&&o,c=n?"Send Email":r?"Send SMS":s,u=n&&a?"Email sent":r&&o?"SMS sent":c,m=n&&a?"Email sent":r&&o?"SMS sent":`Click to ${c}`;return{isDisabled:l,buttonText:u,tooltipTitle:m}}function Ns(t,e){return`${t}-${e?"email":"sms"}`}function Xt(t){return t===Js||t===Ks}function hs({value:t,onChange:e,options:s,className:n,dropdownWidth:r}){return i.jsx(h.Select,{className:n,options:s,value:t,onChange:e,dropdownMatchSelectWidth:r??260})}const ei=[{label:"All levels",value:"All"},{label:"Critical",value:"Critical"},{label:"High",value:"High"},{label:"Medium",value:"Medium"},{label:"Low",value:"Low"}];function ti({value:t,onChange:e,options:s}){return i.jsx(hs,{className:"w-[140px]",value:t,onChange:e,options:s||ei})}const si=[{label:"All Types",value:"All"},{label:"Weapon Detection",value:"Weapon"},{label:"Unauthorized Access",value:"Unauthorized"},{label:"Aggressive Behavior",value:"Aggressive"}];function ni({value:t,onChange:e,options:s}){return i.jsx(hs,{className:"w-[220px]",dropdownWidth:280,value:t,onChange:e,options:s||si})}function ri({value:t,onChange:e,options:s}){return i.jsx(hs,{className:"w-[100px]",value:t,onChange:e,options:s||[]})}const ai=[{label:"All",value:"All"},{label:"SOS",value:"SOS"},{label:"911",value:"911"},{label:"Aegix",value:"Aegix"},{label:"Eli",value:"Eli"},{label:"Skydio",value:"Skydio"}];function ii({value:t,onChange:e,options:s}){return i.jsx(hs,{className:"w-[130px]",value:t,onChange:e,options:s||ai})}function ir({columns:t,data:e,loading:s=!1,pageSize:n=10,total:r,currentPage:a,rowKey:o="id",toolbar:l,tableProps:c,onPageChange:u}){const f=r===void 0&&a!==void 0?e.length===n?a*n+1:(a-1)*n+e.length:void 0;return i.jsxs("div",{children:[l,i.jsx(h.Table,{rowKey:o,dataSource:e,columns:t,loading:s,pagination:{pageSize:n,current:a,total:r??f,showSizeChanger:!1,showTotal:g=>`Total: ${g}`,onChange:u},bordered:!0,...c})]})}function oi(t){if(!t||typeof t!="string")return!1;const e=t.split("?")[0].toLowerCase();return e.endsWith(".mp4")||e.endsWith(".webm")||e.endsWith(".ogg")||e.endsWith(".m3u8")}function Fs(t){const e=(t?.mediaType||t?.type||"").toString().toLowerCase();return e==="video"||e==="mp4"?!0:oi(t?.mediaUrl||t)}function li(t){const e=t?.mediaUrl;let s=null;if(Array.isArray(e))s=e;else if(typeof e=="string")try{const n=JSON.parse(e);Array.isArray(n)&&(s=n)}catch{}return s&&s.length>0?s.map(n=>({...t,mediaUrl:n})):[t]}function or(t){const e=t;return e?(Array.isArray(e)?e:[e]).flatMap(li):[]}const nt=16,rt=2,vn={Low:"#22c55e",Medium:"#fde047",High:"#fb2c36",Critical:"#7a0707"};function lr({boxes:t,priority:e="High"}){const s=vn[e]??vn.High;return i.jsx(i.Fragment,{children:t.map((n,r)=>i.jsxs("div",{className:"absolute pointer-events-none",style:{left:n.x,top:n.y,width:n.width,height:n.height},children:[i.jsx("div",{className:"absolute left-0 whitespace-nowrap rounded-sm px-2 py-1 text-[10px] font-semibold text-white",style:{backgroundColor:s,transform:"translateY(-100%)"},children:n.label}),i.jsx("div",{className:"absolute top-0 left-0",style:{width:nt,height:nt,borderTop:`${rt}px solid ${s}`,borderLeft:`${rt}px solid ${s}`}}),i.jsx("div",{className:"absolute top-0 right-0",style:{width:nt,height:nt,borderTop:`${rt}px solid ${s}`,borderRight:`${rt}px solid ${s}`}}),i.jsx("div",{className:"absolute bottom-0 left-0",style:{width:nt,height:nt,borderBottom:`${rt}px solid ${s}`,borderLeft:`${rt}px solid ${s}`}}),i.jsx("div",{className:"absolute bottom-0 right-0",style:{width:nt,height:nt,borderBottom:`${rt}px solid ${s}`,borderRight:`${rt}px solid ${s}`}})]},`${n.label}-${r}`))})}const ci=t=>{if(!t)return[0,0,0,0];if(typeof t=="string")return t.replace(/[()[\]\s]/g,"").split(",").map(Number);if(!Array.isArray(t)||t.length===0)return[0,0,0,0];const e=t[0];return typeof e=="string"?e.replace(/[()[\]\s]/g,"").split(",").map(Number):Array.isArray(e)?e.map(Number):t.map(Number)},cr=(t,e,s,n,r)=>{if(!e||!s||!n||!r)return[];const a=Math.min(n/e,r/s),o=(n-e*a)/2,l=(r-s*a)/2;return t.flatMap(c=>{const[u,m,f,g]=ci(c.bbox_xyxy);return u>e||f>e||m>s||g>s?[]:[{personName:c.personName,x:u*a+o,y:m*a+l,width:(f-u)*a,height:(g-m)*a}]})},wn={naturalWidth:0,naturalHeight:0,renderedWidth:0,renderedHeight:0};function ur(){const t=d.useRef(null),[e,s]=d.useState(wn),n=d.useCallback(()=>{const a=t.current;a&&s({naturalWidth:a.naturalWidth,naturalHeight:a.naturalHeight,renderedWidth:a.offsetWidth,renderedHeight:a.offsetHeight})},[]),r=d.useCallback(()=>{s(wn)},[]);return{imageRef:t,dimensions:e,onLoad:n,resetDimensions:r}}const dr=({isOpen:t,onClose:e,src:s,type:n="image",detections:r=[],priority:a})=>{const[o,l]=d.useState(!1),{imageRef:c,dimensions:u,onLoad:m,resetDimensions:f}=ur(),g=d.useMemo(()=>cr(r,u.naturalWidth,u.naturalHeight,u.renderedWidth,u.renderedHeight),[r,u]),p=d.useMemo(()=>g.map(x=>({...x,label:x.personName||""})),[g]);return d.useEffect(()=>{t&&(l(!1),f())},[t,s,f]),d.useLayoutEffect(()=>{c.current?.complete&&m()},[m]),d.useEffect(()=>{t&&(!s||o)&&e()},[t,s,o,e]),t?i.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black bg-opacity-70",role:"button",tabIndex:0,"aria-label":"Close media preview",onClick:e,onKeyDown:x=>{(x.key==="Enter"||x.key===" ")&&(x.preventDefault(),e())},onTouchStart:e,children:i.jsx("div",{className:"relative max-w-5xl max-h-[90vh] w-full flex items-center justify-center",onClick:x=>x.stopPropagation(),children:n==="image"?i.jsxs("div",{style:{position:"relative",display:"inline-block"},children:[i.jsx("img",{ref:c,src:s,alt:"preview",className:"object-contain rounded-lg shadow-lg max-w-full max-h-[90vh]",onLoad:m,onError:()=>l(!0)}),i.jsx(lr,{boxes:p,priority:a}),i.jsx("button",{onClick:e,className:"absolute top-3 right-3 text-white bg-black/50 rounded-full p-2 hover:bg-black/70",children:"✕"})]}):i.jsxs("div",{style:{position:"relative",display:"inline-block"},children:[i.jsx("video",{src:s,controls:!0,className:"object-contain rounded-lg shadow-lg max-w-full max-h-[90vh]",onError:()=>l(!0)}),i.jsx("button",{onClick:e,className:"absolute top-3 right-3 text-white bg-black/50 rounded-full p-2 hover:bg-black/70",children:"✕"})]})})}):null};const ui=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),di=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,s,n)=>n?n.toUpperCase():s.toLowerCase()),An=t=>{const e=di(t);return e.charAt(0).toUpperCase()+e.slice(1)},mr=(...t)=>t.filter((e,s,n)=>!!e&&e.trim()!==""&&n.indexOf(e)===s).join(" ").trim(),mi=t=>{for(const e in t)if(e.startsWith("aria-")||e==="role"||e==="title")return!0};var fi={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const hi=d.forwardRef(({color:t="currentColor",size:e=24,strokeWidth:s=2,absoluteStrokeWidth:n,className:r="",children:a,iconNode:o,...l},c)=>d.createElement("svg",{ref:c,...fi,width:e,height:e,stroke:t,strokeWidth:n?Number(s)*24/Number(e):s,className:mr("lucide",r),...!a&&!mi(l)&&{"aria-hidden":"true"},...l},[...o.map(([u,m])=>d.createElement(u,m)),...Array.isArray(a)?a:[a]]));const Qs=(t,e)=>{const s=d.forwardRef(({className:n,...r},a)=>d.createElement(hi,{ref:a,iconNode:e,className:mr(`lucide-${ui(An(t))}`,`lucide-${t}`,n),...r}));return s.displayName=An(t),s};const yi=[["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}],["path",{d:"M10.41 10.41a2 2 0 1 1-2.83-2.83",key:"1bzlo9"}],["line",{x1:"13.5",x2:"6",y1:"13.5",y2:"21",key:"1q0aeu"}],["line",{x1:"18",x2:"21",y1:"12",y2:"15",key:"5mozeu"}],["path",{d:"M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59",key:"mmje98"}],["path",{d:"M21 15V5a2 2 0 0 0-2-2H9",key:"43el77"}]],fr=Qs("image-off",yi);const pi=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],gi=Qs("loader-circle",pi);const Si=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]],xi=Qs("maximize-2",Si);function vi(t){const s=or(t.mediaDetails)[0];if(!s)return null;const n=s.mediaUrl??s;return typeof n!="string"||!n.length?null:{url:n,item:s}}function hr({record:t}){const e=d.useMemo(()=>vi(t),[t]),[s,n]=d.useState(!1),[r,a]=d.useState(!1),o=d.useMemo(()=>t.bbox_xyxy?[{bbox_xyxy:t.bbox_xyxy,personName:t.personName}]:[],[t.bbox_xyxy,t.personName]);if(d.useEffect(()=>{a(!1)},[e?.url]),!e)return i.jsx("span",{className:"text-gray-400 text-sm",children:"—"});const{url:l,item:c}=e,u=Fs(c),m=u?"video":"image",f="block w-[72px] h-[54px] object-cover bg-gray-100 border border-gray-200 rounded-sm";return i.jsxs(i.Fragment,{children:[i.jsx("button",{type:"button",disabled:r,className:"p-0 border-0 bg-transparent rounded-sm focus:outline-none focus-visible:ring-2 focus-visible:ring-blue-500 focus-visible:ring-offset-1 cursor-pointer disabled:cursor-not-allowed disabled:opacity-60","aria-label":r?"Preview unavailable":"Expand preview",onClick:()=>n(!0),children:r?i.jsx("span",{className:`${f} flex items-center justify-center text-gray-400`,children:i.jsx(fr,{size:20,"aria-hidden":!0})}):u?i.jsx("video",{src:l,className:f,muted:!0,playsInline:!0,preload:"metadata",onError:()=>a(!0)}):i.jsx("img",{src:l,alt:"",className:f,onError:()=>a(!0)})}),i.jsx(dr,{isOpen:s,onClose:()=>n(!1),src:l,type:m,detections:o,priority:t.priority})]})}function wi(t,e){const[s,n]=d.useState(t);return d.useEffect(()=>{const r=window.setTimeout(()=>n(t),e);return()=>window.clearTimeout(r)},[t,e]),s}function Xs({data:t,loading:e=!1,pageSize:s=10,total:n,currentPage:r,columns:a,renderActions:o,onAlertIdClick:l,onRefetch:c,onPageChange:u,onFilterChange:m,resetKey:f}){const[g,p]=d.useState("All"),[x,k]=d.useState("All"),[b,B]=d.useState("All"),[H,K]=d.useState("All"),[I,D]=d.useState(""),[V,C]=d.useState(r??1);d.useEffect(()=>{f!==void 0&&(p("All"),k("All"),B("All"),K("All"),D(""),C(1))},[f]),d.useEffect(()=>{r!==void 0&&C(r)},[r]);const[q,y]=d.useState([{label:"All",value:"All"}]),[S,M]=d.useState([]),[re,me]=d.useState([]),[j,A]=d.useState([]),[v,E]=d.useState(new Set),{rules:T,alerts:O,config:U}=$e(),Y=U.tenant==="schools",G=U.tenant==="transit",_=wi(I,600),ie=Y&&_.trim()?100:s,ce={6:{title:"Email",kind:"icon",icon:i.jsx(ht.MailOutlined,{})},7:{title:"SMS",kind:"icon",icon:i.jsx(ht.MessageOutlined,{})}};d.useEffect(()=>{if(!O.getAllSpaces)return;let $=!0;return(async()=>{try{const P=await O.getAllSpaces();if($){const he=P.map(oe=>({label:G?String(oe.spaceNumber??oe.spaceName??""):oe.spaceName,value:String(G?oe.spaceNumber??oe.spaceId:oe.spaceId)}));M([{label:"All",value:"All"},...he])}}catch(P){console.error("Error loading space options",P)}})(),()=>{$=!1}},[O,G]),d.useEffect(()=>{let $=!0;return(async()=>{try{const P=await T.getLookups(),oe=(Array.isArray(P.thirdParties)?P.thirdParties:[]).map(xe=>({label:xe.thirdPartyName,value:String(xe.thirdPartyId)})),we=(Array.isArray(P.anomalies)?P.anomalies:[]).map(xe=>({label:xe.anomalyName,value:xe.anomalyId})),Ie=(Array.isArray(P.severities)?P.severities:[]).map(xe=>({label:xe.severityName,value:String(xe.severityId)}));$&&(y([{label:"All",value:"All"},...oe]),we.length&&me([{label:"All Types",value:"All"},...we]),Ie.length&&A([{label:"All levels",value:"All"},...Ie]))}catch(P){console.error("Error loading filter options",P)}})(),()=>{$=!1}},[T]),d.useEffect(()=>{if(!m)return;const $=j.find(he=>he.value===g),P={anomalyId:re.length>1&&x!=="All"?x:void 0,spaceId:!G&&S.length>1&&b!=="All"?b:void 0,spaceNumber:G&&S.length>1&&b!=="All"?b:void 0,severityId:j.length>1&&g!=="All"?g:void 0,severityName:j.length>1&&g!=="All"?$?.label:void 0,thirdPartyIds:H==="All"?void 0:[Number(H)],searchText:_.trim()||void 0};m(P),u?.(1)},[x,b,g,H,_,re.length,S.length,j.length,G,Y]);const ke=re.length>1?re:void 0,ee=S.length>1?S:void 0,pe=j.length>1?j:void 0,Te=[{title:"Severity",dataIndex:"priority",key:"priority",width:120,render:$=>i.jsx(h.Tag,{className:"px-[10px] py-[2px]",style:{border:`2px solid ${Xa[$]}`,backgroundColor:Qa[$]},children:$})},{title:"Tracker",key:"tracker",width:140,render:($,P)=>i.jsx("a",{onClick:he=>{he.preventDefault(),l?.(P,{tab:"track",sourceTab:"active"})},className:"text-blue-600 hover:underline",children:"Tracker"})},{title:"Call to action/Human in the loop",key:"actions",width:320,render:($,P)=>{if(o)return i.jsx(i.Fragment,{children:o(P)});const he=async(Ue,St)=>{const xt=Ns(P.id,Ue);E(be=>new Set(be).add(xt));try{const be=await O.sendSMSorEmailNotifications?.(P.id,Ue,St);be?.responseStatus||be?.Success||be?.success?(Ne.toast.success(be?.message||be.data||(Ue?"Email sent successfully":"SMS sent successfully")),c?.()):Ne.toast.error(be?.message||be?.data||be?.errorMessage||"Failed to send notification")}catch(be){Ne.toast.error(be?.message||"Failed to send notification")}finally{E(be=>{const vt=new Set(be);return vt.delete(xt),vt})}},oe=Js,Re=Ks,we=ce[oe],He=ce[Re],Ie=xn(oe,P,we?.title),xe=xn(Re,P,He?.title),Ct=Ns(P.id,!0),ct=Ns(P.id,!1),gt=Xt(oe)&&v.has(Ct),Je=Xt(Re)&&v.has(ct);return i.jsxs(h.Space,{size:"middle",children:[i.jsx(h.Tooltip,{title:Ie.tooltipTitle,children:i.jsx(h.Button,{size:"small",disabled:Ie.isDisabled,loading:gt,onClick:Xt(oe)?()=>he(!0,!1):void 0,icon:!gt&&we?.icon,className:"flex flex-col items-center justify-center gap-1",style:{height:"fit-content"},children:Ie.buttonText})},String(oe)),i.jsx(h.Tooltip,{title:xe.tooltipTitle,children:i.jsx(h.Button,{size:"small",disabled:xe.isDisabled,loading:Je,onClick:Xt(Re)?()=>he(!1,!0):void 0,icon:!Je&&He?.icon,className:"flex flex-col items-center justify-center gap-1",style:{height:"fit-content"},children:xe.buttonText})},String(Re))]})}},{title:"Alert Timestamp",dataIndex:"timestamp",key:"timestamp",width:220,render:($,P)=>{const he=P?.timeElapsed,oe=P?.timeRemaining,Re=he?fn(he):0,we=oe?fn(oe):0,He=Math.round(Re/(Re+we)*100);return i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"w-[70px]",children:"Elapsed:"}),i.jsx("span",{className:"font-medium",children:he??"-"})]}),i.jsx(h.Progress,{percent:He,showInfo:!1,size:"small",strokeColor:Ia(P.priority)}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"w-[70px]",children:"Remaining"}),i.jsx("span",{className:"font-medium",children:oe??"-"})]})]})}},{title:"Status",dataIndex:"statusType",key:"statusType",width:140},{title:"Description",dataIndex:"description",key:"description",render:($,P)=>i.jsxs("div",{children:[i.jsx("a",{onClick:he=>{he.preventDefault(),l?.(P,{sourceTab:"active"})},className:"inline-block mb-1 text-blue-600",children:P.alertNumber}),i.jsx("div",{className:"text-black/65",children:$})]})},{title:"Preview",key:"preview",width:100,align:"center",render:($,P)=>i.jsx(hr,{record:P})}],fe=a&&a.length?a:Te;return i.jsx("div",{children:i.jsx(ir,{rowKey:"id",data:t,columns:fe,loading:e,pageSize:ie,total:n,currentPage:V,onPageChange:u,toolbar:i.jsxs(h.Row,{gutter:[12,12],className:"mb-3",align:"middle",children:[i.jsx(h.Col,{flex:"none",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{children:"Severity"}),i.jsx(ti,{value:g,onChange:p,options:pe})]})}),i.jsx(h.Col,{flex:"none",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{children:"Anomaly type"}),i.jsx(ni,{value:x,onChange:k,options:ke})]})}),i.jsx(h.Col,{flex:"none",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{children:G?"Bus Number":"Space"}),i.jsx(ri,{value:b,onChange:B,options:ee})]})}),i.jsx(h.Col,{flex:"none",children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{children:"Action Taken"}),i.jsx(ii,{value:H,onChange:K,options:q})]})}),i.jsx(h.Col,{flex:"auto"}),i.jsx(h.Col,{flex:"none",children:i.jsx(h.Input.Search,{allowClear:!0,placeholder:"Search",onSearch:D,onChange:$=>D($.target.value),className:"w-[260px] ",enterButton:!0})})]})})})}const Ai=["completed","false positive","face doesn't match name","safe","supervised exit","elopement confirmed"];function en(){const{alerts:t}=$e(),e=yt.useQueryClient();return yt.useMutation({mutationFn:s=>t.updateAlertStatus(s),onSuccess:()=>{e.invalidateQueries({queryKey:["alerts","list"]}),e.invalidateQueries({queryKey:["alerts","report"]})}})}class pt extends Error{}class Ti extends pt{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}}class bi extends pt{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}}class Ni extends pt{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}}class Nt extends pt{}class yr extends pt{constructor(e){super(`Invalid unit ${e}`)}}class Ee extends pt{}class at extends pt{constructor(){super("Zone is an abstract class")}}const N="numeric",_e="short",Pe="long",us={year:N,month:N,day:N},pr={year:N,month:_e,day:N},ki={year:N,month:_e,day:N,weekday:_e},gr={year:N,month:Pe,day:N},Sr={year:N,month:Pe,day:N,weekday:Pe},xr={hour:N,minute:N},vr={hour:N,minute:N,second:N},wr={hour:N,minute:N,second:N,timeZoneName:_e},Ar={hour:N,minute:N,second:N,timeZoneName:Pe},Tr={hour:N,minute:N,hourCycle:"h23"},br={hour:N,minute:N,second:N,hourCycle:"h23"},Nr={hour:N,minute:N,second:N,hourCycle:"h23",timeZoneName:_e},kr={hour:N,minute:N,second:N,hourCycle:"h23",timeZoneName:Pe},Ir={year:N,month:N,day:N,hour:N,minute:N},Er={year:N,month:N,day:N,hour:N,minute:N,second:N},jr={year:N,month:_e,day:N,hour:N,minute:N},Mr={year:N,month:_e,day:N,hour:N,minute:N,second:N},Ii={year:N,month:_e,day:N,weekday:_e,hour:N,minute:N},Or={year:N,month:Pe,day:N,hour:N,minute:N,timeZoneName:_e},Dr={year:N,month:Pe,day:N,hour:N,minute:N,second:N,timeZoneName:_e},Cr={year:N,month:Pe,day:N,weekday:Pe,hour:N,minute:N,timeZoneName:Pe},Rr={year:N,month:Pe,day:N,weekday:Pe,hour:N,minute:N,second:N,timeZoneName:Pe};class zt{get type(){throw new at}get name(){throw new at}get ianaName(){return this.name}get isUniversal(){throw new at}offsetName(e,s){throw new at}formatOffset(e,s){throw new at}offset(e){throw new at}equals(e){throw new at}get isValid(){throw new at}}let ks=null;class ys extends zt{static get instance(){return ks===null&&(ks=new ys),ks}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:s,locale:n}){return Hr(e,s,n)}formatOffset(e,s){return Bt(this.offset(e),s)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}}const $s=new Map;function Ei(t){let e=$s.get(t);return e===void 0&&(e=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:t,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),$s.set(t,e)),e}const ji={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Mi(t,e){const s=t.format(e).replace(/\u200E/g,""),n=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(s),[,r,a,o,l,c,u,m]=n;return[o,r,a,l,c,u,m]}function Oi(t,e){const s=t.formatToParts(e),n=[];for(let r=0;r<s.length;r++){const{type:a,value:o}=s[r],l=ji[a];a==="era"?n[l]=o:F(l)||(n[l]=parseInt(o,10))}return n}const Is=new Map;class tt extends zt{static create(e){let s=Is.get(e);return s===void 0&&Is.set(e,s=new tt(e)),s}static resetCache(){Is.clear(),$s.clear()}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:e}).format(),!0}catch{return!1}}constructor(e){super(),this.zoneName=e,this.valid=tt.isValidZone(e)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:s,locale:n}){return Hr(e,s,n,this.name)}formatOffset(e,s){return Bt(this.offset(e),s)}offset(e){if(!this.valid)return NaN;const s=new Date(e);if(isNaN(s))return NaN;const n=Ei(this.name);let[r,a,o,l,c,u,m]=n.formatToParts?Oi(n,s):Mi(n,s);l==="BC"&&(r=-Math.abs(r)+1);const g=gs({year:r,month:a,day:o,hour:c===24?0:c,minute:u,second:m,millisecond:0});let p=+s;const x=p%1e3;return p-=x>=0?x:1e3+x,(g-p)/(60*1e3)}equals(e){return e.type==="iana"&&e.name===this.name}get isValid(){return this.valid}}let Tn={};function Di(t,e={}){const s=JSON.stringify([t,e]);let n=Tn[s];return n||(n=new Intl.ListFormat(t,e),Tn[s]=n),n}const Ps=new Map;function Ws(t,e={}){const s=JSON.stringify([t,e]);let n=Ps.get(s);return n===void 0&&(n=new Intl.DateTimeFormat(t,e),Ps.set(s,n)),n}const Bs=new Map;function Ci(t,e={}){const s=JSON.stringify([t,e]);let n=Bs.get(s);return n===void 0&&(n=new Intl.NumberFormat(t,e),Bs.set(s,n)),n}const Vs=new Map;function Ri(t,e={}){const{base:s,...n}=e,r=JSON.stringify([t,n]);let a=Vs.get(r);return a===void 0&&(a=new Intl.RelativeTimeFormat(t,e),Vs.set(r,a)),a}let $t=null;function Ui(){return $t||($t=new Intl.DateTimeFormat().resolvedOptions().locale,$t)}const Zs=new Map;function Ur(t){let e=Zs.get(t);return e===void 0&&(e=new Intl.DateTimeFormat(t).resolvedOptions(),Zs.set(t,e)),e}const zs=new Map;function Li(t){let e=zs.get(t);if(!e){const s=new Intl.Locale(t);e="getWeekInfo"in s?s.getWeekInfo():s.weekInfo,"minimalDays"in e||(e={...Lr,...e}),zs.set(t,e)}return e}function Fi(t){const e=t.indexOf("-x-");e!==-1&&(t=t.substring(0,e));const s=t.indexOf("-u-");if(s===-1)return[t];{let n,r;try{n=Ws(t).resolvedOptions(),r=t}catch{const c=t.substring(0,s);n=Ws(c).resolvedOptions(),r=c}const{numberingSystem:a,calendar:o}=n;return[r,a,o]}}function $i(t,e,s){return(s||e)&&(t.includes("-u-")||(t+="-u"),s&&(t+=`-ca-${s}`),e&&(t+=`-nu-${e}`)),t}function Pi(t){const e=[];for(let s=1;s<=12;s++){const n=L.utc(2009,s,1);e.push(t(n))}return e}function Wi(t){const e=[];for(let s=1;s<=7;s++){const n=L.utc(2016,11,13+s);e.push(t(n))}return e}function es(t,e,s,n){const r=t.listingMode();return r==="error"?null:r==="en"?s(e):n(e)}function Bi(t){return t.numberingSystem&&t.numberingSystem!=="latn"?!1:t.numberingSystem==="latn"||!t.locale||t.locale.startsWith("en")||Ur(t.locale).numberingSystem==="latn"}class Vi{constructor(e,s,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;const{padTo:r,floor:a,...o}=n;if(!s||Object.keys(o).length>0){const l={useGrouping:!1,...n};n.padTo>0&&(l.minimumIntegerDigits=n.padTo),this.inf=Ci(e,l)}}format(e){if(this.inf){const s=this.floor?Math.floor(e):e;return this.inf.format(s)}else{const s=this.floor?Math.floor(e):an(e,3);return ve(s,this.padTo)}}}class Zi{constructor(e,s,n){this.opts=n,this.originalZone=void 0;let r;if(this.opts.timeZone)this.dt=e;else if(e.zone.type==="fixed"){const o=-1*(e.offset/60),l=o>=0?`Etc/GMT+${o}`:`Etc/GMT${o}`;e.offset!==0&&tt.create(l).valid?(r=l,this.dt=e):(r="UTC",this.dt=e.offset===0?e:e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type==="system"?this.dt=e:e.zone.type==="iana"?(this.dt=e,r=e.zone.name):(r="UTC",this.dt=e.setZone("UTC").plus({minutes:e.offset}),this.originalZone=e.zone);const a={...this.opts};a.timeZone=a.timeZone||r,this.dtf=Ws(s,a)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(""):this.dtf.format(this.dt.toJSDate())}formatToParts(){const e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(s=>{if(s.type==="timeZoneName"){const n=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...s,value:n}}else return s}):e}resolvedOptions(){return this.dtf.resolvedOptions()}}class zi{constructor(e,s,n){this.opts={style:"long",...n},!s&&Zr()&&(this.rtf=Ri(e,n))}format(e,s){return this.rtf?this.rtf.format(e,s):fo(s,e,this.opts.numeric,this.opts.style!=="long")}formatToParts(e,s){return this.rtf?this.rtf.formatToParts(e,s):[]}}const Lr={firstDay:1,minimalDays:4,weekend:[6,7]};class ne{static fromOpts(e){return ne.create(e.locale,e.numberingSystem,e.outputCalendar,e.weekSettings,e.defaultToEN)}static create(e,s,n,r,a=!1){const o=e||Se.defaultLocale,l=o||(a?"en-US":Ui()),c=s||Se.defaultNumberingSystem,u=n||Se.defaultOutputCalendar,m=qs(r)||Se.defaultWeekSettings;return new ne(l,c,u,m,o)}static resetCache(){$t=null,Ps.clear(),Bs.clear(),Vs.clear(),Zs.clear(),zs.clear()}static fromObject({locale:e,numberingSystem:s,outputCalendar:n,weekSettings:r}={}){return ne.create(e,s,n,r)}constructor(e,s,n,r,a){const[o,l,c]=Fi(e);this.locale=o,this.numberingSystem=s||l||null,this.outputCalendar=n||c||null,this.weekSettings=r,this.intl=$i(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=a,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached==null&&(this.fastNumbersCached=Bi(this)),this.fastNumbersCached}listingMode(){const e=this.isEnglish(),s=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return e&&s?"en":"intl"}clone(e){return!e||Object.getOwnPropertyNames(e).length===0?this:ne.create(e.locale||this.specifiedLocale,e.numberingSystem||this.numberingSystem,e.outputCalendar||this.outputCalendar,qs(e.weekSettings)||this.weekSettings,e.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,s=!1){return es(this,e,Yr,()=>{const n=this.intl==="ja"||this.intl.startsWith("ja-");s&=!n;const r=s?{month:e,day:"numeric"}:{month:e},a=s?"format":"standalone";if(!this.monthsCache[a][e]){const o=n?l=>this.dtFormatter(l,r).format():l=>this.extract(l,r,"month");this.monthsCache[a][e]=Pi(o)}return this.monthsCache[a][e]})}weekdays(e,s=!1){return es(this,e,Kr,()=>{const n=s?{weekday:e,year:"numeric",month:"long",day:"numeric"}:{weekday:e},r=s?"format":"standalone";return this.weekdaysCache[r][e]||(this.weekdaysCache[r][e]=Wi(a=>this.extract(a,n,"weekday"))),this.weekdaysCache[r][e]})}meridiems(){return es(this,void 0,()=>Qr,()=>{if(!this.meridiemCache){const e={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[L.utc(2016,11,13,9),L.utc(2016,11,13,19)].map(s=>this.extract(s,e,"dayperiod"))}return this.meridiemCache})}eras(e){return es(this,e,Xr,()=>{const s={era:e};return this.eraCache[e]||(this.eraCache[e]=[L.utc(-40,1,1),L.utc(2017,1,1)].map(n=>this.extract(n,s,"era"))),this.eraCache[e]})}extract(e,s,n){const r=this.dtFormatter(e,s),a=r.formatToParts(),o=a.find(l=>l.type.toLowerCase()===n);return o?o.value:null}numberFormatter(e={}){return new Vi(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,s={}){return new Zi(e,this.intl,s)}relFormatter(e={}){return new zi(this.intl,this.isEnglish(),e)}listFormatter(e={}){return Di(this.intl,e)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||Ur(this.intl).locale.startsWith("en-us")}getWeekSettings(){return this.weekSettings?this.weekSettings:zr()?Li(this.locale):Lr}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}}let Es=null;class Ce extends zt{static get utcInstance(){return Es===null&&(Es=new Ce(0)),Es}static instance(e){return e===0?Ce.utcInstance:new Ce(e)}static parseSpecifier(e){if(e){const s=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(s)return new Ce(Ss(s[1],s[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Bt(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Bt(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,s){return Bt(this.fixed,s)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type==="fixed"&&e.fixed===this.fixed}get isValid(){return!0}}class Hi extends zt{constructor(e){super(),this.zoneName=e}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function ot(t,e){if(F(t)||t===null)return e;if(t instanceof zt)return t;if(Ki(t)){const s=t.toLowerCase();return s==="default"?e:s==="local"||s==="system"?ys.instance:s==="utc"||s==="gmt"?Ce.utcInstance:Ce.parseSpecifier(s)||tt.create(t)}else return lt(t)?Ce.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new Hi(t)}const tn={arab:"[٠-٩]",arabext:"[۰-۹]",bali:"[᭐-᭙]",beng:"[০-৯]",deva:"[०-९]",fullwide:"[0-9]",gujr:"[૦-૯]",hanidec:"[〇|一|二|三|四|五|六|七|八|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-໙]",limb:"[᥆-᥏]",mlym:"[൦-൯]",mong:"[᠐-᠙]",mymr:"[၀-၉]",orya:"[୦-୯]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-๙]",tibt:"[༠-༩]",latn:"\\d"},bn={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},qi=tn.hanidec.replace(/[\[|\]]/g,"").split("");function Gi(t){let e=parseInt(t,10);if(isNaN(e)){e="";for(let s=0;s<t.length;s++){const n=t.charCodeAt(s);if(t[s].search(tn.hanidec)!==-1)e+=qi.indexOf(t[s]);else for(const r in bn){const[a,o]=bn[r];n>=a&&n<=o&&(e+=n-a)}}return parseInt(e,10)}else return e}const Hs=new Map;function Yi(){Hs.clear()}function qe({numberingSystem:t},e=""){const s=t||"latn";let n=Hs.get(s);n===void 0&&(n=new Map,Hs.set(s,n));let r=n.get(e);return r===void 0&&(r=new RegExp(`${tn[s]}${e}`),n.set(e,r)),r}let Nn=()=>Date.now(),kn="system",In=null,En=null,jn=null,Mn=60,On,Dn=null;class Se{static get now(){return Nn}static set now(e){Nn=e}static set defaultZone(e){kn=e}static get defaultZone(){return ot(kn,ys.instance)}static get defaultLocale(){return In}static set defaultLocale(e){In=e}static get defaultNumberingSystem(){return En}static set defaultNumberingSystem(e){En=e}static get defaultOutputCalendar(){return jn}static set defaultOutputCalendar(e){jn=e}static get defaultWeekSettings(){return Dn}static set defaultWeekSettings(e){Dn=qs(e)}static get twoDigitCutoffYear(){return Mn}static set twoDigitCutoffYear(e){Mn=e%100}static get throwOnInvalid(){return On}static set throwOnInvalid(e){On=e}static resetCaches(){ne.resetCache(),tt.resetCache(),L.resetCache(),Yi()}}class Ye{constructor(e,s){this.reason=e,this.explanation=s}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}}const Fr=[0,31,59,90,120,151,181,212,243,273,304,334],$r=[0,31,60,91,121,152,182,213,244,274,305,335];function Ze(t,e){return new Ye("unit out of range",`you specified ${e} (of type ${typeof e}) as a ${t}, which is invalid`)}function sn(t,e,s){const n=new Date(Date.UTC(t,e-1,s));t<100&&t>=0&&n.setUTCFullYear(n.getUTCFullYear()-1900);const r=n.getUTCDay();return r===0?7:r}function Pr(t,e,s){return s+(Ht(t)?$r:Fr)[e-1]}function Wr(t,e){const s=Ht(t)?$r:Fr,n=s.findIndex(a=>a<e),r=e-s[n];return{month:n+1,day:r}}function nn(t,e){return(t-e+7)%7+1}function ds(t,e=4,s=1){const{year:n,month:r,day:a}=t,o=Pr(n,r,a),l=nn(sn(n,r,a),s);let c=Math.floor((o-l+14-e)/7),u;return c<1?(u=n-1,c=Vt(u,e,s)):c>Vt(n,e,s)?(u=n+1,c=1):u=n,{weekYear:u,weekNumber:c,weekday:l,...xs(t)}}function Cn(t,e=4,s=1){const{weekYear:n,weekNumber:r,weekday:a}=t,o=nn(sn(n,1,e),s),l=kt(n);let c=r*7+a-o-7+e,u;c<1?(u=n-1,c+=kt(u)):c>l?(u=n+1,c-=kt(n)):u=n;const{month:m,day:f}=Wr(u,c);return{year:u,month:m,day:f,...xs(t)}}function js(t){const{year:e,month:s,day:n}=t,r=Pr(e,s,n);return{year:e,ordinal:r,...xs(t)}}function Rn(t){const{year:e,ordinal:s}=t,{month:n,day:r}=Wr(e,s);return{year:e,month:n,day:r,...xs(t)}}function Un(t,e){if(!F(t.localWeekday)||!F(t.localWeekNumber)||!F(t.localWeekYear)){if(!F(t.weekday)||!F(t.weekNumber)||!F(t.weekYear))throw new Nt("Cannot mix locale-based week fields with ISO-based week fields");return F(t.localWeekday)||(t.weekday=t.localWeekday),F(t.localWeekNumber)||(t.weekNumber=t.localWeekNumber),F(t.localWeekYear)||(t.weekYear=t.localWeekYear),delete t.localWeekday,delete t.localWeekNumber,delete t.localWeekYear,{minDaysInFirstWeek:e.getMinDaysInFirstWeek(),startOfWeek:e.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function _i(t,e=4,s=1){const n=ps(t.weekYear),r=ze(t.weekNumber,1,Vt(t.weekYear,e,s)),a=ze(t.weekday,1,7);return n?r?a?!1:Ze("weekday",t.weekday):Ze("week",t.weekNumber):Ze("weekYear",t.weekYear)}function Ji(t){const e=ps(t.year),s=ze(t.ordinal,1,kt(t.year));return e?s?!1:Ze("ordinal",t.ordinal):Ze("year",t.year)}function Br(t){const e=ps(t.year),s=ze(t.month,1,12),n=ze(t.day,1,ms(t.year,t.month));return e?s?n?!1:Ze("day",t.day):Ze("month",t.month):Ze("year",t.year)}function Vr(t){const{hour:e,minute:s,second:n,millisecond:r}=t,a=ze(e,0,23)||e===24&&s===0&&n===0&&r===0,o=ze(s,0,59),l=ze(n,0,59),c=ze(r,0,999);return a?o?l?c?!1:Ze("millisecond",r):Ze("second",n):Ze("minute",s):Ze("hour",e)}function F(t){return typeof t>"u"}function lt(t){return typeof t=="number"}function ps(t){return typeof t=="number"&&t%1===0}function Ki(t){return typeof t=="string"}function Qi(t){return Object.prototype.toString.call(t)==="[object Date]"}function Zr(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch{return!1}}function zr(){try{return typeof Intl<"u"&&!!Intl.Locale&&("weekInfo"in Intl.Locale.prototype||"getWeekInfo"in Intl.Locale.prototype)}catch{return!1}}function Xi(t){return Array.isArray(t)?t:[t]}function Ln(t,e,s){if(t.length!==0)return t.reduce((n,r)=>{const a=[e(r),r];return n&&s(n[0],a[0])===n[0]?n:a},null)[1]}function eo(t,e){return e.reduce((s,n)=>(s[n]=t[n],s),{})}function Et(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function qs(t){if(t==null)return null;if(typeof t!="object")throw new Ee("Week settings must be an object");if(!ze(t.firstDay,1,7)||!ze(t.minimalDays,1,7)||!Array.isArray(t.weekend)||t.weekend.some(e=>!ze(e,1,7)))throw new Ee("Invalid week settings");return{firstDay:t.firstDay,minimalDays:t.minimalDays,weekend:Array.from(t.weekend)}}function ze(t,e,s){return ps(t)&&t>=e&&t<=s}function to(t,e){return t-e*Math.floor(t/e)}function ve(t,e=2){const s=t<0;let n;return s?n="-"+(""+-t).padStart(e,"0"):n=(""+t).padStart(e,"0"),n}function it(t){if(!(F(t)||t===null||t===""))return parseInt(t,10)}function dt(t){if(!(F(t)||t===null||t===""))return parseFloat(t)}function rn(t){if(!(F(t)||t===null||t==="")){const e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function an(t,e,s="round"){const n=10**e;switch(s){case"expand":return t>0?Math.ceil(t*n)/n:Math.floor(t*n)/n;case"trunc":return Math.trunc(t*n)/n;case"round":return Math.round(t*n)/n;case"floor":return Math.floor(t*n)/n;case"ceil":return Math.ceil(t*n)/n;default:throw new RangeError(`Value rounding ${s} is out of range`)}}function Ht(t){return t%4===0&&(t%100!==0||t%400===0)}function kt(t){return Ht(t)?366:365}function ms(t,e){const s=to(e-1,12)+1,n=t+(e-s)/12;return s===2?Ht(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][s-1]}function gs(t){let e=Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,t.second,t.millisecond);return t.year<100&&t.year>=0&&(e=new Date(e),e.setUTCFullYear(t.year,t.month-1,t.day)),+e}function Fn(t,e,s){return-nn(sn(t,1,e),s)+e-1}function Vt(t,e=4,s=1){const n=Fn(t,e,s),r=Fn(t+1,e,s);return(kt(t)-n+r)/7}function Gs(t){return t>99?t:t>Se.twoDigitCutoffYear?1900+t:2e3+t}function Hr(t,e,s,n=null){const r=new Date(t),a={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};n&&(a.timeZone=n);const o={timeZoneName:e,...a},l=new Intl.DateTimeFormat(s,o).formatToParts(r).find(c=>c.type.toLowerCase()==="timezonename");return l?l.value:null}function Ss(t,e){let s=parseInt(t,10);Number.isNaN(s)&&(s=0);const n=parseInt(e,10)||0,r=s<0||Object.is(s,-0)?-n:n;return s*60+r}function qr(t){const e=Number(t);if(typeof t=="boolean"||t===""||!Number.isFinite(e))throw new Ee(`Invalid unit value ${t}`);return e}function fs(t,e){const s={};for(const n in t)if(Et(t,n)){const r=t[n];if(r==null)continue;s[e(n)]=qr(r)}return s}function Bt(t,e){const s=Math.trunc(Math.abs(t/60)),n=Math.trunc(Math.abs(t%60)),r=t>=0?"+":"-";switch(e){case"short":return`${r}${ve(s,2)}:${ve(n,2)}`;case"narrow":return`${r}${s}${n>0?`:${n}`:""}`;case"techie":return`${r}${ve(s,2)}${ve(n,2)}`;default:throw new RangeError(`Value format ${e} is out of range for property format`)}}function xs(t){return eo(t,["hour","minute","second","millisecond"])}const so=["January","February","March","April","May","June","July","August","September","October","November","December"],Gr=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],no=["J","F","M","A","M","J","J","A","S","O","N","D"];function Yr(t){switch(t){case"narrow":return[...no];case"short":return[...Gr];case"long":return[...so];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}const _r=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],Jr=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],ro=["M","T","W","T","F","S","S"];function Kr(t){switch(t){case"narrow":return[...ro];case"short":return[...Jr];case"long":return[..._r];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}const Qr=["AM","PM"],ao=["Before Christ","Anno Domini"],io=["BC","AD"],oo=["B","A"];function Xr(t){switch(t){case"narrow":return[...oo];case"short":return[...io];case"long":return[...ao];default:return null}}function lo(t){return Qr[t.hour<12?0:1]}function co(t,e){return Kr(e)[t.weekday-1]}function uo(t,e){return Yr(e)[t.month-1]}function mo(t,e){return Xr(e)[t.year<0?0:1]}function fo(t,e,s="always",n=!1){const r={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},a=["hours","minutes","seconds"].indexOf(t)===-1;if(s==="auto"&&a){const f=t==="days";switch(e){case 1:return f?"tomorrow":`next ${r[t][0]}`;case-1:return f?"yesterday":`last ${r[t][0]}`;case 0:return f?"today":`this ${r[t][0]}`}}const o=Object.is(e,-0)||e<0,l=Math.abs(e),c=l===1,u=r[t],m=n?c?u[1]:u[2]||u[1]:c?r[t][0]:t;return o?`${l} ${m} ago`:`in ${l} ${m}`}function $n(t,e){let s="";for(const n of t)n.literal?s+=n.val:s+=e(n.val);return s}const ho={D:us,DD:pr,DDD:gr,DDDD:Sr,t:xr,tt:vr,ttt:wr,tttt:Ar,T:Tr,TT:br,TTT:Nr,TTTT:kr,f:Ir,ff:jr,fff:Or,ffff:Cr,F:Er,FF:Mr,FFF:Dr,FFFF:Rr};class je{static create(e,s={}){return new je(e,s)}static parseFormat(e){let s=null,n="",r=!1;const a=[];for(let o=0;o<e.length;o++){const l=e.charAt(o);l==="'"?((n.length>0||r)&&a.push({literal:r||/^\s+$/.test(n),val:n===""?"'":n}),s=null,n="",r=!r):r||l===s?n+=l:(n.length>0&&a.push({literal:/^\s+$/.test(n),val:n}),n=l,s=l)}return n.length>0&&a.push({literal:r||/^\s+$/.test(n),val:n}),a}static macroTokenToFormatOpts(e){return ho[e]}constructor(e,s){this.opts=s,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,s){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...s}).format()}dtFormatter(e,s={}){return this.loc.dtFormatter(e,{...this.opts,...s})}formatDateTime(e,s){return this.dtFormatter(e,s).format()}formatDateTimeParts(e,s){return this.dtFormatter(e,s).formatToParts()}formatInterval(e,s){return this.dtFormatter(e.start,s).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,s){return this.dtFormatter(e,s).resolvedOptions()}num(e,s=0,n=void 0){if(this.opts.forceSimple)return ve(e,s);const r={...this.opts};return s>0&&(r.padTo=s),n&&(r.signDisplay=n),this.loc.numberFormatter(r).format(e)}formatDateTimeFromString(e,s){const n=this.loc.listingMode()==="en",r=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",a=(p,x)=>this.loc.extract(e,p,x),o=p=>e.isOffsetFixed&&e.offset===0&&p.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,p.format):"",l=()=>n?lo(e):a({hour:"numeric",hourCycle:"h12"},"dayperiod"),c=(p,x)=>n?uo(e,p):a(x?{month:p}:{month:p,day:"numeric"},"month"),u=(p,x)=>n?co(e,p):a(x?{weekday:p}:{weekday:p,month:"long",day:"numeric"},"weekday"),m=p=>{const x=je.macroTokenToFormatOpts(p);return x?this.formatWithSystemDefault(e,x):p},f=p=>n?mo(e,p):a({era:p},"era"),g=p=>{switch(p){case"S":return this.num(e.millisecond);case"u":case"SSS":return this.num(e.millisecond,3);case"s":return this.num(e.second);case"ss":return this.num(e.second,2);case"uu":return this.num(Math.floor(e.millisecond/10),2);case"uuu":return this.num(Math.floor(e.millisecond/100));case"m":return this.num(e.minute);case"mm":return this.num(e.minute,2);case"h":return this.num(e.hour%12===0?12:e.hour%12);case"hh":return this.num(e.hour%12===0?12:e.hour%12,2);case"H":return this.num(e.hour);case"HH":return this.num(e.hour,2);case"Z":return o({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return o({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return o({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return e.zone.offsetName(e.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return e.zone.offsetName(e.ts,{format:"long",locale:this.loc.locale});case"z":return e.zoneName;case"a":return l();case"d":return r?a({day:"numeric"},"day"):this.num(e.day);case"dd":return r?a({day:"2-digit"},"day"):this.num(e.day,2);case"c":return this.num(e.weekday);case"ccc":return u("short",!0);case"cccc":return u("long",!0);case"ccccc":return u("narrow",!0);case"E":return this.num(e.weekday);case"EEE":return u("short",!1);case"EEEE":return u("long",!1);case"EEEEE":return u("narrow",!1);case"L":return r?a({month:"numeric",day:"numeric"},"month"):this.num(e.month);case"LL":return r?a({month:"2-digit",day:"numeric"},"month"):this.num(e.month,2);case"LLL":return c("short",!0);case"LLLL":return c("long",!0);case"LLLLL":return c("narrow",!0);case"M":return r?a({month:"numeric"},"month"):this.num(e.month);case"MM":return r?a({month:"2-digit"},"month"):this.num(e.month,2);case"MMM":return c("short",!1);case"MMMM":return c("long",!1);case"MMMMM":return c("narrow",!1);case"y":return r?a({year:"numeric"},"year"):this.num(e.year);case"yy":return r?a({year:"2-digit"},"year"):this.num(e.year.toString().slice(-2),2);case"yyyy":return r?a({year:"numeric"},"year"):this.num(e.year,4);case"yyyyyy":return r?a({year:"numeric"},"year"):this.num(e.year,6);case"G":return f("short");case"GG":return f("long");case"GGGGG":return f("narrow");case"kk":return this.num(e.weekYear.toString().slice(-2),2);case"kkkk":return this.num(e.weekYear,4);case"W":return this.num(e.weekNumber);case"WW":return this.num(e.weekNumber,2);case"n":return this.num(e.localWeekNumber);case"nn":return this.num(e.localWeekNumber,2);case"ii":return this.num(e.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(e.localWeekYear,4);case"o":return this.num(e.ordinal);case"ooo":return this.num(e.ordinal,3);case"q":return this.num(e.quarter);case"qq":return this.num(e.quarter,2);case"X":return this.num(Math.floor(e.ts/1e3));case"x":return this.num(e.ts);default:return m(p)}};return $n(je.parseFormat(s),g)}formatDurationFromString(e,s){const n=this.opts.signMode==="negativeLargestOnly"?-1:1,r=m=>{switch(m[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},a=(m,f)=>g=>{const p=r(g);if(p){const x=f.isNegativeDuration&&p!==f.largestUnit?n:1;let k;return this.opts.signMode==="negativeLargestOnly"&&p!==f.largestUnit?k="never":this.opts.signMode==="all"?k="always":k="auto",this.num(m.get(p)*x,g.length,k)}else return g},o=je.parseFormat(s),l=o.reduce((m,{literal:f,val:g})=>f?m:m.concat(g),[]),c=e.shiftTo(...l.map(r).filter(m=>m)),u={isNegativeDuration:c<0,largestUnit:Object.keys(c.values)[0]};return $n(o,a(c,u))}}const ea=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function jt(...t){const e=t.reduce((s,n)=>s+n.source,"");return RegExp(`^${e}$`)}function Mt(...t){return e=>t.reduce(([s,n,r],a)=>{const[o,l,c]=a(e,r);return[{...s,...o},l||n,c]},[{},null,1]).slice(0,2)}function Ot(t,...e){if(t==null)return[null,null];for(const[s,n]of e){const r=s.exec(t);if(r)return n(r)}return[null,null]}function ta(...t){return(e,s)=>{const n={};let r;for(r=0;r<t.length;r++)n[t[r]]=it(e[s+r]);return[n,null,s+r]}}const sa=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,yo=`(?:${sa.source}?(?:\\[(${ea.source})\\])?)?`,on=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,na=RegExp(`${on.source}${yo}`),ln=RegExp(`(?:[Tt]${na.source})?`),po=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,go=/(\d{4})-?W(\d\d)(?:-?(\d))?/,So=/(\d{4})-?(\d{3})/,xo=ta("weekYear","weekNumber","weekDay"),vo=ta("year","ordinal"),wo=/(\d{4})-(\d\d)-(\d\d)/,ra=RegExp(`${on.source} ?(?:${sa.source}|(${ea.source}))?`),Ao=RegExp(`(?: ${ra.source})?`);function It(t,e,s){const n=t[e];return F(n)?s:it(n)}function To(t,e){return[{year:It(t,e),month:It(t,e+1,1),day:It(t,e+2,1)},null,e+3]}function Dt(t,e){return[{hours:It(t,e,0),minutes:It(t,e+1,0),seconds:It(t,e+2,0),milliseconds:rn(t[e+3])},null,e+4]}function qt(t,e){const s=!t[e]&&!t[e+1],n=Ss(t[e+1],t[e+2]),r=s?null:Ce.instance(n);return[{},r,e+3]}function Gt(t,e){const s=t[e]?tt.create(t[e]):null;return[{},s,e+1]}const bo=RegExp(`^T?${on.source}$`),No=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function ko(t){const[e,s,n,r,a,o,l,c,u]=t,m=e[0]==="-",f=c&&c[0]==="-",g=(p,x=!1)=>p!==void 0&&(x||p&&m)?-p:p;return[{years:g(dt(s)),months:g(dt(n)),weeks:g(dt(r)),days:g(dt(a)),hours:g(dt(o)),minutes:g(dt(l)),seconds:g(dt(c),c==="-0"),milliseconds:g(rn(u),f)}]}const Io={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function cn(t,e,s,n,r,a,o){const l={year:e.length===2?Gs(it(e)):it(e),month:Gr.indexOf(s)+1,day:it(n),hour:it(r),minute:it(a)};return o&&(l.second=it(o)),t&&(l.weekday=t.length>3?_r.indexOf(t)+1:Jr.indexOf(t)+1),l}const Eo=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/;function jo(t){const[,e,s,n,r,a,o,l,c,u,m,f]=t,g=cn(e,r,n,s,a,o,l);let p;return c?p=Io[c]:u?p=0:p=Ss(m,f),[g,new Ce(p)]}function Mo(t){return t.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}const Oo=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,Do=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,Co=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function Pn(t){const[,e,s,n,r,a,o,l]=t;return[cn(e,r,n,s,a,o,l),Ce.utcInstance]}function Ro(t){const[,e,s,n,r,a,o,l]=t;return[cn(e,l,s,n,r,a,o),Ce.utcInstance]}const Uo=jt(po,ln),Lo=jt(go,ln),Fo=jt(So,ln),$o=jt(na),aa=Mt(To,Dt,qt,Gt),Po=Mt(xo,Dt,qt,Gt),Wo=Mt(vo,Dt,qt,Gt),Bo=Mt(Dt,qt,Gt);function Vo(t){return Ot(t,[Uo,aa],[Lo,Po],[Fo,Wo],[$o,Bo])}function Zo(t){return Ot(Mo(t),[Eo,jo])}function zo(t){return Ot(t,[Oo,Pn],[Do,Pn],[Co,Ro])}function Ho(t){return Ot(t,[No,ko])}const qo=Mt(Dt);function Go(t){return Ot(t,[bo,qo])}const Yo=jt(wo,Ao),_o=jt(ra),Jo=Mt(Dt,qt,Gt);function Ko(t){return Ot(t,[Yo,aa],[_o,Jo])}const Wn="Invalid Duration",ia={weeks:{days:7,hours:168,minutes:10080,seconds:10080*60,milliseconds:10080*60*1e3},days:{hours:24,minutes:1440,seconds:1440*60,milliseconds:1440*60*1e3},hours:{minutes:60,seconds:3600,milliseconds:3600*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},Qo={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:2184*60,seconds:2184*60*60,milliseconds:2184*60*60*1e3},months:{weeks:4,days:30,hours:720,minutes:720*60,seconds:720*60*60,milliseconds:720*60*60*1e3},...ia},Ve=146097/400,At=146097/4800,Xo={years:{quarters:4,months:12,weeks:Ve/7,days:Ve,hours:Ve*24,minutes:Ve*24*60,seconds:Ve*24*60*60,milliseconds:Ve*24*60*60*1e3},quarters:{months:3,weeks:Ve/28,days:Ve/4,hours:Ve*24/4,minutes:Ve*24*60/4,seconds:Ve*24*60*60/4,milliseconds:Ve*24*60*60*1e3/4},months:{weeks:At/7,days:At,hours:At*24,minutes:At*24*60,seconds:At*24*60*60,milliseconds:At*24*60*60*1e3},...ia},ft=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],el=ft.slice(0).reverse();function Xe(t,e,s=!1){const n={values:s?e.values:{...t.values,...e.values||{}},loc:t.loc.clone(e.loc),conversionAccuracy:e.conversionAccuracy||t.conversionAccuracy,matrix:e.matrix||t.matrix};return new Q(n)}function oa(t,e){let s=e.milliseconds??0;for(const n of el.slice(1))e[n]&&(s+=e[n]*t[n].milliseconds);return s}function Bn(t,e){const s=oa(t,e)<0?-1:1;ft.reduceRight((n,r)=>{if(F(e[r]))return n;if(n){const a=e[n]*s,o=t[r][n],l=Math.floor(a/o);e[r]+=l*s,e[n]-=l*o*s}return r},null),ft.reduce((n,r)=>{if(F(e[r]))return n;if(n){const a=e[n]%1;e[n]-=a,e[r]+=a*t[n][r]}return r},null)}function Vn(t){const e={};for(const[s,n]of Object.entries(t))n!==0&&(e[s]=n);return e}class Q{constructor(e){const s=e.conversionAccuracy==="longterm"||!1;let n=s?Xo:Qo;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||ne.create(),this.conversionAccuracy=s?"longterm":"casual",this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(e,s){return Q.fromObject({milliseconds:e},s)}static fromObject(e,s={}){if(e==null||typeof e!="object")throw new Ee(`Duration.fromObject: argument expected to be an object, got ${e===null?"null":typeof e}`);return new Q({values:fs(e,Q.normalizeUnit),loc:ne.fromObject(s),conversionAccuracy:s.conversionAccuracy,matrix:s.matrix})}static fromDurationLike(e){if(lt(e))return Q.fromMillis(e);if(Q.isDuration(e))return e;if(typeof e=="object")return Q.fromObject(e);throw new Ee(`Unknown duration argument ${e} of type ${typeof e}`)}static fromISO(e,s){const[n]=Ho(e);return n?Q.fromObject(n,s):Q.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static fromISOTime(e,s){const[n]=Go(e);return n?Q.fromObject(n,s):Q.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static invalid(e,s=null){if(!e)throw new Ee("need to specify a reason the Duration is invalid");const n=e instanceof Ye?e:new Ye(e,s);if(Se.throwOnInvalid)throw new Ni(n);return new Q({invalid:n})}static normalizeUnit(e){const s={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[e&&e.toLowerCase()];if(!s)throw new yr(e);return s}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,s={}){const n={...s,floor:s.round!==!1&&s.floor!==!1};return this.isValid?je.create(this.loc,n).formatDurationFromString(this,e):Wn}toHuman(e={}){if(!this.isValid)return Wn;const s=e.showZeros!==!1,n=ft.map(r=>{const a=this.values[r];return F(a)||a===0&&!s?null:this.loc.numberFormatter({style:"unit",unitDisplay:"long",...e,unit:r.slice(0,-1)}).format(a)}).filter(r=>r);return this.loc.listFormatter({type:"conjunction",style:e.listStyle||"narrow",...e}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e="P";return this.years!==0&&(e+=this.years+"Y"),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+"M"),this.weeks!==0&&(e+=this.weeks+"W"),this.days!==0&&(e+=this.days+"D"),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+="T"),this.hours!==0&&(e+=this.hours+"H"),this.minutes!==0&&(e+=this.minutes+"M"),(this.seconds!==0||this.milliseconds!==0)&&(e+=an(this.seconds+this.milliseconds/1e3,3)+"S"),e==="P"&&(e+="T0S"),e}toISOTime(e={}){if(!this.isValid)return null;const s=this.toMillis();return s<0||s>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...e,includeOffset:!1},L.fromMillis(s,{zone:"UTC"}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?oa(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(e){if(!this.isValid)return this;const s=Q.fromDurationLike(e),n={};for(const r of ft)(Et(s.values,r)||Et(this.values,r))&&(n[r]=s.get(r)+this.get(r));return Xe(this,{values:n},!0)}minus(e){if(!this.isValid)return this;const s=Q.fromDurationLike(e);return this.plus(s.negate())}mapUnits(e){if(!this.isValid)return this;const s={};for(const n of Object.keys(this.values))s[n]=qr(e(this.values[n],n));return Xe(this,{values:s},!0)}get(e){return this[Q.normalizeUnit(e)]}set(e){if(!this.isValid)return this;const s={...this.values,...fs(e,Q.normalizeUnit)};return Xe(this,{values:s})}reconfigure({locale:e,numberingSystem:s,conversionAccuracy:n,matrix:r}={}){const o={loc:this.loc.clone({locale:e,numberingSystem:s}),matrix:r,conversionAccuracy:n};return Xe(this,o)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;const e=this.toObject();return Bn(this.matrix,e),Xe(this,{values:e},!0)}rescale(){if(!this.isValid)return this;const e=Vn(this.normalize().shiftToAll().toObject());return Xe(this,{values:e},!0)}shiftTo(...e){if(!this.isValid)return this;if(e.length===0)return this;e=e.map(o=>Q.normalizeUnit(o));const s={},n={},r=this.toObject();let a;for(const o of ft)if(e.indexOf(o)>=0){a=o;let l=0;for(const u in n)l+=this.matrix[u][o]*n[u],n[u]=0;lt(r[o])&&(l+=r[o]);const c=Math.trunc(l);s[o]=c,n[o]=(l*1e3-c*1e3)/1e3}else lt(r[o])&&(n[o]=r[o]);for(const o in n)n[o]!==0&&(s[a]+=o===a?n[o]:n[o]/this.matrix[a][o]);return Bn(this.matrix,s),Xe(this,{values:s},!0)}shiftToAll(){return this.isValid?this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds"):this}negate(){if(!this.isValid)return this;const e={};for(const s of Object.keys(this.values))e[s]=this.values[s]===0?0:-this.values[s];return Xe(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;const e=Vn(this.values);return Xe(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function s(n,r){return n===void 0||n===0?r===void 0||r===0:n===r}for(const n of ft)if(!s(this.values[n],e.values[n]))return!1;return!0}}const Tt="Invalid Interval";function tl(t,e){return!t||!t.isValid?ge.invalid("missing or invalid start"):!e||!e.isValid?ge.invalid("missing or invalid end"):e<t?ge.invalid("end before start",`The end of an interval must be after its start, but you had start=${t.toISO()} and end=${e.toISO()}`):null}class ge{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(e,s=null){if(!e)throw new Ee("need to specify a reason the Interval is invalid");const n=e instanceof Ye?e:new Ye(e,s);if(Se.throwOnInvalid)throw new bi(n);return new ge({invalid:n})}static fromDateTimes(e,s){const n=Lt(e),r=Lt(s),a=tl(n,r);return a??new ge({start:n,end:r})}static after(e,s){const n=Q.fromDurationLike(s),r=Lt(e);return ge.fromDateTimes(r,r.plus(n))}static before(e,s){const n=Q.fromDurationLike(s),r=Lt(e);return ge.fromDateTimes(r.minus(n),r)}static fromISO(e,s){const[n,r]=(e||"").split("/",2);if(n&&r){let a,o;try{a=L.fromISO(n,s),o=a.isValid}catch{o=!1}let l,c;try{l=L.fromISO(r,s),c=l.isValid}catch{c=!1}if(o&&c)return ge.fromDateTimes(a,l);if(o){const u=Q.fromISO(r,s);if(u.isValid)return ge.after(a,u)}else if(c){const u=Q.fromISO(n,s);if(u.isValid)return ge.before(l,u)}}return ge.invalid("unparsable",`the input "${e}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e="milliseconds"){return this.isValid?this.toDuration(e).get(e):NaN}count(e="milliseconds",s){if(!this.isValid)return NaN;const n=this.start.startOf(e,s);let r;return s?.useLocaleWeeks?r=this.end.reconfigure({locale:n.locale}):r=this.end,r=r.startOf(e,s),Math.floor(r.diff(n,e).get(e))+(r.valueOf()!==this.end.valueOf())}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:e,end:s}={}){return this.isValid?ge.fromDateTimes(e||this.s,s||this.e):this}splitAt(...e){if(!this.isValid)return[];const s=e.map(Lt).filter(o=>this.contains(o)).sort((o,l)=>o.toMillis()-l.toMillis()),n=[];let{s:r}=this,a=0;for(;r<this.e;){const o=s[a]||this.e,l=+o>+this.e?this.e:o;n.push(ge.fromDateTimes(r,l)),r=l,a+=1}return n}splitBy(e){const s=Q.fromDurationLike(e);if(!this.isValid||!s.isValid||s.as("milliseconds")===0)return[];let{s:n}=this,r=1,a;const o=[];for(;n<this.e;){const l=this.start.plus(s.mapUnits(c=>c*r));a=+l>+this.e?this.e:l,o.push(ge.fromDateTimes(n,a)),n=a,r+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(e){if(!this.isValid)return this;const s=this.s>e.s?this.s:e.s,n=this.e<e.e?this.e:e.e;return s>=n?null:ge.fromDateTimes(s,n)}union(e){if(!this.isValid)return this;const s=this.s<e.s?this.s:e.s,n=this.e>e.e?this.e:e.e;return ge.fromDateTimes(s,n)}static merge(e){const[s,n]=e.sort((r,a)=>r.s-a.s).reduce(([r,a],o)=>a?a.overlaps(o)||a.abutsStart(o)?[r,a.union(o)]:[r.concat([a]),o]:[r,o],[[],null]);return n&&s.push(n),s}static xor(e){let s=null,n=0;const r=[],a=e.map(c=>[{time:c.s,type:"s"},{time:c.e,type:"e"}]),o=Array.prototype.concat(...a),l=o.sort((c,u)=>c.time-u.time);for(const c of l)n+=c.type==="s"?1:-1,n===1?s=c.time:(s&&+s!=+c.time&&r.push(ge.fromDateTimes(s,c.time)),s=null);return ge.merge(r)}difference(...e){return ge.xor([this].concat(e)).map(s=>this.intersection(s)).filter(s=>s&&!s.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} – ${this.e.toISO()})`:Tt}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=us,s={}){return this.isValid?je.create(this.s.loc.clone(s),e).formatInterval(this):Tt}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Tt}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Tt}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Tt}toFormat(e,{separator:s=" – "}={}){return this.isValid?`${this.s.toFormat(e)}${s}${this.e.toFormat(e)}`:Tt}toDuration(e,s){return this.isValid?this.e.diff(this.s,e,s):Q.invalid(this.invalidReason)}mapEndpoints(e){return ge.fromDateTimes(e(this.s),e(this.e))}}class ts{static hasDST(e=Se.defaultZone){const s=L.now().setZone(e).set({month:12});return!e.isUniversal&&s.offset!==s.set({month:6}).offset}static isValidIANAZone(e){return tt.isValidZone(e)}static normalizeZone(e){return ot(e,Se.defaultZone)}static getStartOfWeek({locale:e=null,locObj:s=null}={}){return(s||ne.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:s=null}={}){return(s||ne.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:s=null}={}){return(s||ne.create(e)).getWeekendDays().slice()}static months(e="long",{locale:s=null,numberingSystem:n=null,locObj:r=null,outputCalendar:a="gregory"}={}){return(r||ne.create(s,n,a)).months(e)}static monthsFormat(e="long",{locale:s=null,numberingSystem:n=null,locObj:r=null,outputCalendar:a="gregory"}={}){return(r||ne.create(s,n,a)).months(e,!0)}static weekdays(e="long",{locale:s=null,numberingSystem:n=null,locObj:r=null}={}){return(r||ne.create(s,n,null)).weekdays(e)}static weekdaysFormat(e="long",{locale:s=null,numberingSystem:n=null,locObj:r=null}={}){return(r||ne.create(s,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return ne.create(e).meridiems()}static eras(e="short",{locale:s=null}={}){return ne.create(s,null,"gregory").eras(e)}static features(){return{relative:Zr(),localeWeek:zr()}}}function Zn(t,e){const s=r=>r.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),n=s(e)-s(t);return Math.floor(Q.fromMillis(n).as("days"))}function sl(t,e,s){const n=[["years",(c,u)=>u.year-c.year],["quarters",(c,u)=>u.quarter-c.quarter+(u.year-c.year)*4],["months",(c,u)=>u.month-c.month+(u.year-c.year)*12],["weeks",(c,u)=>{const m=Zn(c,u);return(m-m%7)/7}],["days",Zn]],r={},a=t;let o,l;for(const[c,u]of n)s.indexOf(c)>=0&&(o=c,r[c]=u(t,e),l=a.plus(r),l>e?(r[c]--,t=a.plus(r),t>e&&(l=t,r[c]--,t=a.plus(r))):t=l);return[t,r,l,o]}function nl(t,e,s,n){let[r,a,o,l]=sl(t,e,s);const c=e-r,u=s.filter(f=>["hours","minutes","seconds","milliseconds"].indexOf(f)>=0);u.length===0&&(o<e&&(o=r.plus({[l]:1})),o!==r&&(a[l]=(a[l]||0)+c/(o-r)));const m=Q.fromObject(a,n);return u.length>0?Q.fromMillis(c,n).shiftTo(...u).plus(m):m}const rl="missing Intl.DateTimeFormat.formatToParts support";function X(t,e=s=>s){return{regex:t,deser:([s])=>e(Gi(s))}}const al=" ",la=`[ ${al}]`,ca=new RegExp(la,"g");function il(t){return t.replace(/\./g,"\\.?").replace(ca,la)}function zn(t){return t.replace(/\./g,"").replace(ca," ").toLowerCase()}function Ge(t,e){return t===null?null:{regex:RegExp(t.map(il).join("|")),deser:([s])=>t.findIndex(n=>zn(s)===zn(n))+e}}function Hn(t,e){return{regex:t,deser:([,s,n])=>Ss(s,n),groups:e}}function ss(t){return{regex:t,deser:([e])=>e}}function ol(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function ll(t,e){const s=qe(e),n=qe(e,"{2}"),r=qe(e,"{3}"),a=qe(e,"{4}"),o=qe(e,"{6}"),l=qe(e,"{1,2}"),c=qe(e,"{1,3}"),u=qe(e,"{1,6}"),m=qe(e,"{1,9}"),f=qe(e,"{2,4}"),g=qe(e,"{4,6}"),p=b=>({regex:RegExp(ol(b.val)),deser:([B])=>B,literal:!0}),k=(b=>{if(t.literal)return p(b);switch(b.val){case"G":return Ge(e.eras("short"),0);case"GG":return Ge(e.eras("long"),0);case"y":return X(u);case"yy":return X(f,Gs);case"yyyy":return X(a);case"yyyyy":return X(g);case"yyyyyy":return X(o);case"M":return X(l);case"MM":return X(n);case"MMM":return Ge(e.months("short",!0),1);case"MMMM":return Ge(e.months("long",!0),1);case"L":return X(l);case"LL":return X(n);case"LLL":return Ge(e.months("short",!1),1);case"LLLL":return Ge(e.months("long",!1),1);case"d":return X(l);case"dd":return X(n);case"o":return X(c);case"ooo":return X(r);case"HH":return X(n);case"H":return X(l);case"hh":return X(n);case"h":return X(l);case"mm":return X(n);case"m":return X(l);case"q":return X(l);case"qq":return X(n);case"s":return X(l);case"ss":return X(n);case"S":return X(c);case"SSS":return X(r);case"u":return ss(m);case"uu":return ss(l);case"uuu":return X(s);case"a":return Ge(e.meridiems(),0);case"kkkk":return X(a);case"kk":return X(f,Gs);case"W":return X(l);case"WW":return X(n);case"E":case"c":return X(s);case"EEE":return Ge(e.weekdays("short",!1),1);case"EEEE":return Ge(e.weekdays("long",!1),1);case"ccc":return Ge(e.weekdays("short",!0),1);case"cccc":return Ge(e.weekdays("long",!0),1);case"Z":case"ZZ":return Hn(new RegExp(`([+-]${l.source})(?::(${n.source}))?`),2);case"ZZZ":return Hn(new RegExp(`([+-]${l.source})(${n.source})?`),2);case"z":return ss(/[a-z_+-/]{1,256}?/i);case" ":return ss(/[^\S\n\r]/);default:return p(b)}})(t)||{invalidReason:rl};return k.token=t,k}const cl={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function ul(t,e,s){const{type:n,value:r}=t;if(n==="literal"){const c=/^\s+$/.test(r);return{literal:!c,val:c?" ":r}}const a=e[n];let o=n;n==="hour"&&(e.hour12!=null?o=e.hour12?"hour12":"hour24":e.hourCycle!=null?e.hourCycle==="h11"||e.hourCycle==="h12"?o="hour12":o="hour24":o=s.hour12?"hour12":"hour24");let l=cl[o];if(typeof l=="object"&&(l=l[a]),l)return{literal:!1,val:l}}function dl(t){return[`^${t.map(s=>s.regex).reduce((s,n)=>`${s}(${n.source})`,"")}$`,t]}function ml(t,e,s){const n=t.match(e);if(n){const r={};let a=1;for(const o in s)if(Et(s,o)){const l=s[o],c=l.groups?l.groups+1:1;!l.literal&&l.token&&(r[l.token.val[0]]=l.deser(n.slice(a,a+c))),a+=c}return[n,r]}else return[n,{}]}function fl(t){const e=a=>{switch(a){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}};let s=null,n;return F(t.z)||(s=tt.create(t.z)),F(t.Z)||(s||(s=new Ce(t.Z)),n=t.Z),F(t.q)||(t.M=(t.q-1)*3+1),F(t.h)||(t.h<12&&t.a===1?t.h+=12:t.h===12&&t.a===0&&(t.h=0)),t.G===0&&t.y&&(t.y=-t.y),F(t.u)||(t.S=rn(t.u)),[Object.keys(t).reduce((a,o)=>{const l=e(o);return l&&(a[l]=t[o]),a},{}),s,n]}let Ms=null;function hl(){return Ms||(Ms=L.fromMillis(1555555555555)),Ms}function yl(t,e){if(t.literal)return t;const s=je.macroTokenToFormatOpts(t.val),n=fa(s,e);return n==null||n.includes(void 0)?t:n}function ua(t,e){return Array.prototype.concat(...t.map(s=>yl(s,e)))}class da{constructor(e,s){if(this.locale=e,this.format=s,this.tokens=ua(je.parseFormat(s),e),this.units=this.tokens.map(n=>ll(n,e)),this.disqualifyingUnit=this.units.find(n=>n.invalidReason),!this.disqualifyingUnit){const[n,r]=dl(this.units);this.regex=RegExp(n,"i"),this.handlers=r}}explainFromTokens(e){if(this.isValid){const[s,n]=ml(e,this.regex,this.handlers),[r,a,o]=n?fl(n):[null,null,void 0];if(Et(n,"a")&&Et(n,"H"))throw new Nt("Can't include meridiem when specifying 24-hour format");return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:s,matches:n,result:r,zone:a,specificOffset:o}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function ma(t,e,s){return new da(t,s).explainFromTokens(e)}function pl(t,e,s){const{result:n,zone:r,specificOffset:a,invalidReason:o}=ma(t,e,s);return[n,r,a,o]}function fa(t,e){if(!t)return null;const n=je.create(e,t).dtFormatter(hl()),r=n.formatToParts(),a=n.resolvedOptions();return r.map(o=>ul(o,t,a))}const Os="Invalid DateTime",qn=864e13;function Pt(t){return new Ye("unsupported zone",`the zone "${t.name}" is not supported`)}function Ds(t){return t.weekData===null&&(t.weekData=ds(t.c)),t.weekData}function Cs(t){return t.localWeekData===null&&(t.localWeekData=ds(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}function mt(t,e){const s={ts:t.ts,zone:t.zone,c:t.c,o:t.o,loc:t.loc,invalid:t.invalid};return new L({...s,...e,old:s})}function ha(t,e,s){let n=t-e*60*1e3;const r=s.offset(n);if(e===r)return[n,e];n-=(r-e)*60*1e3;const a=s.offset(n);return r===a?[n,r]:[t-Math.min(r,a)*60*1e3,Math.max(r,a)]}function ns(t,e){t+=e*60*1e3;const s=new Date(t);return{year:s.getUTCFullYear(),month:s.getUTCMonth()+1,day:s.getUTCDate(),hour:s.getUTCHours(),minute:s.getUTCMinutes(),second:s.getUTCSeconds(),millisecond:s.getUTCMilliseconds()}}function os(t,e,s){return ha(gs(t),e,s)}function Gn(t,e){const s=t.o,n=t.c.year+Math.trunc(e.years),r=t.c.month+Math.trunc(e.months)+Math.trunc(e.quarters)*3,a={...t.c,year:n,month:r,day:Math.min(t.c.day,ms(n,r))+Math.trunc(e.days)+Math.trunc(e.weeks)*7},o=Q.fromObject({years:e.years-Math.trunc(e.years),quarters:e.quarters-Math.trunc(e.quarters),months:e.months-Math.trunc(e.months),weeks:e.weeks-Math.trunc(e.weeks),days:e.days-Math.trunc(e.days),hours:e.hours,minutes:e.minutes,seconds:e.seconds,milliseconds:e.milliseconds}).as("milliseconds"),l=gs(a);let[c,u]=ha(l,s,t.zone);return o!==0&&(c+=o,u=t.zone.offset(c)),{ts:c,o:u}}function bt(t,e,s,n,r,a){const{setZone:o,zone:l}=s;if(t&&Object.keys(t).length!==0||e){const c=e||l,u=L.fromObject(t,{...s,zone:c,specificOffset:a});return o?u:u.setZone(l)}else return L.invalid(new Ye("unparsable",`the input "${r}" can't be parsed as ${n}`))}function rs(t,e,s=!0){return t.isValid?je.create(ne.create("en-US"),{allowZ:s,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Rs(t,e,s){const n=t.c.year>9999||t.c.year<0;let r="";if(n&&t.c.year>=0&&(r+="+"),r+=ve(t.c.year,n?6:4),s==="year")return r;if(e){if(r+="-",r+=ve(t.c.month),s==="month")return r;r+="-"}else if(r+=ve(t.c.month),s==="month")return r;return r+=ve(t.c.day),r}function Yn(t,e,s,n,r,a,o){let l=!s||t.c.millisecond!==0||t.c.second!==0,c="";switch(o){case"day":case"month":case"year":break;default:if(c+=ve(t.c.hour),o==="hour")break;if(e){if(c+=":",c+=ve(t.c.minute),o==="minute")break;l&&(c+=":",c+=ve(t.c.second))}else{if(c+=ve(t.c.minute),o==="minute")break;l&&(c+=ve(t.c.second))}if(o==="second")break;l&&(!n||t.c.millisecond!==0)&&(c+=".",c+=ve(t.c.millisecond,3))}return r&&(t.isOffsetFixed&&t.offset===0&&!a?c+="Z":t.o<0?(c+="-",c+=ve(Math.trunc(-t.o/60)),c+=":",c+=ve(Math.trunc(-t.o%60))):(c+="+",c+=ve(Math.trunc(t.o/60)),c+=":",c+=ve(Math.trunc(t.o%60)))),a&&(c+="["+t.zone.ianaName+"]"),c}const ya={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},gl={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},Sl={ordinal:1,hour:0,minute:0,second:0,millisecond:0},ls=["year","month","day","hour","minute","second","millisecond"],xl=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],vl=["year","ordinal","hour","minute","second","millisecond"];function cs(t){const e={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[t.toLowerCase()];if(!e)throw new yr(t);return e}function _n(t){switch(t.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return cs(t)}}function wl(t){if(Wt===void 0&&(Wt=Se.now()),t.type!=="iana")return t.offset(Wt);const e=t.name;let s=Ys.get(e);return s===void 0&&(s=t.offset(Wt),Ys.set(e,s)),s}function Jn(t,e){const s=ot(e.zone,Se.defaultZone);if(!s.isValid)return L.invalid(Pt(s));const n=ne.fromObject(e);let r,a;if(F(t.year))r=Se.now();else{for(const c of ls)F(t[c])&&(t[c]=ya[c]);const o=Br(t)||Vr(t);if(o)return L.invalid(o);const l=wl(s);[r,a]=os(t,l,s)}return new L({ts:r,zone:s,loc:n,o:a})}function Kn(t,e,s){const n=F(s.round)?!0:s.round,r=F(s.rounding)?"trunc":s.rounding,a=(l,c)=>(l=an(l,n||s.calendary?0:2,s.calendary?"round":r),e.loc.clone(s).relFormatter(s).format(l,c)),o=l=>s.calendary?e.hasSame(t,l)?0:e.startOf(l).diff(t.startOf(l),l).get(l):e.diff(t,l).get(l);if(s.unit)return a(o(s.unit),s.unit);for(const l of s.units){const c=o(l);if(Math.abs(c)>=1)return a(c,l)}return a(t>e?-0:0,s.units[s.units.length-1])}function Qn(t){let e={},s;return t.length>0&&typeof t[t.length-1]=="object"?(e=t[t.length-1],s=Array.from(t).slice(0,t.length-1)):s=Array.from(t),[e,s]}let Wt;const Ys=new Map;class L{constructor(e){const s=e.zone||Se.defaultZone;let n=e.invalid||(Number.isNaN(e.ts)?new Ye("invalid input"):null)||(s.isValid?null:Pt(s));this.ts=F(e.ts)?Se.now():e.ts;let r=null,a=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(s))[r,a]=[e.old.c,e.old.o];else{const l=lt(e.o)&&!e.old?e.o:s.offset(this.ts);r=ns(this.ts,l),n=Number.isNaN(r.year)?new Ye("invalid input"):null,r=n?null:r,a=n?null:l}this._zone=s,this.loc=e.loc||ne.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=r,this.o=a,this.isLuxonDateTime=!0}static now(){return new L({})}static local(){const[e,s]=Qn(arguments),[n,r,a,o,l,c,u]=s;return Jn({year:n,month:r,day:a,hour:o,minute:l,second:c,millisecond:u},e)}static utc(){const[e,s]=Qn(arguments),[n,r,a,o,l,c,u]=s;return e.zone=Ce.utcInstance,Jn({year:n,month:r,day:a,hour:o,minute:l,second:c,millisecond:u},e)}static fromJSDate(e,s={}){const n=Qi(e)?e.valueOf():NaN;if(Number.isNaN(n))return L.invalid("invalid input");const r=ot(s.zone,Se.defaultZone);return r.isValid?new L({ts:n,zone:r,loc:ne.fromObject(s)}):L.invalid(Pt(r))}static fromMillis(e,s={}){if(lt(e))return e<-qn||e>qn?L.invalid("Timestamp out of range"):new L({ts:e,zone:ot(s.zone,Se.defaultZone),loc:ne.fromObject(s)});throw new Ee(`fromMillis requires a numerical input, but received a ${typeof e} with value ${e}`)}static fromSeconds(e,s={}){if(lt(e))return new L({ts:e*1e3,zone:ot(s.zone,Se.defaultZone),loc:ne.fromObject(s)});throw new Ee("fromSeconds requires a numerical input")}static fromObject(e,s={}){e=e||{};const n=ot(s.zone,Se.defaultZone);if(!n.isValid)return L.invalid(Pt(n));const r=ne.fromObject(s),a=fs(e,_n),{minDaysInFirstWeek:o,startOfWeek:l}=Un(a,r),c=Se.now(),u=F(s.specificOffset)?n.offset(c):s.specificOffset,m=!F(a.ordinal),f=!F(a.year),g=!F(a.month)||!F(a.day),p=f||g,x=a.weekYear||a.weekNumber;if((p||m)&&x)throw new Nt("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(g&&m)throw new Nt("Can't mix ordinal dates with month/day");const k=x||a.weekday&&!p;let b,B,H=ns(c,u);k?(b=xl,B=gl,H=ds(H,o,l)):m?(b=vl,B=Sl,H=js(H)):(b=ls,B=ya);let K=!1;for(const S of b){const M=a[S];F(M)?K?a[S]=B[S]:a[S]=H[S]:K=!0}const I=k?_i(a,o,l):m?Ji(a):Br(a),D=I||Vr(a);if(D)return L.invalid(D);const V=k?Cn(a,o,l):m?Rn(a):a,[C,q]=os(V,u,n),y=new L({ts:C,zone:n,o:q,loc:r});return a.weekday&&p&&e.weekday!==y.weekday?L.invalid("mismatched weekday",`you can't specify both a weekday of ${a.weekday} and a date of ${y.toISO()}`):y.isValid?y:L.invalid(y.invalid)}static fromISO(e,s={}){const[n,r]=Vo(e);return bt(n,r,s,"ISO 8601",e)}static fromRFC2822(e,s={}){const[n,r]=Zo(e);return bt(n,r,s,"RFC 2822",e)}static fromHTTP(e,s={}){const[n,r]=zo(e);return bt(n,r,s,"HTTP",s)}static fromFormat(e,s,n={}){if(F(e)||F(s))throw new Ee("fromFormat requires an input string and a format");const{locale:r=null,numberingSystem:a=null}=n,o=ne.fromOpts({locale:r,numberingSystem:a,defaultToEN:!0}),[l,c,u,m]=pl(o,e,s);return m?L.invalid(m):bt(l,c,n,`format ${s}`,e,u)}static fromString(e,s,n={}){return L.fromFormat(e,s,n)}static fromSQL(e,s={}){const[n,r]=Ko(e);return bt(n,r,s,"SQL",e)}static invalid(e,s=null){if(!e)throw new Ee("need to specify a reason the DateTime is invalid");const n=e instanceof Ye?e:new Ye(e,s);if(Se.throwOnInvalid)throw new Ti(n);return new L({invalid:n})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,s={}){const n=fa(e,ne.fromObject(s));return n?n.map(r=>r?r.val:null).join(""):null}static expandFormat(e,s={}){return ua(je.parseFormat(e),ne.fromObject(s)).map(r=>r.val).join("")}static resetCache(){Wt=void 0,Ys.clear()}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Ds(this).weekYear:NaN}get weekNumber(){return this.isValid?Ds(this).weekNumber:NaN}get weekday(){return this.isValid?Ds(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Cs(this).weekday:NaN}get localWeekNumber(){return this.isValid?Cs(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Cs(this).weekYear:NaN}get ordinal(){return this.isValid?js(this.c).ordinal:NaN}get monthShort(){return this.isValid?ts.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?ts.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?ts.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?ts.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:"short",locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:"long",locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];const e=864e5,s=6e4,n=gs(this.c),r=this.zone.offset(n-e),a=this.zone.offset(n+e),o=this.zone.offset(n-r*s),l=this.zone.offset(n-a*s);if(o===l)return[this];const c=n-o*s,u=n-l*s,m=ns(c,o),f=ns(u,l);return m.hour===f.hour&&m.minute===f.minute&&m.second===f.second&&m.millisecond===f.millisecond?[mt(this,{ts:c}),mt(this,{ts:u})]:[this]}get isInLeapYear(){return Ht(this.year)}get daysInMonth(){return ms(this.year,this.month)}get daysInYear(){return this.isValid?kt(this.year):NaN}get weeksInWeekYear(){return this.isValid?Vt(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?Vt(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){const{locale:s,numberingSystem:n,calendar:r}=je.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:s,numberingSystem:n,outputCalendar:r}}toUTC(e=0,s={}){return this.setZone(Ce.instance(e),s)}toLocal(){return this.setZone(Se.defaultZone)}setZone(e,{keepLocalTime:s=!1,keepCalendarTime:n=!1}={}){if(e=ot(e,Se.defaultZone),e.equals(this.zone))return this;if(e.isValid){let r=this.ts;if(s||n){const a=e.offset(this.ts),o=this.toObject();[r]=os(o,a,e)}return mt(this,{ts:r,zone:e})}else return L.invalid(Pt(e))}reconfigure({locale:e,numberingSystem:s,outputCalendar:n}={}){const r=this.loc.clone({locale:e,numberingSystem:s,outputCalendar:n});return mt(this,{loc:r})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;const s=fs(e,_n),{minDaysInFirstWeek:n,startOfWeek:r}=Un(s,this.loc),a=!F(s.weekYear)||!F(s.weekNumber)||!F(s.weekday),o=!F(s.ordinal),l=!F(s.year),c=!F(s.month)||!F(s.day),u=l||c,m=s.weekYear||s.weekNumber;if((u||o)&&m)throw new Nt("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&o)throw new Nt("Can't mix ordinal dates with month/day");let f;a?f=Cn({...ds(this.c,n,r),...s},n,r):F(s.ordinal)?(f={...this.toObject(),...s},F(s.day)&&(f.day=Math.min(ms(f.year,f.month),f.day))):f=Rn({...js(this.c),...s});const[g,p]=os(f,this.o,this.zone);return mt(this,{ts:g,o:p})}plus(e){if(!this.isValid)return this;const s=Q.fromDurationLike(e);return mt(this,Gn(this,s))}minus(e){if(!this.isValid)return this;const s=Q.fromDurationLike(e).negate();return mt(this,Gn(this,s))}startOf(e,{useLocaleWeeks:s=!1}={}){if(!this.isValid)return this;const n={},r=Q.normalizeUnit(e);switch(r){case"years":n.month=1;case"quarters":case"months":n.day=1;case"weeks":case"days":n.hour=0;case"hours":n.minute=0;case"minutes":n.second=0;case"seconds":n.millisecond=0;break}if(r==="weeks")if(s){const a=this.loc.getStartOfWeek(),{weekday:o}=this;o<a&&(n.weekNumber=this.weekNumber-1),n.weekday=a}else n.weekday=1;if(r==="quarters"){const a=Math.ceil(this.month/3);n.month=(a-1)*3+1}return this.set(n)}endOf(e,s){return this.isValid?this.plus({[e]:1}).startOf(e,s).minus(1):this}toFormat(e,s={}){return this.isValid?je.create(this.loc.redefaultToEN(s)).formatDateTimeFromString(this,e):Os}toLocaleString(e=us,s={}){return this.isValid?je.create(this.loc.clone(s),e).formatDateTime(this):Os}toLocaleParts(e={}){return this.isValid?je.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e="extended",suppressSeconds:s=!1,suppressMilliseconds:n=!1,includeOffset:r=!0,extendedZone:a=!1,precision:o="milliseconds"}={}){if(!this.isValid)return null;o=cs(o);const l=e==="extended";let c=Rs(this,l,o);return ls.indexOf(o)>=3&&(c+="T"),c+=Yn(this,l,s,n,r,a,o),c}toISODate({format:e="extended",precision:s="day"}={}){return this.isValid?Rs(this,e==="extended",cs(s)):null}toISOWeekDate(){return rs(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:s=!1,includeOffset:n=!0,includePrefix:r=!1,extendedZone:a=!1,format:o="extended",precision:l="milliseconds"}={}){return this.isValid?(l=cs(l),(r&&ls.indexOf(l)>=3?"T":"")+Yn(this,o==="extended",s,e,n,a,l)):null}toRFC2822(){return rs(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return rs(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Rs(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:s=!1,includeOffsetSpace:n=!0}={}){let r="HH:mm:ss.SSS";return(s||e)&&(n&&(r+=" "),s?r+="z":e&&(r+="ZZ")),rs(this,r,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():Os}[Symbol.for("nodejs.util.inspect.custom")](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};const s={...this.c};return e.includeConfig&&(s.outputCalendar=this.outputCalendar,s.numberingSystem=this.loc.numberingSystem,s.locale=this.loc.locale),s}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,s="milliseconds",n={}){if(!this.isValid||!e.isValid)return Q.invalid("created by diffing an invalid DateTime");const r={locale:this.locale,numberingSystem:this.numberingSystem,...n},a=Xi(s).map(Q.normalizeUnit),o=e.valueOf()>this.valueOf(),l=o?this:e,c=o?e:this,u=nl(l,c,a,r);return o?u.negate():u}diffNow(e="milliseconds",s={}){return this.diff(L.now(),e,s)}until(e){return this.isValid?ge.fromDateTimes(this,e):this}hasSame(e,s,n){if(!this.isValid)return!1;const r=e.valueOf(),a=this.setZone(e.zone,{keepLocalTime:!0});return a.startOf(s,n)<=r&&r<=a.endOf(s,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(e={}){if(!this.isValid)return null;const s=e.base||L.fromObject({},{zone:this.zone}),n=e.padding?this<s?-e.padding:e.padding:0;let r=["years","months","days","hours","minutes","seconds"],a=e.unit;return Array.isArray(e.unit)&&(r=e.unit,a=void 0),Kn(s,this.plus(n),{...e,numeric:"always",units:r,unit:a})}toRelativeCalendar(e={}){return this.isValid?Kn(e.base||L.fromObject({},{zone:this.zone}),this,{...e,numeric:"auto",units:["years","months","days"],calendary:!0}):null}static min(...e){if(!e.every(L.isDateTime))throw new Ee("min requires all arguments be DateTimes");return Ln(e,s=>s.valueOf(),Math.min)}static max(...e){if(!e.every(L.isDateTime))throw new Ee("max requires all arguments be DateTimes");return Ln(e,s=>s.valueOf(),Math.max)}static fromFormatExplain(e,s,n={}){const{locale:r=null,numberingSystem:a=null}=n,o=ne.fromOpts({locale:r,numberingSystem:a,defaultToEN:!0});return ma(o,e,s)}static fromStringExplain(e,s,n={}){return L.fromFormatExplain(e,s,n)}static buildFormatParser(e,s={}){const{locale:n=null,numberingSystem:r=null}=s,a=ne.fromOpts({locale:n,numberingSystem:r,defaultToEN:!0});return new da(a,e)}static fromFormatParser(e,s,n={}){if(F(e)||F(s))throw new Ee("fromFormatParser requires an input string and a format parser");const{locale:r=null,numberingSystem:a=null}=n,o=ne.fromOpts({locale:r,numberingSystem:a,defaultToEN:!0});if(!o.equals(s.locale))throw new Ee(`fromFormatParser called with a locale of ${o}, but the format parser was created for ${s.locale}`);const{result:l,zone:c,specificOffset:u,invalidReason:m}=s.explainFromTokens(e);return m?L.invalid(m):bt(l,c,n,`format ${s.format}`,e,u)}static get DATE_SHORT(){return us}static get DATE_MED(){return pr}static get DATE_MED_WITH_WEEKDAY(){return ki}static get DATE_FULL(){return gr}static get DATE_HUGE(){return Sr}static get TIME_SIMPLE(){return xr}static get TIME_WITH_SECONDS(){return vr}static get TIME_WITH_SHORT_OFFSET(){return wr}static get TIME_WITH_LONG_OFFSET(){return Ar}static get TIME_24_SIMPLE(){return Tr}static get TIME_24_WITH_SECONDS(){return br}static get TIME_24_WITH_SHORT_OFFSET(){return Nr}static get TIME_24_WITH_LONG_OFFSET(){return kr}static get DATETIME_SHORT(){return Ir}static get DATETIME_SHORT_WITH_SECONDS(){return Er}static get DATETIME_MED(){return jr}static get DATETIME_MED_WITH_SECONDS(){return Mr}static get DATETIME_MED_WITH_WEEKDAY(){return Ii}static get DATETIME_FULL(){return Or}static get DATETIME_FULL_WITH_SECONDS(){return Dr}static get DATETIME_HUGE(){return Cr}static get DATETIME_HUGE_WITH_SECONDS(){return Rr}}function Lt(t){if(L.isDateTime(t))return t;if(t&&t.valueOf&&lt(t.valueOf()))return L.fromJSDate(t);if(t&&typeof t=="object")return L.fromObject(t);throw new Ee(`Unknown datetime argument: ${t}, of type ${typeof t}`)}function Al(t,e){return t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!0,timeZone:e})}function Tl(t,e){try{const s=L.fromJSDate(t,{zone:"utc"}).setZone(e),n=s.toJSDate().toLocaleString("en-US",{timeZone:e,timeZoneName:"short"}).split(" ").pop()||void 0,r=s.toFormat("ZZ")||void 0;return{abbr:n,offset:r}}catch{return{}}}function bl(t){if(!t)return"-";try{const e=new Date(t),s=u=>String(u).padStart(2,"0"),n=s(e.getMonth()+1),r=s(e.getDate()),a=e.getFullYear(),o=s(e.getHours()),l=s(e.getMinutes()),c=s(e.getSeconds());return`${n}/${r}/${a} ${o}:${l}:${c}`}catch{return"-"}}function Zt(t,e="UTC",s=!1){if(!t)return"-";const n=L.fromISO(t,{zone:"utc"}).setZone(e);if(!n.isValid)return"-";const r=n.offsetNameShort,a=n.toFormat("ZZZZ"),o=r.startsWith("GMT")||r===a?a:`${r}/${a}`,l=s?"MM/dd/yyyy, hh:mm:ss.SSS a":"MM/dd/yyyy, hh:mm:ss a";return`${n.toFormat(l)} (${o})`}const Nl={Critical:"#FF3B30",High:"#FFB86A",Medium:"#FFCC00",Low:"#007AFF"},kl={Critical:"#FFE2E2",High:"#FF95004D",Medium:"#FEF9C2",Low:"#E0EDFF"};function pa({alerts:t,loading:e=!1,pageSize:s=10,total:n,currentPage:r,onAlertIdClick:a,onAlertView:o,onFilterChange:l,onPageChange:c,onRefetch:u,resetKey:m}){const f=en(),g=async k=>{try{const b=await f.mutateAsync({alertUniqueId:k.alertId??k.id,alertId:k.id,status:"Reopen",notes:"Reopened",modifiedBy:0});if(b?.responseStatus||b?.Success){const B=b?.Message||b?.data||"Alert reopened successfully.";Ne.toast.success(B)}else{const B=b?.errorMessage||b?.Message||"Failed to reopen alert";Ne.toast.error(B)}}catch{Ne.toast.error("Failed to reopen alert. Please try again.")}},p=[{title:"Severity",dataIndex:"priority",key:"priority",width:120,render:k=>i.jsx(h.Tag,{className:"px-[10px] py-[2px]",style:{border:`2px solid ${Nl[k]}`,backgroundColor:kl[String(k)]},children:k})},{title:"Timestamp",dataIndex:"timestamp",key:"timestamp",width:200,render:k=>bl(k)},{title:"Status",dataIndex:"statusType",key:"statusType",width:140},{title:"Description",dataIndex:"description",key:"description",render:(k,b)=>i.jsxs("div",{children:[i.jsx("a",{onClick:B=>{B.preventDefault(),a?.(b,{sourceTab:"archived"})},className:"inline-block mb-1 text-blue-600",children:b.alertNumber}),i.jsx("div",{className:"text-black/65",children:k})]})},{title:"Preview",key:"preview",width:100,align:"center",render:(k,b)=>i.jsx(hr,{record:b})},{title:"",key:"menu",width:60,align:"right",render:(k,b)=>i.jsx(h.Dropdown,{trigger:["click"],menu:{items:[{key:"reopen",label:"Reopen"}],onClick:({key:B})=>{B==="reopen"&&g(b)}},children:i.jsx(h.Button,{type:"text",icon:i.jsx(ht.MoreOutlined,{})})})}],x=l?t:(t||[]).filter(k=>{const b=hn(k.statusType||"");return Ai.some(B=>b.includes(hn(B)))});return i.jsx(Xs,{data:x,loading:e,pageSize:s,total:n,currentPage:r,columns:p,renderActions:void 0,onAlertIdClick:a,onAlertView:o,onFilterChange:l,onPageChange:c,onRefetch:u,resetKey:m,excludeCompleted:!1})}function Il({size:t=120,time:e,timeZone:s="America/New_York"}){const{hours:n,minutes:r,seconds:a}=d.useMemo(()=>{const f=new Intl.DateTimeFormat("en-US",{timeZone:s,hour:"numeric",minute:"numeric",second:"numeric",hour12:!1}).formatToParts(e);return{hours:parseInt(f.find(g=>g.type==="hour")?.value||"0",10),minutes:parseInt(f.find(g=>g.type==="minute")?.value||"0",10),seconds:parseInt(f.find(g=>g.type==="second")?.value||"0",10)}},[e,s]),o=a*6,l=r*6+a*.1,c=n%12*30+r*.5,u=t/2;return i.jsxs("div",{className:"relative rounded-full border border-gray-300 bg-white",style:{width:t,height:t},role:"img","aria-label":"Analog Clock",children:[[...Array(12)].map((m,f)=>{const g=f*30,p=6,x=u-4,k=x-p,b=(g-90)*(Math.PI/180),B=u+k*Math.cos(b),H=u+k*Math.sin(b),K=u+x*Math.cos(b),I=u+x*Math.sin(b);return i.jsx("svg",{className:"absolute inset-0",width:t,height:t,children:i.jsx("line",{x1:B,y1:H,x2:K,y2:I,stroke:"#9CA3AF",strokeWidth:f%3===0?2:1,strokeLinecap:"round"})},f)}),i.jsx("svg",{className:"absolute inset-0",width:t,height:t,style:{transform:`rotate(${c}deg)`},children:i.jsx("line",{x1:u,y1:u,x2:u,y2:u-t*.25,stroke:"#1F2937",strokeWidth:4,strokeLinecap:"round"})}),i.jsx("svg",{className:"absolute inset-0",width:t,height:t,style:{transform:`rotate(${l}deg)`},children:i.jsx("line",{x1:u,y1:u,x2:u,y2:u-t*.35,stroke:"#374151",strokeWidth:3,strokeLinecap:"round"})}),i.jsx("svg",{className:"absolute inset-0",width:t,height:t,style:{transform:`rotate(${o}deg)`},children:i.jsx("line",{x1:u,y1:u+t*.08,x2:u,y2:u-t*.38,stroke:"#EF4444",strokeWidth:1.5,strokeLinecap:"round"})}),i.jsx("div",{className:"absolute bg-gray-900 rounded-full",style:{width:8,height:8,left:u-4,top:u-4}})]})}function ga({label:t="USA",timeZone:e="America/New_York",updateIntervalMs:s=1e3,className:n}){const[r,a]=d.useState(new Date);d.useEffect(()=>{const u=setInterval(()=>a(new Date),s);return()=>clearInterval(u)},[s]);const o=d.useMemo(()=>Al(r,e),[r,e]),{abbr:l,offset:c}=d.useMemo(()=>Tl(r,e),[r,e]);return i.jsxs("div",{className:`flex items-center gap-3 ${n||""}`,children:[i.jsx(Il,{time:r,timeZone:e,size:80}),i.jsxs("div",{className:"flex flex-col items-baseline gap-1",children:[i.jsxs("div",{className:"flex items-center gap-2 text-sm text-gray-600",children:[i.jsx("span",{className:"uppercase",children:t}),l&&i.jsxs("span",{className:"p-2 rounded-md border text-[10px] leading-none text-gray-600 bg-gray-50",children:[l," ",c]})]}),i.jsx("div",{className:"text-2xl font-semibold text-gray-700 tracking-wide",children:o})]})]})}const{Text:El}=h.Typography;function jl({sortBy:t,onChange:e,showActions:s,onSave:n,onClear:r,saving:a}){return i.jsxs(h.Row,{gutter:[16,16],align:"middle",children:[i.jsx(h.Col,{xs:24,md:8,lg:5,children:i.jsxs(h.Space,{className:"w-full items-center",direction:"horizontal",size:12,children:[i.jsx(El,{className:"text-gray-600 whitespace-nowrap",children:"Sort By:"}),i.jsx(h.Select,{placeholder:"By Severity",value:t,onChange:o=>e({sortBy:o}),options:[{label:"By Severity",value:"By Severity"},{label:"By Created Date",value:"By Created Date"}],className:"w-full",style:{minWidth:"200px"}})]})}),i.jsx(h.Col,{xs:24,md:8,style:{alignSelf:"end"},children:s?i.jsxs(h.Space,{className:"w-full",direction:"horizontal",size:8,children:[i.jsx(h.Button,{onClick:r,disabled:a,children:"Clear"}),i.jsx(h.Button,{type:"primary",onClick:n,loading:a,children:"Save"})]}):null})]})}const _s=t=>i.jsxs(h.Tag,{children:[i.jsx(ht.PlusOutlined,{})," ",t.length," more"]}),{Text:et}=h.Typography;function Ml(t){const{selectedRule:e,setSelectedRule:s,ruleOptions:n,minsOptions:r,roleOptions:a,l1mins:o,setL1mins:l,l1role:c,setL1role:u,l2mins:m,setL2mins:f,l2role:g,setL2role:p,l3mins:x,setL3mins:k,l3role:b,setL3role:B,actions:H,setActions:K,thirdPartyIds:I,setThirdPartyIds:D,humanLoop:V,setHumanLoop:C,isAutoExpire:q,setAutoExpire:y,onClear:S,onSave:M,saving:re,onActionTypesLoaded:me}=t,{rules:j,config:A}=$e(),v=A.tenant==="schools",[E,T]=d.useState([]),[O,U]=d.useState([]),[Y,G]=d.useState(!1);d.useEffect(()=>{let ee=!1;return(async()=>{try{G(!0);const pe=await j.getLookups();if(ee||!pe||!Array.isArray(pe.actionTypes))return;const Te=pe.actionTypes.map($=>({label:$.name,value:String($.actionTypeId)}));T(Te),me&&me(pe.actionTypes);const fe=Array.isArray(pe.thirdParties)?pe.thirdParties.map($=>({label:$.thirdPartyName,value:$.thirdPartyIds??$.thirdPartyId})):[];U(fe)}catch(pe){console.error("Error loading lookups",pe)}finally{ee||G(!1)}})(),()=>{ee=!0}},[]);const _=typeof o=="number"||typeof c=="number",ie=typeof m=="number"||typeof g=="number",ce=typeof o=="number"||typeof c=="number"||typeof m=="number"||typeof g=="number"||typeof x=="number"||typeof b=="number"||Array.isArray(H)&&H.length>0||Array.isArray(I)&&I.length>0||!!V||!!q,ke=!!e&&ce&&!re;return i.jsxs(h.Spin,{spinning:!!re||Y,children:[i.jsxs(h.Row,{gutter:[16,16],align:"bottom",children:[i.jsx(h.Col,{xs:24,sm:12,md:8,lg:4,children:i.jsxs("div",{children:[i.jsx(et,{className:"text-gray-700 font-medium block mb-1",children:"Rules"}),i.jsx(h.Select,{placeholder:"Rules",value:e,onChange:s,options:n,className:"w-full"})]})}),i.jsx(h.Col,{xs:24,sm:12,md:8,lg:4,children:i.jsxs("div",{children:[i.jsxs(h.Row,{gutter:8,children:[i.jsx(h.Col,{span:10,children:i.jsx(et,{className:"text-gray-700 font-medium block mb-1",children:"Level 1 (mins)"})}),i.jsx(h.Col,{span:14,children:i.jsx(et,{className:"text-gray-700 font-medium block mb-1",children:"Escalate to"})})]}),i.jsxs(h.Row,{gutter:8,children:[i.jsx(h.Col,{span:10,children:i.jsx(h.Select,{className:"w-full",placeholder:"Mins",value:o,onChange:l,options:r})}),i.jsx(h.Col,{span:14,children:i.jsx(h.Select,{placeholder:"Escalate to",className:"w-full",value:c,onChange:u,options:a})})]})]})}),_&&i.jsx(h.Col,{xs:24,sm:12,md:8,lg:4,children:i.jsxs("div",{children:[i.jsxs(h.Row,{gutter:8,children:[i.jsx(h.Col,{span:10,children:i.jsx(et,{className:"text-gray-700 font-medium block mb-1",children:"Level 2 (mins)"})}),i.jsx(h.Col,{span:14,children:i.jsx(et,{className:"text-gray-700 font-medium block mb-1",children:"Escalate to"})})]}),i.jsxs(h.Row,{gutter:8,children:[i.jsx(h.Col,{span:10,children:i.jsx(h.Select,{className:"w-full",placeholder:"Mins",value:m,onChange:f,options:r})}),i.jsx(h.Col,{span:14,children:i.jsx(h.Select,{placeholder:"Escalate to",className:"w-full",value:g,onChange:p,options:a})})]})]})}),ie&&i.jsx(h.Col,{xs:24,sm:12,md:8,lg:4,children:i.jsxs("div",{children:[i.jsxs(h.Row,{gutter:8,children:[i.jsx(h.Col,{span:10,children:i.jsx(et,{className:"text-gray-700 font-medium block mb-1",children:"Level 3 (mins)"})}),i.jsx(h.Col,{span:14,children:i.jsx(et,{className:"text-gray-700 font-medium block mb-1",children:"Escalate to"})})]}),i.jsxs(h.Row,{gutter:8,children:[i.jsx(h.Col,{span:10,children:i.jsx(h.Select,{className:"w-full",placeholder:"Mins",value:x,onChange:k,options:r})}),i.jsx(h.Col,{span:14,children:i.jsx(h.Select,{placeholder:"Escalate to",className:"w-full",value:b,onChange:B,options:a})})]})]})}),i.jsx(h.Col,{xs:24,sm:12,md:8,lg:4,children:i.jsxs("div",{children:[i.jsx(et,{className:"text-gray-700 font-medium block mb-1",children:"Pick Actions"}),i.jsx(h.Select,{mode:"multiple",placeholder:"Select response actions",className:"w-full",value:H,onChange:K,options:E,maxTagCount:1,maxTagPlaceholder:_s})]})}),i.jsx(h.Col,{xs:24,sm:12,md:8,lg:4,children:i.jsxs("div",{children:[i.jsx(et,{className:"text-gray-700 font-medium block mb-1",children:"Notify"}),i.jsx(h.Select,{mode:"multiple",placeholder:"Notify",className:"w-full",value:I,onChange:D,options:O,maxCount:2,maxTagPlaceholder:_s})]})})]}),i.jsxs(h.Row,{gutter:[16,16],align:"bottom",className:"mt-4 items-center",children:[i.jsx(h.Col,{xs:24,sm:12,md:8,lg:7,children:i.jsxs("div",{className:"flex items-center h-full gap-8",children:[!v&&i.jsx(h.Checkbox,{checked:V,onChange:ee=>C(ee.target.checked),className:"w-full",children:"Human-In-The-Loop"}),i.jsx(h.Checkbox,{checked:q,onChange:ee=>y(ee.target.checked),className:"w-full",children:"Auto-expire in 5 minutes"})]})}),i.jsx(h.Col,{xs:24,sm:12,md:8,children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(h.Button,{onClick:S,children:"Clear"}),i.jsx(h.Button,{type:"primary",onClick:M,loading:!!re,disabled:!ke,children:"Save"})]})})]})]})}function Ol({entries:t,userRoles:e,onEdit:s,loading:n}){const{config:r}=$e(),a=r.tenant==="schools",o=new Map(e.map(c=>[c.userRoleId,c.userRoleName])),l=c=>c.map(u=>o.get(u)||String(u)).join(", ");return i.jsx(h.Table,{rowKey:"id",dataSource:t,pagination:{pageSize:10,showSizeChanger:!0,showTotal:(c,u)=>`${u[0]}-${u[1]} of ${c} items`},loading:n,columns:[{title:"Rule",dataIndex:"ruleOrSeverityLabel",key:"rule"},{title:"Level 1",key:"l1",render:(c,u)=>i.jsxs("span",{children:[u.l1.minutes?`Action taken in (${u.l1.minutes} Mins)`:"No Action taken in 0 Min",u.l1.roles?.length?`, Escalate to (${l(u.l1.roles)})`:""]})},{title:"Level 2",key:"l2",render:(c,u)=>i.jsxs("span",{children:[u.l2.minutes?`Action taken in (${u.l2.minutes} Mins)`:"No Action taken in 0 Min",u.l2.roles?.length?`, Escalate to (${l(u.l2.roles)})`:""]})},{title:"Level 3",key:"l3",render:(c,u)=>i.jsxs("span",{children:[u.l3.minutes?`Action taken in (${u.l3.minutes} Mins)`:"No Action taken in 0 Min",u.l3.roles?.length?`, Escalate to (${l(u.l3.roles)})`:""]})},{title:"Pick Actions",key:"actionsCol",render:(c,u)=>u.actions?.length?u.actions.join(", "):"-"},{title:"Notify",key:"notify",render:(c,u)=>u.notify?.length?u.notify.join(", "):"-"},...a?[]:[{title:"Human-In-The-Loop",key:"humanLoop",render:(c,u)=>u.humanLoop?"Yes":"No"}],{title:"Auto Expire",key:"isAutoExpire",render:(c,u)=>u.isAutoExpire?"Yes":"No"},{title:"Actions",key:"ops",render:(c,u)=>i.jsx(h.Button,{type:"text",onClick:()=>s(u.id),children:i.jsx(ht.EditOutlined,{})})}]})}const{Title:Dl,Text:Us}=h.Typography;function Sa({userRoles:t,rules:e,rawRules:s}){const{rules:n}=$e(),[r,a]=d.useState(!1),[o,l]=d.useState(!1),[c,u]=d.useState(s),[m,f]=d.useState(),[g,p]=d.useState([]),x=d.useMemo(()=>t.map(I=>({label:I.userRoleName,value:I.userRoleId})),[t]),k=d.useMemo(()=>(e||[]).map(I=>({label:I.Name||"-",value:I.RuleId||I.Name||""})),[e]),b=d.useMemo(()=>(e||[]).map((I,D)=>({key:I.RuleId||I.Name||String(D),ruleName:I.Name||"-",ruleDesc:I.Description||""})),[e]);d.useEffect(()=>{let I=!1;return(async()=>{try{a(!0);const D=await n.getRules();I||u(Array.isArray(D)?D:[])}catch{!I&&Array.isArray(s)&&u(s)}finally{I||a(!1)}})(),()=>{I=!0}},[]),d.useEffect(()=>{!c&&Array.isArray(s)&&u(s)},[s]),d.useEffect(()=>{if(!m||!Array.isArray(c)){p([]);return}const I=c.find(V=>V?.ruleId===m||V?.RuleId===m||V?.ruleName===m),D=I?.userRoleIds??I?.UserRoleIds;p(Array.isArray(D)?D:[])},[m,c]);const B=d.useMemo(()=>{if(!Array.isArray(c)||!c.length)return{};const I={};for(const D of b){const V=c.find(y=>y?.ruleId===D.key||y?.ruleName===D.key||y?.RuleId===D.key||y?.ruleName===D.ruleName||y?.Name===D.ruleName),C=V?.userRoleIds??V?.UserRoleIds,q=Array.isArray(C)?C:[];q.length&&(I[D.key]=q)}return I},[c,b]),H=()=>{f(void 0),p([])},K=async()=>{if(!m){Ne.toast.info("Please select a rule");return}try{l(!0);const I=Array.isArray(c)?c.find(y=>y?.ruleId===m||y?.RuleId===m||y?.ruleName===m):void 0,D=typeof I?.recordId=="number"?I.recordId:I?.ruleId||I?.RuleId||void 0;if(!I||!D)throw new Error(`Unable to find rule identifier for rule ${m}`);const V=g.map(y=>{const S=t.find(M=>M.userRoleId===y);return{id:y,name:S?.userRoleName??String(y)}}),C={...I,ruleId:m,userRoleIds:g,userRoles:V},q=await n.updateRule(D,C);if(!q?.responseStatus&&!q?.Success&&!q?.success)Ne.toast.error(q?.errorMessage||q?.Message||"Error saving Alert Assignment");else{Ne.toast.success("Alert assignment saved"),f(void 0),p([]);try{const y=await n.getRules();u(Array.isArray(y)?y:[])}catch(y){console.error("Failed to refresh rules after save",y)}}}catch(I){console.error("Failed to save alert assignment",I),Ne.toast.error(I instanceof Error?I.message:"Error saving Alert Assignment")}finally{l(!1)}};return i.jsxs("div",{className:"w-full",children:[i.jsx(Dl,{level:4,className:"!mb-4",children:"Alert Assignment"}),i.jsx(h.Spin,{spinning:o||r,children:i.jsxs(h.Row,{gutter:[16,16],align:"bottom",className:"mb-6",children:[i.jsx(h.Col,{xs:24,sm:12,md:8,lg:6,children:i.jsxs("div",{children:[i.jsx(Us,{className:"text-gray-700 font-medium block mb-1",children:"Rules"}),i.jsx(h.Select,{placeholder:"Rules",value:m,onChange:f,options:k,className:"w-full"})]})}),i.jsx(h.Col,{xs:24,sm:12,md:8,lg:8,children:i.jsxs("div",{children:[i.jsx(Us,{className:"text-gray-700 font-medium block mb-1",children:"Alert Notification To"}),i.jsx(h.Select,{mode:"multiple",placeholder:"Select roles",className:"w-full",value:g,onChange:p,options:x,maxTagCount:1,maxTagPlaceholder:_s})]})}),i.jsx(h.Col,{xs:24,sm:12,md:8,lg:4,children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(h.Button,{onClick:H,disabled:o,children:"Cancel"}),i.jsx(h.Button,{type:"primary",onClick:K,loading:o,disabled:o||!m,children:"Save"})]})})]})}),i.jsx(h.Table,{rowKey:"key",dataSource:b,loading:r,pagination:{pageSize:10,showSizeChanger:!0,showTotal:(I,D)=>`${D[0]}-${D[1]} of ${I} items`},columns:[{title:"Rule Name",dataIndex:"ruleName",key:"ruleName"},{title:"Description",dataIndex:"ruleDesc",key:"ruleDesc"},{title:"Alert Notification To",key:"assign",render:(I,D)=>{const V=B[D.key]??[];return V.length?i.jsx("div",{className:"flex flex-wrap gap-1",children:V.map(C=>{const q=t.find(y=>y.userRoleId===C);return i.jsx(h.Tag,{children:q?.userRoleName??String(C)},C)})}):i.jsx(Us,{type:"secondary",children:"—"})}}]})]})}const{Title:Xn}=h.Typography;function Ls(t){return!t||typeof t!="object"?{}:{level1UserRoleId:t.level1UserRoleId??t.Level1UserRoleId,level1PostAssistTime:t.level1PostAssistTime??t.Level1PostAssistTime,level2UserRoleId:t.level2UserRoleId??t.Level2UserRoleId,level2PostAssistTime:t.level2PostAssistTime??t.Level2PostAssistTime,level3UserRoleId:t.level3UserRoleId??t.Level3UserRoleId,level3PostAssistTime:t.level3PostAssistTime??t.Level3PostAssistTime,escalationSettingsActionTypeIds:t.escalationSettingsActionTypeIds??t.EscalationSettingsActionTypeIds,thirdPartyId:t.thirdPartyId??t.ThirdPartyId??t.ThirdPartyIds,humanLoop:t.humanLoop??t.HumanLoop,isAutoExpire:t.isAutoExpire??t.IsAutoExpire}}function xa({severities:t,rules:e,userRoles:s,rawRules:n,loadingRules:r,onSave:a}){const{rules:o,alerts:l}=$e(),[c,u]=d.useState("By Severity"),[m,f]=d.useState("By severity"),[g,p]=d.useState("By Severity"),[x,k]=d.useState(!1),[b,B]=d.useState(!1),[H,K]=d.useState(!1),[I,D]=d.useState(null),[V,C]=d.useState("rules"),[q,y]=d.useState(),[S,M]=d.useState(),[re,me]=d.useState(),[j,A]=d.useState(),[v,E]=d.useState(),[T,O]=d.useState(),[U,Y]=d.useState(),[G,_]=d.useState(),[ie,ce]=d.useState([]),[ke,ee]=d.useState([]),[pe,Te]=d.useState(!1),[fe,$]=d.useState(!1),[P,he]=d.useState({}),[oe,Re]=d.useState({}),[we,He]=d.useState(s||[]),[Ie,xe]=d.useState([]),[Ct,ct]=d.useState(!1),[gt,Je]=d.useState(!1),[Ue,St]=d.useState(n||[]);d.useEffect(()=>{n&&n.length&&St(n)},[n]),d.useEffect(()=>{if(!Ue||!Ue.length)return;const R=Object.keys(P).length>0||Object.keys(oe).length>0;if(Ie.length&&!R)return;const te=Ue.map((J,W)=>{const le=e.find(ye=>ye.RuleId===(J.ruleId||J.ruleName))?.Name||J.ruleName||J.Name||"-",Z=Ls(J.escalationSettings),se=typeof Z.level1UserRoleId=="number"&&Z.level1UserRoleId>0?[Z.level1UserRoleId]:[],Ke=typeof Z.level2UserRoleId=="number"&&Z.level2UserRoleId>0?[Z.level2UserRoleId]:[],Rt=typeof Z.level3UserRoleId=="number"&&Z.level3UserRoleId>0?[Z.level3UserRoleId]:[],z=(Array.isArray(Z.escalationSettingsActionTypeIds)?Z.escalationSettingsActionTypeIds:[]).map(ye=>P[ye]||String(ye)),Ae=(Array.isArray(Z.thirdPartyId)?Z.thirdPartyId:[]).map(ye=>oe[ye]||String(ye)),Me=typeof Z.humanLoop=="boolean"?Z.humanLoop:null,ue=typeof Z.isAutoExpire=="boolean"?Z.isAutoExpire:null;return{id:String(J.ruleId||J.ruleName||W),ruleOrSeverityLabel:le,l1:{minutes:Z.level1PostAssistTime??void 0,roles:se},l2:{minutes:Z.level2PostAssistTime??void 0,roles:Ke},l3:{minutes:Z.level3PostAssistTime??void 0,roles:Rt},actions:z,notify:Ae,humanLoop:Me,isAutoExpire:ue}});xe(te)},[Ue,e,P,oe]);const xt=d.useMemo(()=>t.map(R=>({label:R.DisplayName,value:R.SeverityId})),[t]),be=d.useMemo(()=>e.map(R=>({label:R.Name,value:R.RuleId})),[e]),vt=d.useMemo(()=>we.map(R=>({label:R.userRoleName,value:R.userRoleId})),[we]),vs=d.useMemo(()=>[1,3,5,10,15,20,30,45,60].map(R=>({label:`${R}`,value:R})),[]);d.useEffect(()=>{let R=!1;async function te(){try{K(!0),D(null);const J=await l.getAdminSettings();if(!R&&J){const W=sr(J.sortBy);u(W),p(W),k(!1)}}catch(J){if(!R){const W=J instanceof Error?J.message:"Failed to load admin settings";D(W)}}finally{R||K(!1)}}return te(),()=>{R=!0}},[]),d.useEffect(()=>{if(!S)return;const R=le=>{const Z=Number(le);return!isNaN(Z)&&Z>0?Z:void 0},te=le=>{const Z=Number(le);return!isNaN(Z)&&Z>0?Z:void 0},J=(Ue||[]).find(le=>le?.ruleId===S||le?.ruleName===S||le?.RuleId===S),W=Ls(J?.escalationSettings);if(W&&typeof W=="object"){me(te(W.level1PostAssistTime)),A(R(W.level1UserRoleId)),E(te(W.level2PostAssistTime)),O(R(W.level2UserRoleId)),Y(te(W.level3PostAssistTime)),_(R(W.level3UserRoleId));const le=Array.isArray(W.escalationSettingsActionTypeIds)?W.escalationSettingsActionTypeIds:[];ce(le.map(Z=>String(Z))),ee(Array.isArray(W.thirdPartyId)?W.thirdPartyId:[]),Te(!!W.humanLoop),$(!!W.isAutoExpire)}},[V,S,Ue]);const ws=async()=>{try{Je(!0);const R=await o.getRules(),te=Array.isArray(R)?R:Array.isArray(R?.data)?R.data:[];St(te);const J=te.map((W,le)=>{const Z=e.find(ye=>ye.RuleId===(W.ruleId||W.ruleName))?.Name||W.ruleName||W.Name||"-",se=Ls(W.escalationSettings??W.EscalationSettings),Ke=typeof se.level1UserRoleId=="number"&&se.level1UserRoleId>0?[se.level1UserRoleId]:[],Rt=typeof se.level2UserRoleId=="number"&&se.level2UserRoleId>0?[se.level2UserRoleId]:[],w=typeof se.level3UserRoleId=="number"&&se.level3UserRoleId>0?[se.level3UserRoleId]:[],ae=(Array.isArray(se.escalationSettingsActionTypeIds)?se.escalationSettingsActionTypeIds:[]).map(ye=>P[ye]||String(ye)),Me=(Array.isArray(se.thirdPartyId)?se.thirdPartyId:[]).map(ye=>oe[ye]||String(ye)),ue=typeof se.humanLoop=="boolean"?se.humanLoop:null;return{id:String(W.ruleId||W.ruleName||le),ruleOrSeverityLabel:Z,l1:{minutes:se.level1PostAssistTime??void 0,roles:Ke},l2:{minutes:se.level2PostAssistTime??void 0,roles:Rt},l3:{minutes:se.level3PostAssistTime??void 0,roles:w},actions:ae,notify:Me,humanLoop:ue}});xe(J)}catch(R){console.error("Failed to refetch entries",R)}finally{Je(!1)}};d.useEffect(()=>{let R=!1;return(async()=>{try{const te=await o.getLookups();if(R||!te)return;const J={};if(Array.isArray(te.thirdParties))for(const le of te.thirdParties){const Z=le.thirdPartyIds??le.thirdPartyId;typeof Z=="number"&&(J[Z]=le.thirdPartyName)}Re(J);const W=Array.isArray(te.userRoles)?te.userRoles.map(le=>({userRoleId:le.userRoleId??le.id,userRoleName:le.userRoleName??le.name})):[];R||He(W.length?W:s||[])}catch(te){console.error("Error loading lookups",te)}})(),()=>{R=!0}},[]);const dn=async()=>{B(!0);try{const R=await l.setAdminSettings({sortBy:c,groupBy:"string"});R?.responseStatus&&R?.data&&Ne.toast.success(R.data),p(c),k(!1)}catch(R){console.error("Error saving admin settings",R)}finally{B(!1)}},As=()=>{u(g),k(!1)},Ts=async()=>{ct(!0),a?.({ruleId:S,levels:[{minutes:re,role:j},{minutes:v,role:T},{minutes:U,role:G}],actions:ie,thirdPartyIds:ke,humanLoop:pe,isAutoExpire:fe});try{if(S){const te=Array.isArray(ie)?ie.map(se=>Number.isNaN(Number(se))?se:Number(se)):[],J=(Ue||[]).find(se=>se?.ruleId===S||se?.ruleName===S||se?.RuleId===S),W=typeof J?.recordId=="number"?J.recordId:J?.ruleId||J?.RuleId||void 0;if(!J||!W){Ne.toast.error("Unable to find rule identifier for update");return}const le={...J,escalationSettings:{level1UserRoleId:j??0,level1PostAssistTime:re??0,level2UserRoleId:T??0,level2PostAssistTime:v??0,level3UserRoleId:G??0,level3PostAssistTime:U??0,escalationSettingsActionTypeIds:te,thirdPartyId:Array.isArray(ke)?ke:[],humanLoop:pe,isAutoExpire:fe}},Z=await o.updateRule(W,le);Z?.responseStatus||Z?.Success||Z?.success?(Ne.toast.success("Escalation settings saved"),await ws(),M(void 0),me(void 0),A(void 0),E(void 0),O(void 0),Y(void 0),_(void 0),ce([]),ee([]),Te(!1),$(!1)):Ne.toast.error(Z?.errorMessage||Z?.Message||"Error saving Escalation Settings")}}catch(te){console.error("Error saving escalation settings",te)}finally{ct(!1)}},bs=()=>{u("By Severity"),f("By severity"),C("rules"),y(void 0),M(void 0),me(void 0),A(void 0),E(void 0),O(void 0),Y(void 0),_(void 0),ce([]),ee([]),Te(!1),$(!1)};return i.jsxs("div",{className:"w-full",children:[i.jsxs("div",{className:"mb-6",children:[i.jsx(Xn,{level:4,className:"!mb-2",children:"Admin Settings"}),i.jsxs(h.Spin,{spinning:H,children:[I?i.jsxs("div",{className:"text-sm text-red-600 mb-2",children:["Failed to load settings: ",I]}):null,i.jsx(jl,{sortBy:c,groupBy:m,onChange:R=>{R.sortBy&&(u(R.sortBy),k(!0)),R.groupBy&&(f(R.groupBy),k(!0))},showActions:x,onSave:dn,onClear:As,saving:b})]})]}),i.jsx(h.Divider,{className:"my-6"}),i.jsxs("div",{children:[i.jsx(Xn,{level:4,className:"!mb-4",children:"Escalation Settings"}),i.jsx(Ml,{escBasis:V,setEscBasis:C,selectedSeverity:q,setSelectedSeverity:y,selectedRule:S,setSelectedRule:M,severityOptions:xt,ruleOptions:be,minsOptions:vs,roleOptions:vt,l1mins:re,setL1mins:me,l1role:j,setL1role:A,l2mins:v,setL2mins:E,l2role:T,setL2role:O,l3mins:U,setL3mins:Y,l3role:G,setL3role:_,actions:ie,setActions:ce,thirdPartyIds:ke,setThirdPartyIds:ee,humanLoop:pe,setHumanLoop:Te,onClear:bs,onSave:Ts,saving:Ct,onActionTypesLoaded:R=>{const te={};for(const J of R)typeof J.actionTypeId=="number"&&(te[J.actionTypeId]=J.name);he(te)},isAutoExpire:fe,setAutoExpire:$})]}),i.jsx(h.Divider,{className:"my-6"}),i.jsx(Ol,{entries:Ie,userRoles:we,loading:gt||r,onEdit:R=>{C("rules");const te=Ie.find(W=>W.id===R),J=e.find(W=>W.RuleId===R)||(te?e.find(W=>W.Name===te.ruleOrSeverityLabel):void 0);M(J?J.RuleId:R)}}),i.jsx(h.Divider,{className:"my-6"}),i.jsx(Sa,{userRoles:we,rules:e,rawRules:n}),i.jsx(h.Divider,{})]})}const{Title:er,Text:as}=h.Typography;function Cl({severities:t,rules:e,onSave:s,onCancel:n}){const{rules:r,alerts:a}=$e(),o=[{label:"By Severity",value:"By Severity"},{label:"By Created Date",value:"By Created Date"}],[l,c]=d.useState("By Severity"),[u,m]=d.useState(new Set),[f,g]=d.useState(null),[p,x]=d.useState(null),[k,b]=d.useState({inApp:!1,sms:!1,email:!1}),[B,H]=d.useState([]),[K,I]=d.useState(!0),[D,V]=d.useState(!1);d.useEffect(()=>{let y=!1;return(async()=>{try{const S=await a.getPreferenceSettings();if(y||!S)return;b({inApp:!!S.inApp,sms:!!S.sms,email:!!S.email});const M=sr(S.sortBy);c(M==="By Created Date"?"By Created Date":"By Severity"),g(Sn(S.doNotDisturbStart)),x(Sn(S.doNotDisturbEnd)),Array.isArray(S.anomalyIds)&&m(new Set(S.anomalyIds.map(re=>String(re))))}catch(S){console.error("Error in loading my preferences: ",S)}})(),()=>{y=!0}},[]),d.useEffect(()=>{let y=!1;return(async()=>{try{I(!0);const S=await r.getLookups();if(y||!S)return;const M=Array.isArray(S.anomalies)?S.anomalies:[];H(M)}catch(S){console.error("Failed to load anomalies lookups",S)}finally{y||I(!1)}})(),()=>{y=!0}},[]);const C=y=>{m(S=>{const M=new Set(S);return M.has(y)?M.delete(y):M.add(y),M})},q=async()=>{s?.({sortBy:l,subscribedRuleIds:Array.from(u),dnd:{from:f,to:p},channels:k});try{V(!0);const y=f?f.format?.("HH:mm:ss")??"00:00:00":"00:00:00",S=p?p.format?.("HH:mm:ss")??"00:00:00":"00:00:00",M=Array.from(u).map(me=>Number(me)).filter(me=>Number.isFinite(me)),re=await a.setPreferenceSettings({anomalyIds:M,doNotDisturbStart:y,doNotDisturbEnd:S,inApp:!!k.inApp,sms:!!k.sms,email:!!k.email,sortBy:l});re?.responseStatus&&Ne.toast.success(re?.data||"Preferences updated successfully.")}catch(y){console.error("Error in saving my preferences: ",y)}finally{V(!1)}};return i.jsxs("div",{className:"w-full",children:[i.jsx(h.Row,{gutter:[16,16],align:"middle",className:"mb-4",children:i.jsx(h.Col,{xs:24,md:8,children:i.jsxs(h.Space,{direction:"horizontal",size:12,className:"w-full items-center",children:[i.jsx(as,{className:"text-gray-600",children:"Sort By:"}),i.jsx(h.Select,{className:"w-[240px]",value:l,options:o,onChange:c})]})})}),i.jsxs("div",{className:"mb-4",children:[i.jsx(er,{level:5,className:"!mb-2",children:"Anomalies"}),K?i.jsx("div",{className:"py-4",children:i.jsx(h.Spin,{})}):i.jsx(h.Space,{direction:"vertical",size:10,className:"w-full",children:(Array.isArray(B)?B:[]).map(y=>{const S=String(y.recordId),M=y.anomalyName;return i.jsx(h.Checkbox,{checked:u.has(S),onChange:()=>C(S),children:M},S)})})]}),i.jsxs("div",{className:"mb-4",children:[i.jsx(er,{level:5,className:"!mb-2",children:"Notification Timing & Channels"}),i.jsx(h.Row,{gutter:[16,16],align:"middle",className:"mb-3",children:i.jsx(h.Col,{xs:24,md:12,children:i.jsxs(h.Space,{direction:"horizontal",size:12,className:"w-full items-center",children:[i.jsx(as,{children:"Do Not Disturb mode:"}),i.jsxs(h.Space,{size:12,className:"w-full",children:[i.jsxs(h.Space,{direction:"horizontal",size:8,className:"items-center",children:[i.jsx(as,{children:"From"}),i.jsx(h.TimePicker,{value:f,onChange:y=>g(y),format:"HH:mm"})]}),i.jsxs(h.Space,{direction:"horizontal",size:8,className:"items-center",children:[i.jsx(as,{children:"To"}),i.jsx(h.TimePicker,{value:p,onChange:y=>x(y),format:"HH:mm"})]})]})]})})}),i.jsxs(h.Row,{gutter:[24,12],children:[i.jsx(h.Col,{children:i.jsx(h.Checkbox,{checked:k.inApp,onChange:y=>b({...k,inApp:y.target.checked}),children:"In-app"})}),i.jsx(h.Col,{children:i.jsx(h.Checkbox,{checked:k.sms,onChange:y=>b({...k,sms:y.target.checked}),children:"SMS"})}),i.jsx(h.Col,{children:i.jsx(h.Checkbox,{checked:k.email,onChange:y=>b({...k,email:y.target.checked}),children:"Email"})})]})]}),i.jsx(h.Divider,{}),i.jsxs(h.Space,{className:"gap-3",children:[i.jsx(h.Button,{onClick:n,disabled:D,children:"Cancel"}),i.jsx(h.Button,{type:"primary",onClick:q,loading:D,children:"Save"})]})]})}function va({severities:t,rules:e,userRoles:s,rawRules:n,loadingRules:r}){return i.jsx("div",{className:"w-full",children:i.jsx(xa,{severities:t,rules:e,userRoles:s,rawRules:n,loadingRules:r})})}const Rl="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAIZSURBVHgBnZW/b9NAFMe/z3H6i1ZNJUBFQsL/QQkLCFBtRhhKF1ibhBmpXbtgFlYqsTG0gRGWwgAjMb8EYmjYGN0pCCrVVaX+SBxf37PiqHWcOu5Xsux79+6j77vz3RH66IbdsDTQPCFngmBwqMCPBwVXoe204Fd/2ZfrSWMpHrDshtGCvsY9FlKkFNYD+Es/7EtuX+itp1sLnLrScTWoPMYsfnty/lUPtAOs4syiUgQOoWHJpG9kdBiX11Z+UaZCk1YT+vOzACuzYxgf7hZbyBGvhTi9af+7SkQbyKi7M8N4ZJ5D+eU2dg9UN07KvyNOS8io6UkNFXMMj1/vnACKAuTmNXZpIqME+LF+iIbX7ukjkClODWTQw+ujuGYMYfXzXnICbxSBDrxAUvYDhkrZp6ggUC8+sDI7mpj9YmESb3/uJ5Z9TJ5A3eORvzsBpgs6lufGT2TKPNY3fbxh6Knis0FTSjnx+LP3u5DJicDi/t7MCFadPaRJQTl02/5vKcKnpITluYkwrWjksebs48Pvg3SoUkXtq32hxt+1pITI8Zc/zcGACN59ty/WdWnklV5ukZ+49wU8MUJIF3mBGlqUr3Dv1+wpl20v9UuP75pElyrgc3XK7UJFbLvK4DJiv9ggDmWcjO9G4imWvW00yV/hjvtpOFnpQOVLkcO+0EhyevGrROG1ol1hREFc8ZGxyddIje+v9c4i9+gI5z7MozLxclgAAAAASUVORK5CYII=",Ul="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAKeSURBVHgBjVVdbtpAEJ5ZmygPfTBSaVWpUt0bwFuURgJOUG5QeoLACbw+QeAEwA3SGxgJokh9CDeI+xSpTRU/Imw8nbFZx6QQGAl5d2fm229+dkDYI2f6oaUAOwhWExBcPnL4FwFBSLCexpCMf+qPi12++PKgpR/cGOwRa1pwQIjgOoWkf6s/hOVzVd588R+/xWjf5YAY8Y0+ErQrZFfnXg3lK3uGm7A+RISOxfbit5NprqBxxgBoeEIVHehqtI9lSz+5McaaITaA2J17bycFaBayMOS8IaT+zHuv4Ui58P9oAvB4Ga0paUgqbFGswL5idIcIx3P9DCiXrQB7iJawcTiCkMMIUlj7Jo8zr6Yv/EfRXXIqRnzUxnP9u46Id8Q5Sslq3+pqWErHAPKqvxROC/ZMuJwKJ8bkPouUkrYUqgt5IgMDKAxfAYT8nAZnmR2A5J47YSjrFKyOYpZN2SiIJ8YjRqVfASyAFVg9s2F2gXwRsClMXdnYcFpq5PyiQ8KEilaywc79+aEow2i7fdCF46SIpuTvCGi2kWSXjCM4QqS4Zl3yjwQ0UySwrBfGRJNjQKW4ZrmEpL45CxUDTGWdgmoZgxOoDA6zxYgr7ZudhWk3x6Sp4kl0nZmgujQhcH5Cvqy/Hxi5hdL+dgsWxR2rma4FkLeDw+PMM243+t2YB0jDDI9nMBquyWqI3tjmLYguQfqDzxebty/DIcnePr9jfePVfDhSzv2/Hs8LAY3kMmFfTCl+rl3uu1GWF6Jx+X3vkpa+58jeeNyXvY3Pd8N+a0hvgK9ge3hMTmG5CPTnSICWcFpXaDfZUcAck99yOnZM/id3hcmAFV/hgEilU6p0TcH2gpZYS98xc/kXUJ8YImPFzfeLh0cgXbMp8n/yD3ySPZSK0MWKAAAAAElFTkSuQmCC";function Yt(){const{config:t}=$e();return{timeZoneDetails:d.useMemo(()=>{const s=t.timeZone||Intl.DateTimeFormat().resolvedOptions().timeZone;return{timeZoneUniqueId:"",ianaTimeZoneId:s,timeZoneName:s,offset:""}},[t.timeZone]),loading:!1}}function Ll(t){const e=(t.status||"").toLowerCase()==="completed"?i.jsx("img",{src:Rl,alt:"completed",style:{width:20,height:20}}):i.jsx("img",{src:Ul,alt:"pending",style:{width:20,height:20}});return{title:i.jsxs("div",{className:"flex flex-col gap-0 min-w-0",children:[i.jsxs("div",{className:"flex flex-col",children:[i.jsx("span",{className:"block text-sm break-words mb-1 overflow-visible whitespace-normal",children:i.jsx("b",{children:t.title})}),t.description?i.jsx("span",{className:"text-gray-500 text-xs",children:t.description}):null]}),t.timestamp?i.jsx("span",{className:"text-gray-500 text-xs",children:t.timestamp}):null]}),icon:e,description:null}}function Fl({data:t}){const{timeZoneDetails:e}=Yt();return i.jsx("div",{className:"w-full",children:i.jsx(h.Tabs,{type:"card",items:[{key:"action",label:"Action Taken",children:i.jsxs("div",{className:"w-full",style:{maxHeight:"50vh",overflowY:"auto"},children:[i.jsx(h.Card,{className:"mb-4 rounded-md p-4",bordered:!0,children:i.jsxs("div",{className:"grid grid-cols-4 gap-6 text-xs",children:[i.jsxs("div",{className:"flex flex-col gap-1",children:[i.jsx("span",{className:"text-gray-500",children:"Alert ID"}),i.jsx("span",{className:"text-black",children:t.summary.alertNumber})]}),i.jsxs("div",{className:"flex flex-col gap-1",children:[i.jsx("span",{className:"text-gray-500",children:"Severity"}),i.jsx("span",{className:"text-black",children:t.summary.severity})]}),i.jsxs("div",{className:"flex flex-col gap-1",children:[i.jsx("span",{className:"text-gray-500",children:"Location"}),i.jsx("span",{className:"text-black",children:t.summary.location})]})]})}),i.jsxs(h.Card,{className:"rounded-md p-4",bordered:!0,children:[i.jsx("div",{className:"flex items-center justify-between",children:i.jsx("h4",{className:"text-sm text-black font-medium",children:"Response Timeline/ Audit trail/log"})}),i.jsx("div",{className:"mt-2",children:i.jsx(h.Steps,{direction:"vertical",size:"small",current:1,items:(t.timeline||[]).map(Ll)})})]})]})},{key:"notification",label:"Notification Sent",children:i.jsxs("div",{className:"grid grid-cols-2 gap-4",style:{maxHeight:"50vh",overflowY:"auto"},children:[(t.notifications||[]).map((s,n)=>i.jsxs(h.Card,{className:"rounded-md p-4",bordered:!0,children:[i.jsxs("div",{className:"flex items-start justify-between",children:[i.jsxs("div",{className:"flex flex-col",children:[i.jsx("h4",{className:"text-sm text-black font-medium",children:s.channelLabel}),i.jsx("span",{className:"text-xs text-gray-500 mt-1",children:Zt(s.sentAt,e?.ianaTimeZoneId)})]}),i.jsxs("span",{className:"text-[11px] px-2 py-1 rounded-full bg-green-50 text-green-700 border border-green-200",children:[s.delivered,"/",s.total," Delivered"]})]}),i.jsxs("div",{className:"mt-4 text-xs",children:[i.jsxs("div",{className:"text-black",children:[" ",s.messageTitle]}),s.messageBody?i.jsx("div",{className:"text-gray-600",children:s.messageBody}):null]}),i.jsxs("div",{className:"mt-4",children:[i.jsxs("div",{className:"text-xs text-black font-medium",children:["Recipients (",s.total,")"]}),i.jsx("div",{className:"mt-2 flex flex-col gap-3 text-xs",children:(s.recipients||[]).map((r,a)=>{const o=String(r?.notificationReceipientType||"").toLowerCase()==="EscalationNotification".toLowerCase();return i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"flex flex-col",children:[i.jsxs("span",{className:"text-black",children:[r.name," -"," ",i.jsx("span",{style:{color:o?"#FF3B30":"#FFB86A"},children:o?"Escalation Notification":"Alert Notification"})]}),i.jsxs("span",{className:"text-gray-500",children:[r.role," . ",r.phone]})]}),i.jsx("span",{className:`text-[11px] px-3 py-[2px] rounded ${r.status==="Delivered"?"bg-green-50 text-green-700 border border-green-200":"bg-red-50 text-red-700 border border-red-200"}`,children:r.status})]},a)})})]})]},n)),t?.notifications?.length?null:i.jsx("span",{className:"text-gray-500 text-xs",children:"No notifications."})]})}]})})}const $l=({alertId:t,id:e,priority:s,spaceName:n,alertNumber:r,statusHistory:a,notifGroups:o})=>{const l={alertId:t??String(e??""),incidentId:"-",severity:s||"",location:n||"",alertNumber:r??""},{timeZoneDetails:c}=Yt(),u=a?.length?a.map(f=>{const g=(f?.status||f?.eventStatus||"").toLowerCase()==="completed"?"Completed":"Inprogress",p=f?.createdDate?Zt(f.createdDate,c?.ianaTimeZoneId):f?.timestamp?Zt(f.timestamp,c?.ianaTimeZoneId):"";return{status:g,title:f?.status||f?.eventStatus||"Status Update",description:f?.description||f?.actionNotes||"",timestamp:p}}):[],m={summary:l,timeline:u,notifications:o??[]};return i.jsx(Fl,{data:m})},Pl=({url:t,alt:e,isLoading:s,priority:n,detections:r,onLoadSuccess:a,onError:o})=>{const{imageRef:l,dimensions:c,onLoad:u}=ur(),m=d.useMemo(()=>cr(r,c.naturalWidth,c.naturalHeight,c.renderedWidth,c.renderedHeight),[r,c]),f=d.useMemo(()=>m.map(g=>({...g,label:g.personName||""})),[m]);return i.jsxs("div",{style:{position:"relative",display:"inline-block"},children:[i.jsx("img",{ref:l,src:t,alt:e,className:`max-w-full max-h-[90vh] object-contain rounded-lg shadow-lg transition-opacity duration-200 ${s?"opacity-0":"opacity-100"}`,onLoad:()=>{u(),a()},onError:o}),i.jsx(lr,{boxes:f,priority:n})]})},Wl=({items:t})=>{const{timeZoneDetails:e}=Yt(),s=a=>a.replace(/([a-z])([A-Z])/g,"$1 $2"),r=(()=>{if(!t?.length||t.length<2)return null;const a=new Date(t[0].timeStamp).getTime(),o=new Date(t[t.length-1].timeStamp).getTime(),l=Math.floor((o-a)/1e3),c=Math.floor(l/3600),u=Math.floor(l%3600/60),m=l%60;return[c>0?`${c}h`:null,u>0?`${u}m`:null,`${m}s`].filter(Boolean).join(" ")})();return i.jsxs("div",{className:"bg-[#F7F7F7] rounded-lg p-4",children:[i.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[i.jsx("div",{className:"font-semibold text-base",children:"Alert Timeline"}),r&&i.jsxs(h.Tag,{color:"blue",children:["Total Duration: ",r]})]}),t?.length?i.jsx(h.Timeline,{items:t.map(a=>({dot:i.jsx("div",{className:"w-4 h-4 rounded-full border-2 border-blue-500 bg-white flex items-center justify-center",children:i.jsx("div",{className:"w-2 h-2 rounded-full bg-blue-500"})}),children:i.jsxs("div",{className:"pb-4",children:[i.jsx("div",{className:"font-semibold text-[15px] text-[#1F2937]",children:s(a.eventName)}),i.jsxs("div",{className:"text-[#6B7280] text-sm",children:["Timestamp:"," ",Zt(a.timeStamp,e?.ianaTimeZoneId,!0)]}),a.timeElapsed&&i.jsxs("div",{className:"text-[#6B7280] text-sm",children:["Time Elapsed: ",a.timeElapsed,"s"]})]})}))}):i.jsx("div",{className:"text-center text-gray-500 py-8",children:"No Alert Timelines Found"})]})},Bl={Critical:"#FF3B30",High:"#FFB86A",Medium:"#FFCC00",Low:"#007AFF"},Vl={Critical:"#FFE2E2",High:"#FF95004D",Medium:"#FEF9C2",Low:"#E0EDFF"},Zl={"elopement attempt":"elopement","elopement completed":"elopement","watchlist person detected":"watchlist","watch list person detected":"watchlist","brandished guns & knives":"weapon","brandished guns and knives":"weapon"},zl=({isModalOpen:t,handleModalClose:e,selectedRow:s,fetchAlertLogs:n,alertStatusList:r=[],alertStatusLoading:a=!1,initialTab:o="details",sourceTab:l,onAlertView:c,showAlertTimeline:u})=>{const[m,f]=d.useState(),[g,p]=d.useState(""),[x,k]=d.useState(!1),[b,B]=d.useState([]),H=d.useRef(null),[K,I]=d.useState("details"),[D,V]=d.useState(void 0),C=en(),{alerts:q,rules:y,config:S}=$e(),{timeZoneDetails:M}=Yt(),[re,me]=d.useState(null),[j,A]=d.useState(!1),[v,E]=d.useState(!1),[T,O]=d.useState(void 0),[U,Y]=d.useState(void 0),[G,_]=d.useState({}),[ie,ce]=d.useState({}),ke=(w,z,ae)=>{const Ae=ie[w];return G[w]===!1&&!Ae?i.jsxs("div",{className:"w-full flex flex-col items-center justify-center min-h-[200px] bg-gray-100 rounded-lg gap-2 text-gray-400",children:[i.jsx(fr,{size:40}),i.jsx("span",{className:"text-sm",children:"Media not available"})]}):i.jsxs("div",{className:"relative w-full flex justify-center items-center min-h-[200px]",children:[Ae&&i.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-gray-100 rounded-lg z-10",children:i.jsx(gi,{size:32,className:"animate-spin text-gray-400"})}),i.jsx(Pl,{url:w,alt:z.caption||`media-${ae}`,isLoading:Ae,priority:we,detections:Ue,onLoadSuccess:()=>ce(Me=>({...Me,[w]:!1})),onError:()=>ce(Me=>({...Me,[w]:!1}))})]})},ee=s?.originalData||{},{eventName:pe,eventDisplayName:Te,anomalyName:fe,alertId:$,timestamp:P,description:he,spaceName:oe,assignTeam:Re,priority:we,statusType:He,id:Ie,alertDetails:xe,statusHistory:Ct,mediaDetails:ct,alertNumber:gt}=ee,Je=ee.bbox_xyxy,Ue=d.useMemo(()=>Je?[{bbox_xyxy:Je,personName:ee.personName}]:[],[Je,ee.personName]),St=S.tenant==="snl"?Te||pe||"Alert Event":pe||"Alert Event",xt=w=>{const z=String(w||"").toLowerCase();return z==="delivered"||z==="sent"?"Delivered":z==="failed"?"Failed":"Queued"},be=w=>({name:w?.receipientName||w?.recipientName||"-",role:w?.receipientRoleName||"",phone:w?.receipentPhoneNumber||w?.recipientPhoneNumber||w?.receipientEmail||w?.recipientEmail||"",status:xt(w?.messageStatus),notificationReceipientType:w?.notificationReceipientType||""}),vt=(w,z)=>{const ae=z.map(be),Ae=ae.filter(wt=>wt.status==="Delivered").length,Me=z.map(wt=>wt?.sentAt).filter(Boolean).sort((wt,ut)=>new Date(ut).getTime()-new Date(wt).getTime())[0],ye=(z[0]||{})?.severityName||`${w} Notification`;return{channelLabel:`${w} Notification`,sentAt:Me||"",messageTitle:ye,messageBody:"",total:ae.length,delivered:Ae,recipients:ae}},vs=w=>{const z=new Map;return(w||[]).forEach(ae=>{const Ae=String(ae?.notificationType||"Unknown"),Me=z.get(Ae)||[];Me.push(ae),z.set(Ae,Me)}),Array.from(z.entries()).map(([ae,Ae])=>vt(ae,Ae))},ws=async w=>{try{const z=await q.getAlertNotifications(w),ae=vs(z);V(ae)}catch{V(void 0)}};d.useEffect(()=>{if(K!=="track"||!Ie)return;let w=!1;return ws(Ie).then(()=>{w&&V(void 0)}),()=>{w=!0}},[K,Ie]),d.useEffect(()=>{if(!$){B([]);return}(async()=>{try{const z=await q.getAlertTimeline?.(String($));B(z||[])}catch{B([])}})()},[$]),d.useEffect(()=>{t?I(o):(f(void 0),p(""))},[t,o]),d.useEffect(()=>{!t||!c||c([{personName:ee.personName,faceId:ee.faceId,mediaDetails:ee.mediaDetails}])},[t]),d.useEffect(()=>{if(!t||S.tenant!=="snl")return;let w=!1;return A(!0),y.getLookups().then(z=>{w||(me(z.alertStatusTypes??[]),A(!1))}).catch(()=>{w||(me([]),A(!1))}),()=>{w=!0}},[t,S.tenant]);const As=l==="archived"||["completed","false positive"].includes(String(He||"").toLowerCase()),Ts=w=>{const z=String(w?.value||"").toLowerCase(),ae=String(w?.statusName||"").toLowerCase();return z.includes("reopen")||ae.includes("reopen")},bs=String(fe||"").trim().toLowerCase(),R=Zl[bs]??"general",te=r.filter(w=>{const z=Ts(w);return typeof l<"u"?l==="archived"?z:!z:As?z:!z}).map(w=>({value:w.value,label:w.statusName})),J=re??[],W=w=>!!w.isWatchListStatus,le=w=>!!w.isWeapontStatus,Z=J.filter(w=>{switch(R){case"elopement":return w.isElopementStatus;case"watchlist":return W(w);case"weapon":return le(w);default:return!w.isElopementStatus&&!W(w)&&!le(w)}}).map(w=>({value:w.alertStatusTypeName,label:w.alertStatusTypeName})),se=S.tenant==="snl"&&re!==null?Z:te,Ke=d.useMemo(()=>or(ct),[ct]);d.useEffect(()=>{let w=!1;const z=new AbortController,ae=async ue=>{if(ue){w||_(ye=>({...ye,[ue]:!1}));try{const ye=await fetch(ue,{method:"HEAD",signal:z.signal});if(ye.ok){w||_(ut=>({...ut,[ue]:!0}));return}if(ye.status===404){w||_(ut=>({...ut,[ue]:!1}));return}if(!(await fetch(ue,{method:"GET",signal:z.signal})).ok)throw new Error("Media not available");w||_(ut=>({...ut,[ue]:!0}))}catch{w||_(ye=>({...ye,[ue]:!1}))}}};_({});const Ae=Ke.filter(ue=>!Fs(ue)).map(ue=>ue?.mediaUrl||ue).filter(ue=>typeof ue=="string"&&ue.length>0),Me={};return Ae.forEach(ue=>{Me[ue]=!0}),ce(Me),Ae.forEach(ue=>ae(ue)),()=>{w=!0,z.abort()}},[Ke]);const Rt=async()=>{try{k(!0);const w={alertUniqueId:$,alertId:Ie,status:m?String(m):void 0,notes:g.trim(),modifiedBy:0},z=await C.mutateAsync(w);if(z?.responseStatus||z?.Success){const ae=z?.Message||z?.data||"Alert updated successfully.";Ne.toast.success(ae,{autoClose:1500,onClose:()=>{n(),e()}}),f(void 0),p("")}else{const ae=z?.errorMessage||z?.Message||"Failed to update alert status";Ne.toast.error(ae)}}catch(w){console.error("Error updating alert status:",w),Ne.toast.error("Failed to update alert status. Please try again.")}finally{k(!1)}};return i.jsx(h.Modal,{open:t,onCancel:e,width:1e3,footer:K==="details"?i.jsxs("div",{className:"flex flex-row gap-2 justify-start",children:[i.jsx(h.Button,{onClick:e,className:"!bg-[#6C757D] !text-white !border-[#6C757D] hover:!bg-[#5c636a] hover:!text-white hover:!border-[#5c636a]",children:"Cancel"}),i.jsx(h.Button,{type:"primary",onClick:Rt,loading:x,children:x?"Saving...":"Save Changes"})]}):null,children:s&&i.jsx(h.Tabs,{activeKey:K,onChange:w=>I(w),items:[{key:"details",label:"Alert Detail",children:i.jsxs("div",{className:"grid grid-cols-2 gap-2",style:{maxHeight:"50vh",overflowY:"auto"},children:[i.jsxs("div",{className:"flex flex-col gap-2",children:[i.jsx("div",{className:"text-sm font-bold",children:St}),xe?.firstName?i.jsxs("div",{className:"text-sm text-gray-500",children:["Resident ID/Name: ",xe?.firstName," ",xe?.lastName||""," ","  ",xe?.residentId||""]}):null,i.jsxs("div",{className:"text-sm text-gray-500",children:["Timestamp:"," ",Zt(P,M?.ianaTimeZoneId)]}),i.jsxs("div",{className:"font-sm text-gray-500",children:[i.jsx("b",{className:"text-black text-sm/6",children:"Description:"})," ",he||"No description available"]}),oe&&i.jsxs("div",{className:"font-sm text-gray-500",children:["Space: ",oe]}),Re&&i.jsxs("div",{className:"font-sm text-gray-500",children:["Assigned to: ",Re]}),i.jsxs("div",{className:"flex gap-2 justify-start mt-3",children:[i.jsxs(h.Tag,{className:"font-sm text-gray-500 rounded-[8px] py-2 px-3",style:{border:`2px solid ${Bl[String(we)]||"#DFE4EA"}`,backgroundColor:Vl[String(we)]},children:["Severity: ",we||"N/A"]}),i.jsxs(h.Tag,{className:"font-sm text-gray-500 rounded-[8px] py-2 px-3",style:String(He||"").toLowerCase()==="completed"?{background:"#E7F6EC",border:"0.68px solid var(--Green, #34C759)"}:{background:"#E0EDFF",border:"1px solid var(--Grays-Gray-4, #D1D1D6)"},children:["Status: ",He||"N/A"]})]}),i.jsx("div",{className:"w-full flex flex-col justify-start items-start mt-2 font-bold",children:i.jsxs("div",{className:"w-full mt-4",children:[i.jsx("div",{className:"flex flex-col gap-2",children:i.jsx(h.Select,{placeholder:"Change Status",className:"w-full text-gray-500",onChange:w=>f(w),value:m,options:se,loading:S.tenant==="snl"?j:a})}),i.jsxs("div",{className:"flex flex-col gap-2 mt-3",children:[i.jsx("label",{htmlFor:"action-details-input",className:"text-xs text-gray-500 font-medium",children:"Action Taken (Comments)"}),i.jsx("textarea",{id:"action-details-input",placeholder:"Enter details...",className:"w-full text-gray-500 h-20 border border-grey-500 rounded-md p-2",value:g,onChange:w=>p(w.target.value)})]})]})})]}),i.jsxs("div",{className:"flex flex-col gap-4",children:[i.jsxs("div",{className:"w-full mt-1",children:[i.jsxs("div",{className:"w-full flex items-center justify-between",children:[i.jsx("h3",{className:"text-black font-bold text-sm",children:"Camera Footage"}),Ke.length>1?i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("button",{type:"button",onClick:()=>H.current?.prev?.(),className:"w-6 h-6 flex items-center justify-center rounded-full bg-gray-200 hover:bg-gray-300 text-gray-600","aria-label":"Previous media",children:i.jsx(ht.LeftOutlined,{style:{fontSize:12}})}),i.jsx("button",{type:"button",onClick:()=>H.current?.next?.(),className:"w-6 h-6 flex items-center justify-center rounded-full bg-gray-200 hover:bg-gray-300 text-gray-600","aria-label":"Next media",children:i.jsx(ht.RightOutlined,{style:{fontSize:12}})})]}):null]}),Ke.length?i.jsx("div",{className:"w-full",children:i.jsx(h.Carousel,{ref:H,dots:!0,className:"w-full",children:Ke.map((w,z)=>{const ae=w.mediaUrl||w,Ae=Fs(w);return i.jsxs("div",{className:"flex justify-center items-center relative",children:[Ae?i.jsxs("video",{width:"240",height:"200",controls:!0,className:"max-w-full max-h-[90vh] object-contain rounded-lg shadow-lg",children:[i.jsx("source",{src:ae}),"Your browser does not support the video tag."]}):ke(String(ae),w,z),w.caption&&i.jsx("p",{className:"text-xs text-gray-500 mt-1",children:w.caption}),!Ae&&G[String(ae)]?i.jsx("button",{onClick:()=>{E(!0),O(ae),Y(w.type||"image")},className:"absolute bottom-3 right-3 text-white bg-black/50 rounded-full p-2 hover:bg-black/70",children:i.jsx(xi,{size:20})}):null]},String(ae)||z)})})}):null]}),u&&i.jsx(Wl,{items:b})]}),i.jsx(dr,{isOpen:v,onClose:()=>E(!1),src:T||"",type:U||"image",detections:Ue,priority:we})]})},{key:"track",label:"Track Incident",children:i.jsx($l,{alertId:$,id:Ie,priority:we,spaceName:oe,alertNumber:gt,statusHistory:Ct,notifGroups:D})}]})})};function wa(){const{alerts:t}=$e(),e=yt.useQuery({queryKey:["alerts","statusList"],queryFn:()=>t.getAlertStatusList(),staleTime:5*6e4});return{list:e.data??[],loading:e.isLoading,error:e.error,refetch:e.refetch}}function un({alerts:t,loading:e=!1,columns:s,total:n,currentPage:r,onRefetch:a,onPageChange:o,onFilterChange:l,onAlertView:c,showAlertTimeline:u}){const[m,f]=d.useState(!1),[g,p]=d.useState(null),[x,k]=d.useState("details"),{list:b,loading:B}=wa(),{timeZoneDetails:H}=Yt(),K=H?.timeZoneName??"UTC",I=H?.ianaTimeZoneId??"UTC";function D(re,me){p(re),k(me?.tab??"details"),q(me?.sourceTab??"active"),f(!0)}function V(){f(!1)}const[C,q]=d.useState("active"),[y,S]=d.useState(0),M=g?{originalData:{...g,alertId:g.alertId??g.id,mediaDetails:g.mediaDetails}}:null;return i.jsxs("div",{className:"p-6 flex flex-col items-start justify-start min-h-screen w-full overflow-auto",children:[i.jsxs("div",{className:"w-full grid grid-cols-3 sm:grid-cols-1 items-center mb-4",children:[i.jsx("h1",{className:"text-xl font-bold text-black",children:"Alert Console"}),i.jsx("div",{className:"flex items-center justify-start sm:justify-center",children:i.jsx(ga,{label:K,timeZone:I})})]}),i.jsx(h.Tabs,{defaultActiveKey:"active",className:"w-full",tabBarStyle:{fontSize:"medium"},onChange:re=>{const me=re==="archived";S(j=>j+1),o?.(1),l?.({isArchived:me})},items:[{key:"active",label:"Active",children:i.jsx(Xs,{data:t,loading:e,pageSize:10,total:n,currentPage:r,columns:s||[],onAlertIdClick:D,onAlertView:c,onRefetch:a,onPageChange:o,onFilterChange:l,resetKey:y})},{key:"archived",label:"Archived",children:i.jsx(pa,{alerts:t,loading:e,columns:s||[],total:n,currentPage:r,onAlertIdClick:D,onAlertView:c,onFilterChange:l,onPageChange:o,onRefetch:a,resetKey:y})},{key:"settings",label:"Settings",children:i.jsx(Hl,{})}]}),i.jsx(zl,{isModalOpen:m,handleModalClose:V,selectedRow:M,fetchAlertLogs:()=>{},alertStatusList:b,alertStatusLoading:B,initialTab:x,sourceTab:C,onAlertView:c,showAlertTimeline:u})]})}function Hl(){const[t,e]=d.useState([]),[s,n]=d.useState([]),[r,a]=d.useState([]),[o,l]=d.useState([]),[c,u]=d.useState(!0),{rules:m}=$e();return d.useEffect(()=>{let f=!0;return(async()=>{try{const g=await m.getRules();if(!f)return;l(Array.isArray(g)?g:[]);const p=(g||[]).map((x,k)=>({RuleId:x.ruleId||x.ruleName||String(k),Name:x.ruleName||x.Name||"-",Description:x.ruleDesc||x.Description||"",SeverityId:0}));e(p);try{const x=await m.getLookups(),k=Array.isArray(x?.userRoles)?x.userRoles.map(b=>({userRoleId:b.userRoleId??b.id,userRoleName:b.userRoleName??b.name})):[];n(k),a(Array.isArray(x?.severities)?x.severities:[])}catch{}}catch{}finally{f&&u(!1)}})(),()=>{f=!1}},[]),i.jsx(va,{severities:r,rules:t,userRoles:s,rawRules:o,loadingRules:c})}function ql(t){return Array.isArray(t)?{items:t}:t}function Aa(t=1,e){const{alerts:s,config:n}=$e(),r=n.tenant==="schools"&&!!String(e?.searchText??"").trim(),a=yt.useQuery({queryKey:["alerts","list",n.tenant,t,e],queryFn:()=>{const o={...e};return n.tenant==="schools"?(o.pageNumber=t,o.pageSize=r?100:10):(o.pageNumber=t,o.pageSize=10),s.listAlerts(o).then(ql)},staleTime:r?0:3e4});return{alerts:a.data?.items??[],total:a.data?.total,loading:a.isLoading,error:a.error,refetch:a.refetch}}function Gl(t){const[e,s]=d.useState(1),[n,r]=d.useState({}),{alerts:a,total:o,loading:l,refetch:c}=Aa(e,n);d.useEffect(()=>{!l&&a.length>0&&t.onAlertView?.(a)},[a,l]);const u=m=>{"isArchived"in m?r({isArchived:m.isArchived}):r(f=>({...f,...m}))};return i.jsx(un,{alerts:a,loading:l,columns:t.columns,total:o,currentPage:e,onRefetch:c,onPageChange:s,onFilterChange:u,onAlertView:t.onAlertView,showAlertTimeline:t.showAlertTimeline})}function Yl({tenant:t,apiDomain:e,rulesDomain:s,headers:n,timeZone:r,userManagementDomain:a,spacesBaseUrl:o,alerts:l,loading:c,columns:u,onAlertView:m,showAlertTimeline:f}){const[g]=d.useState(()=>new yt.QueryClient({defaultOptions:{queries:{retry:(x,k)=>{const b=k.response?.status??k?.status;return b>=400&&b<=500?!1:x<2},refetchOnWindowFocus:!1}}})),p=d.useMemo(()=>({alertsBaseUrl:e,rulesBaseUrl:s||e,headers:n||void 0}),[e,s,n]);return i.jsx(yt.QueryClientProvider,{client:g,children:i.jsx(ar,{tenant:t,override:p,timeZone:r,userManagementDomain:a,spacesBaseUrl:o,children:Array.isArray(l)?i.jsx(un,{alerts:l,loading:!!c,columns:u,onAlertView:m,showAlertTimeline:f}):i.jsx(Gl,{columns:u,onAlertView:m,showAlertTimeline:f})})})}function _l(t){const{alerts:e}=$e(),s=yt.useQuery({queryKey:["alerts","report",t],queryFn:()=>e.getAlertsReport(t),staleTime:6e4});return{data:s.data??[],loading:s.isLoading,error:s.error,refetch:s.refetch}}const Jl=[{title:"ID",dataIndex:"id",key:"id",width:120},{title:"Priority",dataIndex:"priority",key:"priority",width:120},{title:"Timestamp",dataIndex:"timestamp",key:"timestamp",width:220},{title:"Status",dataIndex:"statusType",key:"statusType",width:140},{title:"Description",dataIndex:"description",key:"description"}];exports.AlertAssignment=Sa;exports.AlertConsole=un;exports.AlertConsoleWidget=Yl;exports.AlertsTable=Xs;exports.ApiProvider=ar;exports.ArchivedTable=pa;exports.Clock=ga;exports.DataTable=ir;exports.MyPreferencesPanel=Cl;exports.SettingsPanel=xa;exports.SettingsTabs=va;exports.exampleAlertColumns=Jl;exports.useAlertStatusList=wa;exports.useAlerts=Aa;exports.useAlertsReport=_l;exports.useApi=$e;exports.useUpdateAlertStatus=en;
2
2
  //# sourceMappingURL=index.cjs.map