@ssgc/alert-console 2.10.11 → 2.10.12
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 +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.es.js +87 -69
- package/dist/index.es.js.map +1 -1
- package/package.json +1 -1
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"),ft=require("@ant-design/icons"),Ne=require("react-toastify"),ht=require("@tanstack/react-query"),Ta="#FF3B30",ba="#FF9500",Na="#FFCC00",ka="#34C759",Yt={critical:Ta,high:ba,medium:Na,low:ka},mn={Critical:Yt.critical,High:Yt.high,Medium:Yt.medium,Low:Yt.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,f=Number.isFinite(l)?l:0;return c*3600+u*60+f}function hn(t){return t.toLowerCase().replaceAll("'","").replaceAll("‘","").replaceAll("’","")}const tr="",Ea=tr,Ma="",ja="",Oa="",Da="",yn={snl:{alerts:tr,rules:Ea},schools:{alerts:Ma,rules:ja},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 Rt(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=Rt(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=Rt(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=Rt(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=Rt(n,{alertId:s});return De(r,{method:"POST",headers:e})},async sendSMSorEmailNotifications(s,n,r){const a=Oe(t.baseUrl,"/api/Alert/SendSMSorEmailNotifications"),o=Rt(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 _t(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 _t(s,{method:"GET",headers:e});return Array.isArray(r)?r:[]},async setEscalationSettings(r){return _t(s,{method:"POST",headers:e,body:JSON.stringify(r??{})})},async getLookups(){return _t(n,{method:"GET",headers:e})},async updateRule(r,a){const o=`${s}/${r}`;return _t(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 as={exports:{}},$a=as.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",f="week",m="month",p="quarter",g="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(M){var A=["th","st","nd","rd"],w=M%100;return"["+M+(A[(w-20)%10]||A[w]||A[0])+"]"}},K=function(M,A,w){var E=String(M);return!E||E.length>=A?M:""+Array(A+1-E.length).join(w)+M},I={s:K,z:function(M){var A=-M.utcOffset(),w=Math.abs(A),E=Math.floor(w/60),T=w%60;return(A<=0?"+":"-")+K(E,2,"0")+":"+K(T,2,"0")},m:function M(A,w){if(A.date()<w.date())return-M(w,A);var E=12*(w.year()-A.year())+(w.month()-A.month()),T=A.clone().add(E,m),O=w-T<0,U=A.clone().add(E+(O?-1:1),m);return+(-(E+(w-T)/(O?T-U:U-T))||0)},a:function(M){return M<0?Math.ceil(M)||0:Math.floor(M)},p:function(M){return{M:m,y:g,w:f,d:u,D:x,h:c,m:l,s:o,ms:a,Q:p}[M]||String(M||"").toLowerCase().replace(/s$/,"")},u:function(M){return M===void 0}},D="en",V={};V[D]=H;var C="$isDayjsObject",q=function(M){return M instanceof re||!(!M||!M[C])},y=function M(A,w,E){var T;if(!A)return D;if(typeof A=="string"){var O=A.toLowerCase();V[O]&&(T=O),w&&(V[O]=w,T=O);var U=A.split("-");if(!T&&U.length>1)return M(U[0])}else{var Y=A.name;V[Y]=A,T=Y}return!E&&T&&(D=T),T||!E&&D},S=function(M,A){if(q(M))return M.clone();var w=typeof A=="object"?A:{};return w.date=M,w.args=arguments,new re(w)},j=I;j.l=y,j.i=q,j.w=function(M,A){return S(M,{locale:A.$L,utc:A.$u,x:A.$x,$offset:A.$offset})};var re=(function(){function M(w){this.$L=y(w.locale,null,!0),this.parse(w),this.$x=this.$x||w.x||{},this[C]=!0}var A=M.prototype;return A.parse=function(w){this.$d=(function(E){var T=E.date,O=E.utc;if(T===null)return new Date(NaN);if(j.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)})(w),this.init()},A.init=function(){var w=this.$d;this.$y=w.getFullYear(),this.$M=w.getMonth(),this.$D=w.getDate(),this.$W=w.getDay(),this.$H=w.getHours(),this.$m=w.getMinutes(),this.$s=w.getSeconds(),this.$ms=w.getMilliseconds()},A.$utils=function(){return j},A.isValid=function(){return this.$d.toString()!==k},A.isSame=function(w,E){var T=S(w);return this.startOf(E)<=T&&T<=this.endOf(E)},A.isAfter=function(w,E){return S(w)<this.startOf(E)},A.isBefore=function(w,E){return this.endOf(E)<S(w)},A.$g=function(w,E,T){return j.u(w)?this[E]:this.set(T,w)},A.unix=function(){return Math.floor(this.valueOf()/1e3)},A.valueOf=function(){return this.$d.getTime()},A.startOf=function(w,E){var T=this,O=!!j.u(E)||E,U=j.p(w),Y=function(Te,he){var $=j.w(T.$u?Date.UTC(T.$y,he,Te):new Date(T.$y,he,Te),T);return O?$:$.endOf(u)},G=function(Te,he){return j.w(T.toDate()[Te].apply(T.toDate("s"),(O?[0,0,0,0]:[23,59,59,999]).slice(he)),T)},_=this.$W,oe=this.$M,ue=this.$D,ke="set"+(this.$u?"UTC":"");switch(U){case g:return O?Y(1,0):Y(31,11);case m:return O?Y(1,oe):Y(0,oe+1);case f:var ee=this.$locale().weekStart||0,pe=(_<ee?_+7:_)-ee;return Y(O?ue-pe:ue+(6-pe),oe);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(w){return this.startOf(w,!1)},A.$set=function(w,E){var T,O=j.p(w),U="set"+(this.$u?"UTC":""),Y=(T={},T[u]=U+"Date",T[x]=U+"Date",T[m]=U+"Month",T[g]=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===m||O===g){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(w,E){return this.clone().$set(w,E)},A.get=function(w){return this[j.p(w)]()},A.add=function(w,E){var T,O=this;w=Number(w);var U=j.p(E),Y=function(oe){var ue=S(O);return j.w(ue.date(ue.date()+Math.round(oe*w)),O)};if(U===m)return this.set(m,this.$M+w);if(U===g)return this.set(g,this.$y+w);if(U===u)return Y(1);if(U===f)return Y(7);var G=(T={},T[l]=n,T[c]=r,T[o]=s,T)[U]||1,_=this.$d.getTime()+w*G;return j.w(_,this)},A.subtract=function(w,E){return this.add(-1*w,E)},A.format=function(w){var E=this,T=this.$locale();if(!this.isValid())return T.invalidDate||k;var O=w||"YYYY-MM-DDTHH:mm:ssZ",U=j.z(this),Y=this.$H,G=this.$m,_=this.$M,oe=T.weekdays,ue=T.months,ke=T.meridiem,ee=function(he,$,P,ye){return he&&(he[$]||he(E,O))||P[$].slice(0,ye)},pe=function(he){return j.s(Y%12||12,he,"0")},Te=ke||function(he,$,P){var ye=he<12?"AM":"PM";return P?ye.toLowerCase():ye};return O.replace(B,(function(he,$){return $||(function(P){switch(P){case"YY":return String(E.$y).slice(-2);case"YYYY":return j.s(E.$y,4,"0");case"M":return _+1;case"MM":return j.s(_+1,2,"0");case"MMM":return ee(T.monthsShort,_,ue,3);case"MMMM":return ee(ue,_);case"D":return E.$D;case"DD":return j.s(E.$D,2,"0");case"d":return String(E.$W);case"dd":return ee(T.weekdaysMin,E.$W,oe,2);case"ddd":return ee(T.weekdaysShort,E.$W,oe,3);case"dddd":return oe[E.$W];case"H":return String(Y);case"HH":return j.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 j.s(G,2,"0");case"s":return String(E.$s);case"ss":return j.s(E.$s,2,"0");case"SSS":return j.s(E.$ms,3,"0");case"Z":return U}return null})(he)||U.replace(":","")}))},A.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},A.diff=function(w,E,T){var O,U=this,Y=j.p(E),G=S(w),_=(G.utcOffset()-this.utcOffset())*n,oe=this-G,ue=function(){return j.m(U,G)};switch(Y){case g:O=ue()/12;break;case m:O=ue();break;case p:O=ue()/3;break;case f:O=(oe-_)/6048e5;break;case u:O=(oe-_)/864e5;break;case c:O=oe/r;break;case l:O=oe/n;break;case o:O=oe/s;break;default:O=oe}return T?O:j.a(O)},A.daysInMonth=function(){return this.endOf(m).$D},A.$locale=function(){return V[this.$L]},A.locale=function(w,E){if(!w)return this.$L;var T=this.clone(),O=y(w,E,!0);return O&&(T.$L=O),T},A.clone=function(){return j.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()},M})(),fe=re.prototype;return S.prototype=fe,[["$ms",a],["$s",o],["$m",l],["$H",c],["$W",u],["$M",m],["$y",g],["$D",x]].forEach((function(M){fe[M[1]]=function(A){return this.$g(A,M[0],M[1])}})),S.extend=function(M,A){return M.$i||(M(A,re,S),M.$i=!0),S},S.locale=y,S.isDayjs=q,S.unix=function(M){return S(1e3*M)},S.en=V[D],S.Ls=V,S.p={},S}))})(as)),as.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 Ce(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 Jt(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 Re(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 me=(...t)=>t.find(e=>e!=null);function Lt(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=>Lt(e,["alertLogId","alertId","status","description","actionNotes","createdDate","createdBy","modifiedDate","modifiedBy"])):t}function za(t){return{id:String(me(t?.AlertId,t?.alertId)??""),alertNumber:me(t?.AlertNumber,t?.alertNumber),priority:me(t?.Priority,t?.priority,"Low"),timestamp:me(t?.UpdatedUtc,t?.timestamp,""),statusType:me(t?.Status,t?.statusType,""),description:me(t?.Description,t?.description,""),eventName:me(t?.EventName,t?.eventName),ruleName:me(t?.RuleName,t?.ruleName),spaceId:me(t?.SpaceId,t?.spaceId),spaceName:me(t?.SpaceName,t?.spaceName),anomalyId:me(t?.AnomalyId,t?.anomalyId),severityId:me(t?.SeverityId,t?.severityId),assignTeam:me(t?.AssignTeam,t?.assignTeam),cameraName:me(t?.CameraName,t?.cameraName),type:me(t?.Type,t?.type),mediaDetails:me(t?.MediaDetails,t?.mediaDetails,t?.MediaUrls,t?.mediaUrls),additionalMedia:me(t?.AdditionalMedia,t?.additionalMedia),timeElapsed:me(t?.TimeElapsed,t?.timeElapsed),timeRemaining:me(t?.TimeRemaining,t?.timeRemaining),anomalyName:me(t?.AnomalyName,t?.anomalyName),alertDetails:me(t?.AlertDetails,t?.alertDetails),statusHistory:Za(me(t?.StatusHistory,t?.statusHistory)),isEmailSent:me(t?.IsEmailSent,t?.isEmailSent),isSMSSent:me(t?.IsSMSSent,t?.isSMSSent),timeZoneUniqueId:me(t?.TimeZoneUniqueId,t?.timeZoneUniqueId)}}function Ha(t){const e={"Content-Type":"application/json",...t.headers||{}};return{async listAlerts(s){const n=Ce(t.baseUrl,"/api/detectionpolicy/alerts"),r=Jt(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 Re(r,{method:"GET",headers:e});return{items:Array.isArray(a?.Items)?a.Items.map(za):[],total:a?.Total}},async getAlertStatusList(){const s=Ce(t.baseUrl,"/api/detectionpolicy/alerts/StatusList"),n=await Re(s,{method:"GET",headers:e});return(Array.isArray(n)?n:[]).map(a=>Lt(a,["alertStatusId","value","statusName"]))},async getAlertsReport(s){const n=Ce(t.baseUrl,"/api/detectionpolicy/alerts/GetAlertsReport"),r=Jt(n,s),a=await Re(r,{method:"GET",headers:e});return Array.isArray(a)?a:[]},async updateAlertStatus(s){const n=Ce(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 Re(n,{method:"POST",headers:e,body:JSON.stringify(r)})},async getAlertTimeline(s){const n=Ce(t.baseUrl,`/api/detectionpolicy/alerts/alertTimelines/${s}`);return Re(n,{method:"GET",headers:e})},async getAdminSettings(){const s=Ce(t.baseUrl,"/api/detectionpolicy/alerts/GetAdminSettings"),n=await Re(s,{method:"GET",headers:e});if(n&&typeof n=="object"){const r=n.data??n.Data??n;if(r&&typeof r=="object")return Lt(r,["userId","isAdminSetting","sortBy"],{sortBy:"SortOption"})}return null},async setAdminSettings(s){const n=Ce(t.baseUrl,"/api/detectionpolicy/alerts/SetAdminSettings"),r={Settings:{UserId:0,IsAdminSetting:!0,SortOption:s?.sortBy??"",GroupBy:s?.groupBy??null}};return Re(n,{method:"POST",headers:e,body:JSON.stringify(r)})},async getPreferenceSettings(){const s=Ce(t.baseUrl,"/api/detectionpolicy/alerts/GetPreferenceSettings"),n=await Re(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=Ce(t.baseUrl,"/api/detectionpolicy/alerts/SetPreferenceSettings"),r=u=>{const{hours:f,minutes:m,seconds:p}=nr(u);return(f*3600+m*60+p)*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 Re(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=Ce(t.baseUrl,"/api/detectionpolicy/alerts/SendSMSorEmailNotifications"),o=Jt(a,{alertId:s,isEmail:n,isSMS:r});return Re(o,{method:"POST",headers:e})},async getAlertNotifications(s){const n=Ce(t.baseUrl,"/api/detectionpolicy/alerts/GetNotifications"),r=Jt(n,{alertId:s}),a=await Re(r,{method:"GET",headers:e});let o=[];return Array.isArray(a)?o=a:Array.isArray(a?.data)&&(o=a.data),o.map(l=>Lt(l,["alertNotificationSentId","alertId","notificationType","receipientName","receipentPhoneNumber","messageSID","messageStatus","receipientEmail","notificationReceipientType","sentAt"]))},async getTimeZoneMasters(){const s=Ce(t.baseUrl,"/api/TimeZoneMaster"),n=await Re(s,{method:"GET",headers:e});return(Array.isArray(n?.Data)?n.Data:[]).map(a=>Lt(a,["timeZoneUniqueId","ianaTimeZoneId","timeZoneName","offset"]))},async getAllSpaces(){const s=t.spacesBaseUrl||t.baseUrl,n=Ce(s,"/api/AllSpaces"),r=await Re(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=Ce(t.baseUrl,"/MyProfile"),n=await Re(s,{method:"GET",headers:e}),r=n?.data?.userGuid??n?.Data?.userGuid??n?.userGuid;if(!r)return null;const a=Ce(t.baseUrl,`/api/GetMyAppPreferences/${r}`),o=await Re(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,f,m]=await Promise.allSettled(a),p=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:[]},g=p(o),x=p(l),k=p(c),b=p(u),B=p(f),H=m.status==="fulfilled"?m.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=g.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,f]=await Promise.allSettled(a),m=C=>{if(C.status!=="fulfilled")return[];const q=C.value;return Array.isArray(q)?q:Array.isArray(q?.data)?q.data:[]},p=m(o),g=m(l),x=m(c),k=m(u),b=f.status==="fulfilled"?f.value:null,B=p.map(C=>({actionTypeId:C?.ActionTypeUniqueId,name:C?.Name??""})),H=g.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,...f}=r??{},m=o??{},p=(m.escalationSettingsActionTypeIds??[]).filter(x=>x!=null&&!Number.isNaN(x)),g={Level1UserRoleId:m.level1UserRoleId??0,Level1PostAssistTime:m.level1PostAssistTime??0,Level2UserRoleId:m.level2UserRoleId??0,Level2PostAssistTime:m.level2PostAssistTime??0,Level3UserRoleId:m.level3UserRoleId??0,Level3PostAssistTime:m.level3PostAssistTime??0,EscalationSettingsActionTypeIds:p,ThirdPartyIds:m.thirdPartyId??[],HumanLoop:m.humanLoop??!1};return st(a,{method:"POST",headers:e,body:JSON.stringify({...f,RuleId:l??f.RuleId??n,RuleName:c??f.RuleName,RuleDesc:u??f.RuleDesc??null,ActionTypeUniqueIdList:p,EscalationSettings:g})})}}}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 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 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=Kt(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=Kt(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=Kt(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=Kt(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 f=e?.headers;return{tenant:t,alertsBaseUrl:c,rulesBaseUrl:u,headers:f,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},f={schools:()=>Ha({...c,spacesBaseUrl:o.spacesBaseUrl}),transit:()=>Ka(c),snl:()=>Ra(c)},m={schools:()=>Ga({...u,userManagementBaseUrl:o.userManagementDomain}),transit:()=>_a({...u,userManagementBaseUrl:o.userManagementDomain}),snl:()=>La({baseUrl:o.alertsBaseUrl,headers:o.headers})};return{config:o,alerts:f[o.tenant](),rules:m[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"},_s=6,Js=7;function xn(t,e,s){const n=t===_s,r=t===Js,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,f=n&&a?"Email sent":r&&o?"SMS sent":`Click to ${c}`;return{isDisabled:l,buttonText:u,tooltipTitle:f}}function bs(t,e){return`${t}-${e?"email":"sms"}`}function Qt(t){return t===_s||t===Js}function fs({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(fs,{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(fs,{className:"w-[220px]",dropdownWidth:280,value:t,onChange:e,options:s||si})}function ri({value:t,onChange:e,options:s}){return i.jsx(fs,{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(fs,{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 m=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??m,showSizeChanger:!1,showTotal:p=>`Total: ${p}`,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 Ls(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,f,m,p]=ci(c.bbox_xyxy);return u>e||m>e||f>s||p>s?[]:[{personName:c.personName,x:u*a+o,y:f*a+l,width:(m-u)*a,height:(p-f)*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:f,resetDimensions:m}=ur(),p=d.useMemo(()=>cr(r,u.naturalWidth,u.naturalHeight,u.renderedWidth,u.renderedHeight),[r,u]),g=d.useMemo(()=>p.map(x=>({...x,label:x.personName||""})),[p]);return d.useEffect(()=>{t&&(l(!1),m())},[t,s,m]),d.useLayoutEffect(()=>{c.current?.complete&&f()},[f]),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:f,onError:()=>l(!0)}),i.jsx(lr,{boxes:g,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,f])=>d.createElement(u,f)),...Array.isArray(a)?a:[a]]));const Ks=(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=Ks("image-off",yi);const pi=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],gi=Ks("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=Ks("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=Ls(c),f=u?"video":"image",m="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:`${m} flex items-center justify-center text-gray-400`,children:i.jsx(fr,{size:20,"aria-hidden":!0})}):u?i.jsx("video",{src:l,className:m,muted:!0,playsInline:!0,preload:"metadata",onError:()=>a(!0)}):i.jsx("img",{src:l,alt:"",className:m,onError:()=>a(!0)})}),i.jsx(dr,{isOpen:s,onClose:()=>n(!1),src:l,type:f,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 Qs({data:t,loading:e=!1,pageSize:s=10,total:n,currentPage:r,columns:a,renderActions:o,onAlertIdClick:l,onRefetch:c,onPageChange:u,onFilterChange:f,resetKey:m}){const[p,g]=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(()=>{m!==void 0&&(g("All"),k("All"),B("All"),K("All"),D(""),C(1))},[m]),d.useEffect(()=>{r!==void 0&&C(r)},[r]);const[q,y]=d.useState([{label:"All",value:"All"}]),[S,j]=d.useState([]),[re,fe]=d.useState([]),[M,A]=d.useState([]),[w,E]=d.useState(new Set),{rules:T,alerts:O,config:U}=$e(),Y=U.tenant==="schools",G=U.tenant==="transit",_=wi(I,600),oe=Y&&_.trim()?100:s,ue={6:{title:"Email",kind:"icon",icon:i.jsx(ft.MailOutlined,{})},7:{title:"SMS",kind:"icon",icon:i.jsx(ft.MessageOutlined,{})}};d.useEffect(()=>{if(!O.getAllSpaces)return;let $=!0;return(async()=>{try{const P=await O.getAllSpaces();if($){const ye=P.map(le=>({label:G?String(le.spaceNumber??le.spaceName??""):le.spaceName,value:String(G?le.spaceNumber??le.spaceId:le.spaceId)}));j([{label:"All",value:"All"},...ye])}}catch(P){console.error("Error loading space options",P)}})(),()=>{$=!1}},[O,G]),d.useEffect(()=>{let $=!0;return(async()=>{try{const P=await T.getLookups(),le=(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"},...le]),we.length&&fe([{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(!f)return;const $=M.find(ye=>ye.value===p),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:M.length>1&&p!=="All"?p:void 0,severityName:M.length>1&&p!=="All"?$?.label:void 0,thirdPartyIds:H==="All"?void 0:[Number(H)],searchText:_.trim()||void 0};f(P),u?.(1)},[x,b,p,H,_,re.length,S.length,M.length,G,Y]);const ke=re.length>1?re:void 0,ee=S.length>1?S:void 0,pe=M.length>1?M: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:ye=>{ye.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 ye=async(Fe,gt)=>{const St=bs(P.id,Fe);E(be=>new Set(be).add(St));try{const be=await O.sendSMSorEmailNotifications?.(P.id,Fe,gt);be?.responseStatus||be?.Success||be?.success?(Ne.toast.success(be?.message||be.data||(Fe?"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 xt=new Set(be);return xt.delete(St),xt})}},le=_s,Le=Js,we=ue[le],He=ue[Le],Ie=xn(le,P,we?.title),xe=xn(Le,P,He?.title),Ot=bs(P.id,!0),ct=bs(P.id,!1),pt=Qt(le)&&w.has(Ot),Je=Qt(Le)&&w.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:pt,onClick:Qt(le)?()=>ye(!0,!1):void 0,icon:!pt&&we?.icon,className:"flex flex-col items-center justify-center gap-1",style:{height:"fit-content"},children:Ie.buttonText})},String(le)),i.jsx(h.Tooltip,{title:xe.tooltipTitle,children:i.jsx(h.Button,{size:"small",disabled:xe.isDisabled,loading:Je,onClick:Qt(Le)?()=>ye(!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(Le))]})}},{title:"Alert Timestamp",dataIndex:"timestamp",key:"timestamp",width:220,render:($,P)=>{const ye=P?.timeElapsed,le=P?.timeRemaining,Le=ye?fn(ye):0,we=le?fn(le):0,He=Math.round(Le/(Le+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:ye??"-"})]}),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:le??"-"})]})]})}},{title:"Status",dataIndex:"statusType",key:"statusType",width:140},{title:"Description",dataIndex:"description",key:"description",render:($,P)=>i.jsxs("div",{children:[i.jsx("a",{onClick:ye=>{ye.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})}],he=a&&a.length?a:Te;return i.jsx("div",{children:i.jsx(ir,{rowKey:"id",data:t,columns:he,loading:e,pageSize:oe,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:p,onChange:g,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 Xs(){const{alerts:t}=$e(),e=ht.useQueryClient();return ht.useMutation({mutationFn:s=>t.updateAlertStatus(s),onSuccess:()=>{e.invalidateQueries({queryKey:["alerts","list"]}),e.invalidateQueries({queryKey:["alerts","report"]})}})}class yt extends Error{}class Ti extends yt{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}}class bi extends yt{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}}class Ni extends yt{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}}class Tt extends yt{}class yr extends yt{constructor(e){super(`Invalid unit ${e}`)}}class Ee extends yt{}class at extends yt{constructor(){super("Zone is an abstract class")}}const N="numeric",_e="short",Pe="long",cs={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},Mr={year:N,month:_e,day:N,hour:N,minute:N},jr={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 Ns=null;class hs extends Zt{static get instance(){return Ns===null&&(Ns=new hs),Ns}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 Wt(this.offset(e),s)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}}const Fs=new Map;function Ei(t){let e=Fs.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"}),Fs.set(t,e)),e}const Mi={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function ji(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,f]=n;return[o,r,a,l,c,u,f]}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=Mi[a];a==="era"?n[l]=o:F(l)||(n[l]=parseInt(o,10))}return n}const ks=new Map;class tt extends Zt{static create(e){let s=ks.get(e);return s===void 0&&ks.set(e,s=new tt(e)),s}static resetCache(){ks.clear(),Fs.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 Wt(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,f]=n.formatToParts?Oi(n,s):ji(n,s);l==="BC"&&(r=-Math.abs(r)+1);const p=ps({year:r,month:a,day:o,hour:c===24?0:c,minute:u,second:f,millisecond:0});let g=+s;const x=g%1e3;return g-=x>=0?x:1e3+x,(p-g)/(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 $s=new Map;function Ps(t,e={}){const s=JSON.stringify([t,e]);let n=$s.get(s);return n===void 0&&(n=new Intl.DateTimeFormat(t,e),$s.set(s,n)),n}const Ws=new Map;function Ci(t,e={}){const s=JSON.stringify([t,e]);let n=Ws.get(s);return n===void 0&&(n=new Intl.NumberFormat(t,e),Ws.set(s,n)),n}const Bs=new Map;function Ri(t,e={}){const{base:s,...n}=e,r=JSON.stringify([t,n]);let a=Bs.get(r);return a===void 0&&(a=new Intl.RelativeTimeFormat(t,e),Bs.set(r,a)),a}let Ft=null;function Ui(){return Ft||(Ft=new Intl.DateTimeFormat().resolvedOptions().locale,Ft)}const Vs=new Map;function Ur(t){let e=Vs.get(t);return e===void 0&&(e=new Intl.DateTimeFormat(t).resolvedOptions(),Vs.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=Ps(t).resolvedOptions(),r=t}catch{const c=t.substring(0,s);n=Ps(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 Xt(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):rn(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=Ps(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,f=Hs(r)||Se.defaultWeekSettings;return new ne(l,c,u,f,o)}static resetCache(){Ft=null,$s.clear(),Ws.clear(),Bs.clear(),Vs.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,Hs(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 Xt(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 Xt(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 Xt(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 Xt(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 Is=null;class Ue extends Zt{static get utcInstance(){return Is===null&&(Is=new Ue(0)),Is}static instance(e){return e===0?Ue.utcInstance:new Ue(e)}static parseSpecifier(e){if(e){const s=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(s)return new Ue(gs(s[1],s[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Wt(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Wt(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,s){return Wt(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"?hs.instance:s==="utc"||s==="gmt"?Ue.utcInstance:Ue.parseSpecifier(s)||tt.create(t)}else return lt(t)?Ue.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new Hi(t)}const en={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=en.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(en.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 zs=new Map;function Yi(){zs.clear()}function qe({numberingSystem:t},e=""){const s=t||"latn";let n=zs.get(s);n===void 0&&(n=new Map,zs.set(s,n));let r=n.get(e);return r===void 0&&(r=new RegExp(`${en[s]}${e}`),n.set(e,r)),r}let Nn=()=>Date.now(),kn="system",In=null,En=null,Mn=null,jn=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,hs.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 Mn}static set defaultOutputCalendar(e){Mn=e}static get defaultWeekSettings(){return Dn}static set defaultWeekSettings(e){Dn=Hs(e)}static get twoDigitCutoffYear(){return jn}static set twoDigitCutoffYear(e){jn=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 tn(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+(zt(t)?$r:Fr)[e-1]}function Wr(t,e){const s=zt(t)?$r:Fr,n=s.findIndex(a=>a<e),r=e-s[n];return{month:n+1,day:r}}function sn(t,e){return(t-e+7)%7+1}function us(t,e=4,s=1){const{year:n,month:r,day:a}=t,o=Pr(n,r,a),l=sn(tn(n,r,a),s);let c=Math.floor((o-l+14-e)/7),u;return c<1?(u=n-1,c=Bt(u,e,s)):c>Bt(n,e,s)?(u=n+1,c=1):u=n,{weekYear:u,weekNumber:c,weekday:l,...Ss(t)}}function Cn(t,e=4,s=1){const{weekYear:n,weekNumber:r,weekday:a}=t,o=sn(tn(n,1,e),s),l=bt(n);let c=r*7+a-o-7+e,u;c<1?(u=n-1,c+=bt(u)):c>l?(u=n+1,c-=bt(n)):u=n;const{month:f,day:m}=Wr(u,c);return{year:u,month:f,day:m,...Ss(t)}}function Es(t){const{year:e,month:s,day:n}=t,r=Pr(e,s,n);return{year:e,ordinal:r,...Ss(t)}}function Rn(t){const{year:e,ordinal:s}=t,{month:n,day:r}=Wr(e,s);return{year:e,month:n,day:r,...Ss(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 Tt("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=ys(t.weekYear),r=ze(t.weekNumber,1,Bt(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=ys(t.year),s=ze(t.ordinal,1,bt(t.year));return e?s?!1:Ze("ordinal",t.ordinal):Ze("year",t.year)}function Br(t){const e=ys(t.year),s=ze(t.month,1,12),n=ze(t.day,1,ds(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 ys(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 kt(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function Hs(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 ys(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 ut(t){if(!(F(t)||t===null||t===""))return parseFloat(t)}function nn(t){if(!(F(t)||t===null||t==="")){const e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function rn(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 zt(t){return t%4===0&&(t%100!==0||t%400===0)}function bt(t){return zt(t)?366:365}function ds(t,e){const s=to(e-1,12)+1,n=t+(e-s)/12;return s===2?zt(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][s-1]}function ps(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-sn(tn(t,1,e),s)+e-1}function Bt(t,e=4,s=1){const n=Fn(t,e,s),r=Fn(t+1,e,s);return(bt(t)-n+r)/7}function qs(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 gs(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 ms(t,e){const s={};for(const n in t)if(kt(t,n)){const r=t[n];if(r==null)continue;s[e(n)]=qr(r)}return s}function Wt(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 Ss(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 m=t==="days";switch(e){case 1:return m?"tomorrow":`next ${r[t][0]}`;case-1:return m?"yesterday":`last ${r[t][0]}`;case 0:return m?"today":`this ${r[t][0]}`}}const o=Object.is(e,-0)||e<0,l=Math.abs(e),c=l===1,u=r[t],f=n?c?u[1]:u[2]||u[1]:c?r[t][0]:t;return o?`${l} ${f} ago`:`in ${l} ${f}`}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:cs,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:Mr,fff:Or,ffff:Cr,F:Er,FF:jr,FFF:Dr,FFFF:Rr};class Me{static create(e,s={}){return new Me(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=(g,x)=>this.loc.extract(e,g,x),o=g=>e.isOffsetFixed&&e.offset===0&&g.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,g.format):"",l=()=>n?lo(e):a({hour:"numeric",hourCycle:"h12"},"dayperiod"),c=(g,x)=>n?uo(e,g):a(x?{month:g}:{month:g,day:"numeric"},"month"),u=(g,x)=>n?co(e,g):a(x?{weekday:g}:{weekday:g,month:"long",day:"numeric"},"weekday"),f=g=>{const x=Me.macroTokenToFormatOpts(g);return x?this.formatWithSystemDefault(e,x):g},m=g=>n?mo(e,g):a({era:g},"era"),p=g=>{switch(g){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 m("short");case"GG":return m("long");case"GGGGG":return m("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 f(g)}};return $n(Me.parseFormat(s),p)}formatDurationFromString(e,s){const n=this.opts.signMode==="negativeLargestOnly"?-1:1,r=f=>{switch(f[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=(f,m)=>p=>{const g=r(p);if(g){const x=m.isNegativeDuration&&g!==m.largestUnit?n:1;let k;return this.opts.signMode==="negativeLargestOnly"&&g!==m.largestUnit?k="never":this.opts.signMode==="all"?k="always":k="auto",this.num(f.get(g)*x,p.length,k)}else return p},o=Me.parseFormat(s),l=o.reduce((f,{literal:m,val:p})=>m?f:f.concat(p),[]),c=e.shiftTo(...l.map(r).filter(f=>f)),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 It(...t){const e=t.reduce((s,n)=>s+n.source,"");return RegExp(`^${e}$`)}function Et(...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 Mt(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})\\])?)?`,an=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,na=RegExp(`${an.source}${yo}`),on=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(`${an.source} ?(?:${sa.source}|(${ea.source}))?`),Ao=RegExp(`(?: ${ra.source})?`);function Nt(t,e,s){const n=t[e];return F(n)?s:it(n)}function To(t,e){return[{year:Nt(t,e),month:Nt(t,e+1,1),day:Nt(t,e+2,1)},null,e+3]}function jt(t,e){return[{hours:Nt(t,e,0),minutes:Nt(t,e+1,0),seconds:Nt(t,e+2,0),milliseconds:nn(t[e+3])},null,e+4]}function Ht(t,e){const s=!t[e]&&!t[e+1],n=gs(t[e+1],t[e+2]),r=s?null:Ue.instance(n);return[{},r,e+3]}function qt(t,e){const s=t[e]?tt.create(t[e]):null;return[{},s,e+1]}const bo=RegExp(`^T?${an.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,f=e[0]==="-",m=c&&c[0]==="-",p=(g,x=!1)=>g!==void 0&&(x||g&&f)?-g:g;return[{years:p(ut(s)),months:p(ut(n)),weeks:p(ut(r)),days:p(ut(a)),hours:p(ut(o)),minutes:p(ut(l)),seconds:p(ut(c),c==="-0"),milliseconds:p(nn(u),m)}]}const Io={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function ln(t,e,s,n,r,a,o){const l={year:e.length===2?qs(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 Mo(t){const[,e,s,n,r,a,o,l,c,u,f,m]=t,p=ln(e,r,n,s,a,o,l);let g;return c?g=Io[c]:u?g=0:g=gs(f,m),[p,new Ue(g)]}function jo(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[ln(e,r,n,s,a,o,l),Ue.utcInstance]}function Ro(t){const[,e,s,n,r,a,o,l]=t;return[ln(e,l,s,n,r,a,o),Ue.utcInstance]}const Uo=It(po,on),Lo=It(go,on),Fo=It(So,on),$o=It(na),aa=Et(To,jt,Ht,qt),Po=Et(xo,jt,Ht,qt),Wo=Et(vo,jt,Ht,qt),Bo=Et(jt,Ht,qt);function Vo(t){return Mt(t,[Uo,aa],[Lo,Po],[Fo,Wo],[$o,Bo])}function Zo(t){return Mt(jo(t),[Eo,Mo])}function zo(t){return Mt(t,[Oo,Pn],[Do,Pn],[Co,Ro])}function Ho(t){return Mt(t,[No,ko])}const qo=Et(jt);function Go(t){return Mt(t,[bo,qo])}const Yo=It(wo,Ao),_o=It(ra),Jo=Et(jt,Ht,qt);function Ko(t){return Mt(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,vt=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:vt/7,days:vt,hours:vt*24,minutes:vt*24*60,seconds:vt*24*60*60,milliseconds:vt*24*60*60*1e3},...ia},mt=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],el=mt.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;mt.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),mt.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:ms(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?Me.create(this.loc,n).formatDurationFromString(this,e):Wn}toHuman(e={}){if(!this.isValid)return Wn;const s=e.showZeros!==!1,n=mt.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+=rn(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 mt)(kt(s.values,r)||kt(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,...ms(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 mt)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 mt)if(!s(this.values[n],e.values[n]))return!1;return!0}}const wt="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=Ut(e),r=Ut(s),a=tl(n,r);return a??new ge({start:n,end:r})}static after(e,s){const n=Q.fromDurationLike(s),r=Ut(e);return ge.fromDateTimes(r,r.plus(n))}static before(e,s){const n=Q.fromDurationLike(s),r=Ut(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(Ut).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()})`:wt}[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=cs,s={}){return this.isValid?Me.create(this.s.loc.clone(s),e).formatInterval(this):wt}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:wt}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:wt}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:wt}toFormat(e,{separator:s=" – "}={}){return this.isValid?`${this.s.toFormat(e)}${s}${this.e.toFormat(e)}`:wt}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 es{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 f=Zn(c,u);return(f-f%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(m=>["hours","minutes","seconds","milliseconds"].indexOf(m)>=0);u.length===0&&(o<e&&(o=r.plus({[l]:1})),o!==r&&(a[l]=(a[l]||0)+c/(o-r)));const f=Q.fromObject(a,n);return u.length>0?Q.fromMillis(c,n).shiftTo(...u).plus(f):f}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])=>gs(s,n),groups:e}}function ts(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}"),f=qe(e,"{1,9}"),m=qe(e,"{2,4}"),p=qe(e,"{4,6}"),g=b=>({regex:RegExp(ol(b.val)),deser:([B])=>B,literal:!0}),k=(b=>{if(t.literal)return g(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(m,qs);case"yyyy":return X(a);case"yyyyy":return X(p);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 ts(f);case"uu":return ts(l);case"uuu":return X(s);case"a":return Ge(e.meridiems(),0);case"kkkk":return X(a);case"kk":return X(m,qs);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 ts(/[a-z_+-/]{1,256}?/i);case" ":return ts(/[^\S\n\r]/);default:return g(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(kt(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 Ue(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=nn(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=Me.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(Me.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(kt(n,"a")&&kt(n,"H"))throw new Tt("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=Me.create(e,t).dtFormatter(hl()),r=n.formatToParts(),a=n.resolvedOptions();return r.map(o=>ul(o,t,a))}const js="Invalid DateTime",qn=864e13;function $t(t){return new Ye("unsupported zone",`the zone "${t.name}" is not supported`)}function Os(t){return t.weekData===null&&(t.weekData=us(t.c)),t.weekData}function Ds(t){return t.localWeekData===null&&(t.localWeekData=us(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}function dt(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 ss(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 is(t,e,s){return ha(ps(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,ds(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=ps(a);let[c,u]=ha(l,s,t.zone);return o!==0&&(c+=o,u=t.zone.offset(c)),{ts:c,o:u}}function At(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 ns(t,e,s=!0){return t.isValid?Me.create(ne.create("en-US"),{allowZ:s,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Cs(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},os=["year","month","day","hour","minute","second","millisecond"],xl=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],vl=["year","ordinal","hour","minute","second","millisecond"];function ls(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 ls(t)}}function wl(t){if(Pt===void 0&&(Pt=Se.now()),t.type!=="iana")return t.offset(Pt);const e=t.name;let s=Gs.get(e);return s===void 0&&(s=t.offset(Pt),Gs.set(e,s)),s}function Jn(t,e){const s=ot(e.zone,Se.defaultZone);if(!s.isValid)return L.invalid($t(s));const n=ne.fromObject(e);let r,a;if(F(t.year))r=Se.now();else{for(const c of os)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]=is(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=rn(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 Pt;const Gs=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:$t(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=ss(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=Ue.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($t(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($t(n));const r=ne.fromObject(s),a=ms(e,_n),{minDaysInFirstWeek:o,startOfWeek:l}=Un(a,r),c=Se.now(),u=F(s.specificOffset)?n.offset(c):s.specificOffset,f=!F(a.ordinal),m=!F(a.year),p=!F(a.month)||!F(a.day),g=m||p,x=a.weekYear||a.weekNumber;if((g||f)&&x)throw new Tt("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(p&&f)throw new Tt("Can't mix ordinal dates with month/day");const k=x||a.weekday&&!g;let b,B,H=ss(c,u);k?(b=xl,B=gl,H=us(H,o,l)):f?(b=vl,B=Sl,H=Es(H)):(b=os,B=ya);let K=!1;for(const S of b){const j=a[S];F(j)?K?a[S]=B[S]:a[S]=H[S]:K=!0}const I=k?_i(a,o,l):f?Ji(a):Br(a),D=I||Vr(a);if(D)return L.invalid(D);const V=k?Cn(a,o,l):f?Rn(a):a,[C,q]=is(V,u,n),y=new L({ts:C,zone:n,o:q,loc:r});return a.weekday&&g&&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 At(n,r,s,"ISO 8601",e)}static fromRFC2822(e,s={}){const[n,r]=Zo(e);return At(n,r,s,"RFC 2822",e)}static fromHTTP(e,s={}){const[n,r]=zo(e);return At(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,f]=pl(o,e,s);return f?L.invalid(f):At(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 At(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(Me.parseFormat(e),ne.fromObject(s)).map(r=>r.val).join("")}static resetCache(){Pt=void 0,Gs.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?Os(this).weekYear:NaN}get weekNumber(){return this.isValid?Os(this).weekNumber:NaN}get weekday(){return this.isValid?Os(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Ds(this).weekday:NaN}get localWeekNumber(){return this.isValid?Ds(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Ds(this).weekYear:NaN}get ordinal(){return this.isValid?Es(this.c).ordinal:NaN}get monthShort(){return this.isValid?es.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?es.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?es.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?es.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=ps(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,f=ss(c,o),m=ss(u,l);return f.hour===m.hour&&f.minute===m.minute&&f.second===m.second&&f.millisecond===m.millisecond?[dt(this,{ts:c}),dt(this,{ts:u})]:[this]}get isInLeapYear(){return zt(this.year)}get daysInMonth(){return ds(this.year,this.month)}get daysInYear(){return this.isValid?bt(this.year):NaN}get weeksInWeekYear(){return this.isValid?Bt(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?Bt(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){const{locale:s,numberingSystem:n,calendar:r}=Me.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:s,numberingSystem:n,outputCalendar:r}}toUTC(e=0,s={}){return this.setZone(Ue.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]=is(o,a,e)}return dt(this,{ts:r,zone:e})}else return L.invalid($t(e))}reconfigure({locale:e,numberingSystem:s,outputCalendar:n}={}){const r=this.loc.clone({locale:e,numberingSystem:s,outputCalendar:n});return dt(this,{loc:r})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;const s=ms(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,f=s.weekYear||s.weekNumber;if((u||o)&&f)throw new Tt("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&o)throw new Tt("Can't mix ordinal dates with month/day");let m;a?m=Cn({...us(this.c,n,r),...s},n,r):F(s.ordinal)?(m={...this.toObject(),...s},F(s.day)&&(m.day=Math.min(ds(m.year,m.month),m.day))):m=Rn({...Es(this.c),...s});const[p,g]=is(m,this.o,this.zone);return dt(this,{ts:p,o:g})}plus(e){if(!this.isValid)return this;const s=Q.fromDurationLike(e);return dt(this,Gn(this,s))}minus(e){if(!this.isValid)return this;const s=Q.fromDurationLike(e).negate();return dt(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?Me.create(this.loc.redefaultToEN(s)).formatDateTimeFromString(this,e):js}toLocaleString(e=cs,s={}){return this.isValid?Me.create(this.loc.clone(s),e).formatDateTime(this):js}toLocaleParts(e={}){return this.isValid?Me.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=ls(o);const l=e==="extended";let c=Cs(this,l,o);return os.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?Cs(this,e==="extended",ls(s)):null}toISOWeekDate(){return ns(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=ls(l),(r&&os.indexOf(l)>=3?"T":"")+Yn(this,o==="extended",s,e,n,a,l)):null}toRFC2822(){return ns(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return ns(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Cs(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")),ns(this,r,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():js}[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:f}=s.explainFromTokens(e);return f?L.invalid(f):At(l,c,n,`format ${s.format}`,e,u)}static get DATE_SHORT(){return cs}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 Mr}static get DATETIME_MED_WITH_SECONDS(){return jr}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 Ut(t){if(L.isDateTime(t))return t;if(t&&t.valueOf&<(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 Vt(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:f}){const m=Xs(),p=async k=>{try{const b=await m.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.")}},g=[{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"&&p(b)}},children:i.jsx(h.Button,{type:"text",icon:i.jsx(ft.MoreOutlined,{})})})}],x=l?t:(t||[]).filter(k=>{const b=hn(k.statusType||"");return Ai.some(B=>b.includes(hn(B)))});return i.jsx(Qs,{data:x,loading:e,pageSize:s,total:n,currentPage:r,columns:g,renderActions:void 0,onAlertIdClick:a,onAlertView:o,onFilterChange:l,onPageChange:c,onRefetch:u,resetKey:f,excludeCompleted:!1})}function Il({size:t=120,time:e,timeZone:s="America/New_York"}){const{hours:n,minutes:r,seconds:a}=d.useMemo(()=>{const m=new Intl.DateTimeFormat("en-US",{timeZone:s,hour:"numeric",minute:"numeric",second:"numeric",hour12:!1}).formatToParts(e);return{hours:parseInt(m.find(p=>p.type==="hour")?.value||"0",10),minutes:parseInt(m.find(p=>p.type==="minute")?.value||"0",10),seconds:parseInt(m.find(p=>p.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((f,m)=>{const p=m*30,g=6,x=u-4,k=x-g,b=(p-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:m%3===0?2:1,strokeLinecap:"round"})},m)}),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 Ml({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 Ys=t=>i.jsxs(h.Tag,{children:[i.jsx(ft.PlusOutlined,{})," ",t.length," more"]}),{Text:et}=h.Typography;function jl(t){const{selectedRule:e,setSelectedRule:s,ruleOptions:n,minsOptions:r,roleOptions:a,l1mins:o,setL1mins:l,l1role:c,setL1role:u,l2mins:f,setL2mins:m,l2role:p,setL2role:g,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:j,saving:re,onActionTypesLoaded:fe}=t,{rules:M,config:A}=$e(),w=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 M.getLookups();if(ee||!pe||!Array.isArray(pe.actionTypes))return;const Te=pe.actionTypes.map($=>({label:$.name,value:String($.actionTypeId)}));T(Te),fe&&fe(pe.actionTypes);const he=Array.isArray(pe.thirdParties)?pe.thirdParties.map($=>({label:$.thirdPartyName,value:$.thirdPartyIds??$.thirdPartyId})):[];U(he)}catch(pe){console.error("Error loading lookups",pe)}finally{ee||G(!1)}})(),()=>{ee=!0}},[]);const _=typeof o=="number"||typeof c=="number",oe=typeof f=="number"||typeof p=="number",ue=typeof o=="number"||typeof c=="number"||typeof f=="number"||typeof p=="number"||typeof x=="number"||typeof b=="number"||Array.isArray(H)&&H.length>0||Array.isArray(I)&&I.length>0||!!V||!!q,ke=!!e&&ue&&!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:f,onChange:m,options:r})}),i.jsx(h.Col,{span:14,children:i.jsx(h.Select,{placeholder:"Escalate to",className:"w-full",value:p,onChange:g,options:a})})]})]})}),oe&&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:Ys})]})}),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:Ys})]})})]}),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:[!w&&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:j,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(ft.EditOutlined,{})})}]})}const{Title:Dl,Text:Rs}=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),[f,m]=d.useState(),[p,g]=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(!f||!Array.isArray(c)){g([]);return}const I=c.find(V=>V?.ruleId===f||V?.RuleId===f||V?.ruleName===f),D=I?.userRoleIds??I?.UserRoleIds;g(Array.isArray(D)?D:[])},[f,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=()=>{m(void 0),g([])},K=async()=>{if(!f){Ne.toast.info("Please select a rule");return}try{l(!0);const I=Array.isArray(c)?c.find(y=>y?.ruleId===f||y?.RuleId===f||y?.ruleName===f):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 ${f}`);const V=p.map(y=>{const S=t.find(j=>j.userRoleId===y);return{id:y,name:S?.userRoleName??String(y)}}),C={...I,ruleId:f,userRoleIds:p,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"),m(void 0),g([]);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(Rs,{className:"text-gray-700 font-medium block mb-1",children:"Rules"}),i.jsx(h.Select,{placeholder:"Rules",value:f,onChange:m,options:k,className:"w-full"})]})}),i.jsx(h.Col,{xs:24,sm:12,md:8,lg:8,children:i.jsxs("div",{children:[i.jsx(Rs,{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:p,onChange:g,options:x,maxTagCount:1,maxTagPlaceholder:Ys})]})}),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||!f,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(Rs,{type:"secondary",children:"—"})}}]})]})}const{Title:Xn}=h.Typography;function Us(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"),[f,m]=d.useState("By severity"),[p,g]=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,j]=d.useState(),[re,fe]=d.useState(),[M,A]=d.useState(),[w,E]=d.useState(),[T,O]=d.useState(),[U,Y]=d.useState(),[G,_]=d.useState(),[oe,ue]=d.useState([]),[ke,ee]=d.useState([]),[pe,Te]=d.useState(!1),[he,$]=d.useState(!1),[P,ye]=d.useState({}),[le,Le]=d.useState({}),[we,He]=d.useState(s||[]),[Ie,xe]=d.useState([]),[Ot,ct]=d.useState(!1),[pt,Je]=d.useState(!1),[Fe,gt]=d.useState(n||[]);d.useEffect(()=>{n&&n.length&>(n)},[n]),d.useEffect(()=>{if(!Fe||!Fe.length)return;const R=Object.keys(P).length>0||Object.keys(le).length>0;if(Ie.length&&!R)return;const te=Fe.map((J,W)=>{const ce=e.find(ie=>ie.RuleId===(J.ruleId||J.ruleName))?.Name||J.ruleName||J.Name||"-",Z=Us(J.escalationSettings),se=typeof Z.level1UserRoleId=="number"&&Z.level1UserRoleId>0?[Z.level1UserRoleId]:[],Ke=typeof Z.level2UserRoleId=="number"&&Z.level2UserRoleId>0?[Z.level2UserRoleId]:[],Dt=typeof Z.level3UserRoleId=="number"&&Z.level3UserRoleId>0?[Z.level3UserRoleId]:[],z=(Array.isArray(Z.escalationSettingsActionTypeIds)?Z.escalationSettingsActionTypeIds:[]).map(ie=>P[ie]||String(ie)),Ae=(Array.isArray(Z.thirdPartyId)?Z.thirdPartyId:[]).map(ie=>le[ie]||String(ie)),je=typeof Z.humanLoop=="boolean"?Z.humanLoop:null,de=typeof Z.isAutoExpire=="boolean"?Z.isAutoExpire:null;return{id:String(J.ruleId||J.ruleName||W),ruleOrSeverityLabel:ce,l1:{minutes:Z.level1PostAssistTime??void 0,roles:se},l2:{minutes:Z.level2PostAssistTime??void 0,roles:Ke},l3:{minutes:Z.level3PostAssistTime??void 0,roles:Dt},actions:z,notify:Ae,humanLoop:je,isAutoExpire:de}});xe(te)},[Fe,e,P,le]);const St=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]),xt=d.useMemo(()=>we.map(R=>({label:R.userRoleName,value:R.userRoleId})),[we]),xs=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),g(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=ce=>{const Z=Number(ce);return!isNaN(Z)&&Z>0?Z:void 0},te=ce=>{const Z=Number(ce);return!isNaN(Z)&&Z>0?Z:void 0},J=(Fe||[]).find(ce=>ce?.ruleId===S||ce?.ruleName===S||ce?.RuleId===S),W=Us(J?.escalationSettings);if(W&&typeof W=="object"){fe(te(W.level1PostAssistTime)),A(R(W.level1UserRoleId)),E(te(W.level2PostAssistTime)),O(R(W.level2UserRoleId)),Y(te(W.level3PostAssistTime)),_(R(W.level3UserRoleId));const ce=Array.isArray(W.escalationSettingsActionTypeIds)?W.escalationSettingsActionTypeIds:[];ue(ce.map(Z=>String(Z))),ee(Array.isArray(W.thirdPartyId)?W.thirdPartyId:[]),Te(!!W.humanLoop),$(!!W.isAutoExpire)}},[V,S,Fe]);const vs=async()=>{try{Je(!0);const R=await o.getRules(),te=Array.isArray(R)?R:Array.isArray(R?.data)?R.data:[];gt(te);const J=te.map((W,ce)=>{const Z=e.find(ie=>ie.RuleId===(W.ruleId||W.ruleName))?.Name||W.ruleName||W.Name||"-",se=Us(W.escalationSettings??W.EscalationSettings),Ke=typeof se.level1UserRoleId=="number"&&se.level1UserRoleId>0?[se.level1UserRoleId]:[],Dt=typeof se.level2UserRoleId=="number"&&se.level2UserRoleId>0?[se.level2UserRoleId]:[],v=typeof se.level3UserRoleId=="number"&&se.level3UserRoleId>0?[se.level3UserRoleId]:[],ae=(Array.isArray(se.escalationSettingsActionTypeIds)?se.escalationSettingsActionTypeIds:[]).map(ie=>P[ie]||String(ie)),je=(Array.isArray(se.thirdPartyId)?se.thirdPartyId:[]).map(ie=>le[ie]||String(ie)),de=typeof se.humanLoop=="boolean"?se.humanLoop:null;return{id:String(W.ruleId||W.ruleName||ce),ruleOrSeverityLabel:Z,l1:{minutes:se.level1PostAssistTime??void 0,roles:Ke},l2:{minutes:se.level2PostAssistTime??void 0,roles:Dt},l3:{minutes:se.level3PostAssistTime??void 0,roles:v},actions:ae,notify:je,humanLoop:de}});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 ce of te.thirdParties){const Z=ce.thirdPartyIds??ce.thirdPartyId;typeof Z=="number"&&(J[Z]=ce.thirdPartyName)}Le(J);const W=Array.isArray(te.userRoles)?te.userRoles.map(ce=>({userRoleId:ce.userRoleId??ce.id,userRoleName:ce.userRoleName??ce.name})):[];R||He(W.length?W:s||[])}catch(te){console.error("Error loading lookups",te)}})(),()=>{R=!0}},[]);const un=async()=>{B(!0);try{const R=await l.setAdminSettings({sortBy:c,groupBy:"string"});R?.responseStatus&&R?.data&&Ne.toast.success(R.data),g(c),k(!1)}catch(R){console.error("Error saving admin settings",R)}finally{B(!1)}},ws=()=>{u(p),k(!1)},As=async()=>{ct(!0),a?.({ruleId:S,levels:[{minutes:re,role:M},{minutes:w,role:T},{minutes:U,role:G}],actions:oe,thirdPartyIds:ke,humanLoop:pe,isAutoExpire:he});try{if(S){const te=Array.isArray(oe)?oe.map(se=>Number.isNaN(Number(se))?se:Number(se)):[],J=(Fe||[]).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 ce={...J,escalationSettings:{level1UserRoleId:M??0,level1PostAssistTime:re??0,level2UserRoleId:T??0,level2PostAssistTime:w??0,level3UserRoleId:G??0,level3PostAssistTime:U??0,escalationSettingsActionTypeIds:te,thirdPartyId:Array.isArray(ke)?ke:[],humanLoop:pe,isAutoExpire:he}},Z=await o.updateRule(W,ce);Z?.responseStatus||Z?.Success||Z?.success?(Ne.toast.success("Escalation settings saved"),await vs(),j(void 0),fe(void 0),A(void 0),E(void 0),O(void 0),Y(void 0),_(void 0),ue([]),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)}},Ts=()=>{u("By Severity"),m("By severity"),C("rules"),y(void 0),j(void 0),fe(void 0),A(void 0),E(void 0),O(void 0),Y(void 0),_(void 0),ue([]),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(Ml,{sortBy:c,groupBy:f,onChange:R=>{R.sortBy&&(u(R.sortBy),k(!0)),R.groupBy&&(m(R.groupBy),k(!0))},showActions:x,onSave:un,onClear:ws,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(jl,{escBasis:V,setEscBasis:C,selectedSeverity:q,setSelectedSeverity:y,selectedRule:S,setSelectedRule:j,severityOptions:St,ruleOptions:be,minsOptions:xs,roleOptions:xt,l1mins:re,setL1mins:fe,l1role:M,setL1role:A,l2mins:w,setL2mins:E,l2role:T,setL2role:O,l3mins:U,setL3mins:Y,l3role:G,setL3role:_,actions:oe,setActions:ue,thirdPartyIds:ke,setThirdPartyIds:ee,humanLoop:pe,setHumanLoop:Te,onClear:Ts,onSave:As,saving:Ot,onActionTypesLoaded:R=>{const te={};for(const J of R)typeof J.actionTypeId=="number"&&(te[J.actionTypeId]=J.name);ye(te)},isAutoExpire:he,setAutoExpire:$})]}),i.jsx(h.Divider,{className:"my-6"}),i.jsx(Ol,{entries:Ie,userRoles:we,loading:pt||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);j(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:rs}=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,f]=d.useState(new Set),[m,p]=d.useState(null),[g,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 j=sr(S.sortBy);c(j==="By Created Date"?"By Created Date":"By Severity"),p(Sn(S.doNotDisturbStart)),x(Sn(S.doNotDisturbEnd)),Array.isArray(S.anomalyIds)&&f(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 j=Array.isArray(S.anomalies)?S.anomalies:[];H(j)}catch(S){console.error("Failed to load anomalies lookups",S)}finally{y||I(!1)}})(),()=>{y=!0}},[]);const C=y=>{f(S=>{const j=new Set(S);return j.has(y)?j.delete(y):j.add(y),j})},q=async()=>{s?.({sortBy:l,subscribedRuleIds:Array.from(u),dnd:{from:m,to:g},channels:k});try{V(!0);const y=m?m.format?.("HH:mm:ss")??"00:00:00":"00:00:00",S=g?g.format?.("HH:mm:ss")??"00:00:00":"00:00:00",j=Array.from(u).map(fe=>Number(fe)).filter(fe=>Number.isFinite(fe)),re=await a.setPreferenceSettings({anomalyIds:j,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(rs,{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),j=y.anomalyName;return i.jsx(h.Checkbox,{checked:u.has(S),onChange:()=>C(S),children:j},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(rs,{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(rs,{children:"From"}),i.jsx(h.TimePicker,{value:m,onChange:y=>p(y),format:"HH:mm"})]}),i.jsxs(h.Space,{direction:"horizontal",size:8,className:"items-center",children:[i.jsx(rs,{children:"To"}),i.jsx(h.TimePicker,{value:g,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 Gt(){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}=Gt();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.jsx("div",{className:"flex flex-col",children:i.jsx("h4",{className:"text-sm text-black font-medium",children:s.channelLabel})}),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",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.jsx("span",{className:"text-gray-500",children:r.phone}),r.sentAt?i.jsx("span",{className:"text-gray-500",children:Vt(r.sentAt,e?.ianaTimeZoneId,!0)}):null]}),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}=Gt(),u=a?.length?a.map(m=>{const p=(m?.status||m?.eventStatus||"").toLowerCase()==="completed"?"Completed":"Inprogress",g=m?.createdDate?Vt(m.createdDate,c?.ianaTimeZoneId):m?.timestamp?Vt(m.timestamp,c?.ianaTimeZoneId):"";return{status:p,title:m?.status||m?.eventStatus||"Status Update",description:m?.description||m?.actionNotes||"",timestamp:g}}):[],f={summary:l,timeline:u,notifications:o??[]};return i.jsx(Fl,{data:f})},Pl=({url:t,alt:e,isLoading:s,priority:n,detections:r,onLoadSuccess:a,onError:o})=>{const{imageRef:l,dimensions:c,onLoad:u}=ur(),f=d.useMemo(()=>cr(r,c.naturalWidth,c.naturalHeight,c.renderedWidth,c.renderedHeight),[r,c]),m=d.useMemo(()=>f.map(p=>({...p,label:p.personName||""})),[f]);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:m,priority:n})]})},Wl=({items:t})=>{const{timeZoneDetails:e}=Gt(),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=o-a,u=Math.floor(l/3600),f=Math.floor(l%3600/60),m=l%60,p=c%1e3;return[u>0?`${u}h`:null,f>0?`${f}m`:null,`${m}s`,`${p}ms`].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:"," ",Vt(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[f,m]=d.useState(),[p,g]=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=Xs(),{alerts:q,rules:y,config:S}=$e(),{timeZoneDetails:j}=Gt(),[re,fe]=d.useState(null),[M,A]=d.useState(!1),[w,E]=d.useState(!1),[T,O]=d.useState(void 0),[U,Y]=d.useState(void 0),[G,_]=d.useState({}),[oe,ue]=d.useState({}),ke=(v,z,ae)=>{const Ae=oe[v];return G[v]===!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:v,alt:z.caption||`media-${ae}`,isLoading:Ae,priority:we,detections:Fe,onLoadSuccess:()=>ue(je=>({...je,[v]:!1})),onError:()=>ue(je=>({...je,[v]:!1}))})]})},ee=s?.originalData||{},{eventName:pe,eventDisplayName:Te,anomalyName:he,alertId:$,timestamp:P,description:ye,spaceName:le,assignTeam:Le,priority:we,statusType:He,id:Ie,alertDetails:xe,statusHistory:Ot,mediaDetails:ct,alertNumber:pt}=ee,Je=ee.bbox_xyxy,Fe=d.useMemo(()=>Je?[{bbox_xyxy:Je,personName:ee.personName}]:[],[Je,ee.personName]),gt=S.tenant==="snl"?Te||pe||"Alert Event":pe||"Alert Event",St=v=>{const z=String(v||"").toLowerCase();return z==="delivered"||z==="sent"?"Delivered":z==="failed"?"Failed":"Queued"},be=v=>({name:v?.receipientName||v?.recipientName||"-",role:v?.receipientRoleName||"",phone:v?.receipentPhoneNumber||v?.recipientPhoneNumber||v?.receipientEmail||v?.recipientEmail||"",status:St(v?.messageStatus),notificationReceipientType:v?.notificationReceipientType||"",sentAt:v?.sentAt||""}),xt=(v,z)=>{const ae=z.map(be),Ae=ae.filter(ie=>ie.status==="Delivered").length,je=z.map(ie=>ie?.sentAt).filter(Boolean).sort((ie,dn)=>new Date(ie).getTime()-new Date(dn).getTime())[0],de=`${v} Notification`;return{channelLabel:`${v} Notification`,sentAt:je||"",messageTitle:de,messageBody:"",total:ae.length,delivered:Ae,recipients:ae}},xs=v=>{const z=new Map;return(v||[]).forEach(ae=>{const Ae=String(ae?.notificationType||"Unknown"),je=z.get(Ae)||[];je.push(ae),z.set(Ae,je)}),Array.from(z.entries()).map(([ae,Ae])=>xt(ae,Ae))},vs=async v=>{try{const z=await q.getAlertNotifications(v),ae=xs(z);V(ae)}catch{V(void 0)}};d.useEffect(()=>{if(K!=="track"||!Ie)return;let v=!1;return vs(Ie).then(()=>{v&&V(void 0)}),()=>{v=!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):(m(void 0),g(""))},[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 v=!1;return A(!0),y.getLookups().then(z=>{v||(fe(z.alertStatusTypes??[]),A(!1))}).catch(()=>{v||(fe([]),A(!1))}),()=>{v=!0}},[t,S.tenant]);const ws=l==="archived"||["completed","false positive"].includes(String(He||"").toLowerCase()),As=v=>{const z=String(v?.value||"").toLowerCase(),ae=String(v?.statusName||"").toLowerCase();return z.includes("reopen")||ae.includes("reopen")},Ts=String(he||"").trim().toLowerCase(),R=Zl[Ts]??"general",te=r.filter(v=>{const z=As(v);return typeof l<"u"?l==="archived"?z:!z:ws?z:!z}).map(v=>({value:v.value,label:v.statusName})),J=re??[],W=v=>!!v.isWatchListStatus,ce=v=>!!v.isWeapontStatus,Z=J.filter(v=>{switch(R){case"elopement":return v.isElopementStatus;case"watchlist":return W(v);case"weapon":return ce(v);default:return!v.isElopementStatus&&!W(v)&&!ce(v)}}).map(v=>({value:v.alertStatusTypeName,label:v.alertStatusTypeName})),se=S.tenant==="snl"&&re!==null?Z:te,Ke=d.useMemo(()=>or(ct),[ct]);d.useEffect(()=>{let v=!1;const z=new AbortController,ae=async de=>{if(de){v||_(ie=>({...ie,[de]:!1}));try{const ie=await fetch(de,{method:"HEAD",signal:z.signal});if(ie.ok){v||_(Ct=>({...Ct,[de]:!0}));return}if(ie.status===404){v||_(Ct=>({...Ct,[de]:!1}));return}if(!(await fetch(de,{method:"GET",signal:z.signal})).ok)throw new Error("Media not available");v||_(Ct=>({...Ct,[de]:!0}))}catch{v||_(ie=>({...ie,[de]:!1}))}}};_({});const Ae=Ke.filter(de=>!Ls(de)).map(de=>de?.mediaUrl||de).filter(de=>typeof de=="string"&&de.length>0),je={};return Ae.forEach(de=>{je[de]=!0}),ue(je),Ae.forEach(de=>ae(de)),()=>{v=!0,z.abort()}},[Ke]);const Dt=async()=>{try{k(!0);const v={alertUniqueId:$,alertId:Ie,status:f?String(f):void 0,notes:p.trim(),modifiedBy:0},z=await C.mutateAsync(v);if(z?.responseStatus||z?.Success){const ae=z?.Message||z?.data||"Alert updated successfully.";Ne.toast.success(ae,{autoClose:1500,onClose:()=>{n(),e()}}),m(void 0),g("")}else{const ae=z?.errorMessage||z?.Message||"Failed to update alert status";Ne.toast.error(ae)}}catch(v){console.error("Error updating alert status:",v),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:Dt,loading:x,children:x?"Saving...":"Save Changes"})]}):null,children:s&&i.jsx(h.Tabs,{activeKey:K,onChange:v=>I(v),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:gt}),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:"," ",Vt(P,j?.ianaTimeZoneId)]}),i.jsxs("div",{className:"font-sm text-gray-500",children:[i.jsx("b",{className:"text-black text-sm/6",children:"Description:"})," ",ye||"No description available"]}),le&&i.jsxs("div",{className:"font-sm text-gray-500",children:["Space: ",le]}),Le&&i.jsxs("div",{className:"font-sm text-gray-500",children:["Assigned to: ",Le]}),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:v=>m(v),value:f,options:se,loading:S.tenant==="snl"?M: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:p,onChange:v=>g(v.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(ft.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(ft.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((v,z)=>{const ae=v.mediaUrl||v,Ae=Ls(v);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),v,z),v.caption&&i.jsx("p",{className:"text-xs text-gray-500 mt-1",children:v.caption}),!Ae&&G[String(ae)]?i.jsx("button",{onClick:()=>{E(!0),O(ae),Y(v.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:w,onClose:()=>E(!1),src:T||"",type:U||"image",detections:Fe,priority:we})]})},{key:"track",label:"Track Incident",children:i.jsx($l,{alertId:$,id:Ie,priority:we,spaceName:le,alertNumber:pt,statusHistory:Ot,notifGroups:D})}]})})};function wa(){const{alerts:t}=$e(),e=ht.useQuery({queryKey:["alerts","statusList"],queryFn:()=>t.getAlertStatusList(),staleTime:5*6e4});return{list:e.data??[],loading:e.isLoading,error:e.error,refetch:e.refetch}}function cn({alerts:t,loading:e=!1,columns:s,total:n,currentPage:r,onRefetch:a,onPageChange:o,onFilterChange:l,onAlertView:c,showAlertTimeline:u}){const[f,m]=d.useState(!1),[p,g]=d.useState(null),[x,k]=d.useState("details"),{list:b,loading:B}=wa(),{timeZoneDetails:H}=Gt(),K=H?.timeZoneName??"UTC",I=H?.ianaTimeZoneId??"UTC";function D(re,fe){g(re),k(fe?.tab??"details"),q(fe?.sourceTab??"active"),m(!0)}function V(){m(!1)}const[C,q]=d.useState("active"),[y,S]=d.useState(0),j=p?{originalData:{...p,alertId:p.alertId??p.id,mediaDetails:p.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 fe=re==="archived";S(M=>M+1),o?.(1),l?.({isArchived:fe})},items:[{key:"active",label:"Active",children:i.jsx(Qs,{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:f,handleModalClose:V,selectedRow:j,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:f}=$e();return d.useEffect(()=>{let m=!0;return(async()=>{try{const p=await f.getRules();if(!m)return;l(Array.isArray(p)?p:[]);const g=(p||[]).map((x,k)=>({RuleId:x.ruleId||x.ruleName||String(k),Name:x.ruleName||x.Name||"-",Description:x.ruleDesc||x.Description||"",SeverityId:0}));e(g);try{const x=await f.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{m&&u(!1)}})(),()=>{m=!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=ht.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=f=>{"isArchived"in f?r({isArchived:f.isArchived}):r(m=>({...m,...f}))};return i.jsx(cn,{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:f,showAlertTimeline:m}){const[p]=d.useState(()=>new ht.QueryClient({defaultOptions:{queries:{retry:(x,k)=>{const b=k.response?.status??k?.status;return b>=400&&b<=500?!1:x<2},refetchOnWindowFocus:!1}}})),g=d.useMemo(()=>({alertsBaseUrl:e,rulesBaseUrl:s||e,headers:n||void 0}),[e,s,n]);return i.jsx(ht.QueryClientProvider,{client:p,children:i.jsx(ar,{tenant:t,override:g,timeZone:r,userManagementDomain:a,spacesBaseUrl:o,children:Array.isArray(l)?i.jsx(cn,{alerts:l,loading:!!c,columns:u,onAlertView:f,showAlertTimeline:m}):i.jsx(Gl,{columns:u,onAlertView:f,showAlertTimeline:m})})})}function _l(t){const{alerts:e}=$e(),s=ht.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=cn;exports.AlertConsoleWidget=Yl;exports.AlertsTable=Qs;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=Xs;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),d=require("react"),h=require("antd"),ft=require("@ant-design/icons"),Ne=require("react-toastify"),ht=require("@tanstack/react-query"),Ta="#FF3B30",ba="#FF9500",Na="#FFCC00",ka="#34C759",Yt={critical:Ta,high:ba,medium:Na,low:ka},mn={Critical:Yt.critical,High:Yt.high,Medium:Yt.medium,Low:Yt.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,f=Number.isFinite(l)?l:0;return c*3600+u*60+f}function hn(t){return t.toLowerCase().replaceAll("'","").replaceAll("‘","").replaceAll("’","")}const tr="",Ea=tr,Ma="",ja="",Oa="",Da="",yn={snl:{alerts:tr,rules:Ea},schools:{alerts:Ma,rules:ja},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 Rt(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=Rt(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=Rt(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=Rt(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=Rt(n,{alertId:s});return De(r,{method:"POST",headers:e})},async sendSMSorEmailNotifications(s,n,r){const a=Oe(t.baseUrl,"/api/Alert/SendSMSorEmailNotifications"),o=Rt(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 _t(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 _t(s,{method:"GET",headers:e});return Array.isArray(r)?r:[]},async setEscalationSettings(r){return _t(s,{method:"POST",headers:e,body:JSON.stringify(r??{})})},async getLookups(){return _t(n,{method:"GET",headers:e})},async updateRule(r,a){const o=`${s}/${r}`;return _t(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 as={exports:{}},$a=as.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",f="week",m="month",p="quarter",g="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(M){var A=["th","st","nd","rd"],w=M%100;return"["+M+(A[(w-20)%10]||A[w]||A[0])+"]"}},K=function(M,A,w){var E=String(M);return!E||E.length>=A?M:""+Array(A+1-E.length).join(w)+M},I={s:K,z:function(M){var A=-M.utcOffset(),w=Math.abs(A),E=Math.floor(w/60),T=w%60;return(A<=0?"+":"-")+K(E,2,"0")+":"+K(T,2,"0")},m:function M(A,w){if(A.date()<w.date())return-M(w,A);var E=12*(w.year()-A.year())+(w.month()-A.month()),T=A.clone().add(E,m),O=w-T<0,U=A.clone().add(E+(O?-1:1),m);return+(-(E+(w-T)/(O?T-U:U-T))||0)},a:function(M){return M<0?Math.ceil(M)||0:Math.floor(M)},p:function(M){return{M:m,y:g,w:f,d:u,D:x,h:c,m:l,s:o,ms:a,Q:p}[M]||String(M||"").toLowerCase().replace(/s$/,"")},u:function(M){return M===void 0}},D="en",V={};V[D]=H;var C="$isDayjsObject",q=function(M){return M instanceof re||!(!M||!M[C])},y=function M(A,w,E){var T;if(!A)return D;if(typeof A=="string"){var O=A.toLowerCase();V[O]&&(T=O),w&&(V[O]=w,T=O);var U=A.split("-");if(!T&&U.length>1)return M(U[0])}else{var Y=A.name;V[Y]=A,T=Y}return!E&&T&&(D=T),T||!E&&D},S=function(M,A){if(q(M))return M.clone();var w=typeof A=="object"?A:{};return w.date=M,w.args=arguments,new re(w)},j=I;j.l=y,j.i=q,j.w=function(M,A){return S(M,{locale:A.$L,utc:A.$u,x:A.$x,$offset:A.$offset})};var re=(function(){function M(w){this.$L=y(w.locale,null,!0),this.parse(w),this.$x=this.$x||w.x||{},this[C]=!0}var A=M.prototype;return A.parse=function(w){this.$d=(function(E){var T=E.date,O=E.utc;if(T===null)return new Date(NaN);if(j.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)})(w),this.init()},A.init=function(){var w=this.$d;this.$y=w.getFullYear(),this.$M=w.getMonth(),this.$D=w.getDate(),this.$W=w.getDay(),this.$H=w.getHours(),this.$m=w.getMinutes(),this.$s=w.getSeconds(),this.$ms=w.getMilliseconds()},A.$utils=function(){return j},A.isValid=function(){return this.$d.toString()!==k},A.isSame=function(w,E){var T=S(w);return this.startOf(E)<=T&&T<=this.endOf(E)},A.isAfter=function(w,E){return S(w)<this.startOf(E)},A.isBefore=function(w,E){return this.endOf(E)<S(w)},A.$g=function(w,E,T){return j.u(w)?this[E]:this.set(T,w)},A.unix=function(){return Math.floor(this.valueOf()/1e3)},A.valueOf=function(){return this.$d.getTime()},A.startOf=function(w,E){var T=this,O=!!j.u(E)||E,U=j.p(w),Y=function(Te,he){var $=j.w(T.$u?Date.UTC(T.$y,he,Te):new Date(T.$y,he,Te),T);return O?$:$.endOf(u)},G=function(Te,he){return j.w(T.toDate()[Te].apply(T.toDate("s"),(O?[0,0,0,0]:[23,59,59,999]).slice(he)),T)},_=this.$W,oe=this.$M,ue=this.$D,ke="set"+(this.$u?"UTC":"");switch(U){case g:return O?Y(1,0):Y(31,11);case m:return O?Y(1,oe):Y(0,oe+1);case f:var ee=this.$locale().weekStart||0,pe=(_<ee?_+7:_)-ee;return Y(O?ue-pe:ue+(6-pe),oe);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(w){return this.startOf(w,!1)},A.$set=function(w,E){var T,O=j.p(w),U="set"+(this.$u?"UTC":""),Y=(T={},T[u]=U+"Date",T[x]=U+"Date",T[m]=U+"Month",T[g]=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===m||O===g){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(w,E){return this.clone().$set(w,E)},A.get=function(w){return this[j.p(w)]()},A.add=function(w,E){var T,O=this;w=Number(w);var U=j.p(E),Y=function(oe){var ue=S(O);return j.w(ue.date(ue.date()+Math.round(oe*w)),O)};if(U===m)return this.set(m,this.$M+w);if(U===g)return this.set(g,this.$y+w);if(U===u)return Y(1);if(U===f)return Y(7);var G=(T={},T[l]=n,T[c]=r,T[o]=s,T)[U]||1,_=this.$d.getTime()+w*G;return j.w(_,this)},A.subtract=function(w,E){return this.add(-1*w,E)},A.format=function(w){var E=this,T=this.$locale();if(!this.isValid())return T.invalidDate||k;var O=w||"YYYY-MM-DDTHH:mm:ssZ",U=j.z(this),Y=this.$H,G=this.$m,_=this.$M,oe=T.weekdays,ue=T.months,ke=T.meridiem,ee=function(he,$,P,ye){return he&&(he[$]||he(E,O))||P[$].slice(0,ye)},pe=function(he){return j.s(Y%12||12,he,"0")},Te=ke||function(he,$,P){var ye=he<12?"AM":"PM";return P?ye.toLowerCase():ye};return O.replace(B,(function(he,$){return $||(function(P){switch(P){case"YY":return String(E.$y).slice(-2);case"YYYY":return j.s(E.$y,4,"0");case"M":return _+1;case"MM":return j.s(_+1,2,"0");case"MMM":return ee(T.monthsShort,_,ue,3);case"MMMM":return ee(ue,_);case"D":return E.$D;case"DD":return j.s(E.$D,2,"0");case"d":return String(E.$W);case"dd":return ee(T.weekdaysMin,E.$W,oe,2);case"ddd":return ee(T.weekdaysShort,E.$W,oe,3);case"dddd":return oe[E.$W];case"H":return String(Y);case"HH":return j.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 j.s(G,2,"0");case"s":return String(E.$s);case"ss":return j.s(E.$s,2,"0");case"SSS":return j.s(E.$ms,3,"0");case"Z":return U}return null})(he)||U.replace(":","")}))},A.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},A.diff=function(w,E,T){var O,U=this,Y=j.p(E),G=S(w),_=(G.utcOffset()-this.utcOffset())*n,oe=this-G,ue=function(){return j.m(U,G)};switch(Y){case g:O=ue()/12;break;case m:O=ue();break;case p:O=ue()/3;break;case f:O=(oe-_)/6048e5;break;case u:O=(oe-_)/864e5;break;case c:O=oe/r;break;case l:O=oe/n;break;case o:O=oe/s;break;default:O=oe}return T?O:j.a(O)},A.daysInMonth=function(){return this.endOf(m).$D},A.$locale=function(){return V[this.$L]},A.locale=function(w,E){if(!w)return this.$L;var T=this.clone(),O=y(w,E,!0);return O&&(T.$L=O),T},A.clone=function(){return j.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()},M})(),fe=re.prototype;return S.prototype=fe,[["$ms",a],["$s",o],["$m",l],["$H",c],["$W",u],["$M",m],["$y",g],["$D",x]].forEach((function(M){fe[M[1]]=function(A){return this.$g(A,M[0],M[1])}})),S.extend=function(M,A){return M.$i||(M(A,re,S),M.$i=!0),S},S.locale=y,S.isDayjs=q,S.unix=function(M){return S(1e3*M)},S.en=V[D],S.Ls=V,S.p={},S}))})(as)),as.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 Ce(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 Jt(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 Re(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 me=(...t)=>t.find(e=>e!=null);function Lt(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=>Lt(e,["alertLogId","alertId","status","description","actionNotes","createdDate","createdBy","modifiedDate","modifiedBy"])):t}function za(t){return{id:String(me(t?.AlertId,t?.alertId)??""),alertNumber:me(t?.AlertNumber,t?.alertNumber),priority:me(t?.Priority,t?.priority,"Low"),timestamp:me(t?.UpdatedUtc,t?.timestamp,""),statusType:me(t?.Status,t?.statusType,""),description:me(t?.Description,t?.description,""),eventName:me(t?.EventName,t?.eventName),ruleName:me(t?.RuleName,t?.ruleName),spaceId:me(t?.SpaceId,t?.spaceId),spaceName:me(t?.SpaceName,t?.spaceName),anomalyId:me(t?.AnomalyId,t?.anomalyId),severityId:me(t?.SeverityId,t?.severityId),assignTeam:me(t?.AssignTeam,t?.assignTeam),cameraName:me(t?.CameraName,t?.cameraName),type:me(t?.Type,t?.type),mediaDetails:me(t?.MediaDetails,t?.mediaDetails,t?.MediaUrls,t?.mediaUrls),additionalMedia:me(t?.AdditionalMedia,t?.additionalMedia),timeElapsed:me(t?.TimeElapsed,t?.timeElapsed),timeRemaining:me(t?.TimeRemaining,t?.timeRemaining),anomalyName:me(t?.AnomalyName,t?.anomalyName),alertDetails:me(t?.AlertDetails,t?.alertDetails),statusHistory:Za(me(t?.StatusHistory,t?.statusHistory)),isEmailSent:me(t?.IsEmailSent,t?.isEmailSent),isSMSSent:me(t?.IsSMSSent,t?.isSMSSent),timeZoneUniqueId:me(t?.TimeZoneUniqueId,t?.timeZoneUniqueId)}}function Ha(t){const e={"Content-Type":"application/json",...t.headers||{}};return{async listAlerts(s){const n=Ce(t.baseUrl,"/api/detectionpolicy/alerts"),r=Jt(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 Re(r,{method:"GET",headers:e});return{items:Array.isArray(a?.Items)?a.Items.map(za):[],total:a?.Total}},async getAlertStatusList(){const s=Ce(t.baseUrl,"/api/detectionpolicy/alerts/StatusList"),n=await Re(s,{method:"GET",headers:e});return(Array.isArray(n)?n:[]).map(a=>Lt(a,["alertStatusId","value","statusName"]))},async getAlertsReport(s){const n=Ce(t.baseUrl,"/api/detectionpolicy/alerts/GetAlertsReport"),r=Jt(n,s),a=await Re(r,{method:"GET",headers:e});return Array.isArray(a)?a:[]},async updateAlertStatus(s){const n=Ce(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 Re(n,{method:"POST",headers:e,body:JSON.stringify(r)})},async getAlertTimeline(s){const n=Ce(t.baseUrl,`/api/detectionpolicy/alerts/alertTimelines/${s}`);return Re(n,{method:"GET",headers:e})},async getAdminSettings(){const s=Ce(t.baseUrl,"/api/detectionpolicy/alerts/GetAdminSettings"),n=await Re(s,{method:"GET",headers:e});if(n&&typeof n=="object"){const r=n.data??n.Data??n;if(r&&typeof r=="object")return Lt(r,["userId","isAdminSetting","sortBy"],{sortBy:"SortOption"})}return null},async setAdminSettings(s){const n=Ce(t.baseUrl,"/api/detectionpolicy/alerts/SetAdminSettings"),r={Settings:{UserId:0,IsAdminSetting:!0,SortOption:s?.sortBy??"",GroupBy:s?.groupBy??null}};return Re(n,{method:"POST",headers:e,body:JSON.stringify(r)})},async getPreferenceSettings(){const s=Ce(t.baseUrl,"/api/detectionpolicy/alerts/GetPreferenceSettings"),n=await Re(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=Ce(t.baseUrl,"/api/detectionpolicy/alerts/SetPreferenceSettings"),r=u=>{const{hours:f,minutes:m,seconds:p}=nr(u);return(f*3600+m*60+p)*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 Re(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=Ce(t.baseUrl,"/api/detectionpolicy/alerts/SendSMSorEmailNotifications"),o=Jt(a,{alertId:s,isEmail:n,isSMS:r});return Re(o,{method:"POST",headers:e})},async getAlertNotifications(s){const n=Ce(t.baseUrl,"/api/detectionpolicy/alerts/GetNotifications"),r=Jt(n,{alertId:s}),a=await Re(r,{method:"GET",headers:e});let o=[];return Array.isArray(a)?o=a:Array.isArray(a?.data)&&(o=a.data),o.map(l=>Lt(l,["alertNotificationSentId","alertId","notificationType","receipientName","receipentPhoneNumber","messageSID","messageStatus","receipientEmail","notificationReceipientType","sentAt"]))},async getTimeZoneMasters(){const s=Ce(t.baseUrl,"/api/TimeZoneMaster"),n=await Re(s,{method:"GET",headers:e});return(Array.isArray(n?.Data)?n.Data:[]).map(a=>Lt(a,["timeZoneUniqueId","ianaTimeZoneId","timeZoneName","offset"]))},async getAllSpaces(){const s=t.spacesBaseUrl||t.baseUrl,n=Ce(s,"/api/AllSpaces"),r=await Re(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=Ce(t.baseUrl,"/MyProfile"),n=await Re(s,{method:"GET",headers:e}),r=n?.data?.userGuid??n?.Data?.userGuid??n?.userGuid;if(!r)return null;const a=Ce(t.baseUrl,`/api/GetMyAppPreferences/${r}`),o=await Re(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,f,m]=await Promise.allSettled(a),p=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:[]},g=p(o),x=p(l),k=p(c),b=p(u),B=p(f),H=m.status==="fulfilled"?m.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=g.map(y=>({actionTypeId:Number(y?.ActionTypeId),name:y?.DisplayName??y?.Name??""})),D=x.map(y=>({AnomalyId:y?.AnomalyId,DisplayName: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,f]=await Promise.allSettled(a),m=C=>{if(C.status!=="fulfilled")return[];const q=C.value;return Array.isArray(q)?q:Array.isArray(q?.data)?q.data:[]},p=m(o),g=m(l),x=m(c),k=m(u),b=f.status==="fulfilled"?f.value:null,B=p.map(C=>({actionTypeId:C?.ActionTypeUniqueId,name:C?.Name??""})),H=g.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,...f}=r??{},m=o??{},p=(m.escalationSettingsActionTypeIds??[]).filter(x=>x!=null&&!Number.isNaN(x)),g={Level1UserRoleId:m.level1UserRoleId??0,Level1PostAssistTime:m.level1PostAssistTime??0,Level2UserRoleId:m.level2UserRoleId??0,Level2PostAssistTime:m.level2PostAssistTime??0,Level3UserRoleId:m.level3UserRoleId??0,Level3PostAssistTime:m.level3PostAssistTime??0,EscalationSettingsActionTypeIds:p,ThirdPartyIds:m.thirdPartyId??[],HumanLoop:m.humanLoop??!1};return st(a,{method:"POST",headers:e,body:JSON.stringify({...f,RuleId:l??f.RuleId??n,RuleName:c??f.RuleName,RuleDesc:u??f.RuleDesc??null,ActionTypeUniqueIdList:p,EscalationSettings:g})})}}}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 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 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=Kt(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=Kt(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=Kt(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=Kt(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 f=e?.headers;return{tenant:t,alertsBaseUrl:c,rulesBaseUrl:u,headers:f,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},f={schools:()=>Ha({...c,spacesBaseUrl:o.spacesBaseUrl}),transit:()=>Ka(c),snl:()=>Ra(c)},m={schools:()=>Ga({...u,userManagementBaseUrl:o.userManagementDomain}),transit:()=>_a({...u,userManagementBaseUrl:o.userManagementDomain}),snl:()=>La({baseUrl:o.alertsBaseUrl,headers:o.headers})};return{config:o,alerts:f[o.tenant](),rules:m[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"},_s=6,Js=7;function xn(t,e,s){const n=t===_s,r=t===Js,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,f=n&&a?"Email sent":r&&o?"SMS sent":`Click to ${c}`;return{isDisabled:l,buttonText:u,tooltipTitle:f}}function bs(t,e){return`${t}-${e?"email":"sms"}`}function Qt(t){return t===_s||t===Js}function fs({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(fs,{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(fs,{className:"w-[220px]",dropdownWidth:280,value:t,onChange:e,options:s||si})}function ri({value:t,onChange:e,options:s}){return i.jsx(fs,{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(fs,{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 m=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??m,showSizeChanger:!1,showTotal:p=>`Total: ${p}`,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 Ls(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,f,m,p]=ci(c.bbox_xyxy);return u>e||m>e||f>s||p>s?[]:[{personName:c.personName,x:u*a+o,y:f*a+l,width:(m-u)*a,height:(p-f)*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:f,resetDimensions:m}=ur(),p=d.useMemo(()=>cr(r,u.naturalWidth,u.naturalHeight,u.renderedWidth,u.renderedHeight),[r,u]),g=d.useMemo(()=>p.map(x=>({...x,label:x.personName||""})),[p]);return d.useEffect(()=>{t&&(l(!1),m())},[t,s,m]),d.useLayoutEffect(()=>{c.current?.complete&&f()},[f]),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:f,onError:()=>l(!0)}),i.jsx(lr,{boxes:g,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,f])=>d.createElement(u,f)),...Array.isArray(a)?a:[a]]));const Ks=(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=Ks("image-off",yi);const pi=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],gi=Ks("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=Ks("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=Ls(c),f=u?"video":"image",m="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:`${m} flex items-center justify-center text-gray-400`,children:i.jsx(fr,{size:20,"aria-hidden":!0})}):u?i.jsx("video",{src:l,className:m,muted:!0,playsInline:!0,preload:"metadata",onError:()=>a(!0)}):i.jsx("img",{src:l,alt:"",className:m,onError:()=>a(!0)})}),i.jsx(dr,{isOpen:s,onClose:()=>n(!1),src:l,type:f,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 Qs({data:t,loading:e=!1,pageSize:s=10,total:n,currentPage:r,columns:a,renderActions:o,onAlertIdClick:l,onRefetch:c,onPageChange:u,onFilterChange:f,resetKey:m}){const[p,g]=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(()=>{m!==void 0&&(g("All"),k("All"),B("All"),K("All"),D(""),C(1))},[m]),d.useEffect(()=>{r!==void 0&&C(r)},[r]);const[q,y]=d.useState([{label:"All",value:"All"}]),[S,j]=d.useState([]),[re,fe]=d.useState([]),[M,A]=d.useState([]),[w,E]=d.useState(new Set),{rules:T,alerts:O,config:U}=$e(),Y=U.tenant==="schools",G=U.tenant==="transit",_=wi(I,600),oe=Y&&_.trim()?100:s,ue={6:{title:"Email",kind:"icon",icon:i.jsx(ft.MailOutlined,{})},7:{title:"SMS",kind:"icon",icon:i.jsx(ft.MessageOutlined,{})}};d.useEffect(()=>{if(!O.getAllSpaces)return;let $=!0;return(async()=>{try{const P=await O.getAllSpaces();if($){const ye=P.map(le=>({label:G?String(le.spaceNumber??le.spaceName??""):le.spaceName,value:String(G?le.spaceNumber??le.spaceId:le.spaceId)}));j([{label:"All",value:"All"},...ye])}}catch(P){console.error("Error loading space options",P)}})(),()=>{$=!1}},[O,G]),d.useEffect(()=>{let $=!0;return(async()=>{try{const P=await T.getLookups(),le=(Array.isArray(P.thirdParties)?P.thirdParties:[]).map(ge=>({label:ge.thirdPartyName,value:String(ge.thirdPartyId)})),we=(Array.isArray(P.anomalies)?P.anomalies:[]).map(ge=>({label:ge.anomalyName??ge.DisplayName,value:ge.anomalyId??ge.AnomalyId})),Ie=(Array.isArray(P.severities)?P.severities:[]).map(ge=>({label:ge.severityName,value:String(ge.severityId)}));$&&(y([{label:"All",value:"All"},...le]),we.length&&fe([{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(!f)return;const $=M.find(ye=>ye.value===p),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:M.length>1&&p!=="All"?p:void 0,severityName:M.length>1&&p!=="All"?$?.label:void 0,thirdPartyIds:H==="All"?void 0:[Number(H)],searchText:_.trim()||void 0};f(P),u?.(1)},[x,b,p,H,_,re.length,S.length,M.length,G,Y]);const ke=re.length>1?re:void 0,ee=S.length>1?S:void 0,pe=M.length>1?M: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:ye=>{ye.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 ye=async(Fe,gt)=>{const St=bs(P.id,Fe);E(be=>new Set(be).add(St));try{const be=await O.sendSMSorEmailNotifications?.(P.id,Fe,gt);be?.responseStatus||be?.Success||be?.success?(Ne.toast.success(be?.message||be.data||(Fe?"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 xt=new Set(be);return xt.delete(St),xt})}},le=_s,Le=Js,we=ue[le],He=ue[Le],Ie=xn(le,P,we?.title),ge=xn(Le,P,He?.title),Ot=bs(P.id,!0),ct=bs(P.id,!1),pt=Qt(le)&&w.has(Ot),Je=Qt(Le)&&w.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:pt,onClick:Qt(le)?()=>ye(!0,!1):void 0,icon:!pt&&we?.icon,className:"flex flex-col items-center justify-center gap-1",style:{height:"fit-content"},children:Ie.buttonText})},String(le)),i.jsx(h.Tooltip,{title:ge.tooltipTitle,children:i.jsx(h.Button,{size:"small",disabled:ge.isDisabled,loading:Je,onClick:Qt(Le)?()=>ye(!1,!0):void 0,icon:!Je&&He?.icon,className:"flex flex-col items-center justify-center gap-1",style:{height:"fit-content"},children:ge.buttonText})},String(Le))]})}},{title:"Alert Timestamp",dataIndex:"timestamp",key:"timestamp",width:220,render:($,P)=>{const ye=P?.timeElapsed,le=P?.timeRemaining,Le=ye?fn(ye):0,we=le?fn(le):0,He=Math.round(Le/(Le+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:ye??"-"})]}),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:le??"-"})]})]})}},{title:"Status",dataIndex:"statusType",key:"statusType",width:140},{title:"Description",dataIndex:"description",key:"description",render:($,P)=>i.jsxs("div",{children:[i.jsx("a",{onClick:ye=>{ye.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})}],he=a&&a.length?a:Te;return i.jsx("div",{children:i.jsx(ir,{rowKey:"id",data:t,columns:he,loading:e,pageSize:oe,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:p,onChange:g,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 Xs(){const{alerts:t}=$e(),e=ht.useQueryClient();return ht.useMutation({mutationFn:s=>t.updateAlertStatus(s),onSuccess:()=>{e.invalidateQueries({queryKey:["alerts","list"]}),e.invalidateQueries({queryKey:["alerts","report"]})}})}class yt extends Error{}class Ti extends yt{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}}class bi extends yt{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}}class Ni extends yt{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}}class Tt extends yt{}class yr extends yt{constructor(e){super(`Invalid unit ${e}`)}}class Ee extends yt{}class at extends yt{constructor(){super("Zone is an abstract class")}}const N="numeric",_e="short",Pe="long",cs={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},Mr={year:N,month:_e,day:N,hour:N,minute:N},jr={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 Ns=null;class hs extends Zt{static get instance(){return Ns===null&&(Ns=new hs),Ns}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 Wt(this.offset(e),s)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type==="system"}get isValid(){return!0}}const Fs=new Map;function Ei(t){let e=Fs.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"}),Fs.set(t,e)),e}const Mi={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function ji(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,f]=n;return[o,r,a,l,c,u,f]}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=Mi[a];a==="era"?n[l]=o:F(l)||(n[l]=parseInt(o,10))}return n}const ks=new Map;class tt extends Zt{static create(e){let s=ks.get(e);return s===void 0&&ks.set(e,s=new tt(e)),s}static resetCache(){ks.clear(),Fs.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 Wt(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,f]=n.formatToParts?Oi(n,s):ji(n,s);l==="BC"&&(r=-Math.abs(r)+1);const p=ps({year:r,month:a,day:o,hour:c===24?0:c,minute:u,second:f,millisecond:0});let g=+s;const x=g%1e3;return g-=x>=0?x:1e3+x,(p-g)/(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 $s=new Map;function Ps(t,e={}){const s=JSON.stringify([t,e]);let n=$s.get(s);return n===void 0&&(n=new Intl.DateTimeFormat(t,e),$s.set(s,n)),n}const Ws=new Map;function Ci(t,e={}){const s=JSON.stringify([t,e]);let n=Ws.get(s);return n===void 0&&(n=new Intl.NumberFormat(t,e),Ws.set(s,n)),n}const Bs=new Map;function Ri(t,e={}){const{base:s,...n}=e,r=JSON.stringify([t,n]);let a=Bs.get(r);return a===void 0&&(a=new Intl.RelativeTimeFormat(t,e),Bs.set(r,a)),a}let Ft=null;function Ui(){return Ft||(Ft=new Intl.DateTimeFormat().resolvedOptions().locale,Ft)}const Vs=new Map;function Ur(t){let e=Vs.get(t);return e===void 0&&(e=new Intl.DateTimeFormat(t).resolvedOptions(),Vs.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=Ps(t).resolvedOptions(),r=t}catch{const c=t.substring(0,s);n=Ps(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 Xt(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):rn(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=Ps(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||xe.defaultLocale,l=o||(a?"en-US":Ui()),c=s||xe.defaultNumberingSystem,u=n||xe.defaultOutputCalendar,f=Hs(r)||xe.defaultWeekSettings;return new ne(l,c,u,f,o)}static resetCache(){Ft=null,$s.clear(),Ws.clear(),Bs.clear(),Vs.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,Hs(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 Xt(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 Xt(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 Xt(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 Xt(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 Is=null;class Ue extends Zt{static get utcInstance(){return Is===null&&(Is=new Ue(0)),Is}static instance(e){return e===0?Ue.utcInstance:new Ue(e)}static parseSpecifier(e){if(e){const s=e.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(s)return new Ue(gs(s[1],s[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${Wt(this.fixed,"narrow")}`}get ianaName(){return this.fixed===0?"Etc/UTC":`Etc/GMT${Wt(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(e,s){return Wt(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"?hs.instance:s==="utc"||s==="gmt"?Ue.utcInstance:Ue.parseSpecifier(s)||tt.create(t)}else return lt(t)?Ue.instance(t):typeof t=="object"&&"offset"in t&&typeof t.offset=="function"?t:new Hi(t)}const en={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=en.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(en.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 zs=new Map;function Yi(){zs.clear()}function qe({numberingSystem:t},e=""){const s=t||"latn";let n=zs.get(s);n===void 0&&(n=new Map,zs.set(s,n));let r=n.get(e);return r===void 0&&(r=new RegExp(`${en[s]}${e}`),n.set(e,r)),r}let Nn=()=>Date.now(),kn="system",In=null,En=null,Mn=null,jn=60,On,Dn=null;class xe{static get now(){return Nn}static set now(e){Nn=e}static set defaultZone(e){kn=e}static get defaultZone(){return ot(kn,hs.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 Mn}static set defaultOutputCalendar(e){Mn=e}static get defaultWeekSettings(){return Dn}static set defaultWeekSettings(e){Dn=Hs(e)}static get twoDigitCutoffYear(){return jn}static set twoDigitCutoffYear(e){jn=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 tn(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+(zt(t)?$r:Fr)[e-1]}function Wr(t,e){const s=zt(t)?$r:Fr,n=s.findIndex(a=>a<e),r=e-s[n];return{month:n+1,day:r}}function sn(t,e){return(t-e+7)%7+1}function us(t,e=4,s=1){const{year:n,month:r,day:a}=t,o=Pr(n,r,a),l=sn(tn(n,r,a),s);let c=Math.floor((o-l+14-e)/7),u;return c<1?(u=n-1,c=Bt(u,e,s)):c>Bt(n,e,s)?(u=n+1,c=1):u=n,{weekYear:u,weekNumber:c,weekday:l,...Ss(t)}}function Cn(t,e=4,s=1){const{weekYear:n,weekNumber:r,weekday:a}=t,o=sn(tn(n,1,e),s),l=bt(n);let c=r*7+a-o-7+e,u;c<1?(u=n-1,c+=bt(u)):c>l?(u=n+1,c-=bt(n)):u=n;const{month:f,day:m}=Wr(u,c);return{year:u,month:f,day:m,...Ss(t)}}function Es(t){const{year:e,month:s,day:n}=t,r=Pr(e,s,n);return{year:e,ordinal:r,...Ss(t)}}function Rn(t){const{year:e,ordinal:s}=t,{month:n,day:r}=Wr(e,s);return{year:e,month:n,day:r,...Ss(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 Tt("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=ys(t.weekYear),r=ze(t.weekNumber,1,Bt(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=ys(t.year),s=ze(t.ordinal,1,bt(t.year));return e?s?!1:Ze("ordinal",t.ordinal):Ze("year",t.year)}function Br(t){const e=ys(t.year),s=ze(t.month,1,12),n=ze(t.day,1,ds(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 ys(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 kt(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function Hs(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 ys(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 ut(t){if(!(F(t)||t===null||t===""))return parseFloat(t)}function nn(t){if(!(F(t)||t===null||t==="")){const e=parseFloat("0."+t)*1e3;return Math.floor(e)}}function rn(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 zt(t){return t%4===0&&(t%100!==0||t%400===0)}function bt(t){return zt(t)?366:365}function ds(t,e){const s=to(e-1,12)+1,n=t+(e-s)/12;return s===2?zt(n)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][s-1]}function ps(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-sn(tn(t,1,e),s)+e-1}function Bt(t,e=4,s=1){const n=Fn(t,e,s),r=Fn(t+1,e,s);return(bt(t)-n+r)/7}function qs(t){return t>99?t:t>xe.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 gs(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 ms(t,e){const s={};for(const n in t)if(kt(t,n)){const r=t[n];if(r==null)continue;s[e(n)]=qr(r)}return s}function Wt(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 Ss(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 m=t==="days";switch(e){case 1:return m?"tomorrow":`next ${r[t][0]}`;case-1:return m?"yesterday":`last ${r[t][0]}`;case 0:return m?"today":`this ${r[t][0]}`}}const o=Object.is(e,-0)||e<0,l=Math.abs(e),c=l===1,u=r[t],f=n?c?u[1]:u[2]||u[1]:c?r[t][0]:t;return o?`${l} ${f} ago`:`in ${l} ${f}`}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:cs,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:Mr,fff:Or,ffff:Cr,F:Er,FF:jr,FFF:Dr,FFFF:Rr};class Me{static create(e,s={}){return new Me(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=(g,x)=>this.loc.extract(e,g,x),o=g=>e.isOffsetFixed&&e.offset===0&&g.allowZ?"Z":e.isValid?e.zone.formatOffset(e.ts,g.format):"",l=()=>n?lo(e):a({hour:"numeric",hourCycle:"h12"},"dayperiod"),c=(g,x)=>n?uo(e,g):a(x?{month:g}:{month:g,day:"numeric"},"month"),u=(g,x)=>n?co(e,g):a(x?{weekday:g}:{weekday:g,month:"long",day:"numeric"},"weekday"),f=g=>{const x=Me.macroTokenToFormatOpts(g);return x?this.formatWithSystemDefault(e,x):g},m=g=>n?mo(e,g):a({era:g},"era"),p=g=>{switch(g){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 m("short");case"GG":return m("long");case"GGGGG":return m("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 f(g)}};return $n(Me.parseFormat(s),p)}formatDurationFromString(e,s){const n=this.opts.signMode==="negativeLargestOnly"?-1:1,r=f=>{switch(f[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=(f,m)=>p=>{const g=r(p);if(g){const x=m.isNegativeDuration&&g!==m.largestUnit?n:1;let k;return this.opts.signMode==="negativeLargestOnly"&&g!==m.largestUnit?k="never":this.opts.signMode==="all"?k="always":k="auto",this.num(f.get(g)*x,p.length,k)}else return p},o=Me.parseFormat(s),l=o.reduce((f,{literal:m,val:p})=>m?f:f.concat(p),[]),c=e.shiftTo(...l.map(r).filter(f=>f)),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 It(...t){const e=t.reduce((s,n)=>s+n.source,"");return RegExp(`^${e}$`)}function Et(...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 Mt(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})\\])?)?`,an=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,na=RegExp(`${an.source}${yo}`),on=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(`${an.source} ?(?:${sa.source}|(${ea.source}))?`),Ao=RegExp(`(?: ${ra.source})?`);function Nt(t,e,s){const n=t[e];return F(n)?s:it(n)}function To(t,e){return[{year:Nt(t,e),month:Nt(t,e+1,1),day:Nt(t,e+2,1)},null,e+3]}function jt(t,e){return[{hours:Nt(t,e,0),minutes:Nt(t,e+1,0),seconds:Nt(t,e+2,0),milliseconds:nn(t[e+3])},null,e+4]}function Ht(t,e){const s=!t[e]&&!t[e+1],n=gs(t[e+1],t[e+2]),r=s?null:Ue.instance(n);return[{},r,e+3]}function qt(t,e){const s=t[e]?tt.create(t[e]):null;return[{},s,e+1]}const bo=RegExp(`^T?${an.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,f=e[0]==="-",m=c&&c[0]==="-",p=(g,x=!1)=>g!==void 0&&(x||g&&f)?-g:g;return[{years:p(ut(s)),months:p(ut(n)),weeks:p(ut(r)),days:p(ut(a)),hours:p(ut(o)),minutes:p(ut(l)),seconds:p(ut(c),c==="-0"),milliseconds:p(nn(u),m)}]}const Io={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function ln(t,e,s,n,r,a,o){const l={year:e.length===2?qs(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 Mo(t){const[,e,s,n,r,a,o,l,c,u,f,m]=t,p=ln(e,r,n,s,a,o,l);let g;return c?g=Io[c]:u?g=0:g=gs(f,m),[p,new Ue(g)]}function jo(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[ln(e,r,n,s,a,o,l),Ue.utcInstance]}function Ro(t){const[,e,s,n,r,a,o,l]=t;return[ln(e,l,s,n,r,a,o),Ue.utcInstance]}const Uo=It(po,on),Lo=It(go,on),Fo=It(So,on),$o=It(na),aa=Et(To,jt,Ht,qt),Po=Et(xo,jt,Ht,qt),Wo=Et(vo,jt,Ht,qt),Bo=Et(jt,Ht,qt);function Vo(t){return Mt(t,[Uo,aa],[Lo,Po],[Fo,Wo],[$o,Bo])}function Zo(t){return Mt(jo(t),[Eo,Mo])}function zo(t){return Mt(t,[Oo,Pn],[Do,Pn],[Co,Ro])}function Ho(t){return Mt(t,[No,ko])}const qo=Et(jt);function Go(t){return Mt(t,[bo,qo])}const Yo=It(wo,Ao),_o=It(ra),Jo=Et(jt,Ht,qt);function Ko(t){return Mt(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,vt=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:vt/7,days:vt,hours:vt*24,minutes:vt*24*60,seconds:vt*24*60*60,milliseconds:vt*24*60*60*1e3},...ia},mt=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],el=mt.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;mt.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),mt.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:ms(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(xe.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?Me.create(this.loc,n).formatDurationFromString(this,e):Wn}toHuman(e={}){if(!this.isValid)return Wn;const s=e.showZeros!==!1,n=mt.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+=rn(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 mt)(kt(s.values,r)||kt(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,...ms(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 mt)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 mt)if(!s(this.values[n],e.values[n]))return!1;return!0}}const wt="Invalid Interval";function tl(t,e){return!t||!t.isValid?Se.invalid("missing or invalid start"):!e||!e.isValid?Se.invalid("missing or invalid end"):e<t?Se.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 Se{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(xe.throwOnInvalid)throw new bi(n);return new Se({invalid:n})}static fromDateTimes(e,s){const n=Ut(e),r=Ut(s),a=tl(n,r);return a??new Se({start:n,end:r})}static after(e,s){const n=Q.fromDurationLike(s),r=Ut(e);return Se.fromDateTimes(r,r.plus(n))}static before(e,s){const n=Q.fromDurationLike(s),r=Ut(e);return Se.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 Se.fromDateTimes(a,l);if(o){const u=Q.fromISO(r,s);if(u.isValid)return Se.after(a,u)}else if(c){const u=Q.fromISO(n,s);if(u.isValid)return Se.before(l,u)}}return Se.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?Se.fromDateTimes(e||this.s,s||this.e):this}splitAt(...e){if(!this.isValid)return[];const s=e.map(Ut).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(Se.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(Se.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:Se.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 Se.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(Se.fromDateTimes(s,c.time)),s=null);return Se.merge(r)}difference(...e){return Se.xor([this].concat(e)).map(s=>this.intersection(s)).filter(s=>s&&!s.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} – ${this.e.toISO()})`:wt}[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=cs,s={}){return this.isValid?Me.create(this.s.loc.clone(s),e).formatInterval(this):wt}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:wt}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:wt}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:wt}toFormat(e,{separator:s=" – "}={}){return this.isValid?`${this.s.toFormat(e)}${s}${this.e.toFormat(e)}`:wt}toDuration(e,s){return this.isValid?this.e.diff(this.s,e,s):Q.invalid(this.invalidReason)}mapEndpoints(e){return Se.fromDateTimes(e(this.s),e(this.e))}}class es{static hasDST(e=xe.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,xe.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 f=Zn(c,u);return(f-f%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(m=>["hours","minutes","seconds","milliseconds"].indexOf(m)>=0);u.length===0&&(o<e&&(o=r.plus({[l]:1})),o!==r&&(a[l]=(a[l]||0)+c/(o-r)));const f=Q.fromObject(a,n);return u.length>0?Q.fromMillis(c,n).shiftTo(...u).plus(f):f}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])=>gs(s,n),groups:e}}function ts(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}"),f=qe(e,"{1,9}"),m=qe(e,"{2,4}"),p=qe(e,"{4,6}"),g=b=>({regex:RegExp(ol(b.val)),deser:([B])=>B,literal:!0}),k=(b=>{if(t.literal)return g(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(m,qs);case"yyyy":return X(a);case"yyyyy":return X(p);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 ts(f);case"uu":return ts(l);case"uuu":return X(s);case"a":return Ge(e.meridiems(),0);case"kkkk":return X(a);case"kk":return X(m,qs);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 ts(/[a-z_+-/]{1,256}?/i);case" ":return ts(/[^\S\n\r]/);default:return g(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(kt(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 Ue(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=nn(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=Me.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(Me.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(kt(n,"a")&&kt(n,"H"))throw new Tt("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=Me.create(e,t).dtFormatter(hl()),r=n.formatToParts(),a=n.resolvedOptions();return r.map(o=>ul(o,t,a))}const js="Invalid DateTime",qn=864e13;function $t(t){return new Ye("unsupported zone",`the zone "${t.name}" is not supported`)}function Os(t){return t.weekData===null&&(t.weekData=us(t.c)),t.weekData}function Ds(t){return t.localWeekData===null&&(t.localWeekData=us(t.c,t.loc.getMinDaysInFirstWeek(),t.loc.getStartOfWeek())),t.localWeekData}function dt(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 ss(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 is(t,e,s){return ha(ps(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,ds(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=ps(a);let[c,u]=ha(l,s,t.zone);return o!==0&&(c+=o,u=t.zone.offset(c)),{ts:c,o:u}}function At(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 ns(t,e,s=!0){return t.isValid?Me.create(ne.create("en-US"),{allowZ:s,forceSimple:!0}).formatDateTimeFromString(t,e):null}function Cs(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},os=["year","month","day","hour","minute","second","millisecond"],xl=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],vl=["year","ordinal","hour","minute","second","millisecond"];function ls(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 ls(t)}}function wl(t){if(Pt===void 0&&(Pt=xe.now()),t.type!=="iana")return t.offset(Pt);const e=t.name;let s=Gs.get(e);return s===void 0&&(s=t.offset(Pt),Gs.set(e,s)),s}function Jn(t,e){const s=ot(e.zone,xe.defaultZone);if(!s.isValid)return L.invalid($t(s));const n=ne.fromObject(e);let r,a;if(F(t.year))r=xe.now();else{for(const c of os)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]=is(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=rn(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 Pt;const Gs=new Map;class L{constructor(e){const s=e.zone||xe.defaultZone;let n=e.invalid||(Number.isNaN(e.ts)?new Ye("invalid input"):null)||(s.isValid?null:$t(s));this.ts=F(e.ts)?xe.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=ss(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=Ue.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,xe.defaultZone);return r.isValid?new L({ts:n,zone:r,loc:ne.fromObject(s)}):L.invalid($t(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,xe.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,xe.defaultZone),loc:ne.fromObject(s)});throw new Ee("fromSeconds requires a numerical input")}static fromObject(e,s={}){e=e||{};const n=ot(s.zone,xe.defaultZone);if(!n.isValid)return L.invalid($t(n));const r=ne.fromObject(s),a=ms(e,_n),{minDaysInFirstWeek:o,startOfWeek:l}=Un(a,r),c=xe.now(),u=F(s.specificOffset)?n.offset(c):s.specificOffset,f=!F(a.ordinal),m=!F(a.year),p=!F(a.month)||!F(a.day),g=m||p,x=a.weekYear||a.weekNumber;if((g||f)&&x)throw new Tt("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(p&&f)throw new Tt("Can't mix ordinal dates with month/day");const k=x||a.weekday&&!g;let b,B,H=ss(c,u);k?(b=xl,B=gl,H=us(H,o,l)):f?(b=vl,B=Sl,H=Es(H)):(b=os,B=ya);let K=!1;for(const S of b){const j=a[S];F(j)?K?a[S]=B[S]:a[S]=H[S]:K=!0}const I=k?_i(a,o,l):f?Ji(a):Br(a),D=I||Vr(a);if(D)return L.invalid(D);const V=k?Cn(a,o,l):f?Rn(a):a,[C,q]=is(V,u,n),y=new L({ts:C,zone:n,o:q,loc:r});return a.weekday&&g&&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 At(n,r,s,"ISO 8601",e)}static fromRFC2822(e,s={}){const[n,r]=Zo(e);return At(n,r,s,"RFC 2822",e)}static fromHTTP(e,s={}){const[n,r]=zo(e);return At(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,f]=pl(o,e,s);return f?L.invalid(f):At(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 At(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(xe.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(Me.parseFormat(e),ne.fromObject(s)).map(r=>r.val).join("")}static resetCache(){Pt=void 0,Gs.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?Os(this).weekYear:NaN}get weekNumber(){return this.isValid?Os(this).weekNumber:NaN}get weekday(){return this.isValid?Os(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Ds(this).weekday:NaN}get localWeekNumber(){return this.isValid?Ds(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Ds(this).weekYear:NaN}get ordinal(){return this.isValid?Es(this.c).ordinal:NaN}get monthShort(){return this.isValid?es.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?es.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?es.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?es.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=ps(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,f=ss(c,o),m=ss(u,l);return f.hour===m.hour&&f.minute===m.minute&&f.second===m.second&&f.millisecond===m.millisecond?[dt(this,{ts:c}),dt(this,{ts:u})]:[this]}get isInLeapYear(){return zt(this.year)}get daysInMonth(){return ds(this.year,this.month)}get daysInYear(){return this.isValid?bt(this.year):NaN}get weeksInWeekYear(){return this.isValid?Bt(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?Bt(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){const{locale:s,numberingSystem:n,calendar:r}=Me.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:s,numberingSystem:n,outputCalendar:r}}toUTC(e=0,s={}){return this.setZone(Ue.instance(e),s)}toLocal(){return this.setZone(xe.defaultZone)}setZone(e,{keepLocalTime:s=!1,keepCalendarTime:n=!1}={}){if(e=ot(e,xe.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]=is(o,a,e)}return dt(this,{ts:r,zone:e})}else return L.invalid($t(e))}reconfigure({locale:e,numberingSystem:s,outputCalendar:n}={}){const r=this.loc.clone({locale:e,numberingSystem:s,outputCalendar:n});return dt(this,{loc:r})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;const s=ms(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,f=s.weekYear||s.weekNumber;if((u||o)&&f)throw new Tt("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(c&&o)throw new Tt("Can't mix ordinal dates with month/day");let m;a?m=Cn({...us(this.c,n,r),...s},n,r):F(s.ordinal)?(m={...this.toObject(),...s},F(s.day)&&(m.day=Math.min(ds(m.year,m.month),m.day))):m=Rn({...Es(this.c),...s});const[p,g]=is(m,this.o,this.zone);return dt(this,{ts:p,o:g})}plus(e){if(!this.isValid)return this;const s=Q.fromDurationLike(e);return dt(this,Gn(this,s))}minus(e){if(!this.isValid)return this;const s=Q.fromDurationLike(e).negate();return dt(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?Me.create(this.loc.redefaultToEN(s)).formatDateTimeFromString(this,e):js}toLocaleString(e=cs,s={}){return this.isValid?Me.create(this.loc.clone(s),e).formatDateTime(this):js}toLocaleParts(e={}){return this.isValid?Me.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=ls(o);const l=e==="extended";let c=Cs(this,l,o);return os.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?Cs(this,e==="extended",ls(s)):null}toISOWeekDate(){return ns(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=ls(l),(r&&os.indexOf(l)>=3?"T":"")+Yn(this,o==="extended",s,e,n,a,l)):null}toRFC2822(){return ns(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return ns(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){return this.isValid?Cs(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")),ns(this,r,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():js}[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?Se.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:f}=s.explainFromTokens(e);return f?L.invalid(f):At(l,c,n,`format ${s.format}`,e,u)}static get DATE_SHORT(){return cs}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 Mr}static get DATETIME_MED_WITH_SECONDS(){return jr}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 Ut(t){if(L.isDateTime(t))return t;if(t&&t.valueOf&<(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 Vt(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:f}){const m=Xs(),p=async k=>{try{const b=await m.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.")}},g=[{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"&&p(b)}},children:i.jsx(h.Button,{type:"text",icon:i.jsx(ft.MoreOutlined,{})})})}],x=l?t:(t||[]).filter(k=>{const b=hn(k.statusType||"");return Ai.some(B=>b.includes(hn(B)))});return i.jsx(Qs,{data:x,loading:e,pageSize:s,total:n,currentPage:r,columns:g,renderActions:void 0,onAlertIdClick:a,onAlertView:o,onFilterChange:l,onPageChange:c,onRefetch:u,resetKey:f,excludeCompleted:!1})}function Il({size:t=120,time:e,timeZone:s="America/New_York"}){const{hours:n,minutes:r,seconds:a}=d.useMemo(()=>{const m=new Intl.DateTimeFormat("en-US",{timeZone:s,hour:"numeric",minute:"numeric",second:"numeric",hour12:!1}).formatToParts(e);return{hours:parseInt(m.find(p=>p.type==="hour")?.value||"0",10),minutes:parseInt(m.find(p=>p.type==="minute")?.value||"0",10),seconds:parseInt(m.find(p=>p.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((f,m)=>{const p=m*30,g=6,x=u-4,k=x-g,b=(p-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:m%3===0?2:1,strokeLinecap:"round"})},m)}),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 Ml({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 Ys=t=>i.jsxs(h.Tag,{children:[i.jsx(ft.PlusOutlined,{})," ",t.length," more"]}),{Text:et}=h.Typography;function jl(t){const{selectedRule:e,setSelectedRule:s,ruleOptions:n,minsOptions:r,roleOptions:a,l1mins:o,setL1mins:l,l1role:c,setL1role:u,l2mins:f,setL2mins:m,l2role:p,setL2role:g,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:j,saving:re,onActionTypesLoaded:fe}=t,{rules:M,config:A}=$e(),w=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 M.getLookups();if(ee||!pe||!Array.isArray(pe.actionTypes))return;const Te=pe.actionTypes.map($=>({label:$.name,value:String($.actionTypeId)}));T(Te),fe&&fe(pe.actionTypes);const he=Array.isArray(pe.thirdParties)?pe.thirdParties.map($=>({label:$.thirdPartyName,value:$.thirdPartyIds??$.thirdPartyId})):[];U(he)}catch(pe){console.error("Error loading lookups",pe)}finally{ee||G(!1)}})(),()=>{ee=!0}},[]);const _=typeof o=="number"||typeof c=="number",oe=typeof f=="number"||typeof p=="number",ue=typeof o=="number"||typeof c=="number"||typeof f=="number"||typeof p=="number"||typeof x=="number"||typeof b=="number"||Array.isArray(H)&&H.length>0||Array.isArray(I)&&I.length>0||!!V||!!q,ke=!!e&&ue&&!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:f,onChange:m,options:r})}),i.jsx(h.Col,{span:14,children:i.jsx(h.Select,{placeholder:"Escalate to",className:"w-full",value:p,onChange:g,options:a})})]})]})}),oe&&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:Ys})]})}),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:Ys})]})})]}),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:[!w&&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:j,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(ft.EditOutlined,{})})}]})}const{Title:Dl,Text:Rs}=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),[f,m]=d.useState(),[p,g]=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(!f||!Array.isArray(c)){g([]);return}const I=c.find(V=>V?.ruleId===f||V?.RuleId===f||V?.ruleName===f),D=I?.userRoleIds??I?.UserRoleIds;g(Array.isArray(D)?D:[])},[f,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=()=>{m(void 0),g([])},K=async()=>{if(!f){Ne.toast.info("Please select a rule");return}try{l(!0);const I=Array.isArray(c)?c.find(y=>y?.ruleId===f||y?.RuleId===f||y?.ruleName===f):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 ${f}`);const V=p.map(y=>{const S=t.find(j=>j.userRoleId===y);return{id:y,name:S?.userRoleName??String(y)}}),C={...I,ruleId:f,userRoleIds:p,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"),m(void 0),g([]);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(Rs,{className:"text-gray-700 font-medium block mb-1",children:"Rules"}),i.jsx(h.Select,{placeholder:"Rules",value:f,onChange:m,options:k,className:"w-full"})]})}),i.jsx(h.Col,{xs:24,sm:12,md:8,lg:8,children:i.jsxs("div",{children:[i.jsx(Rs,{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:p,onChange:g,options:x,maxTagCount:1,maxTagPlaceholder:Ys})]})}),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||!f,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(Rs,{type:"secondary",children:"—"})}}]})]})}const{Title:Xn}=h.Typography;function Us(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"),[f,m]=d.useState("By severity"),[p,g]=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,j]=d.useState(),[re,fe]=d.useState(),[M,A]=d.useState(),[w,E]=d.useState(),[T,O]=d.useState(),[U,Y]=d.useState(),[G,_]=d.useState(),[oe,ue]=d.useState([]),[ke,ee]=d.useState([]),[pe,Te]=d.useState(!1),[he,$]=d.useState(!1),[P,ye]=d.useState({}),[le,Le]=d.useState({}),[we,He]=d.useState(s||[]),[Ie,ge]=d.useState([]),[Ot,ct]=d.useState(!1),[pt,Je]=d.useState(!1),[Fe,gt]=d.useState(n||[]);d.useEffect(()=>{n&&n.length&>(n)},[n]),d.useEffect(()=>{if(!Fe||!Fe.length)return;const R=Object.keys(P).length>0||Object.keys(le).length>0;if(Ie.length&&!R)return;const te=Fe.map((J,W)=>{const ce=e.find(ie=>ie.RuleId===(J.ruleId||J.ruleName))?.Name||J.ruleName||J.Name||"-",Z=Us(J.escalationSettings),se=typeof Z.level1UserRoleId=="number"&&Z.level1UserRoleId>0?[Z.level1UserRoleId]:[],Ke=typeof Z.level2UserRoleId=="number"&&Z.level2UserRoleId>0?[Z.level2UserRoleId]:[],Dt=typeof Z.level3UserRoleId=="number"&&Z.level3UserRoleId>0?[Z.level3UserRoleId]:[],z=(Array.isArray(Z.escalationSettingsActionTypeIds)?Z.escalationSettingsActionTypeIds:[]).map(ie=>P[ie]||String(ie)),Ae=(Array.isArray(Z.thirdPartyId)?Z.thirdPartyId:[]).map(ie=>le[ie]||String(ie)),je=typeof Z.humanLoop=="boolean"?Z.humanLoop:null,de=typeof Z.isAutoExpire=="boolean"?Z.isAutoExpire:null;return{id:String(J.ruleId||J.ruleName||W),ruleOrSeverityLabel:ce,l1:{minutes:Z.level1PostAssistTime??void 0,roles:se},l2:{minutes:Z.level2PostAssistTime??void 0,roles:Ke},l3:{minutes:Z.level3PostAssistTime??void 0,roles:Dt},actions:z,notify:Ae,humanLoop:je,isAutoExpire:de}});ge(te)},[Fe,e,P,le]);const St=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]),xt=d.useMemo(()=>we.map(R=>({label:R.userRoleName,value:R.userRoleId})),[we]),xs=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),g(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=ce=>{const Z=Number(ce);return!isNaN(Z)&&Z>0?Z:void 0},te=ce=>{const Z=Number(ce);return!isNaN(Z)&&Z>0?Z:void 0},J=(Fe||[]).find(ce=>ce?.ruleId===S||ce?.ruleName===S||ce?.RuleId===S),W=Us(J?.escalationSettings);if(W&&typeof W=="object"){fe(te(W.level1PostAssistTime)),A(R(W.level1UserRoleId)),E(te(W.level2PostAssistTime)),O(R(W.level2UserRoleId)),Y(te(W.level3PostAssistTime)),_(R(W.level3UserRoleId));const ce=Array.isArray(W.escalationSettingsActionTypeIds)?W.escalationSettingsActionTypeIds:[];ue(ce.map(Z=>String(Z))),ee(Array.isArray(W.thirdPartyId)?W.thirdPartyId:[]),Te(!!W.humanLoop),$(!!W.isAutoExpire)}},[V,S,Fe]);const vs=async()=>{try{Je(!0);const R=await o.getRules(),te=Array.isArray(R)?R:Array.isArray(R?.data)?R.data:[];gt(te);const J=te.map((W,ce)=>{const Z=e.find(ie=>ie.RuleId===(W.ruleId||W.ruleName))?.Name||W.ruleName||W.Name||"-",se=Us(W.escalationSettings??W.EscalationSettings),Ke=typeof se.level1UserRoleId=="number"&&se.level1UserRoleId>0?[se.level1UserRoleId]:[],Dt=typeof se.level2UserRoleId=="number"&&se.level2UserRoleId>0?[se.level2UserRoleId]:[],v=typeof se.level3UserRoleId=="number"&&se.level3UserRoleId>0?[se.level3UserRoleId]:[],ae=(Array.isArray(se.escalationSettingsActionTypeIds)?se.escalationSettingsActionTypeIds:[]).map(ie=>P[ie]||String(ie)),je=(Array.isArray(se.thirdPartyId)?se.thirdPartyId:[]).map(ie=>le[ie]||String(ie)),de=typeof se.humanLoop=="boolean"?se.humanLoop:null;return{id:String(W.ruleId||W.ruleName||ce),ruleOrSeverityLabel:Z,l1:{minutes:se.level1PostAssistTime??void 0,roles:Ke},l2:{minutes:se.level2PostAssistTime??void 0,roles:Dt},l3:{minutes:se.level3PostAssistTime??void 0,roles:v},actions:ae,notify:je,humanLoop:de}});ge(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 ce of te.thirdParties){const Z=ce.thirdPartyIds??ce.thirdPartyId;typeof Z=="number"&&(J[Z]=ce.thirdPartyName)}Le(J);const W=Array.isArray(te.userRoles)?te.userRoles.map(ce=>({userRoleId:ce.userRoleId??ce.id,userRoleName:ce.userRoleName??ce.name})):[];R||He(W.length?W:s||[])}catch(te){console.error("Error loading lookups",te)}})(),()=>{R=!0}},[]);const un=async()=>{B(!0);try{const R=await l.setAdminSettings({sortBy:c,groupBy:"string"});R?.responseStatus&&R?.data&&Ne.toast.success(R.data),g(c),k(!1)}catch(R){console.error("Error saving admin settings",R)}finally{B(!1)}},ws=()=>{u(p),k(!1)},As=async()=>{ct(!0),a?.({ruleId:S,levels:[{minutes:re,role:M},{minutes:w,role:T},{minutes:U,role:G}],actions:oe,thirdPartyIds:ke,humanLoop:pe,isAutoExpire:he});try{if(S){const te=Array.isArray(oe)?oe.map(se=>Number.isNaN(Number(se))?se:Number(se)):[],J=(Fe||[]).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 ce={...J,escalationSettings:{level1UserRoleId:M??0,level1PostAssistTime:re??0,level2UserRoleId:T??0,level2PostAssistTime:w??0,level3UserRoleId:G??0,level3PostAssistTime:U??0,escalationSettingsActionTypeIds:te,thirdPartyId:Array.isArray(ke)?ke:[],humanLoop:pe,isAutoExpire:he}},Z=await o.updateRule(W,ce);Z?.responseStatus||Z?.Success||Z?.success?(Ne.toast.success("Escalation settings saved"),await vs(),j(void 0),fe(void 0),A(void 0),E(void 0),O(void 0),Y(void 0),_(void 0),ue([]),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)}},Ts=()=>{u("By Severity"),m("By severity"),C("rules"),y(void 0),j(void 0),fe(void 0),A(void 0),E(void 0),O(void 0),Y(void 0),_(void 0),ue([]),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(Ml,{sortBy:c,groupBy:f,onChange:R=>{R.sortBy&&(u(R.sortBy),k(!0)),R.groupBy&&(m(R.groupBy),k(!0))},showActions:x,onSave:un,onClear:ws,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(jl,{escBasis:V,setEscBasis:C,selectedSeverity:q,setSelectedSeverity:y,selectedRule:S,setSelectedRule:j,severityOptions:St,ruleOptions:be,minsOptions:xs,roleOptions:xt,l1mins:re,setL1mins:fe,l1role:M,setL1role:A,l2mins:w,setL2mins:E,l2role:T,setL2role:O,l3mins:U,setL3mins:Y,l3role:G,setL3role:_,actions:oe,setActions:ue,thirdPartyIds:ke,setThirdPartyIds:ee,humanLoop:pe,setHumanLoop:Te,onClear:Ts,onSave:As,saving:Ot,onActionTypesLoaded:R=>{const te={};for(const J of R)typeof J.actionTypeId=="number"&&(te[J.actionTypeId]=J.name);ye(te)},isAutoExpire:he,setAutoExpire:$})]}),i.jsx(h.Divider,{className:"my-6"}),i.jsx(Ol,{entries:Ie,userRoles:we,loading:pt||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);j(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:rs}=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,f]=d.useState(new Set),[m,p]=d.useState(null),[g,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 j=sr(S.sortBy);c(j==="By Created Date"?"By Created Date":"By Severity"),p(Sn(S.doNotDisturbStart)),x(Sn(S.doNotDisturbEnd)),Array.isArray(S.anomalyIds)&&f(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 j=Array.isArray(S.anomalies)?S.anomalies:[];H(j)}catch(S){console.error("Failed to load anomalies lookups",S)}finally{y||I(!1)}})(),()=>{y=!0}},[]);const C=y=>{f(S=>{const j=new Set(S);return j.has(y)?j.delete(y):j.add(y),j})},q=async()=>{s?.({sortBy:l,subscribedRuleIds:Array.from(u),dnd:{from:m,to:g},channels:k});try{V(!0);const y=m?m.format?.("HH:mm:ss")??"00:00:00":"00:00:00",S=g?g.format?.("HH:mm:ss")??"00:00:00":"00:00:00",j=Array.from(u).map(fe=>Number(fe)).filter(fe=>Number.isFinite(fe)),re=await a.setPreferenceSettings({anomalyIds:j,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(rs,{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),j=y.anomalyName;return i.jsx(h.Checkbox,{checked:u.has(S),onChange:()=>C(S),children:j},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(rs,{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(rs,{children:"From"}),i.jsx(h.TimePicker,{value:m,onChange:y=>p(y),format:"HH:mm"})]}),i.jsxs(h.Space,{direction:"horizontal",size:8,className:"items-center",children:[i.jsx(rs,{children:"To"}),i.jsx(h.TimePicker,{value:g,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 Gt(){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}=Gt();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.jsx("div",{className:"flex flex-col",children:i.jsx("h4",{className:"text-sm text-black font-medium",children:s.channelLabel})}),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",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.jsx("span",{className:"text-gray-500",children:r.phone}),r.sentAt?i.jsx("span",{className:"text-gray-500",children:Vt(r.sentAt,e?.ianaTimeZoneId,!0)}):null]}),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}=Gt(),u=a?.length?a.map(m=>{const p=(m?.status||m?.eventStatus||"").toLowerCase()==="completed"?"Completed":"Inprogress",g=m?.createdDate?Vt(m.createdDate,c?.ianaTimeZoneId):m?.timestamp?Vt(m.timestamp,c?.ianaTimeZoneId):"";return{status:p,title:m?.status||m?.eventStatus||"Status Update",description:m?.description||m?.actionNotes||"",timestamp:g}}):[],f={summary:l,timeline:u,notifications:o??[]};return i.jsx(Fl,{data:f})},Pl=({url:t,alt:e,isLoading:s,priority:n,detections:r,onLoadSuccess:a,onError:o})=>{const{imageRef:l,dimensions:c,onLoad:u}=ur(),f=d.useMemo(()=>cr(r,c.naturalWidth,c.naturalHeight,c.renderedWidth,c.renderedHeight),[r,c]),m=d.useMemo(()=>f.map(p=>({...p,label:p.personName||""})),[f]);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:m,priority:n})]})},Wl=({items:t})=>{const{timeZoneDetails:e}=Gt(),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=o-a,u=Math.floor(l/3600),f=Math.floor(l%3600/60),m=l%60,p=c%1e3;return[u>0?`${u}h`:null,f>0?`${f}m`:null,`${m}s`,`${p}ms`].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:"," ",Vt(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[f,m]=d.useState(),[p,g]=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=Xs(),{alerts:q,rules:y,config:S}=$e(),{timeZoneDetails:j}=Gt(),[re,fe]=d.useState(null),[M,A]=d.useState(!1),[w,E]=d.useState(!1),[T,O]=d.useState(void 0),[U,Y]=d.useState(void 0),[G,_]=d.useState({}),[oe,ue]=d.useState({}),ke=(v,z,ae)=>{const Ae=oe[v];return G[v]===!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:v,alt:z.caption||`media-${ae}`,isLoading:Ae,priority:we,detections:Fe,onLoadSuccess:()=>ue(je=>({...je,[v]:!1})),onError:()=>ue(je=>({...je,[v]:!1}))})]})},ee=s?.originalData||{},{eventName:pe,eventDisplayName:Te,anomalyName:he,alertId:$,timestamp:P,description:ye,spaceName:le,assignTeam:Le,priority:we,statusType:He,id:Ie,alertDetails:ge,statusHistory:Ot,mediaDetails:ct,alertNumber:pt}=ee,Je=ee.bbox_xyxy,Fe=d.useMemo(()=>Je?[{bbox_xyxy:Je,personName:ee.personName}]:[],[Je,ee.personName]),gt=S.tenant==="snl"?Te||pe||"Alert Event":pe||"Alert Event",St=v=>{const z=String(v||"").toLowerCase();return z==="delivered"||z==="sent"?"Delivered":z==="failed"?"Failed":"Queued"},be=v=>({name:v?.receipientName||v?.recipientName||"-",role:v?.receipientRoleName||"",phone:v?.receipentPhoneNumber||v?.recipientPhoneNumber||v?.receipientEmail||v?.recipientEmail||"",status:St(v?.messageStatus),notificationReceipientType:v?.notificationReceipientType||"",sentAt:v?.sentAt||""}),xt=(v,z)=>{const ae=z.map(be),Ae=ae.filter(ie=>ie.status==="Delivered").length,je=z.map(ie=>ie?.sentAt).filter(Boolean).sort((ie,dn)=>new Date(ie).getTime()-new Date(dn).getTime())[0],de=`${v} Notification`;return{channelLabel:`${v} Notification`,sentAt:je||"",messageTitle:de,messageBody:"",total:ae.length,delivered:Ae,recipients:ae}},xs=v=>{const z=new Map;return(v||[]).forEach(ae=>{const Ae=String(ae?.notificationType||"Unknown"),je=z.get(Ae)||[];je.push(ae),z.set(Ae,je)}),Array.from(z.entries()).map(([ae,Ae])=>xt(ae,Ae))},vs=async v=>{try{const z=await q.getAlertNotifications(v),ae=xs(z);V(ae)}catch{V(void 0)}};d.useEffect(()=>{if(K!=="track"||!Ie)return;let v=!1;return vs(Ie).then(()=>{v&&V(void 0)}),()=>{v=!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):(m(void 0),g(""))},[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 v=!1;return A(!0),y.getLookups().then(z=>{v||(fe(z.alertStatusTypes??[]),A(!1))}).catch(()=>{v||(fe([]),A(!1))}),()=>{v=!0}},[t,S.tenant]);const ws=l==="archived"||["completed","false positive"].includes(String(He||"").toLowerCase()),As=v=>{const z=String(v?.value||"").toLowerCase(),ae=String(v?.statusName||"").toLowerCase();return z.includes("reopen")||ae.includes("reopen")},Ts=String(he||"").trim().toLowerCase(),R=Zl[Ts]??"general",te=r.filter(v=>{const z=As(v);return typeof l<"u"?l==="archived"?z:!z:ws?z:!z}).map(v=>({value:v.value,label:v.statusName})),J=re??[],W=v=>!!v.isWatchListStatus,ce=v=>!!v.isWeapontStatus,Z=J.filter(v=>{switch(R){case"elopement":return v.isElopementStatus;case"watchlist":return W(v);case"weapon":return ce(v);default:return!v.isElopementStatus&&!W(v)&&!ce(v)}}).map(v=>({value:v.alertStatusTypeName,label:v.alertStatusTypeName})),se=S.tenant==="snl"&&re!==null?Z:te,Ke=d.useMemo(()=>or(ct),[ct]);d.useEffect(()=>{let v=!1;const z=new AbortController,ae=async de=>{if(de){v||_(ie=>({...ie,[de]:!1}));try{const ie=await fetch(de,{method:"HEAD",signal:z.signal});if(ie.ok){v||_(Ct=>({...Ct,[de]:!0}));return}if(ie.status===404){v||_(Ct=>({...Ct,[de]:!1}));return}if(!(await fetch(de,{method:"GET",signal:z.signal})).ok)throw new Error("Media not available");v||_(Ct=>({...Ct,[de]:!0}))}catch{v||_(ie=>({...ie,[de]:!1}))}}};_({});const Ae=Ke.filter(de=>!Ls(de)).map(de=>de?.mediaUrl||de).filter(de=>typeof de=="string"&&de.length>0),je={};return Ae.forEach(de=>{je[de]=!0}),ue(je),Ae.forEach(de=>ae(de)),()=>{v=!0,z.abort()}},[Ke]);const Dt=async()=>{try{k(!0);const v={alertUniqueId:$,alertId:Ie,status:f?String(f):void 0,notes:p.trim(),modifiedBy:0},z=await C.mutateAsync(v);if(z?.responseStatus||z?.Success){const ae=z?.Message||z?.data||"Alert updated successfully.";Ne.toast.success(ae,{autoClose:1500,onClose:()=>{n(),e()}}),m(void 0),g("")}else{const ae=z?.errorMessage||z?.Message||"Failed to update alert status";Ne.toast.error(ae)}}catch(v){console.error("Error updating alert status:",v),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:Dt,loading:x,children:x?"Saving...":"Save Changes"})]}):null,children:s&&i.jsx(h.Tabs,{activeKey:K,onChange:v=>I(v),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:gt}),ge?.firstName?i.jsxs("div",{className:"text-sm text-gray-500",children:["Resident ID/Name: ",ge?.firstName," ",ge?.lastName||""," "," ",ge?.residentId||""]}):null,i.jsxs("div",{className:"text-sm text-gray-500",children:["Timestamp:"," ",Vt(P,j?.ianaTimeZoneId)]}),i.jsxs("div",{className:"font-sm text-gray-500",children:[i.jsx("b",{className:"text-black text-sm/6",children:"Description:"})," ",ye||"No description available"]}),le&&i.jsxs("div",{className:"font-sm text-gray-500",children:["Space: ",le]}),Le&&i.jsxs("div",{className:"font-sm text-gray-500",children:["Assigned to: ",Le]}),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:v=>m(v),value:f,options:se,loading:S.tenant==="snl"?M: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:p,onChange:v=>g(v.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(ft.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(ft.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((v,z)=>{const ae=v.mediaUrl||v,Ae=Ls(v);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),v,z),v.caption&&i.jsx("p",{className:"text-xs text-gray-500 mt-1",children:v.caption}),!Ae&&G[String(ae)]?i.jsx("button",{onClick:()=>{E(!0),O(ae),Y(v.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:w,onClose:()=>E(!1),src:T||"",type:U||"image",detections:Fe,priority:we})]})},{key:"track",label:"Track Incident",children:i.jsx($l,{alertId:$,id:Ie,priority:we,spaceName:le,alertNumber:pt,statusHistory:Ot,notifGroups:D})}]})})};function wa(){const{alerts:t}=$e(),e=ht.useQuery({queryKey:["alerts","statusList"],queryFn:()=>t.getAlertStatusList(),staleTime:5*6e4});return{list:e.data??[],loading:e.isLoading,error:e.error,refetch:e.refetch}}function cn({alerts:t,loading:e=!1,columns:s,total:n,currentPage:r,onRefetch:a,onPageChange:o,onFilterChange:l,onAlertView:c,showAlertTimeline:u}){const[f,m]=d.useState(!1),[p,g]=d.useState(null),[x,k]=d.useState("details"),{list:b,loading:B}=wa(),{timeZoneDetails:H}=Gt(),K=H?.timeZoneName??"UTC",I=H?.ianaTimeZoneId??"UTC";function D(re,fe){g(re),k(fe?.tab??"details"),q(fe?.sourceTab??"active"),m(!0)}function V(){m(!1)}const[C,q]=d.useState("active"),[y,S]=d.useState(0),j=p?{originalData:{...p,alertId:p.alertId??p.id,mediaDetails:p.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 fe=re==="archived";S(M=>M+1),o?.(1),l?.({isArchived:fe})},items:[{key:"active",label:"Active",children:i.jsx(Qs,{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:f,handleModalClose:V,selectedRow:j,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:f}=$e();return d.useEffect(()=>{let m=!0;return(async()=>{try{const p=await f.getRules();if(!m)return;l(Array.isArray(p)?p:[]);const g=(p||[]).map((x,k)=>({RuleId:x.ruleId||x.ruleName||String(k),Name:x.ruleName||x.Name||"-",Description:x.ruleDesc||x.Description||"",SeverityId:0}));e(g);try{const x=await f.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{m&&u(!1)}})(),()=>{m=!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=ht.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=f=>{"isArchived"in f?r({isArchived:f.isArchived}):r(m=>({...m,...f}))};return i.jsx(cn,{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:f,showAlertTimeline:m}){const[p]=d.useState(()=>new ht.QueryClient({defaultOptions:{queries:{retry:(x,k)=>{const b=k.response?.status??k?.status;return b>=400&&b<=500?!1:x<2},refetchOnWindowFocus:!1}}})),g=d.useMemo(()=>({alertsBaseUrl:e,rulesBaseUrl:s||e,headers:n||void 0}),[e,s,n]);return i.jsx(ht.QueryClientProvider,{client:p,children:i.jsx(ar,{tenant:t,override:g,timeZone:r,userManagementDomain:a,spacesBaseUrl:o,children:Array.isArray(l)?i.jsx(cn,{alerts:l,loading:!!c,columns:u,onAlertView:f,showAlertTimeline:m}):i.jsx(Gl,{columns:u,onAlertView:f,showAlertTimeline:m})})})}function _l(t){const{alerts:e}=$e(),s=ht.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=cn;exports.AlertConsoleWidget=Yl;exports.AlertsTable=Qs;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=Xs;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|