@3deye-toolkit/react-event-list 0.0.1-alpha.22 → 0.0.1-alpha.23

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.
@@ -18,6 +18,8 @@ declare class CameraEvent {
18
18
 
19
19
  declare interface DetectedObject {
20
20
  Type: string;
21
+ Value?: string;
22
+ Number?: string;
21
23
  Box: {
22
24
  Left: number;
23
25
  Top: number;
@@ -25,7 +27,7 @@ declare interface DetectedObject {
25
27
  Bottom: number;
26
28
  };
27
29
  Probability: number;
28
- Colors: {
30
+ Colors?: {
29
31
  Color: string;
30
32
  }[];
31
33
  }
@@ -47,7 +49,7 @@ declare interface Face {
47
49
  Probability: number;
48
50
  }
49
51
 
50
- declare interface Props {
52
+ declare interface Props extends React_2.HTMLAttributes<HTMLDivElement> {
51
53
  onEventClick: (event: CameraEvent) => void;
52
54
  }
53
55
 
@@ -1 +1 @@
1
- import*as e from"react";import t,{useContext as r,useEffect as i,createContext as n,useState as o,useImperativeHandle as a,useRef as l,useLayoutEffect as s,useCallback as c,Fragment as d}from"react";import{AppContext as u,app as h}from"@3deye-toolkit/core";import{observer as m,Observer as p,useLocalObservable as b}from"mobx-react-lite";import f from"react-ink";import{makeObservable as v,observable as g,makeAutoObservable as y,runInAction as w,action as E,reaction as C,computed as P,when as O}from"mobx";import{format as j,isSameYear as T,isSameDay as x,subHours as M,startOfHour as S}from"date-fns/esm";import L from"i18next";import{fromEvent as N,from as I,Subject as D,Subscription as k,Observable as _,of as F,throwError as H,EMPTY as z}from"rxjs";import R from"clsx";import{map as A,share as V,debounceTime as U,startWith as $,switchMap as B,bufferCount as W,mergeMap as q,sequenceEqual as G,filter as J,catchError as Z,mapTo as K,concatMap as Y}from"rxjs/operators";import X from"@reach/tooltip";import Q from"react-dom";import{FixedSizeGrid as ee}from"react-window";import te from"react-virtualized-auto-sizer";import re from"react-window-infinite-loader";import ie from"@seznam/compose-react-refs";import ne from"material-colors";import{MDCSlider as oe}from"@material/slider";import ae from"resize-observer-polyfill";import{useSpring as le,animated as se}from"@react-spring/web";import ce from"react-datepicker";import de,{components as ue}from"react-select";import{subHours as he}from"date-fns";const me=t.createContext(null);class pe{constructor(e){Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cameraId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"startTime",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"endTime",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"duration",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"chunks",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"clipUrl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"description",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"raw",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"isDownloading",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"archives",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),v(this,{name:g,clipUrl:g,isDownloading:g}),this.update(e)}get isTimelapse(){return this.type.startsWith("Timelaps")}update(e){this.raw=e,this.id=e.id,this.startTime=new Date(e.startTime),this.endTime=new Date(e.endTime),this.type=e.recordType,this.duration=e.duration,this.cameraId=e.cameraId,this.name=e.name||e.tagName,this.description=e.description,this.clipUrl=e.clipUrl,this.version=e.version}}function be(e){const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="absolute",t.style.left="-9999px",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t)}const fe=new Map,ve=L.createInstance();function ge(e,t){const r=fe.get(ve.language);return j(e,t,{locale:r})}function ye(e){return r=>{const{size:i=24,color:n="currentColor",className:o,...a}=r,l=e.viewBox||"0 0 24 24",s=e.svg;return t.createElement("svg",{preserveAspectRatio:"xMinYMin",className:`icon ${o}`,width:i,fill:n,viewBox:l,height:i,...a},s)}}const we=ye({viewBox:"0 0 24 24",svg:t.createElement("g",null,t.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),t.createElement("path",{d:"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"}))});we.displayName="MoreVertIcon";const Ee=({Type:e,Box:{Top:i,Left:n,Right:o,Bottom:a},Probability:l,height:s})=>{const{eventSchema:c}=r(me);let d="top";d=s&&i*s>12||i>.1?"top":1-a-i>.5?"bottom":"top inset";const u={top:"top"===d?-12:"top inset"===d?0:"auto",bottom:"bottom"===d?-12:"auto",left:"top"===d?-2:0};return t.createElement("div",{style:{position:"absolute",top:100*i+"%",left:100*n+"%",bottom:100*(1-a)+"%",right:100*(1-o)+"%",outline:`2px solid ${c.colorsByFoundObjectType.get(e)}`}},t.createElement("div",{style:{color:c.colorsByFoundObjectType.get(e),backgroundColor:"rgba(0, 0, 0, 0.8)",position:"absolute",fontSize:10,fontFamily:"monospace",padding:"0 2px",...u},title:`${e.toLowerCase()} ${Math.floor(100*l)}%`},e.toLowerCase()," ",Math.floor(100*l),"%"))};Ee.displayName="FoundObjectBox";const Ce=/Mac|iPod|iPhone|iPad/.test(window.navigator.platform),Pe=N(document,"keydown").pipe(A((function({target:e,code:t,shiftKey:r,metaKey:i,ctrlKey:n,altKey:o}){var a;if(/^(input|select|textarea)$/i.test(e.tagName))return;const l=[];if("Space"===t&&"button"===(null===(a=document.activeElement)||void 0===a?void 0:a.tagName.toLowerCase()))return;t.startsWith("Key")&&(t=t.substr(3).toLowerCase());Ce&&i&&l.push("CtrlCmd");!Ce&&n&&l.push("CtrlCmd");o&&l.push("Alt");r&&l.push("Shift");return l.push(t),l.join("+")})),V());function Oe(e,t,r=!0){i((()=>{if(!r)return;const i=t=>{t.key===e&&t.preventDefault()};"ArrowUp"!==e&&"ArrowDown"!==e||document.addEventListener("keydown",i);const n=e.split(" "),o=Pe.pipe(U(1e3),$(null),B((()=>Pe.pipe(W(n.length,1)))),q((e=>I(e).pipe(G(I(n)),J(Boolean))))).subscribe(t);return()=>{o.unsubscribe(),"ArrowUp"!==e&&"ArrowDown"!==e||document.removeEventListener("keydown",i)}}),[r])}const je={background:"rgb(0 0 0 / 0.9)",color:"white",border:"none",borderRadius:"4px",padding:"0.5em 1em",fontSize:12},Te=({label:e,children:r})=>t.createElement(X,{label:e,style:je},r);Te.displayName="Tooltip";class xe extends t.Component{render(){const{forwardedRef:e,children:r,className:i,fullwidth:n,type:o,title:a,...l}=this.props,s=R(i,"x-3deye-button",{fullwidth:n}),c=t.createElement("button",{ref:e,className:s,type:o||"button",...l},r,l.disabled?null:t.createElement(f,null));return a?t.createElement(Te,{label:a},c):c}}const Me=t.forwardRef(((e,r)=>t.createElement(xe,{forwardedRef:r,...e}))),Se=document.body;class Le extends t.Component{constructor(e){super(e),Object.defineProperty(this,"el",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.el=document.createElement("div")}componentDidMount(){Se.appendChild(this.el)}componentWillUnmount(){Se.removeChild(this.el)}render(){return Q.createPortal(this.props.children,this.el)}}class Ne{constructor(){Object.defineProperty(this,"opened",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"top",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"left",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"bottom",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"right",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"buttonRef",{enumerable:!0,configurable:!0,writable:!0,value:t.createRef()}),Object.defineProperty(this,"requestedPlacement",{enumerable:!0,configurable:!0,writable:!0,value:"bottom-end"}),Object.defineProperty(this,"placement",{enumerable:!0,configurable:!0,writable:!0,value:"bottom-end"}),Object.defineProperty(this,"targetPosition",{enumerable:!0,configurable:!0,writable:!0,value:{top:0,left:0,width:0,height:0}}),Object.defineProperty(this,"toggleMenu",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.opened=!this.opened}}),Object.defineProperty(this,"toggleAt",{enumerable:!0,configurable:!0,writable:!0,value:({top:e,left:t})=>{this.setTargetPosition({top:e,left:t,width:0,height:0}),this.placement="bottom-start",this.opened=!this.opened}}),Object.defineProperty(this,"setRequestedPlacement",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.requestedPlacement=e}}),Object.defineProperty(this,"resetPlacement",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.placement=this.requestedPlacement}}),y(this)}setTargetPosition({top:e,left:t,width:r,height:i}){this.targetPosition={top:e,left:t,width:r,height:i}}}const Ie=n(null),De=()=>{const e=r(Ie);if(!e)throw new Error("MenuContext is not defined");return e},ke=m((({children:e,placement:r="bottom-end"},n)=>{const[l]=o((()=>new Ne));return a(n,(()=>l)),i((()=>{l.requestedPlacement=r}),[r]),t.createElement(Ie.Provider,{value:l},e)}),{forwardRef:!0});ke.displayName="Menu";const _e=m((({children:e,className:r,...n})=>{const o=De(),a=l(null);return i((()=>{if(!o.opened)return;const e=e=>{const t=e.target;a.current&&(a.current.contains(t)||o.buttonRef.current.contains(t)||o.toggleMenu())};return document.addEventListener("mousedown",e,!0),()=>document.removeEventListener("mousedown",e)}),[o.opened]),Oe("ArrowUp",(()=>{var e;const t=Array.from(a.current.querySelectorAll(".menu-item"));if(!t.length)return;const r=document.activeElement;if(!(null===(e=a.current)||void 0===e?void 0:e.contains(r)))return void t[0].focus();if(1===t.length)return;const i=t.findIndex((e=>e.contains(r)));t[(i+t.length-1)%t.length].focus()}),o.opened),Oe("ArrowDown",(()=>{var e;const t=Array.from(a.current.querySelectorAll(".menu-item"));if(!t.length)return;const r=document.activeElement;if(!(null===(e=a.current)||void 0===e?void 0:e.contains(r)))return void t[0].focus();if(1===t.length)return;const i=t.findIndex((e=>e.contains(r)));t[(i+1)%t.length].focus()}),o.opened),Oe("Escape",o.toggleMenu,o.opened),s((()=>{if(o.opened){if(!a.current)return;const{offsetWidth:e,offsetHeight:t}=a.current,r=o.targetPosition.left,i=o.targetPosition.top,n=o.targetPosition.width,l=o.targetPosition.height,s=window.innerHeight,c=window.innerWidth;let d,u=r+n-e,h=i+l,m=o.placement;"bottom-start"===m?(u=r,h=i,u+e>c&&(u-=e,m="bottom-end"),h+t>s&&(h-=t,m=m.endsWith("start")?"top-start":"top-end")):"bottom-end"===m?(i+l+t>s&&(h=void 0,d=s-i+4,m="top-end"),r-e<0&&(u=r,m=m.startsWith("top")?"top-start":"bottom-start")):"top"===m&&(u=r+(n-e)/2,h=i-t,m="top"),a.current.dataset.placement=m,a.current.style.top=h?`${h}px`:void 0,a.current.style.bottom=d?`${d}px`:void 0,a.current.style.left=u?`${u}px`:void 0}}),[o.opened]),o.opened?t.createElement(Le,null,t.createElement("div",{ref:a,onClick:e=>{e.stopPropagation()},className:R("menu-items-container",r),...n},e)):null}));_e.displayName="MenuList";const Fe=({children:e,style:r,className:i,noClose:n,action:o})=>{const a=De();return t.createElement(Me,{onClick:e=>{e.stopPropagation(),null==o||o(),n||a.toggleMenu()},className:R("menu-item",i),style:r},e)};Fe.displayName="MenuItem";const He=({className:e,children:r,...i})=>{const n=De(),o=c((e=>{if(e.stopPropagation(),!n.opened){const e=n.buttonRef.current;n.setTargetPosition(e.getBoundingClientRect()),n.resetPlacement()}n.toggleMenu()}),[]);return t.createElement(Me,{ref:n.buttonRef,className:R("menu-button",e),onClick:o,...i},r)};He.displayName="MenuButton";const ze=m((({data:e,width:n,hideCameraName:a,height:s,onClick:c})=>{var u,h,m,p;const b=l(null),v=l(null),[g,y]=o(null),w=r(me),{cameras:E,eventSchema:C,thumbnails:P}=w;i((()=>{if(e.thumbnailUrl)return void y(null);const t=P.fetchThumbnail(e.cameraId,e.startTime,e.startTime).subscribe((e=>{y(e||null)}));return()=>t.unsubscribe()}),[e.id]);const O="clipSharing"in w&&!!(4&(null!==(h=null===(u=E.camerasById.get(e.cameraId))||void 0===u?void 0:u.permissions)&&void 0!==h?h:0));let j=null;e.detectedObjects.length&&(j=e.detectedObjects.filter((({Type:e})=>C.foundObjectTypes.includes(e))).map(((e,r)=>t.createElement(Ee,{key:r,...e,height:s}))));let M="",S=!1;if(e.thumbnailUrl?M=e.thumbnailUrl:null===g&&E.loaded?(M=(null===(m=E.camerasById.get(e.cameraId))||void 0===m?void 0:m.imageUrl)||"",S=!0):g&&(M=g.url),e.faces){const{Width:r,Height:i}=JSON.parse(e.raw.data).ThumbnailSize;j||(j=[]);const n=100,o=j.length;j=j.concat(e.faces.map((({Name:e,Box:{Top:a,Left:l,Right:s,Bottom:c},Probability:u},h)=>{const m=n/r/(s-l),p={top:2},b={};return l>=1-s?(p.left=2,b.right=-2):(p.right=2,b.left=-2),a>=1-c?b.bottom="calc(100% + 1px)":b.top="calc(100% + 1px)",t.createElement(d,{key:o+h},t.createElement("div",{className:"event-list-item-face-trigger",style:{position:"absolute",top:100*a+"%",left:100*l+"%",bottom:100*(1-c)+"%",right:100*(1-s)+"%",outline:"1px solid orange"}},t.createElement("div",{style:{color:"orange",backgroundColor:"rgba(0, 0, 0, 0.8)",position:"absolute",fontSize:10,fontFamily:"monospace",...b},title:`${e} ${Math.floor(100*u)}%`},e," ",Math.floor(100*u),"%")),t.createElement("div",{className:"event-list-item-face",style:{overflow:"hidden",width:r*(s-l)*m,height:i*(c-a)*m,...p}},t.createElement("img",{style:{width:r*m,height:i*m,transform:`translate(-${100*l}%, -${100*a}%)`},src:M}),t.createElement("div",{className:"frame"},t.createElement("div",{className:"corner-highlight-tl"}),t.createElement("div",{className:"corner-highlight-tr"}),t.createElement("div",{className:"corner-highlight-br"}),t.createElement("div",{className:"corner-highlight-bl"}))))})))}const L=E.loaded&&(null===(p=E.camerasById.get(e.cameraId))||void 0===p?void 0:p.name)||"...";return t.createElement("div",{onDragStart:t=>{if(!t.dataTransfer)return;t.dataTransfer.setData("x-3deye/event",""+e.id),t.dataTransfer.dropEffect="move";const r=v.current;if(r){const{x:e,y:i}=r.getBoundingClientRect();t.dataTransfer.setDragImage(r,t.clientX-e,t.clientY-i)}},className:"event-list-item",onClick:()=>c(e),onContextMenu:e=>{var t;e.preventDefault(),null===(t=b.current)||void 0===t||t.toggleAt({top:e.clientY,left:e.clientX})},draggable:!0},M&&t.createElement("img",{key:M,ref:v,style:{position:"absolute",width:"100%",height:"100%",top:0,left:0},src:M}),t.createElement(f,{radius:n}),S?t.createElement("div",{className:"no-preview-overlay"}):null,e.acknowledged?t.createElement("div",{className:"acknowledged-overlay"},"acknowledged"):null,j,t.createElement(ke,{ref:b},t.createElement(He,{className:"x-3deye-button--icon"},t.createElement(we,null)),t.createElement(_e,null,O&&t.createElement(Fe,{action:()=>{var t;const{cameraId:r}=e;let{startTime:i,endTime:n}=e;+n-+i<5e3&&(i=new Date(+i-5e3),n=new Date(+n+5e3));const o="clipSharing"in w?w.clipSharing:void 0;null==o||o.openModalWithSelectedClip(new pe({cameraId:r,startTime:i,endTime:n,name:null===(t=E.camerasById.get(r))||void 0===t?void 0:t.name}))}},"Share"),t.createElement(Fe,{action:()=>{be(e.id.toString())}},"Copy ID to clipboard"),t.createElement(Fe,{action:()=>{be(e.cameraId.toString())}},"Copy camera ID to clipboard"))),t.createElement("div",{className:"event-list-item-caption"},t.createElement("div",{className:"event-list-item__time"},function(e,t){let r="",i="";return T(e,new Date)?x(e,new Date)?r=i="HH:mm":x(e,t)?(r="EEE d MMM HH:mm",i="HH:mm"):r=i="EEE d MMM HH:mm":T(e,t)?(r="yyyy d MMM HH:mm",i="d MMM HH:mm"):r=i="yyyy d MMM HH:mm",(e.getSeconds()||t.getSeconds())&&(r+=":ss",i+=":ss"),+e==+t?`${ge(e,r)}`:`${ge(e,r)} - ${ge(t,i)}`}(e.startTime,e.endTime)),a?null:t.createElement("div",{className:"event-list-item__camera-name",title:L},L),+e.endTime-+e.startTime>0&&t.createElement("div",{className:"event-list-item__duration"},function(e,t=!0){if((e=Math.round(e/1e3))<60)return`${e}s`;const r=e%60,i=t?`${r}`:`${r}`.padStart(2,"0");let n=(e-r)/60;if(n<60)return!r&&t?`${n}m`:`${n}m ${i}s`;const o=Math.floor(n/60);if(n-=60*o,!r&&!n&&t)return`${o}h`;const a=t?`${n}`:`${n}`.padStart(2,"0");return!r&&n&&t?`${o}h ${a}m`:`${o}h ${a}m ${i}s`}(+e.endTime-+e.startTime))))}));ze.displayName="EventListItem";var Re="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Ae="object"==typeof Re&&Re&&Re.Object===Object&&Re,Ve="object"==typeof self&&self&&self.Object===Object&&self,Ue=Ae||Ve||Function("return this")(),$e=Ue.Symbol,Be=Object.prototype,We=Be.hasOwnProperty,qe=Be.toString,Ge=$e?$e.toStringTag:void 0;var Je=function(e){var t=We.call(e,Ge),r=e[Ge];try{e[Ge]=void 0;var i=!0}catch(e){}var n=qe.call(e);return i&&(t?e[Ge]=r:delete e[Ge]),n},Ze=Object.prototype.toString;var Ke=function(e){return Ze.call(e)},Ye=$e?$e.toStringTag:void 0;var Xe=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Ye&&Ye in Object(e)?Je(e):Ke(e)};var Qe=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)};var et,tt=function(e){if(!Qe(e))return!1;var t=Xe(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t},rt=Ue["__core-js_shared__"],it=(et=/[^.]+$/.exec(rt&&rt.keys&&rt.keys.IE_PROTO||""))?"Symbol(src)_1."+et:"";var nt=function(e){return!!it&&it in e},ot=Function.prototype.toString;var at=function(e){if(null!=e){try{return ot.call(e)}catch(e){}try{return e+""}catch(e){}}return""},lt=/^\[object .+?Constructor\]$/,st=Function.prototype,ct=Object.prototype,dt=st.toString,ut=ct.hasOwnProperty,ht=RegExp("^"+dt.call(ut).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var mt=function(e){return!(!Qe(e)||nt(e))&&(tt(e)?ht:lt).test(at(e))};var pt=function(e,t){return null==e?void 0:e[t]};var bt=function(e,t){var r=pt(e,t);return mt(r)?r:void 0},ft=bt(Object,"create");var vt=function(){this.__data__=ft?ft(null):{},this.size=0};var gt=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},yt=Object.prototype.hasOwnProperty;var wt=function(e){var t=this.__data__;if(ft){var r=t[e];return"__lodash_hash_undefined__"===r?void 0:r}return yt.call(t,e)?t[e]:void 0},Et=Object.prototype.hasOwnProperty;var Ct=function(e){var t=this.__data__;return ft?void 0!==t[e]:Et.call(t,e)};var Pt=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=ft&&void 0===t?"__lodash_hash_undefined__":t,this};function Ot(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Ot.prototype.clear=vt,Ot.prototype.delete=gt,Ot.prototype.get=wt,Ot.prototype.has=Ct,Ot.prototype.set=Pt;var jt=Ot;var Tt=function(){this.__data__=[],this.size=0};var xt=function(e,t){return e===t||e!=e&&t!=t};var Mt=function(e,t){for(var r=e.length;r--;)if(xt(e[r][0],t))return r;return-1},St=Array.prototype.splice;var Lt=function(e){var t=this.__data__,r=Mt(t,e);return!(r<0)&&(r==t.length-1?t.pop():St.call(t,r,1),--this.size,!0)};var Nt=function(e){var t=this.__data__,r=Mt(t,e);return r<0?void 0:t[r][1]};var It=function(e){return Mt(this.__data__,e)>-1};var Dt=function(e,t){var r=this.__data__,i=Mt(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this};function kt(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}kt.prototype.clear=Tt,kt.prototype.delete=Lt,kt.prototype.get=Nt,kt.prototype.has=It,kt.prototype.set=Dt;var _t=kt,Ft=bt(Ue,"Map");var Ht=function(){this.size=0,this.__data__={hash:new jt,map:new(Ft||_t),string:new jt}};var zt=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e};var Rt=function(e,t){var r=e.__data__;return zt(t)?r["string"==typeof t?"string":"hash"]:r.map};var At=function(e){var t=Rt(this,e).delete(e);return this.size-=t?1:0,t};var Vt=function(e){return Rt(this,e).get(e)};var Ut=function(e){return Rt(this,e).has(e)};var $t=function(e,t){var r=Rt(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this};function Bt(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var i=e[t];this.set(i[0],i[1])}}Bt.prototype.clear=Ht,Bt.prototype.delete=At,Bt.prototype.get=Vt,Bt.prototype.has=Ut,Bt.prototype.set=$t;var Wt=Bt;function qt(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var r=function(){var i=arguments,n=t?t.apply(this,i):i[0],o=r.cache;if(o.has(n))return o.get(n);var a=e.apply(this,i);return r.cache=o.set(n,a)||o,a};return r.cache=new(qt.Cache||Wt),r}qt.Cache=Wt;const Gt=qt((()=>{const e=document.createElement("div");e.style.overflowY="scroll",e.style.position="absolute",e.style.top="-9999px",document.body.append(e);const t=e.offsetWidth;return e.remove(),t})),Jt=({size:e=48})=>t.createElement("svg",{width:e,height:e,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid"},t.createElement("rect",{x:"0",y:"0",width:"100",height:"100",fill:"none",className:"bk"}),t.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(0 50 50) translate(0 -30)"},t.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0s",repeatCount:"indefinite"})),t.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(30 50 50) translate(0 -30)"},t.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0.08333333333333333s",repeatCount:"indefinite"})),t.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(60 50 50) translate(0 -30)"},t.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0.16666666666666666s",repeatCount:"indefinite"})),t.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(90 50 50) translate(0 -30)"},t.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0.25s",repeatCount:"indefinite"})),t.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(120 50 50) translate(0 -30)"},t.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0.3333333333333333s",repeatCount:"indefinite"})),t.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(150 50 50) translate(0 -30)"},t.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0.4166666666666667s",repeatCount:"indefinite"})),t.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(180 50 50) translate(0 -30)"},t.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0.5s",repeatCount:"indefinite"})),t.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(210 50 50) translate(0 -30)"},t.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0.5833333333333334s",repeatCount:"indefinite"})),t.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(240 50 50) translate(0 -30)"},t.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0.6666666666666666s",repeatCount:"indefinite"})),t.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(270 50 50) translate(0 -30)"},t.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0.75s",repeatCount:"indefinite"})),t.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(300 50 50) translate(0 -30)"},t.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0.8333333333333334s",repeatCount:"indefinite"})),t.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(330 50 50) translate(0 -30)"},t.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0.9166666666666666s",repeatCount:"indefinite"})));Jt.displayName="Preloader";class Zt extends t.Component{constructor(e){super(e),Object.defineProperty(this,"scrollState",{enumerable:!0,configurable:!0,writable:!0,value:{rowIndex:0,columnIndex:0}}),Object.defineProperty(this,"scrollTop",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"columnCount",{enumerable:!0,configurable:!0,writable:!0,value:1}),Object.defineProperty(this,"rowHeight",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"lastScrollEventTimestamp",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"scrolls",{enumerable:!0,configurable:!0,writable:!0,value:new D}),Object.defineProperty(this,"updates",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"disposables",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"listRef",{enumerable:!0,configurable:!0,writable:!0,value:t.createRef()}),Object.defineProperty(this,"setScrollState",{enumerable:!0,configurable:!0,writable:!0,value:(e,t)=>{this.scrollState.rowIndex=e,this.scrollState.columnIndex=t}}),Object.defineProperty(this,"resetScrollState",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.scrollState.rowIndex=0,this.scrollState.columnIndex=0}}),Object.defineProperty(this,"onScroll",{enumerable:!0,configurable:!0,writable:!0,value:({scrollTop:e})=>{this.scrollTop=e,this.lastScrollEventTimestamp=Date.now(),this.scrolls.next(e),"disabled"!==this.props.store.liveUpdateMode&&w((()=>this.props.store.liveUpdateMode=this.scrollTop?"manual":"auto"))}}),Object.defineProperty(this,"rowRenderer",{enumerable:!0,configurable:!0,writable:!0,value:e=>({columnIndex:r,rowIndex:i,style:n})=>t.createElement(p,null,(()=>{var o;const a=i*e+r,l=this.props.store.data[a];return a===this.props.store.data.length?this.props.store.error?t.createElement("div",{style:n},t.createElement("div",{style:{position:"absolute",inset:0,display:"grid",placeItems:"center"}},t.createElement("div",{style:{textAlign:"center"}},t.createElement("div",null,"Couldn't fetch more data"),t.createElement(Me,{onClick:this.props.store.loadMore},"Retry")))):t.createElement("div",{style:n},t.createElement("div",{style:{position:"absolute",inset:0,display:"grid",placeItems:"center"}},t.createElement(Jt,{size:32}))):!l&&(null===(o=this.props.store.pageInfo)||void 0===o?void 0:o.haveMore)?t.createElement("div",{style:n}):l?t.createElement("div",{style:n},t.createElement(ze,{data:l,hideCameraName:this.props.hideCameraName,onClick:this.props.onEventClick})):t.createElement("div",{style:n})}))}),Object.defineProperty(this,"loadMoreItems",{enumerable:!0,configurable:!0,writable:!0,value:(e,t)=>(this.props.store.loadMore(),Promise.resolve())}),v(this,{scrollState:g,setScrollState:E,resetScrollState:E})}componentDidMount(){this.disposables.push(this.scrolls.pipe(U(200)).subscribe((()=>{this.props.store.pendingData.length&&(this.updates=this.props.store.pendingData.length,this.props.store.flushUpdates(),this.forceUpdate())}))),this.disposables.push(C((()=>this.props.store.pendingData),(e=>{e.length&&(Date.now()-this.lastScrollEventTimestamp<200||(this.updates=e.length,this.props.store.flushUpdates(),this.forceUpdate()))})))}componentWillUnmount(){this.disposables.forEach((e=>{e instanceof k?e.closed||e.unsubscribe():e()})),"disabled"!==this.props.store.liveUpdateMode&&w((()=>this.props.store.liveUpdateMode="auto"))}componentDidUpdate(){if(0!==this.scrollTop&&this.listRef.current&&this.updates){const e=this.scrollTop+Math.round(this.updates/this.columnCount)*this.rowHeight;this.listRef.current.scrollTo({scrollTop:e,scrollLeft:0}),this.updates=0}}render(){return t.createElement(p,null,(()=>{const{store:e}=this.props;return e.error&&!e.data.length?(this.resetScrollState(),t.createElement("div",{style:{flex:1,display:"flex",justifyContent:"center",alignItems:"center"}},t.createElement("div",{style:{textAlign:"center"}},t.createElement("div",null,"Couldn't fetch data"),t.createElement(Me,{onClick:e.reload},"Retry")))):e.loading?(this.resetScrollState(),t.createElement("div",{style:{flex:1,display:"flex",justifyContent:"center",alignItems:"center"}},t.createElement(Jt,null))):e.data.length?t.createElement(te,null,(({width:r,height:i})=>t.createElement(p,null,(()=>{var n;const{minColumnWidth:o=180}=this.props,a=Math.floor(r/o)||1,l=r/a/16*9,s=a*Math.floor(i/l)>=e.data.length?0:Gt(),c=Math.max(1,Math.floor((r-s)/o)),d=Math.ceil(this.props.store.data.length/c),u=(r-s)/c/16*9;this.rowHeight=u,this.columnCount=c;return t.createElement(re,{isItemLoaded:e=>e<d,itemCount:d+((null===(n=e.pageInfo)||void 0===n?void 0:n.haveMore)?1:0),loadMoreItems:this.loadMoreItems},(({onItemsRendered:n,ref:o})=>{var a;return t.createElement(ee,{ref:ie(this.listRef,o),columnCount:c,columnWidth:(r-s)/c,height:i,width:r,rowCount:d+((null===(a=e.pageInfo)||void 0===a?void 0:a.haveMore)||e.error?1:0),rowHeight:u,initialScrollTop:u*this.scrollState.rowIndex,onScroll:this.onScroll,onItemsRendered:({visibleRowStartIndex:e,visibleColumnStartIndex:t,visibleRowStopIndex:r,overscanRowStopIndex:i,overscanRowStartIndex:o})=>{this.setScrollState(e,t),n({overscanStartIndex:o,overscanStopIndex:i,visibleStartIndex:e,visibleStopIndex:r})}},this.rowRenderer(c))}))})))):(this.resetScrollState(),t.createElement("div",{style:{flex:1,display:"flex",justifyContent:"center",alignItems:"center"}},ve.t("noEventsFound")))}))}}const Kt=e=>{const{className:r,children:i,...n}=e;return t.createElement("div",{className:R("x-3deye-button-group",r),...n},i)},Yt=ye({viewBox:"0 0 24 24",svg:t.createElement("g",null,t.createElement("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),t.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}))});Yt.displayName="CloseIcon";const Xt=ye({viewBox:"0 0 24 24",svg:t.createElement(t.Fragment,null,t.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}),t.createElement("path",{d:"M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z"}))});Xt.displayName="DoneIcon";const Qt=[{color:ne.red[500],name:"red",highlightColor:ne.red[100]},{color:ne.green[500],name:"green",highlightColor:ne.green[100]},{color:ne.blue[500],name:"blue",highlightColor:ne.blue[100]},{color:ne.yellow[500],name:"yellow",highlightColor:ne.yellow[900]},{color:ne.black,name:"black",highlightColor:ne.white},{color:ne.white,name:"white",highlightColor:ne.black},{color:ne.grey[500],name:"dimgrey",highlightColor:ne.grey[100]}],er=m((({value:e,clear:r,toggle:i})=>t.createElement("div",{className:"color-selector"},t.createElement("div",null,"COLOR"),t.createElement("div",{className:"color-selector__items"},Qt.map((({color:r,highlightColor:n,name:o})=>t.createElement("button",{key:o,className:R("color-selector__item",{selected:e.has(o)}),style:{backgroundColor:r,color:n},onClick:i.bind(null,o)},t.createElement(Xt,{size:20})))),t.createElement(Me,{disabled:!e.size,onClick:r},t.createElement(Yt,{size:20}))))));er.displayName="ColorSelector";const tr=({value:e,onChange:r})=>{const n=l(null),a=l(),[s,c]=o(0);return i((()=>{if(!n.current)return;const e=new oe(n.current);return a.current=e,e.listen("MDCSlider:change",(()=>{null==r||r(e.value)})),()=>{a.current=void 0,e.destroy()}}),[]),i((()=>{const e=new ae((e=>{var t;for(const r of e){const e=r.contentRect.width;e!==s&&(null===(t=a.current)||void 0===t||t.layout()),c(e)}}));return e.observe(n.current),()=>e.disconnect()}),[]),i((()=>{a.current&&(a.current.value=e)}),[e]),t.createElement("div",{ref:n,className:"mdc-slider mdc-slider--discrete mdc-slider--display-markers",tabIndex:0,role:"slider","data-step":5,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":e,"aria-label":"Select Value"},t.createElement("div",{className:"mdc-slider__track-container"},t.createElement("div",{className:"mdc-slider__track"}),t.createElement("div",{className:"mdc-slider__track-marker-container"})),t.createElement("div",{className:"mdc-slider__thumb-container"},t.createElement("div",{className:"mdc-slider__pin"},t.createElement("span",{className:"mdc-slider__pin-value-marker"})),t.createElement("svg",{className:"mdc-slider__thumb",width:"21",height:"21"},t.createElement("circle",{cx:"10.5",cy:"10.5",r:"7.875"})),t.createElement("div",{className:"mdc-slider__focus-ring"})))};tr.displayName="Slider";const rr=m((({getter:e,setter:r})=>{const[n,a]=o(0),s=l(null),c=Math.floor(100*e());return i((()=>C(e,(e=>{a(Math.floor(100*e))}),{fireImmediately:!0})),[e]),t.createElement("div",{ref:s,style:{paddingLeft:8,paddingRight:8,marginTop:5}},t.createElement("div",{style:{display:"flex",justifyContent:"space-between"}},t.createElement("div",null,"CONFIDENCE"),t.createElement("div",{style:{fontSize:"1.1em"}},c,"%")),t.createElement(tr,{value:n,onChange:e=>{r(e/100)}}))}));rr.displayName="ProbabilitySlider";const ir=e=>`scale(${e})`,nr=({children:t,from:r,style:i})=>{const n=le({opacity:1,from:{opacity:0},config:{tension:300}});return e.createElement(se.div,{style:{...i,...n,transform:n.opacity.to(ir),transformOrigin:`${r||"bottom"} center`,width:"max-content"}},t)},or=({width:e,height:r,color:i,position:n="top",style:o})=>{const a=[0,"top"===n?r:0],l=[e,a[1]],s=[e/2,r-a[1]],c=[e/4,r*("top"===n?3:1)/4],d=[.325*e,r-a[1]],u=[e-d[0],d[1]],h=[e-c[0],c[1]],m=e=>e.join(","),p=`M ${m(a)} C ${m(c)} ${m(d)} ${m(s)} ${m(u)} ${m(h)} ${m(l)} Z`;return t.createElement("svg",{className:"tip",style:o,width:e,height:r,fill:i},t.createElement("path",{d:p}))};class ar extends t.Component{constructor(){super(...arguments),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:{top:0,left:0,bottom:"auto",tipPosition:"bottom",tipOffset:0}}),Object.defineProperty(this,"targetRef",{enumerable:!0,configurable:!0,writable:!0,value:t.createRef()}),Object.defineProperty(this,"popoverRef",{enumerable:!0,configurable:!0,writable:!0,value:t.createRef()}),Object.defineProperty(this,"outsideClickListener",{enumerable:!0,configurable:!0,writable:!0,value:e=>{const t=e.target;if(this.popoverRef.current.contains(t))return;const r=this.targetRef.current;r&&r.contains(t)||this.props.onCloseRequest()}}),Object.defineProperty(this,"updatePosition",{enumerable:!0,configurable:!0,writable:!0,value:()=>{if(!this.popoverRef)return;const{disablePortal:e}=this.props,t=this.targetRef.current;if(!t)return void console.warn("popover: no target element found");const{top:r,left:i,bottom:n,height:o,width:a}=t.getBoundingClientRect();let l="calc(50% - 12px)",s="auto";const c=this.popoverRef.current;let d="bottom"===this.props.placement?n+10:r-c.clientHeight-10,u=i+a/2-c.clientWidth/2,h="bottom"===this.props.placement?"top":"bottom";d<0&&(d=n+10,h="top"),u<0&&(u=0,l=i+a/2-12),u+c.clientWidth>window.innerWidth&&(u=window.innerWidth-c.clientWidth,l=i-u+a/2-12),e&&(d=o+10,u=0,l=8,"top"===this.props.placement&&(s=d,d="auto")),this.setState({top:d,bottom:s,left:u,tipPosition:h,tipOffset:l},(()=>{this.forceUpdate()}))}})}componentWillUnmount(){this.stopOutsideClickListening()}componentDidUpdate(e){const{ignoreOutsideClick:t}=this.props;this.props.opened&&!e.opened&&(t||this.startOutsideClickListening(),requestAnimationFrame(this.updatePosition)),!this.props.opened&&e.opened&&this.stopOutsideClickListening()}render(){const{top:e,left:r,bottom:i,tipPosition:n,tipOffset:o}=this.state,{className:a,opened:l,disablePortal:s,disableAnimation:c}=this.props,d={position:"absolute",left:o};"bottom"===n?d.bottom=-8:d.top=-8;const u=R(a,"x-3deye-popover-body");let h=null;if(l){const o={zIndex:s?1:100000001,position:"absolute",top:e,bottom:i,left:r},a=t.createElement("div",{className:u,ref:this.popoverRef},this.props.children,t.createElement(or,{width:24,height:8,position:n,color:"white",style:d}));h=c?t.createElement("div",{style:o},a):t.createElement(nr,{from:n,style:o},a)}const m=t.cloneElement(this.props.target,{ref:this.targetRef});if(s)return t.createElement("div",{className:"x-3deye-popover",onMouseLeave:this.props.onMouseLeave},m,h);const p=l&&t.createElement(Le,null,h);return t.createElement(t.Fragment,null,m,p)}startOutsideClickListening(){document.addEventListener("mousedown",this.outsideClickListener,!0)}stopOutsideClickListening(){document.removeEventListener("mousedown",this.outsideClickListener,!0)}}const lr=ye({viewBox:"0 0 24 24",svg:t.createElement("path",{fill:"currentColor",d:"M21 17H24L20 21L16 17H19V3H21V17M8 16H11V13H8V16M13 5H12V3H10V5H6V3H4V5H3C1.89 5 1 5.89 1 7V18C1 19.11 1.89 20 3 20H13C14.11 20 15 19.11 15 18V7C15 5.89 14.11 5 13 5M3 18L3 11H13L13 18L3 18Z"})});lr.displayName="SortCalendarAsc";const sr=ye({viewBox:"0 0 24 24",svg:t.createElement("path",{fill:"currentColor",d:"M19 7H16L20 3L24 7H21V21H19V7M8 16H11V13H8V16M13 5H12V3H10V5H6V3H4V5H3C1.89 5 1 5.89 1 7V18C1 19.11 1.89 20 3 20H13C14.11 20 15 19.11 15 18V7C15 5.89 14.11 5 13 5M3 18L3 11H13L13 18L3 18Z"})});sr.displayName="SortCalendarDesc";const cr=m((({store:e})=>{const{date:r,sortDirection:i}=e,n=b((()=>({opened:!1,toggle(){this.opened=!this.opened},close(){this.opened=!1,e.applyFilters()},onDateChange(t){e.date=t},clear(){e.date=null,e.applyFilters()}}))),o=t.createElement("div",{style:{flex:1,display:"flex"}},t.createElement(Me,{className:"date-button",style:{flex:1,textAlign:"left"},onClick:n.toggle},r?ge(r,"MMM d, HH:mm"):"now"),"DESC"===i&&r?t.createElement(Me,{onClick:n.clear},t.createElement(Yt,{size:16})):null);return t.createElement("div",{className:"events-panel-datepicker"},t.createElement("div",{style:{position:"relative"}},t.createElement(ar,{target:o,opened:n.opened,onCloseRequest:n.close,disableAnimation:!0,className:"popover-datepicker"},t.createElement(ce,{selected:r||new Date,onChange:n.onDateChange,showTimeSelect:!0,dateFormat:"MMM d, HH:mm",timeFormat:"HH:mm",inline:!0}),t.createElement(Me,{onClick:n.close,className:"x-3deye-button--ok"},"Ok")),t.createElement(Me,{className:"x-3deye-button--icon events-panel-datepicker__sorting-button",onClick:e.toggleSorting},"ASC"===i?t.createElement(lr,null):t.createElement(sr,null))))}));cr.displayName="EventsPanelDatepicker";var dr,ur=(dr=8,{container:e=>({...e,padding:dr}),control:(e,t)=>({...e,borderRadius:8,backgroundColor:t.isFocused?"white":"rgba(0, 0, 0, 0.5)",border:"none",boxShadow:null,"&:hover":{borderColor:null}}),menu:e=>({...e,borderRadius:"0 0 4px 4px",marginTop:0,marginLeft:-dr,marginRight:dr}),option:e=>({...e,color:"black"}),multiValueRemove:e=>({...e,color:"black"})});const hr=ye({viewBox:"0 0 24 24",svg:t.createElement("g",null,t.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),t.createElement("path",{d:"M10.13 3.245a1.994 1.994 0 0 0-1.542.992l-5.491 9.53c-.55.954-.23 2.178.723 2.728l8.66 5c.953.55 2.174.216 2.724-.737l5.509-9.521c.335-.58.349-1.265.087-1.832L17.65 2.54z"}))});hr.displayName="LabelIcon";const mr=ye({viewBox:"0 0 24 24",svg:t.createElement("g",null,t.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),t.createElement("path",{d:"M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z"}))});mr.displayName="CameraIcon";const pr=ye({viewBox:"0 0 24 24",svg:t.createElement("path",{d:"M17,6h-2V3c0-0.55-0.45-1-1-1h-4C9.45,2,9,2.45,9,3v3H7C5.9,6,5,6.9,5,8v11c0,1.1,0.9,2,2,2c0,0.55,0.45,1,1,1 c0.55,0,1-0.45,1-1h6c0,0.55,0.45,1,1,1c0.55,0,1-0.45,1-1c1.1,0,2-0.9,2-2V8C19,6.9,18.1,6,17,6z M9.5,18H8V9h1.5V18z M12.75,18 h-1.5V9h1.5V18z M13.5,6h-3V3.5h3V6z M16,18h-1.5V9H16V18z"})});pr.displayName="LuggageIcon";const br=ye({viewBox:"0 0 24 24",svg:t.createElement(t.Fragment,null,t.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),t.createElement("path",{d:"M18.92 6.01C18.72 5.42 18.16 5 17.5 5h-11c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z"}))});br.displayName="CarIcon";const fr=ye({viewBox:"0 0 24 24",svg:t.createElement(t.Fragment,null,t.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),t.createElement("path",{d:"M20 21c-1.39 0-2.78-.47-4-1.32-2.44 1.71-5.56 1.71-8 0C6.78 20.53 5.39 21 4 21H2v2h2c1.38 0 2.74-.35 4-.99 2.52 1.29 5.48 1.29 8 0 1.26.65 2.62.99 4 .99h2v-2h-2zM3.95 19H4c1.6 0 3.02-.88 4-2 .98 1.12 2.4 2 4 2s3.02-.88 4-2c.98 1.12 2.4 2 4 2h.05l1.89-6.68c.08-.26.06-.54-.06-.78s-.34-.42-.6-.5L20 10.62V6c0-1.1-.9-2-2-2h-3V1H9v3H6c-1.1 0-2 .9-2 2v4.62l-1.29.42c-.26.08-.48.26-.6.5s-.15.52-.06.78L3.95 19zM6 6h12v3.97L12 8 6 9.97V6z"}))});fr.displayName="BoatIcon";const vr=ye({viewBox:"0 0 24 24",svg:t.createElement(t.Fragment,null,t.createElement("path",{d:"M11.74 13.36L14.14 7.71L13.06 5.5H10.5V4H14L14.73 5.5H21.75L20.75 9H16.44L17.11 10.37C17.69 10.13 18.33 10 19 10C21.76 10 24 12.24 24 15C24 17.76 21.76 20 19 20C16.24 20 14 17.76 14 15C14 13.45 14.71 12.06 15.82 11.15L15 9.5L12.25 16H9.9C9.44 18.28 7.42 20 5 20C2.24 20 0 17.76 0 15C0 12.24 2.24 10 5 10C7.59 10 9.72 11.97 10 14.5H10.58L8.3 9H7.5C7.09 9 6.75 8.66 6.75 8.25C6.75 7.84 7.09 7.5 7.5 7.5H10.25C10.66 7.5 11 7.84 11 8.25C11 8.66 10.66 9 10.25 9H9.97L11.74 13.36M5 11.5C3.07 11.5 1.5 13.07 1.5 15C1.5 16.93 3.07 18.5 5 18.5C6.59 18.5 7.93 17.45 8.36 16H4V14.5H8.47C8.22 12.8 6.76 11.5 5 11.5M19 11.5C18.57 11.5 18.15 11.58 17.77 11.72L19.7 15.68L18.35 16.34L16.5 12.55C15.88 13.18 15.5 14.05 15.5 15C15.5 16.93 17.07 18.5 19 18.5C20.93 18.5 22.5 16.93 22.5 15C22.5 13.07 20.93 11.5 19 11.5Z"}))});vr.displayName="BicycleIcon";const gr=ye({viewBox:"0 0 24 24",svg:t.createElement("g",null,t.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),t.createElement("path",{d:"M13.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM9.8 8.9L7 23h2.1l1.8-8 2.1 2v6h2v-7.5l-2.1-2 .6-3C14.8 12 16.8 13 19 13v-2c-1.9 0-3.5-1-4.3-2.4l-1-1.6c-.4-.6-1-1-1.7-1-.3 0-.5.1-.8.1L6 8.3V13h2V9.6l1.8-.7"}))});gr.displayName="DirectionsWalkIcon";const yr=ye({viewBox:"0 0 24 24",svg:t.createElement(t.Fragment,null,t.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),t.createElement("circle",{cx:"4.5",cy:"9.5",r:"2.5"}),t.createElement("circle",{cx:"9",cy:"5.5",r:"2.5"}),t.createElement("circle",{cx:"15",cy:"5.5",r:"2.5"}),t.createElement("circle",{cx:"19.5",cy:"9.5",r:"2.5"}),t.createElement("path",{d:"M17.34 14.86c-.87-1.02-1.6-1.89-2.48-2.91-.46-.54-1.05-1.08-1.75-1.32-.11-.04-.22-.07-.33-.09-.25-.04-.52-.04-.78-.04s-.53 0-.79.05c-.11.02-.22.05-.33.09-.7.24-1.28.78-1.75 1.32-.87 1.02-1.6 1.89-2.48 2.91-1.31 1.31-2.92 2.76-2.62 4.79.29 1.02 1.02 2.03 2.33 2.32.73.15 3.06-.44 5.54-.44h.18c2.48 0 4.81.58 5.54.44 1.31-.29 2.04-1.31 2.33-2.32.31-2.04-1.3-3.49-2.61-4.8z"}))});yr.displayName="PetsIcon";const wr=({data:e})=>{const r=16;return e.isEventType?"Luggage"===e.id?t.createElement(pr,{size:r}):"Car"===e.id?t.createElement(br,{size:r}):"Person"===e.id?t.createElement(gr,{size:r}):"Bicycle"===e.id?t.createElement(vr,{size:r}):"Boat"===e.id?t.createElement(fr,{size:r}):"Animal"===e.id?t.createElement(yr,{size:r}):t.createElement(hr,{size:r}):t.createElement(mr,{size:r})},Er=e=>{const{children:r,innerProps:i,...n}=e,{Option:o}=ue,{data:a}=e;if(!a.isEventType)return t.createElement(o,{...e});const l={...i,style:{display:"inline-flex",alignItems:"center",width:"auto"}};return t.createElement(o,{innerProps:l,...n},t.createElement(wr,{data:a}),t.createElement("div",{style:{marginLeft:4}},r))},Cr=e=>{const{children:r,innerProps:i,...n}=e,{MultiValueLabel:o}=ue,{data:a}=e,l={...i,style:{display:"flex",alignItems:"center"}};return t.createElement(o,{innerProps:l,...n},t.createElement(wr,{data:a}),t.createElement("div",{style:{marginLeft:4}},r))},Pr=ye({viewBox:"0 0 24 24",svg:t.createElement(t.Fragment,null,t.createElement("path",{d:"M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"}),t.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}))});Pr.displayName="FilterListIcon";const Or={...ur,multiValue:(e,{data:t})=>t.color?{...e,backgroundColor:t.color,color:"white"}:e,multiValueLabel:(e,{data:t})=>t.color?{...e,color:"white"}:e,multiValueRemove:(e,{data:t})=>t.color?{...e,color:"white",":hover":{backgroundColor:"rgba(255, 255, 255, 0.7)",color:t.color}}:e,option:(e,{data:t})=>t.color?{...e,color:t.color}:e},jr=e=>{const{children:r,...i}=e;return t.createElement(ue.Placeholder,{...i},t.createElement(Pr,{size:16,style:{position:"relative",top:4}})," ",r)},Tr=m((({store:e})=>{const{cameras:i,eventSchema:n}=r(me),o=l({opened:!1});if(!("filters"in e))return null;return t.createElement(de,{closeMenuOnSelect:!1,isMulti:!0,onChange:(t,r)=>{e.setFilters(t),"remove-value"!==r.action||o.current.opened||e.applyFilters()},onMenuOpen:()=>o.current.opened=!0,onMenuClose:()=>{o.current.opened=!1,e.applyFilters()},getOptionLabel:e=>e.name,getOptionValue:e=>e.id,options:(()=>{if(!n)return[];const t=e.facesSelected?[]:n.foundObjectTypesForSelect;return i.loaded?[].concat(t,i.data.slice()):t})(),placeholder:ve.t("filter"),value:e.filters,components:{MultiValueLabel:Cr,Option:Er,Placeholder:jr},styles:Or})}));Tr.displayName="EventsPanelSelect";const xr=m((({store:e,onEventClick:r})=>{const{facesSelected:i,getFacesProbabilityTreshold:n,getProbabilityTreshold:o,setFacesProbabilityTreshold:a,setProbabilityTreshold:l,someAnalyticsFilterSelected:s,colors:c,toggleColor:d,clearColors:u,selectEvents:h,selectFaces:m}=e;return t.createElement(t.Fragment,null,t.createElement("div",{style:{color:"black",zIndex:3}},t.createElement(Tr,{store:e})),t.createElement(cr,{store:e}),s&&!i&&t.createElement(rr,{getter:i?n:o,setter:i?a:l}),!i&&s?t.createElement(er,{value:c,toggle:d,clear:u}):null,t.createElement("div",{style:{display:"flex",flex:1}},i?t.createElement(Zt,{key:"faces",minColumnWidth:800,hideCameraName:!1,store:e.facesLoader,onEventClick:r}):t.createElement(Zt,{key:"events",minColumnWidth:800,hideCameraName:!1,store:e.eventsLoader,onEventClick:r})),t.createElement(Kt,null,t.createElement(Me,{className:i?"button-unselected":"button-selected",onClick:h},"ALL"),t.createElement(Me,{className:i?"button-selected":"button-unselected",onClick:m},"Face recognition")))}));var Mr,Sr;function Lr(e,t=!1){const r=P(e);return new _((e=>{const i=r.observe_((({newValue:t})=>e.next(t)),t);return()=>i()}))}xr.displayName="EventsPanelContents",function(e){e[e.CONNECTING=0]="CONNECTING",e[e.CONNECTED=1]="CONNECTED",e[e.RECONNECTING=2]="RECONNECTING",e[e.DISCONNECTED=3]="DISCONNECTED"}(Mr||(Mr={})),function(e){e[e.Motion=0]="Motion",e[e.Tampering=1]="Tampering",e[e.PanTiltZoom=2]="PanTiltZoom",e[e.CrossLine=3]="CrossLine",e[e.Intrusion=4]="Intrusion",e[e.LicensePlate=5]="LicensePlate",e[e.FaceDetection=6]="FaceDetection",e[e.Audio=7]="Audio",e[e.Analytic=8]="Analytic",e[e.SpeedDetection=9]="SpeedDetection",e[e.PeopleCounter=10]="PeopleCounter",e[e.Temperature=11]="Temperature",e[e.PoS=12]="PoS",e[e.GPS=13]="GPS",e[e.DigitalInput=14]="DigitalInput",e[e.Normal=15]="Normal",e[e.Suspicious=16]="Suspicious",e[e.Loitering=17]="Loitering",e[e.Vandalism=18]="Vandalism",e[e.Trespass=19]="Trespass",e[e.Emergency=20]="Emergency",e[e.LifeInDanger=21]="LifeInDanger",e[e.ErroneousAlert=22]="ErroneousAlert",e[e.Misidentification=23]="Misidentification",e[e.Fire=24]="Fire",e[e.MedicalDuress=25]="MedicalDuress",e[e.HoldUp=26]="HoldUp",e[e.CheckIn=27]="CheckIn",e[e.CheckOut=28]="CheckOut",e[e.ClockIn=29]="ClockIn",e[e.ClockOut=30]="ClockOut",e[e.ParkingStart=31]="ParkingStart",e[e.ParkingEnd=32]="ParkingEnd",e[e.ParkingViolation=33]="ParkingViolation",e[e.GateAccess=34]="GateAccess",e[e.DoorAccess=35]="DoorAccess",e[e.TemperatureCheck=36]="TemperatureCheck",e[e.IDCheck=37]="IDCheck",e[e.PPECheck=38]="PPECheck",e[e.WelfareCheck=39]="WelfareCheck",e[e.Uncategorized=40]="Uncategorized",e[e.Unknown=999]="Unknown"}(Sr||(Sr={}));class Nr{constructor(){Object.defineProperty(this,"api",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"disposables",{enumerable:!0,configurable:!0,writable:!0,value:[]})}initWith(e){this.api=e,this.afterInit&&this.afterInit()}dispose(){this.disposables.forEach((e=>{e instanceof k?e.closed||e.unsubscribe():e()}))}}const Ir=new Set(["LicensePlate","FaceDetection","Analytic","SpeedDetection","Temperature","PoS","GPS","DigitalInput"]);class Dr{constructor(e){if(Object.defineProperty(this,"cameraId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"raw",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"thumbnailUrl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"detectedObjects",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"faces",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"instant",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),v(this,{id:P,startTime:P,endTime:P,acknowledged:P,isLive:P,raw:g.ref}),this.raw=e,this.type=e.eventType,this.cameraId=e.sensorId,("Analytic"===this.type||"FaceDetection"===this.type)&&e.data)try{const t=JSON.parse(e.data);t.FoundObjects&&(this.type="Analytic",this.detectedObjects=t.FoundObjects),t.Faces&&(this.type="FaceDetection",this.faces=t.Faces),this.thumbnailUrl=t.ThumbnailUrl}catch{console.warn("invalid data",e.data),this.type="Motion"}this.instant=Ir.has(this.type),this.detectedObjects||(this.detectedObjects=[])}get id(){return this.raw.id}get startTime(){return new Date(this.raw.startTime)}get endTime(){return new Date(this.raw.endTime)}get isLive(){return!Ir.has(this.type)&&+this.startTime==+this.endTime}get acknowledged(){return"sensorId"in this.raw&&!!this.raw.ackEventType}}class kr extends Nr{constructor(e){super(),Object.defineProperty(this,"eventsStore",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"pendingData",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"liveUpdateMode",{enumerable:!0,configurable:!0,writable:!0,value:"auto"}),Object.defineProperty(this,"updateTrigger",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"colors",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"disposables",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"pageInfo",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"loading",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"loadMoreTrigger",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"retryTrigger",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"error",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"sortDirection",{enumerable:!0,configurable:!0,writable:!0,value:"DESC"}),Object.defineProperty(this,"probabilityThreshold",{enumerable:!0,configurable:!0,writable:!0,value:.5}),Object.defineProperty(this,"from",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"to",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cameras",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"detectedObjects",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"polygons",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"eventTypes",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"loadingInited",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"flushUpdates",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.data=[...this.pendingData,...this.data],this.pendingData=[]}}),Object.defineProperty(this,"load",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.loadingInited||(this.loadingInited=!0,this.initDataLoading(),this.initLiveUpdates())}}),Object.defineProperty(this,"reload",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.error&&(this.retryTrigger=+!this.retryTrigger)}}),Object.defineProperty(this,"loadMore",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.error=null,this.loadMoreTrigger=+!this.loadMoreTrigger}}),Object.defineProperty(this,"requestData",{enumerable:!0,configurable:!0,writable:!0,value:({sortDirection:e,from:t,to:r,filter:i,pageInfo:n,cameras:o,polygons:a})=>this.api.cameras.GetSensorEventsPage({sensorIds:o,sensorType:"camera",sensorEventTypes:this.eventTypes,startTime:t,endTime:r,isDescending:"DESC"===e,rowsLimit:10,pageToken:null==n?void 0:n.nextPageToken},i,a).pipe(q((e=>e.success?F({events:e.resultItems,pageInfo:e.pageInfo}):H(e.error))),Z((e=>(console.error(e),this.error=e,F({events:[],pageInfo:null})))))}),v(this,{data:g.ref,cameras:g.struct,detectedObjects:g.struct,from:g,to:g,sortDirection:g,probabilityThreshold:g,pendingData:g.ref,liveUpdateMode:g,updateTrigger:g,colors:g.ref,flushUpdates:E,pageInfo:g.ref,isLive:P,loading:g,loadMoreTrigger:g,retryTrigger:g,error:g.ref,loadMore:E,filterJson:P})}get isLive(){return"DESC"==this.sortDirection&&!this.to}get totalCount(){return this.data.length}get filterJson(){if(1===this.eventTypes.length&&this.eventTypes[0]===Sr.FaceDetection)return null;const{probabilityThreshold:e}=this;if(null===e)return null;const t={And:[]};return this.detectedObjects.length&&t.And.push({Or:this.detectedObjects.map((e=>({Type:e})))}),this.colors.size&&t.And.push({Or:[...this.colors].map((e=>({ObjectColors:[e]})))}),t.And.push({Or:[{Probability:e}]}),JSON.stringify(t)}initDataLoading(){const e=Lr((()=>({from:this.from?+this.from:void 0,to:this.to?+this.to:void 0,sortDirection:this.sortDirection,filter:this.filterJson,cameraFilters:this.cameras,polygons:this.polygons})),!0);this.disposables.push(e.pipe(B((e=>Lr((()=>this.retryTrigger),!0).pipe(K(e)))),B((({from:e,to:t,sortDirection:r,filter:i,cameraFilters:n,polygons:o})=>(w((()=>{this.loading=!0,this.pageInfo=null,this.error=null,this.data=[]})),this.requestData({from:e?new Date(e):void 0,to:t?new Date(t):void 0,sortDirection:r,filter:i,cameras:n,pageInfo:this.pageInfo,polygons:o}))))).subscribe((({events:e,pageInfo:t})=>{w((()=>{var r,i,n;if(!t)return;const o=e.map(_r);this.isLive?this.data=this.uniquelyConcat(this.eventsStore.getEvents({cameraIds:this.cameras,eventTypes:6===this.eventTypes[0]?["FaceDetection"]:[],from:null!==(i=null===(r=o[0])||void 0===r?void 0:r.startTime)&&void 0!==i?i:he(new Date,1),to:null,colors:this.colors.size?this.colors:void 0,detectedObjectTypes:this.detectedObjects,probability:null!==(n=this.probabilityThreshold)&&void 0!==n?n:void 0}),o):this.data=o,this.eventsStore.add(o),this.pageInfo=t,this.loading=!1}))}))),this.disposables.push(e.pipe(B((({from:e,to:t,sortDirection:r,filter:i,cameraFilters:n})=>Lr((()=>this.loadMoreTrigger)).pipe(Y((()=>this.requestData({from:e?new Date(e):void 0,to:t?new Date(t):void 0,sortDirection:r,filter:i,cameras:n,pageInfo:this.pageInfo,polygons:this.polygons}))))))).subscribe((({events:e,pageInfo:t})=>{if(!t)return;const r=e.map(_r);this.eventsStore.add(r),w((()=>{this.data=this.data.concat(r),this.pageInfo=t,this.loading=!1}))})))}initLiveUpdates(){this.disposables.push(Lr((()=>({liveUpdateMode:this.liveUpdateMode,isLive:this.isLive})),!0).pipe(B((({liveUpdateMode:e,isLive:t})=>t&&"auto"===e?Lr((()=>this.eventsStore.recentAdditions)):z))).subscribe((e=>{if(this.loading)return;if(!this.pageInfo&&this.error)return;const t=this.filter(e.map((e=>this.eventsStore.eventsById.get(e))));t.length&&w((()=>{this.data=[...t,...this.data]}))}))),this.disposables.push(Lr((()=>({liveUpdateMode:this.liveUpdateMode,isLive:this.isLive})),!0).pipe(B((({liveUpdateMode:e,isLive:t})=>t&&"manual"===e?Lr((()=>this.eventsStore.recentAdditions)):(this.pendingData&&w((()=>this.pendingData=[])),z)))).subscribe((e=>{if(!this.data.length)return;const t=this.filter(e.map((e=>this.eventsStore.eventsById.get(e))));t.length&&w((()=>{this.pendingData=[...t,...this.pendingData]}))})))}filter(e){let t=e;const{from:r,to:i}=this;return r&&(t=t.filter((e=>e.startTime>=r))),i&&(t=t.filter((e=>e.startTime<=i))),this.cameras.length&&(t=t.filter((e=>this.cameras.includes(e.cameraId)))),this.eventTypes.length&&6===this.eventTypes[0]&&(t=t.filter((e=>"FaceDetection"===e.type))),this.detectedObjects.length&&(t=t.filter((e=>e.detectedObjects.some((e=>{const{probabilityThreshold:t}=this;return!(null!==t&&e.Probability<t)&&(this.colors.size?this.detectedObjects.includes(e.Type)&&e.Colors.some((e=>this.colors.has(e.Color))):this.detectedObjects.includes(e.Type))}))))),t}uniquelyConcat(e,t){if(!e.length)return t.concat();if(!t.length)return e.concat();const r=e=>[e.id,e];return Array.from(new Map([...e.map(r),...t.map(r)]).values())}dispose(){this.disposables.forEach((e=>{e instanceof k?e.closed||e.unsubscribe():e()}))}}function _r(e){return new Dr(e)}class Fr extends Nr{constructor(e){super(),Object.defineProperty(this,"cameraFilters",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"objectFilters",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"date",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"sortDirection",{enumerable:!0,configurable:!0,writable:!0,value:"DESC"}),Object.defineProperty(this,"probabilityThreshold",{enumerable:!0,configurable:!0,writable:!0,value:.5}),Object.defineProperty(this,"facesProbabilityThreshold",{enumerable:!0,configurable:!0,writable:!0,value:.7}),Object.defineProperty(this,"facesSelected",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"colors",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"disposables",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"eventsLoader",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"facesLoader",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"selectEvents",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.facesSelected=!1}}),Object.defineProperty(this,"selectFaces",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.facesSelected=!0}}),Object.defineProperty(this,"toggleSorting",{enumerable:!0,configurable:!0,writable:!0,value:()=>{"ASC"===this.sortDirection?(this.sortDirection="DESC",this.date=null):(this.sortDirection="ASC",null===this.date&&(this.date=M(S(new Date),1))),this.applyFilters()}}),Object.defineProperty(this,"applyFilters",{enumerable:!0,configurable:!0,writable:!0,value:()=>{var e;this.eventsLoader.cameras=this.cameraFilters.map((e=>e.id)),this.facesLoader.cameras=this.eventsLoader.cameras,this.eventsLoader.detectedObjects=this.objectFilters.map((e=>e.id)),this.eventsLoader.colors=this.colors,this.eventsLoader.probabilityThreshold=this.objectFilters.length?this.probabilityThreshold:null,this.facesLoader.probabilityThreshold=this.facesProbabilityThreshold,"ASC"===this.sortDirection?(this.eventsLoader.sortDirection="ASC",this.eventsLoader.to=void 0,this.eventsLoader.from=this.date):(this.eventsLoader.sortDirection="DESC",this.eventsLoader.from=void 0,this.eventsLoader.to=null!==(e=this.date)&&void 0!==e?e:void 0),this.facesLoader.sortDirection=this.eventsLoader.sortDirection,this.facesLoader.from=this.eventsLoader.from,this.facesLoader.to=this.eventsLoader.to}}),Object.defineProperty(this,"getProbabilityTreshold",{enumerable:!0,configurable:!0,writable:!0,value:()=>this.probabilityThreshold}),Object.defineProperty(this,"setProbabilityTreshold",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.probabilityThreshold=e,this.applyFilters()}}),Object.defineProperty(this,"getFacesProbabilityTreshold",{enumerable:!0,configurable:!0,writable:!0,value:()=>this.facesProbabilityThreshold}),Object.defineProperty(this,"setFacesProbabilityTreshold",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.facesProbabilityThreshold=e,this.applyFilters()}}),v(this,{cameraFilters:g.ref,objectFilters:g.ref,date:g,sortDirection:g,probabilityThreshold:g,setProbabilityTreshold:E,facesProbabilityThreshold:g,setFacesProbabilityTreshold:E,facesSelected:g,colors:g.ref,someAnalyticsFilterSelected:P,filters:P,setFilters:E,selectEvents:E,selectFaces:E,load:E,toggleColor:E.bound,clearColors:E.bound,applyFilters:E,toggleSorting:E}),this.eventsLoader=new kr(e),this.eventsLoader.loading=!0,this.eventsLoader.probabilityThreshold=null,this.facesLoader=new kr(e),this.facesLoader.eventTypes=[Sr.FaceDetection],this.facesLoader.loading=!0}get someAnalyticsFilterSelected(){return!!this.objectFilters.length}get filters(){return this.facesSelected?this.cameraFilters:this.objectFilters.concat(this.cameraFilters)}load(){this.eventsLoader.load()}TEMP_FIX_loadFaces(){this.facesLoader.load()}setFilters(e){this.cameraFilters=e?e.filter((e=>!("isEventType"in e))):[],this.facesSelected||(this.objectFilters=e?e.filter((e=>"isEventType"in e)):[])}toggleColor(e){const t=new Set(this.colors);this.colors.has(e)?t.delete(e):t.add(e),this.colors=t,this.applyFilters()}clearColors(){this.colors=new Set,this.applyFilters()}afterInit(){this.eventsLoader.initWith(this.api),this.facesLoader.initWith(this.api)}dispose(){this.disposables.forEach((e=>{e instanceof k?e.closed||e.unsubscribe():e()})),this.eventsLoader.dispose()}}const Hr=({onEventClick:e})=>{var n;const a=null!==(n=r(u))&&void 0!==n?n:h,[l,s]=o();return i((()=>{null==l||l.dispose();const e=new Fr(a.events);return e.initWith(a.api),e.load(),s(e),O((()=>e.facesSelected),(()=>{e.TEMP_FIX_loadFaces()}))}),[a]),t.createElement(me.Provider,{value:a},l?t.createElement(xr,{store:l,onEventClick:e}):null)};Hr.displayName="EventList";export{Hr as default};
1
+ import{format as e,subHours as t,startOfHour as r,isSameYear as n,isSameDay as i}from"date-fns/esm";import a from"i18next";import{from as l,Observable as o,Subscription as s,of as c,throwError as d,EMPTY as u}from"rxjs";import*as m from"react";import h,{useContext as p,useRef as f,createContext as b,useState as v,Children as g,useEffect as y,useLayoutEffect as E}from"react";import{AppContext as w,app as C}from"@3deye-toolkit/core";import{computed as x,makeObservable as O,observable as N,action as P,runInAction as j,reaction as L}from"mobx";import{subHours as T}from"date-fns";import{mergeMap as I,catchError as M,switchMap as _,mapTo as k,concatMap as S}from"rxjs/operators";import D,{components as F}from"react-select";import H from"clsx";import{observer as z,useLocalObservable as A,Observer as R}from"mobx-react-lite";import{useSpring as $,animated as V}from"@react-spring/web";import B from"react-dom";import U from"react-datepicker";import W from"react-ink";import G from"@reach/tooltip";import{MDCSlider as q}from"@material/slider";import Z from"resize-observer-polyfill";import J from"react-virtualized-auto-sizer";import Y from"react-window-infinite-loader";import{VariableSizeGrid as X}from"react-window";import Q from"@seznam/compose-react-refs";import*as K from"@sentry/browser";var ee={filter:"Filter",noEventsFound:"no events found",showEvents_one:"show {{count}} new event",showEvents_other:"show {{count}} new events"};const te=new Map,re={detection:{order:["querystring","htmlTag","navigator"],lookupQuerystring:"lang"},fallbackLng:"en",load:"all",interpolation:{escapeValue:!1}},ne=a.createInstance();function ie(t,r){const n=te.get(ne.language);return e(t,r,{locale:n})}const ae=h.createContext(null);var le,oe;function se(e,t=!1){const r=x(e);return new o((e=>{const n=r.observe_((({newValue:t})=>e.next(t)),t);return()=>n()}))}!function(e){e[e.CONNECTING=0]="CONNECTING",e[e.CONNECTED=1]="CONNECTED",e[e.RECONNECTING=2]="RECONNECTING",e[e.DISCONNECTED=3]="DISCONNECTED"}(le||(le={})),function(e){e[e.Motion=0]="Motion",e[e.Tampering=1]="Tampering",e[e.PanTiltZoom=2]="PanTiltZoom",e[e.CrossLine=3]="CrossLine",e[e.Intrusion=4]="Intrusion",e[e.LicensePlate=5]="LicensePlate",e[e.FaceDetection=6]="FaceDetection",e[e.Audio=7]="Audio",e[e.Analytic=8]="Analytic",e[e.SpeedDetection=9]="SpeedDetection",e[e.PeopleCounter=10]="PeopleCounter",e[e.Temperature=11]="Temperature",e[e.PoS=12]="PoS",e[e.GPS=13]="GPS",e[e.DigitalInput=14]="DigitalInput",e[e.Normal=15]="Normal",e[e.Suspicious=16]="Suspicious",e[e.Loitering=17]="Loitering",e[e.Vandalism=18]="Vandalism",e[e.Trespass=19]="Trespass",e[e.Emergency=20]="Emergency",e[e.LifeInDanger=21]="LifeInDanger",e[e.ErroneousAlert=22]="ErroneousAlert",e[e.Misidentification=23]="Misidentification",e[e.Fire=24]="Fire",e[e.MedicalDuress=25]="MedicalDuress",e[e.HoldUp=26]="HoldUp",e[e.CheckIn=27]="CheckIn",e[e.CheckOut=28]="CheckOut",e[e.ClockIn=29]="ClockIn",e[e.ClockOut=30]="ClockOut",e[e.ParkingStart=31]="ParkingStart",e[e.ParkingEnd=32]="ParkingEnd",e[e.ParkingViolation=33]="ParkingViolation",e[e.GateAccess=34]="GateAccess",e[e.DoorAccess=35]="DoorAccess",e[e.TemperatureCheck=36]="TemperatureCheck",e[e.IDCheck=37]="IDCheck",e[e.PPECheck=38]="PPECheck",e[e.WelfareCheck=39]="WelfareCheck",e[e.Uncategorized=40]="Uncategorized",e[e.Unknown=999]="Unknown"}(oe||(oe={}));class ce{constructor(){Object.defineProperty(this,"api",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"disposables",{enumerable:!0,configurable:!0,writable:!0,value:[]})}initWith(e){this.api=e,this.afterInit&&this.afterInit()}dispose(){this.disposables.forEach((e=>{e instanceof s?e.closed||e.unsubscribe():e()}))}}const de=new Set(["LicensePlate","FaceDetection","Analytic","SpeedDetection","Temperature","PoS","GPS","DigitalInput"]);class ue{constructor(e){if(Object.defineProperty(this,"cameraId",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"raw",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"thumbnailUrl",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"detectedObjects",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"faces",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"instant",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),O(this,{id:x,startTime:x,endTime:x,acknowledged:x,isLive:x,raw:N.ref}),this.raw=e,this.type=e.eventType,this.cameraId=e.sensorId,("Analytic"===this.type||"FaceDetection"===this.type)&&e.data)try{const t=JSON.parse(e.data);t.FoundObjects&&(this.type="Analytic",this.detectedObjects=t.FoundObjects),t.Faces&&(this.type="FaceDetection",this.faces=t.Faces),this.thumbnailUrl=t.ThumbnailUrl}catch{console.warn("invalid data",e.data),this.type="Motion"}this.instant=de.has(this.type),this.detectedObjects||(this.detectedObjects=[])}get id(){return this.raw.id}get startTime(){return new Date(this.raw.startTime)}get endTime(){return new Date(this.raw.endTime)}get isLive(){return!de.has(this.type)&&+this.startTime==+this.endTime}get acknowledged(){return"sensorId"in this.raw&&!!this.raw.ackEventType}}class me extends ce{constructor(e){super(),Object.defineProperty(this,"eventsStore",{enumerable:!0,configurable:!0,writable:!0,value:e}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"pendingData",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"liveUpdateMode",{enumerable:!0,configurable:!0,writable:!0,value:"auto"}),Object.defineProperty(this,"updateTrigger",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"colors",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"disposables",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"pageInfo",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"loading",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"loadMoreTrigger",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"retryTrigger",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"error",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"sortDirection",{enumerable:!0,configurable:!0,writable:!0,value:"DESC"}),Object.defineProperty(this,"probabilityThreshold",{enumerable:!0,configurable:!0,writable:!0,value:.5}),Object.defineProperty(this,"from",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"to",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cameras",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"detectedObjects",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"polygons",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"eventTypes",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"loadingInited",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"flushUpdates",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.data=[...this.pendingData,...this.data],this.pendingData=[]}}),Object.defineProperty(this,"setLiveUpdateMode",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.liveUpdateMode=e}}),Object.defineProperty(this,"load",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.loadingInited||(this.loadingInited=!0,this.initDataLoading(),this.initLiveUpdates())}}),Object.defineProperty(this,"reload",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.error&&(this.retryTrigger=+!this.retryTrigger)}}),Object.defineProperty(this,"loadMore",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.error=null,this.loadMoreTrigger=+!this.loadMoreTrigger}}),Object.defineProperty(this,"requestData",{enumerable:!0,configurable:!0,writable:!0,value:({sortDirection:e,from:t,to:r,filter:n,pageInfo:i,cameras:a,polygons:l})=>this.api.cameras.GetSensorEventsPage({sensorIds:a,sensorType:"camera",sensorEventTypes:this.eventTypes,startTime:t,endTime:r,isDescending:"DESC"===e,rowsLimit:10,pageToken:null==i?void 0:i.nextPageToken},n,l).pipe(I((e=>e.success?c({events:e.resultItems,pageInfo:e.pageInfo}):d((()=>e.error)))),M((e=>(console.error(e),this.error=e,c({events:[],pageInfo:null})))))}),O(this,{data:N.ref,cameras:N.struct,detectedObjects:N.struct,from:N,to:N,sortDirection:N,probabilityThreshold:N,pendingData:N.ref,liveUpdateMode:N,setLiveUpdateMode:P,updateTrigger:N,colors:N.ref,flushUpdates:P,pageInfo:N.ref,isLive:x,loading:N,loadMoreTrigger:N,retryTrigger:N,error:N.ref,loadMore:P,filterJson:x})}get isLive(){return"DESC"==this.sortDirection&&!this.to}get totalCount(){return this.data.length}get filterJson(){if(1===this.eventTypes.length&&this.eventTypes[0]===oe.FaceDetection)return null;const{probabilityThreshold:e}=this;if(null===e)return null;const t={And:[]};return this.detectedObjects.length&&t.And.push({Or:this.detectedObjects.map((e=>({Type:e})))}),this.colors.size&&t.And.push({Or:[...this.colors].map((e=>({ObjectColors:[e]})))}),t.And.push({Or:[{Probability:e}]}),JSON.stringify(t)}initDataLoading(){const e=se((()=>({from:this.from?+this.from:void 0,to:this.to?+this.to:void 0,sortDirection:this.sortDirection,filter:this.filterJson,cameraFilters:this.cameras,polygons:this.polygons})),!0);this.disposables.push(e.pipe(_((e=>se((()=>this.retryTrigger),!0).pipe(k(e)))),_((({from:e,to:t,sortDirection:r,filter:n,cameraFilters:i,polygons:a})=>(j((()=>{this.loading=!0,this.pageInfo=null,this.error=null,this.data=[],this.pendingData=[]})),this.requestData({from:e?new Date(e):void 0,to:t?new Date(t):void 0,sortDirection:r,filter:n,cameras:i,pageInfo:this.pageInfo,polygons:a}))))).subscribe((({events:e,pageInfo:t})=>{j((()=>{var r,n,i;if(!t)return;const a=e.map(he);this.isLive?this.data=this.uniquelyConcat(this.eventsStore.getEvents({cameraIds:this.cameras,eventTypes:this.eventTypes.map((e=>oe[e])),from:null!==(n=null===(r=a[0])||void 0===r?void 0:r.startTime)&&void 0!==n?n:T(new Date,1),to:null,colors:this.colors.size?this.colors:void 0,detectedObjectTypes:this.detectedObjects,probability:null!==(i=this.probabilityThreshold)&&void 0!==i?i:void 0}),a):this.data=a,this.eventsStore.add(a),this.pageInfo=t,this.loading=!1}))}))),this.disposables.push(e.pipe(_((({from:e,to:t,sortDirection:r,filter:n,cameraFilters:i})=>se((()=>this.loadMoreTrigger)).pipe(S((()=>this.requestData({from:e?new Date(e):void 0,to:t?new Date(t):void 0,sortDirection:r,filter:n,cameras:i,pageInfo:this.pageInfo,polygons:this.polygons}))))))).subscribe((({events:e,pageInfo:t})=>{if(!t)return;const r=e.map(he);this.eventsStore.add(r),j((()=>{this.data=this.data.concat(r),this.pageInfo=t,this.loading=!1}))})))}initLiveUpdates(){this.disposables.push(se((()=>({liveUpdateMode:this.liveUpdateMode,isLive:this.isLive})),!0).pipe(_((({liveUpdateMode:e,isLive:t})=>t&&"auto"===e?se((()=>this.eventsStore.recentAdditions)):u))).subscribe((e=>{if(this.loading)return;if(!this.pageInfo&&this.error)return;const t=this.filter(e.map((e=>this.eventsStore.eventsById.get(e))));t.length&&j((()=>{this.data=[...t,...this.data]}))}))),this.disposables.push(se((()=>({liveUpdateMode:this.liveUpdateMode,isLive:this.isLive})),!0).pipe(_((({liveUpdateMode:e,isLive:t})=>t&&"manual"===e?se((()=>this.eventsStore.recentAdditions)):(this.pendingData&&j((()=>this.pendingData=[])),u)))).subscribe((e=>{if(!this.data.length)return;const t=this.filter(e.map((e=>this.eventsStore.eventsById.get(e))));t.length&&j((()=>{this.pendingData=[...t,...this.pendingData]}))})))}filter(e){let t=e;const{from:r,to:n}=this;if(r&&(t=t.filter((e=>e.startTime>=r))),n&&(t=t.filter((e=>e.startTime<=n))),this.cameras.length&&(t=t.filter((e=>this.cameras.includes(e.cameraId)))),this.eventTypes.length){const e=this.eventTypes.map((e=>oe[e]));t=t.filter((t=>e.includes(t.type)))}return this.detectedObjects.length&&(t=t.filter((e=>e.detectedObjects.some((e=>{var t;const{probabilityThreshold:r}=this;return!(null!==r&&e.Probability<r)&&(this.colors.size?this.detectedObjects.includes(e.Type)&&(null===(t=e.Colors)||void 0===t?void 0:t.some((e=>this.colors.has(e.Color)))):this.detectedObjects.includes(e.Type))}))))),t}uniquelyConcat(e,t){if(!e.length)return t.concat();if(!t.length)return e.concat();const r=e=>[e.id,e];return Array.from(new Map([...e.map(r),...t.map(r)]).values())}dispose(){this.disposables.forEach((e=>{e instanceof s?e.closed||e.unsubscribe():e()}))}}function he(e){return new ue(e)}const pe={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},fe={50:"#e0f7fa",100:"#b2ebf2",200:"#80deea",300:"#4dd0e1",400:"#26c6da",500:"#00bcd4",600:"#00acc1",700:"#0097a7",800:"#00838f",900:"#006064",A100:"#84ffff",A200:"#18ffff",A400:"#00e5ff",A700:"#00b8d4"},be={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},ve={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"},ge={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},ye={50:"#fffde7",100:"#fff9c4",200:"#fff59d",300:"#fff176",400:"#ffee58",500:"#ffeb3b",600:"#fdd835",700:"#fbc02d",800:"#f9a825",900:"#f57f17",A100:"#ffff8d",A200:"#ffff00",A400:"#ffea00",A700:"#ffd600"};class Ee extends ce{constructor(e){super(),Object.defineProperty(this,"cameraFilters",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"objectFilters",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"date",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"sortDirection",{enumerable:!0,configurable:!0,writable:!0,value:"DESC"}),Object.defineProperty(this,"probabilityThreshold",{enumerable:!0,configurable:!0,writable:!0,value:.5}),Object.defineProperty(this,"facesProbabilityThreshold",{enumerable:!0,configurable:!0,writable:!0,value:.7}),Object.defineProperty(this,"colors",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"disposables",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"eventsLoader",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"toggleSorting",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.sortDirection="ASC"===this.sortDirection?"DESC":"ASC",null===this.date&&(this.date=t(r(new Date),1))}}),Object.defineProperty(this,"applyFilters",{enumerable:!0,configurable:!0,writable:!0,value:()=>{var e;this.eventsLoader.cameras=this.cameraFilters.map((e=>e.id)),this.eventsLoader.detectedObjects=this.objectFilters.map((e=>e.id)),this.eventsLoader.colors=this.colors,this.eventsLoader.probabilityThreshold=this.objectFilters.length?this.probabilityThreshold:null,"ASC"===this.sortDirection?(this.eventsLoader.sortDirection="ASC",this.eventsLoader.to=void 0,this.eventsLoader.from=this.date):(this.eventsLoader.sortDirection="DESC",this.eventsLoader.from=void 0,this.eventsLoader.to=null!==(e=this.date)&&void 0!==e?e:void 0)}}),Object.defineProperty(this,"getProbabilityTreshold",{enumerable:!0,configurable:!0,writable:!0,value:()=>this.probabilityThreshold}),Object.defineProperty(this,"setProbabilityTreshold",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.probabilityThreshold=e,this.applyFilters()}}),O(this,{cameraFilters:N.ref,objectFilters:N.ref,date:N,sortDirection:N,probabilityThreshold:N,setProbabilityTreshold:P,facesProbabilityThreshold:N,colors:N.ref,someAnalyticsFilterSelected:x,filters:x,setFilters:P,load:P,toggleColor:P.bound,clearColors:P.bound,applyFilters:P,toggleSorting:P}),this.eventsLoader=new me(e),this.eventsLoader.loading=!0,this.eventsLoader.probabilityThreshold=null}get someAnalyticsFilterSelected(){return!!this.objectFilters.length}get filters(){return this.objectFilters.concat(this.cameraFilters)}load(){this.eventsLoader.load()}setFilters(e){this.cameraFilters=e?e.filter((e=>!("type"in e))):[],this.objectFilters=e?e.filter((e=>"type"in e)):[]}toggleColor(e){const t=new Set(this.colors);this.colors.has(e)?t.delete(e):t.add(e),this.colors=t,this.applyFilters()}clearColors(){this.colors=new Set,this.applyFilters()}afterInit(){this.eventsLoader.initWith(this.api)}dispose(){this.disposables.forEach((e=>{e instanceof s?e.closed||e.unsubscribe():e()})),this.eventsLoader.dispose()}}var we,Ce=(we=8,{container:e=>({...e,padding:we}),control:(e,t)=>({...e,borderRadius:8,backgroundColor:t.isFocused?"white":"rgba(0, 0, 0, 0.5)",border:"none",boxShadow:null,"&:hover":{borderColor:null}}),menu:e=>({...e,width:`calc(100% - ${2*we}px)`,marginTop:we?0:e.marginTop}),option:e=>({...e,color:"black"}),multiValueRemove:e=>({...e,color:"black"}),placeholder:(e,t)=>({...e,color:t.isFocused?e.color:"hsl(0, 0%, 70%)"})});function xe(e){return t=>{const{size:r=24,color:n="currentColor",className:i,...a}=t,l=e.viewBox||"0 0 24 24",o=e.svg;return h.createElement("svg",{preserveAspectRatio:"xMinYMin",className:H("icon",i),width:r,fill:n,viewBox:l,...a},o)}}const Oe=xe({viewBox:"0 0 24 24",svg:h.createElement("g",null,h.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),h.createElement("path",{d:"M10.13 3.245a1.994 1.994 0 0 0-1.542.992l-5.491 9.53c-.55.954-.23 2.178.723 2.728l8.66 5c.953.55 2.174.216 2.724-.737l5.509-9.521c.335-.58.349-1.265.087-1.832L17.65 2.54z"}))});Oe.displayName="LabelIcon";const Ne=xe({viewBox:"0 0 24 24",svg:h.createElement("g",null,h.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),h.createElement("path",{d:"M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z"}))});Ne.displayName="CameraIcon";const Pe=xe({viewBox:"0 0 24 24",svg:h.createElement("path",{d:"M17,6h-2V3c0-0.55-0.45-1-1-1h-4C9.45,2,9,2.45,9,3v3H7C5.9,6,5,6.9,5,8v11c0,1.1,0.9,2,2,2c0,0.55,0.45,1,1,1 c0.55,0,1-0.45,1-1h6c0,0.55,0.45,1,1,1c0.55,0,1-0.45,1-1c1.1,0,2-0.9,2-2V8C19,6.9,18.1,6,17,6z M9.5,18H8V9h1.5V18z M12.75,18 h-1.5V9h1.5V18z M13.5,6h-3V3.5h3V6z M16,18h-1.5V9H16V18z"})});Pe.displayName="LuggageIcon";const je=xe({viewBox:"0 0 24 24",svg:h.createElement(h.Fragment,null,h.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),h.createElement("path",{d:"M18.92 6.01C18.72 5.42 18.16 5 17.5 5h-11c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z"}))});je.displayName="CarIcon";const Le=xe({viewBox:"0 0 24 24",svg:h.createElement(h.Fragment,null,h.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),h.createElement("path",{d:"M20 21c-1.39 0-2.78-.47-4-1.32-2.44 1.71-5.56 1.71-8 0C6.78 20.53 5.39 21 4 21H2v2h2c1.38 0 2.74-.35 4-.99 2.52 1.29 5.48 1.29 8 0 1.26.65 2.62.99 4 .99h2v-2h-2zM3.95 19H4c1.6 0 3.02-.88 4-2 .98 1.12 2.4 2 4 2s3.02-.88 4-2c.98 1.12 2.4 2 4 2h.05l1.89-6.68c.08-.26.06-.54-.06-.78s-.34-.42-.6-.5L20 10.62V6c0-1.1-.9-2-2-2h-3V1H9v3H6c-1.1 0-2 .9-2 2v4.62l-1.29.42c-.26.08-.48.26-.6.5s-.15.52-.06.78L3.95 19zM6 6h12v3.97L12 8 6 9.97V6z"}))});Le.displayName="BoatIcon";const Te=xe({viewBox:"0 0 24 24",svg:h.createElement(h.Fragment,null,h.createElement("path",{d:"M11.74 13.36L14.14 7.71L13.06 5.5H10.5V4H14L14.73 5.5H21.75L20.75 9H16.44L17.11 10.37C17.69 10.13 18.33 10 19 10C21.76 10 24 12.24 24 15C24 17.76 21.76 20 19 20C16.24 20 14 17.76 14 15C14 13.45 14.71 12.06 15.82 11.15L15 9.5L12.25 16H9.9C9.44 18.28 7.42 20 5 20C2.24 20 0 17.76 0 15C0 12.24 2.24 10 5 10C7.59 10 9.72 11.97 10 14.5H10.58L8.3 9H7.5C7.09 9 6.75 8.66 6.75 8.25C6.75 7.84 7.09 7.5 7.5 7.5H10.25C10.66 7.5 11 7.84 11 8.25C11 8.66 10.66 9 10.25 9H9.97L11.74 13.36M5 11.5C3.07 11.5 1.5 13.07 1.5 15C1.5 16.93 3.07 18.5 5 18.5C6.59 18.5 7.93 17.45 8.36 16H4V14.5H8.47C8.22 12.8 6.76 11.5 5 11.5M19 11.5C18.57 11.5 18.15 11.58 17.77 11.72L19.7 15.68L18.35 16.34L16.5 12.55C15.88 13.18 15.5 14.05 15.5 15C15.5 16.93 17.07 18.5 19 18.5C20.93 18.5 22.5 16.93 22.5 15C22.5 13.07 20.93 11.5 19 11.5Z"}))});Te.displayName="BicycleIcon";const Ie=xe({viewBox:"0 0 24 24",svg:h.createElement("g",null,h.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),h.createElement("path",{d:"M13.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM9.8 8.9L7 23h2.1l1.8-8 2.1 2v6h2v-7.5l-2.1-2 .6-3C14.8 12 16.8 13 19 13v-2c-1.9 0-3.5-1-4.3-2.4l-1-1.6c-.4-.6-1-1-1.7-1-.3 0-.5.1-.8.1L6 8.3V13h2V9.6l1.8-.7"}))});Ie.displayName="DirectionsWalkIcon";const Me=xe({viewBox:"0 0 24 24",svg:h.createElement(h.Fragment,null,h.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),h.createElement("circle",{cx:"4.5",cy:"9.5",r:"2.5"}),h.createElement("circle",{cx:"9",cy:"5.5",r:"2.5"}),h.createElement("circle",{cx:"15",cy:"5.5",r:"2.5"}),h.createElement("circle",{cx:"19.5",cy:"9.5",r:"2.5"}),h.createElement("path",{d:"M17.34 14.86c-.87-1.02-1.6-1.89-2.48-2.91-.46-.54-1.05-1.08-1.75-1.32-.11-.04-.22-.07-.33-.09-.25-.04-.52-.04-.78-.04s-.53 0-.79.05c-.11.02-.22.05-.33.09-.7.24-1.28.78-1.75 1.32-.87 1.02-1.6 1.89-2.48 2.91-1.31 1.31-2.92 2.76-2.62 4.79.29 1.02 1.02 2.03 2.33 2.32.73.15 3.06-.44 5.54-.44h.18c2.48 0 4.81.58 5.54.44 1.31-.29 2.04-1.31 2.33-2.32.31-2.04-1.3-3.49-2.61-4.8z"}))});Me.displayName="PetsIcon";const _e=xe({viewBox:"0 0 24 24",svg:h.createElement(h.Fragment,null,h.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),h.createElement("path",{d:"M4 4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2H5Zm0 2h4v2h8V6h4v12H4Z"}),h.createElement("path",{d:"M9.923 10 8.43 12.433 10 15h-.8L8 13.036 6.8 15H6l1.602-2.616L6.136 10h.8l1.093 1.781L9.123 10Z"}),h.createElement("path",{d:"m13.709 10-1.492 2.433L13.787 15h-.8l-1.2-1.964L10.585 15h-.8l1.603-2.616L9.923 10h.799l1.094 1.781L12.91 10Z"}),h.createElement("path",{d:"m17.709 10-1.492 2.433L17.787 15h-.8l-1.2-1.964L14.585 15h-.8l1.603-2.616L13.923 10h.799l1.094 1.781L16.91 10Z"}))});_e.displayName="LicensePlateIcon";const ke=({data:e})=>{const t=16;return"licensePlate"===e.type?null:"detectedObject"!==e.type?h.createElement(Ne,{size:t}):"Luggage"===e.id?h.createElement(Pe,{size:t}):"Car"===e.id?h.createElement(je,{size:t}):"Person"===e.id?h.createElement(Ie,{size:t}):"Bicycle"===e.id?h.createElement(Te,{size:t}):"Boat"===e.id?h.createElement(Le,{size:t}):"Animal"===e.id?h.createElement(Me,{size:t}):"LicensePlate"===e.id?h.createElement(_e,{size:t}):h.createElement(Oe,{size:t})},Se=e=>{const{children:t,innerProps:r,...n}=e,{Option:i}=F,{data:a}=e;if("licensePlate"===a.type)return h.createElement(i,{innerProps:r,...n},h.createElement("span",{style:{paddingLeft:8,paddingRight:8,borderRadius:4,border:"1px solid black"}},t));if("detectedObject"===a.type){const e={display:"inline-flex",alignItems:"center",width:"auto"},l={...r,style:e};return h.createElement(i,{innerProps:l,...n},h.createElement(ke,{data:a}),h.createElement("div",{style:{marginLeft:4}},t))}return h.createElement(i,{...e})},De=e=>{const{children:t,innerProps:r,...n}=e,{MultiValueLabel:i}=F,{data:a}=e,l={...r,style:{display:"flex",alignItems:"center"}};return h.createElement(i,{innerProps:l,...n},h.createElement(ke,{data:a}),h.createElement("div",{style:{marginLeft:4}},t))},Fe=xe({viewBox:"0 0 24 24",svg:h.createElement(h.Fragment,null,h.createElement("path",{d:"M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z"}),h.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}))});Fe.displayName="FilterListIcon";const He={...Ce,multiValue:(e,{data:t})=>"color"in t?{...e,backgroundColor:t.color,color:"white"}:e,multiValueLabel:(e,{data:t})=>"color"in t?{...e,color:"white"}:e,multiValueRemove:(e,{data:t})=>"color"in t?{...e,color:"white",":hover":{backgroundColor:"rgba(255, 255, 255, 0.7)",color:t.color}}:{...e,color:"hsl(0, 0%, 20%)"},option:(e,{data:t,isFocused:r})=>"color"in t?"type"in t&&"licensePlate"===t.type?{...e,color:t.color,backgroundColor:r?fe[50]:"transparent",":active":{...e[":active"],backgroundColor:fe[100]}}:{...e,color:t.color}:{...e,color:"black"}},ze=e=>{const{children:t,...r}=e;return h.createElement(F.Placeholder,{...r},h.createElement(Fe,{size:16,style:{position:"relative",top:4}})," ",t)},Ae=z((({addionalFiltersEnabled:e,store:t})=>{const{cameras:r,eventSchema:n}=p(ae),i=f({opened:!1});return h.createElement(D,{closeMenuOnSelect:!1,isMulti:!0,onChange:(e,r)=>{t.setFilters(e),"remove-value"!==r.action||i.current.opened||t.applyFilters()},onMenuOpen:()=>i.current.opened=!0,onMenuClose:()=>{i.current.opened=!1,t.applyFilters()},getOptionLabel:e=>e.name,getOptionValue:e=>e.id,options:(()=>{if(!n)return[];const t=e?n.foundObjectTypesForSelect:[];return r.loaded?[].concat(t,r.data.slice()):t})(),placeholder:ne.t("filter"),value:t.filters,components:{MultiValueLabel:De,Option:Se,Placeholder:ze},styles:He})}));Ae.displayName="EventsPanelSelect";const Re=e=>`scale(${e})`,$e=({children:e,from:t,style:r})=>{const n=$({opacity:1,from:{opacity:0},config:{tension:300}});return m.createElement(V.div,{style:{...r,...n,transform:n.opacity.to(Re),transformOrigin:`${t||"bottom"} center`,width:"max-content"}},e)},Ve=document.body;class Be extends h.Component{constructor(e){super(e),Object.defineProperty(this,"el",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.el=document.createElement("div")}componentDidMount(){Ve.appendChild(this.el)}componentWillUnmount(){Ve.removeChild(this.el)}render(){return B.createPortal(this.props.children,this.el)}}const Ue=({width:e,height:t,color:r,position:n="top",style:i})=>{const a=[0,"top"===n?t:0],l=[e,a[1]],o=[e/2,t-a[1]],s=[e/4,t*("top"===n?3:1)/4],c=[.325*e,t-a[1]],d=[e-c[0],c[1]],u=[e-s[0],s[1]],m=e=>e.join(","),p=`M ${m(a)} C ${m(s)} ${m(c)} ${m(o)} ${m(d)} ${m(u)} ${m(l)} Z`;return h.createElement("svg",{className:"tip",style:i,width:e,height:t,fill:r},h.createElement("path",{d:p}))};class We extends h.Component{constructor(){super(...arguments),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:{top:0,left:0,bottom:"auto",tipPosition:"bottom",tipOffset:0}}),Object.defineProperty(this,"targetRef",{enumerable:!0,configurable:!0,writable:!0,value:h.createRef()}),Object.defineProperty(this,"popoverRef",{enumerable:!0,configurable:!0,writable:!0,value:h.createRef()}),Object.defineProperty(this,"outsideClickListener",{enumerable:!0,configurable:!0,writable:!0,value:e=>{const t=e.target;if(this.popoverRef.current.contains(t))return;const r=this.targetRef.current;r&&r.contains(t)||this.props.onCloseRequest()}}),Object.defineProperty(this,"updatePosition",{enumerable:!0,configurable:!0,writable:!0,value:()=>{if(!this.popoverRef)return;const{disablePortal:e}=this.props,t=this.targetRef.current;if(!t)return void console.warn("popover: no target element found");const{top:r,left:n,bottom:i,height:a,width:l}=t.getBoundingClientRect();let o="calc(50% - 12px)",s="auto";const c=this.popoverRef.current;let d="bottom"===this.props.placement?i+10:r-c.clientHeight-10,u=n+l/2-c.clientWidth/2,m="bottom"===this.props.placement?"top":"bottom";d<0&&(d=i+10,m="top"),u<0&&(u=0,o=n+l/2-12),u+c.clientWidth>window.innerWidth&&(u=window.innerWidth-c.clientWidth,o=n-u+l/2-12),e&&(d=a+10,u=0,o=8,"top"===this.props.placement&&(s=d,d="auto")),this.setState({top:d,bottom:s,left:u,tipPosition:m,tipOffset:o},(()=>{this.forceUpdate()}))}})}componentWillUnmount(){this.stopOutsideClickListening()}componentDidUpdate(e){const{ignoreOutsideClick:t}=this.props;this.props.opened&&!e.opened&&(t||this.startOutsideClickListening(),requestAnimationFrame(this.updatePosition)),!this.props.opened&&e.opened&&this.stopOutsideClickListening()}render(){const{top:e,left:t,bottom:r,tipPosition:n,tipOffset:i}=this.state,{className:a,opened:l,disablePortal:o,disableAnimation:s}=this.props,c={position:"absolute",left:i};"bottom"===n?c.bottom=-8:c.top=-8;const d=H(a,"x-3deye-popover-body");let u=null;if(l){const i={zIndex:o?1:100000001,position:"absolute",top:e,bottom:r,left:t},a=h.createElement("div",{className:d,ref:this.popoverRef},this.props.children,h.createElement(Ue,{width:24,height:8,position:n,color:"white",style:c}));u=s?h.createElement("div",{style:i},a):h.createElement($e,{from:n,style:i},a)}const m=h.cloneElement(this.props.target,{ref:this.targetRef});if(o)return h.createElement("div",{className:"x-3deye-popover",onMouseLeave:this.props.onMouseLeave},m,u);const p=l&&h.createElement(Be,null,u);return h.createElement(h.Fragment,null,m,p)}startOutsideClickListening(){document.addEventListener("mousedown",this.outsideClickListener,!0)}stopOutsideClickListening(){document.removeEventListener("mousedown",this.outsideClickListener,!0)}}const Ge={background:"rgb(0 0 0 / 0.9)",color:"white",border:"none",borderRadius:"4px",padding:"0.5em 1em",fontSize:12},qe=({label:e,children:t})=>h.createElement(G,{label:e,style:Ge},t);qe.displayName="Tooltip";class Ze extends h.Component{render(){const{forwardedRef:e,children:t,className:r,fullwidth:n,type:i,title:a,...l}=this.props,o=H(r,"x-3deye-button",{fullwidth:n}),s=h.createElement("button",{ref:e,className:o,type:i||"button",...l},t,l.disabled?null:h.createElement(W,null));return a?h.createElement(qe,{label:a},s):s}}const Je=h.forwardRef(((e,t)=>h.createElement(Ze,{forwardedRef:t,...e}))),Ye=xe({viewBox:"0 0 24 24",svg:h.createElement("g",null,h.createElement("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),h.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}))});Ye.displayName="CloseIcon";const Xe=()=>{},Qe=(e,t,r,n)=>{return i=Math.floor((e-t)/r*n),a=0,l=n-1,Math.min(Math.max(i,a),l);var i,a,l},Ke=b({value:null,onPointerDown:Xe,setCurrentValue:Xe,state:{currentIdx:0,currentValue:null,options:[]}});class et{constructor(e=0){Object.defineProperty(this,"currentIdx",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"setCurrentIdx",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.currentIdx=e}}),Object.defineProperty(this,"setOptions",{enumerable:!0,configurable:!0,writable:!0,value:e=>{this.options=e}}),this.currentIdx=e,O(this,{currentIdx:N,options:N.ref,currentValue:x,setCurrentIdx:P,setOptions:P})}get currentValue(){return this.options[this.currentIdx]}}const tt=z((({value:e,onChange:t,children:r,style:n})=>{const[i,a]=v(!1),l=f(null),o=g.map(r,(e=>null==e?void 0:e.props.value))||[],s=A((()=>new et(o.indexOf(e))));s.setOptions(o);const c=g.count(r);y((()=>{s.setCurrentIdx(o.indexOf(e))}),[e]),y((()=>{var e;if(!i)return;const r=null===(e=l.current)||void 0===e?void 0:e.getBoundingClientRect();if(!r)return;const n=({clientX:e})=>{s.setCurrentIdx(Qe(e,r.left,r.width,c))},d=()=>{a(!1),t(o[s.currentIdx])};return document.addEventListener("pointermove",n),document.addEventListener("pointerup",d),()=>{document.removeEventListener("pointermove",n),document.removeEventListener("pointerup",d)}}),[i,c]);return h.createElement(Ke.Provider,{value:{value:e,state:s,onPointerDown:e=>{const t=l.current;if(!t)return;const{left:r,width:n}=t.getBoundingClientRect(),i=Qe(e.clientX,r,n,c);i!==s.currentIdx&&s.setCurrentIdx(i),a(!0)},setCurrentValue:e=>{s.setCurrentIdx(o.indexOf(e))}}},h.createElement("div",{className:"segmented-control-wrapper",style:n},h.createElement("div",{role:"radiogroup",ref:l,className:"segmented-control",style:{"--indicator-offset":100*s.currentIdx+"%"}},h.createElement("div",{"aria-hidden":!0,className:H("segmented-control-indicator",{active:i}),style:{width:100/o.length+"%"}},h.createElement("div",{className:"segmented-control-indicator-inner"})),r)))}));tt.displayName="SegmentedControl";const rt=z((({value:e,children:t})=>{const r=p(Ke);return h.createElement("button",{role:"radio","aria-checked":r.state.currentValue===e,tabIndex:0,className:H("segmented-control-button",{current:r.state.currentValue===e}),onPointerDown:r.onPointerDown,onClick:()=>r.setCurrentValue(e)},t)}));rt.displayName="SegmentedControlOption";const nt=z((({store:e})=>{const{date:t,sortDirection:r}=e,n=A((()=>({opened:!1,toggle(){this.opened=!this.opened},close(){this.opened=!1,e.applyFilters()},onDateChange(t){e.date=t},clear(){e.date=null,e.applyFilters()}}))),i=h.createElement("div",{style:{flex:1,display:"flex",position:"relative"}},h.createElement(Je,{className:"date-button",style:{flex:1,textAlign:"left",borderRadius:0},onClick:n.toggle},t?h.createElement("sup",null,"ASC"===r?"From":"To"):null,h.createElement("span",null,t?ie(t,"MMM d, HH:mm"):"live")),t?h.createElement(Je,{className:"x-3deye-button--icon",style:{position:"absolute",right:0},onClick:n.clear},h.createElement(Ye,{size:16})):null);return h.createElement("div",{className:"events-panel-datepicker"},h.createElement("div",{style:{position:"relative"}},h.createElement(We,{target:i,opened:n.opened,onCloseRequest:n.close,disableAnimation:!0,className:"popover-datetimepicker"},h.createElement(tt,{value:r,onChange:e.toggleSorting},h.createElement(rt,{value:"ASC"},"From"),h.createElement(rt,{value:"DESC"},"To")),h.createElement(U,{selected:t,onChange:n.onDateChange,showTimeSelect:!0,dateFormat:"MMM d, HH:mm",timeFormat:"HH:mm",inline:!0}),h.createElement(Je,{onClick:n.close,className:"x-3deye-button--ok"},"Ok"))))}));nt.displayName="EventsPanelDatepicker";const it=({value:e,onChange:t})=>{const r=f(null),n=f(),[i,a]=v(0);return y((()=>{if(!r.current)return;const e=new q(r.current);return n.current=e,e.listen("MDCSlider:change",(()=>{null==t||t(e.value)})),()=>{n.current=void 0,e.destroy()}}),[]),y((()=>{const e=new Z((e=>{var t;for(const r of e){const e=r.contentRect.width;e!==i&&(null===(t=n.current)||void 0===t||t.layout()),a(e)}}));return e.observe(r.current),()=>e.disconnect()}),[]),y((()=>{n.current&&(n.current.value=e)}),[e]),h.createElement("div",{ref:r,className:"mdc-slider mdc-slider--discrete mdc-slider--display-markers",tabIndex:0,role:"slider","data-step":5,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":e,"aria-label":"Select Value"},h.createElement("div",{className:"mdc-slider__track-container"},h.createElement("div",{className:"mdc-slider__track"}),h.createElement("div",{className:"mdc-slider__track-marker-container"})),h.createElement("div",{className:"mdc-slider__thumb-container"},h.createElement("div",{className:"mdc-slider__pin"},h.createElement("span",{className:"mdc-slider__pin-value-marker"})),h.createElement("svg",{className:"mdc-slider__thumb",width:"21",height:"21"},h.createElement("circle",{cx:"10.5",cy:"10.5",r:"7.875"})),h.createElement("div",{className:"mdc-slider__focus-ring"})))};it.displayName="Slider";const at=z((({getter:e,setter:t})=>{const[r,n]=v(0),i=f(null),a=Math.floor(100*e());return y((()=>L(e,(e=>{n(Math.floor(100*e))}),{fireImmediately:!0})),[e]),h.createElement("div",{ref:i,style:{paddingLeft:8,paddingRight:8,marginTop:5}},h.createElement("div",{style:{display:"flex",justifyContent:"space-between"}},h.createElement("div",null,"CONFIDENCE"),h.createElement("div",{style:{fontSize:"1.1em"}},a,"%")),h.createElement(it,{value:r,onChange:e=>{t(e/100)}}))}));at.displayName="ProbabilitySlider";const lt=xe({viewBox:"0 0 24 24",svg:h.createElement(h.Fragment,null,h.createElement("path",{fill:"none",d:"M0 0h24v24H0z"}),h.createElement("path",{d:"M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z"}))});lt.displayName="DoneIcon";const ot=[{color:ge[500],name:"red",highlightColor:ge[100]},{color:be[500],name:"green",highlightColor:be[100]},{color:pe[500],name:"blue",highlightColor:pe[100]},{color:ye[500],name:"yellow",highlightColor:ye[900]},{color:"#000",name:"black",highlightColor:"#fff"},{color:"#fff",name:"white",highlightColor:"#000"},{color:ve[500],name:"dimgrey",highlightColor:ve[100]}],st=z((({value:e,clear:t,toggle:r})=>h.createElement("div",{className:"color-selector"},h.createElement("div",null,"COLOR"),h.createElement("div",{className:"color-selector__items"},ot.map((({color:t,highlightColor:n,name:i})=>h.createElement("button",{key:i,className:H("color-selector__item",{selected:e.has(i)}),style:{backgroundColor:t},onClick:r.bind(null,i)},h.createElement(lt,{color:n,size:20})))),h.createElement(Je,{className:"color-selector__clear",disabled:!e.size,onClick:t},h.createElement(Ye,{size:20}))))));st.displayName="ColorSelector";const ct=({size:e=48})=>h.createElement("svg",{width:e,height:e,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid"},h.createElement("rect",{x:"0",y:"0",width:"100",height:"100",fill:"none",className:"bk"}),h.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(0 50 50) translate(0 -30)"},h.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0s",repeatCount:"indefinite"})),h.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(30 50 50) translate(0 -30)"},h.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0.08333333333333333s",repeatCount:"indefinite"})),h.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(60 50 50) translate(0 -30)"},h.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0.16666666666666666s",repeatCount:"indefinite"})),h.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(90 50 50) translate(0 -30)"},h.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0.25s",repeatCount:"indefinite"})),h.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(120 50 50) translate(0 -30)"},h.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0.3333333333333333s",repeatCount:"indefinite"})),h.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(150 50 50) translate(0 -30)"},h.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0.4166666666666667s",repeatCount:"indefinite"})),h.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(180 50 50) translate(0 -30)"},h.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0.5s",repeatCount:"indefinite"})),h.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(210 50 50) translate(0 -30)"},h.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0.5833333333333334s",repeatCount:"indefinite"})),h.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(240 50 50) translate(0 -30)"},h.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0.6666666666666666s",repeatCount:"indefinite"})),h.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(270 50 50) translate(0 -30)"},h.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0.75s",repeatCount:"indefinite"})),h.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(300 50 50) translate(0 -30)"},h.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0.8333333333333334s",repeatCount:"indefinite"})),h.createElement("rect",{x:"46.5",y:"38",width:"7",height:"24",rx:"5",ry:"5",fill:"currentColor",transform:"rotate(330 50 50) translate(0 -30)"},h.createElement("animate",{attributeName:"opacity",from:"1",to:"0",dur:"1s",begin:"0.9166666666666666s",repeatCount:"indefinite"})));ct.displayName="Preloader";var dt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},ut="object"==typeof dt&&dt&&dt.Object===Object&&dt,mt="object"==typeof self&&self&&self.Object===Object&&self,ht=ut||mt||Function("return this")(),pt=ht.Symbol,ft=pt,bt=Object.prototype,vt=bt.hasOwnProperty,gt=bt.toString,yt=ft?ft.toStringTag:void 0;var Et=function(e){var t=vt.call(e,yt),r=e[yt];try{e[yt]=void 0;var n=!0}catch(e){}var i=gt.call(e);return n&&(t?e[yt]=r:delete e[yt]),i},wt=Object.prototype.toString;var Ct=Et,xt=function(e){return wt.call(e)},Ot=pt?pt.toStringTag:void 0;var Nt=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},Pt=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Ot&&Ot in Object(e)?Ct(e):xt(e)},jt=Nt;var Lt,Tt=function(e){if(!jt(e))return!1;var t=Pt(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t},It=ht["__core-js_shared__"],Mt=(Lt=/[^.]+$/.exec(It&&It.keys&&It.keys.IE_PROTO||""))?"Symbol(src)_1."+Lt:"";var _t=function(e){return!!Mt&&Mt in e},kt=Function.prototype.toString;var St=Tt,Dt=_t,Ft=Nt,Ht=function(e){if(null!=e){try{return kt.call(e)}catch(e){}try{return e+""}catch(e){}}return""},zt=/^\[object .+?Constructor\]$/,At=Function.prototype,Rt=Object.prototype,$t=At.toString,Vt=Rt.hasOwnProperty,Bt=RegExp("^"+$t.call(Vt).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var Ut=function(e){return!(!Ft(e)||Dt(e))&&(St(e)?Bt:zt).test(Ht(e))},Wt=function(e,t){return null==e?void 0:e[t]};var Gt=function(e,t){var r=Wt(e,t);return Ut(r)?r:void 0},qt=Gt(Object,"create"),Zt=qt;var Jt=function(){this.__data__=Zt?Zt(null):{},this.size=0};var Yt=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},Xt=qt,Qt=Object.prototype.hasOwnProperty;var Kt=function(e){var t=this.__data__;if(Xt){var r=t[e];return"__lodash_hash_undefined__"===r?void 0:r}return Qt.call(t,e)?t[e]:void 0},er=qt,tr=Object.prototype.hasOwnProperty;var rr=qt;var nr=Jt,ir=Yt,ar=Kt,lr=function(e){var t=this.__data__;return er?void 0!==t[e]:tr.call(t,e)},or=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=rr&&void 0===t?"__lodash_hash_undefined__":t,this};function sr(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}sr.prototype.clear=nr,sr.prototype.delete=ir,sr.prototype.get=ar,sr.prototype.has=lr,sr.prototype.set=or;var cr=sr;var dr=function(){this.__data__=[],this.size=0};var ur=function(e,t){return e===t||e!=e&&t!=t};var mr=function(e,t){for(var r=e.length;r--;)if(ur(e[r][0],t))return r;return-1},hr=mr,pr=Array.prototype.splice;var fr=mr;var br=mr;var vr=mr;var gr=dr,yr=function(e){var t=this.__data__,r=hr(t,e);return!(r<0)&&(r==t.length-1?t.pop():pr.call(t,r,1),--this.size,!0)},Er=function(e){var t=this.__data__,r=fr(t,e);return r<0?void 0:t[r][1]},wr=function(e){return br(this.__data__,e)>-1},Cr=function(e,t){var r=this.__data__,n=vr(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this};function xr(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}xr.prototype.clear=gr,xr.prototype.delete=yr,xr.prototype.get=Er,xr.prototype.has=wr,xr.prototype.set=Cr;var Or=xr,Nr=Gt(ht,"Map"),Pr=cr,jr=Or,Lr=Nr;var Tr=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e};var Ir=function(e,t){var r=e.__data__;return Tr(t)?r["string"==typeof t?"string":"hash"]:r.map},Mr=Ir;var _r=Ir;var kr=Ir;var Sr=Ir;var Dr=function(){this.size=0,this.__data__={hash:new Pr,map:new(Lr||jr),string:new Pr}},Fr=function(e){var t=Mr(this,e).delete(e);return this.size-=t?1:0,t},Hr=function(e){return _r(this,e).get(e)},zr=function(e){return kr(this,e).has(e)},Ar=function(e,t){var r=Sr(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this};function Rr(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}Rr.prototype.clear=Dr,Rr.prototype.delete=Fr,Rr.prototype.get=Hr,Rr.prototype.has=zr,Rr.prototype.set=Ar;var $r=Rr;function Vr(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],a=r.cache;if(a.has(i))return a.get(i);var l=e.apply(this,n);return r.cache=a.set(i,l)||a,l};return r.cache=new(Vr.Cache||$r),r}Vr.Cache=$r;const Br=Vr((()=>{const e=document.createElement("div");e.style.overflowY="scroll",e.style.position="absolute",e.style.top="-9999px",document.body.append(e);const t=e.offsetWidth;return e.remove(),t})),Ur=z((({data:e,children:t,onClick:r,onAuxClick:n,menuComponent:i})=>{const a=f(null),l=f(null);return h.createElement("div",{ref:a,onDragStart:t=>{var r;if(!t.dataTransfer)return;t.dataTransfer.setData("x-3deye/event",""+e.id),t.dataTransfer.dropEffect="move";const n=null===(r=a.current)||void 0===r?void 0:r.querySelector("img");if(n){const{x:e,y:r}=n.getBoundingClientRect();t.dataTransfer.setDragImage(n,t.clientX-e,t.clientY-r)}},className:"event-list-item",onClick:()=>null==r?void 0:r(e),onAuxClick:t=>null==n?void 0:n(t,e),onContextMenu:e=>{var t;e.preventDefault(),a.current&&(null===(t=l.current)||void 0===t||t.toggleAt(a.current,{top:e.clientY,left:e.clientX}))},draggable:!0},t,i&&h.createElement(i,{ref:l,data:e}))}));Ur.displayName="EventListItem";const Wr=({className:e,style:t,box:{Top:r,Left:n,Right:i,Bottom:a}})=>h.createElement(h.Fragment,null,h.createElement("div",{className:e,style:{position:"absolute",top:100*r+"%",left:100*n+"%",bottom:100*(1-a)+"%",right:100*(1-i)+"%",...t}}));Wr.displayName="LicensePlateLpr";const Gr=({Type:e,Box:t,Probability:r,width:n,height:i})=>{const{eventSchema:a}=p(ae),l=f(null),{Top:o,Left:s,Right:c,Bottom:d}=t;return E((()=>{if(!n||!i)return;if(!l.current)return;const e=l.current.getBoundingClientRect();let t=(s+c)/2*n-e.width/2,r=o*i-e.height-4;r<0&&(r=d*i+4),t<0&&(t=0),t>n-e.width&&(t=n-e.width),r>i-e.height&&(r=i-e.height),l.current.style.top=`${r}px`,l.current.style.left=`${t}px`})),h.createElement(h.Fragment,null,h.createElement(Wr,{box:t,style:{outline:`2px solid ${a.colorsByFoundObjectType.get(e)}`}}),h.createElement("div",{ref:l,className:"event-list-item__detected-object-label",title:`${e.toLowerCase()} ${Math.floor(100*r)}%`},h.createElement("div",{style:{padding:4,lineHeight:"24px"}},e.toLowerCase()),h.createElement("div",{className:"event-list-item__detected-object-label__caption",style:{backgroundColor:a.colorsByFoundObjectType.get(e)}},Math.floor(100*r),"%")))};function qr({style:e}){return h.createElement("div",{className:"frame",style:e},h.createElement("div",{className:"corner-highlight-tl"}),h.createElement("div",{className:"corner-highlight-tr"}),h.createElement("div",{className:"corner-highlight-br"}),h.createElement("div",{className:"corner-highlight-bl"}))}Gr.displayName="DetectedObjectHighlight";const Zr=({face:{Name:e,Box:t,Probability:r},url:n,thumbWidth:i,thumbHeight:a,width:l,height:o})=>{const{Top:s,Left:c,Right:d,Bottom:u}=t,m=100/i/(d-c),p={top:2},b=f(null);return E((()=>{if(!b.current)return;const e=b.current.getBoundingClientRect();let t=(c+d)/2*l-e.width/2,r=s*o-e.height-4;r<0&&(r=u*o+4),t<0&&(t=0),t>l-e.width&&(t=l-e.width),b.current.style.top=`${r}px`,b.current.style.left=`${t}px`})),c>=1-d?p.left=2:p.right=2,h.createElement(h.Fragment,null,h.createElement("div",{ref:b,className:"event-list-item__detected-object-label trigger",title:`${e} ${Math.floor(100*r)}%`},h.createElement("div",{style:{padding:4,display:"flex",alignItems:"center",maxWidth:120,whiteSpace:"break-spaces"}},e),h.createElement("div",{className:"event-list-item__detected-object-label__caption",style:{color:"black",backgroundColor:"orange"}},Math.floor(100*r),"%")),h.createElement(Wr,{className:"trigger",box:t,style:{outline:"1px solid orange"}}),h.createElement("div",{className:"event-list-item-face preview",style:{overflow:"hidden",width:i*(d-c)*m,height:a*(u-s)*m,...p}},h.createElement("img",{style:{width:i*m,height:a*m,transform:`translate(-${100*c}%, -${100*s}%)`},src:n}),h.createElement(qr,null)))};Zr.displayName="FaceHighlight";const Jr=h.memo((({value:e})=>e?h.createElement(h.Fragment,null,e.split("").map(((e,t)=>{const r=e.charCodeAt(0);return r<48||r>57?h.createElement(h.Fragment,{key:t},e):h.createElement("span",{key:t,className:"digit"},e)}))):null));Jr.displayName="LicensePlateNumber";const Yr=({detectedObject:e,height:t,width:r,url:n,thumbWidth:i,thumbHeight:a})=>{const{Type:l,Box:{Top:o,Left:s,Right:c,Bottom:d},Probability:u}=e,m=e.Value||e.Number,p=f(null);E((()=>{if(!p.current)return;const e=p.current.getBoundingClientRect();let n=(s+c)/2*r-e.width/2,i=o*t-e.height-4;i<0&&(i=d*t+4),n<0&&(n=0),n>r-e.width&&(n=r-e.width),p.current.style.top=`${i}px`,p.current.style.left=`${n}px`}));const b={top:2};s>=1-c?b.left=2:b.right=2;const v=100/i/(c-s);return h.createElement(h.Fragment,null,h.createElement("div",{ref:p,className:"event-list-item__license-plate-label trigger",title:`${l.toLowerCase()} ${Math.floor(100*u)}%`},h.createElement("div",{style:{padding:4}},h.createElement(Jr,{value:m})),h.createElement("div",{className:"event-list-item__license-plate-label__caption"},Math.floor(100*u),"%")),h.createElement(Wr,{className:"event-list-item__license-plate-trigger trigger",box:e.Box}),h.createElement("div",{className:"event-list-item__license-plate preview",style:{overflow:"hidden",width:i*(c-s)*v,height:a*(d-o)*v+16,position:"absolute",...b}},h.createElement("img",{style:{width:i*v,height:a*v,transform:`translate(-${100*s}%, -${100*o}%)`},src:n}),h.createElement("div",{className:"plate-number"},h.createElement(Jr,{value:m})),h.createElement(qr,{style:{height:a*(d-o)*v}})))};Yr.displayName="LicensePlateHighlight";const Xr=xe({viewBox:"0 0 24 24",svg:h.createElement(h.Fragment,null,h.createElement("path",{d:"M0 0h24v24H0z",fill:"none"}),h.createElement("path",{d:"M15 13V5c0-1.66-1.34-3-3-3S9 3.34 9 5v8c-1.21.91-2 2.37-2 4 0 2.76 2.24 5 5 5s5-2.24 5-5c0-1.63-.79-3.09-2-4zm-4-8c0-.55.45-1 1-1s1 .45 1 1h-1v1h1v2h-1v1h1v2h-2V5z"}))});Xr.displayName="ThermostatIcon";const Qr=z((({data:e})=>{if("Temperature"!==e.type)return null;let t=Number(e.raw.data);return t=5*(t-32)/9+273.15,h.createElement("div",{className:"event-list-item__temperature"},h.createElement(Xr,null),(t-273.15).toFixed(1),"°C / ",(9*t/5-459.67).toFixed(1),"°F")}));Qr.displayName="Temperature";const Kr=z((({data:e,cameraNameHidden:t})=>{var r;const a=p(ae),{cameras:l}=a,o=l.loaded&&(null===(r=l.camerasById.get(e.cameraId))||void 0===r?void 0:r.name)||"...";return h.createElement("div",{className:"event-list-item-caption"},h.createElement("div",{className:"event-list-item__time"},function(e,t){let r="",a="";return n(e,new Date)?i(e,new Date)?r=a="HH:mm":i(e,t)?(r="EEE d MMM HH:mm",a="HH:mm"):r=a="EEE d MMM HH:mm":n(e,t)?(r="yyyy d MMM HH:mm",a="d MMM HH:mm"):r=a="yyyy d MMM HH:mm",(e.getSeconds()||t.getSeconds())&&(r+=":ss",a+=":ss"),+e==+t?`${ie(e,r)}`:`${ie(e,r)} - ${ie(t,a)}`}(e.startTime,e.endTime)),t?null:h.createElement("div",{className:"event-list-item__camera-name",title:o},o),+e.endTime-+e.startTime>0&&h.createElement("div",{className:"event-list-item__duration"},function(e,t=!0){if((e=Math.round(e/1e3))<60)return`${e}s`;const r=e%60,n=t?`${r}`:`${r}`.padStart(2,"0");let i=(e-r)/60;if(i<60)return!r&&t?`${i}m`:`${i}m ${n}s`;const a=Math.floor(i/60);if(i-=60*a,!r&&!i&&t)return`${a}h`;const l=t?`${i}`:`${i}`.padStart(2,"0");return!r&&i&&t?`${a}h ${l}m`:`${a}h ${l}m ${n}s`}(+e.endTime-+e.startTime)),h.createElement(Qr,{data:e}))}));Kr.displayName="EventListItemCaption";const en=z((({url:e,noPreview:t,width:r})=>h.createElement(h.Fragment,null,e?h.createElement("img",{key:e,style:{position:"absolute",width:"100%",height:"100%",top:0,left:0},src:e}):null,h.createElement(W,{radius:r}),t?h.createElement("div",{className:"no-preview-overlay"}):null)));en.displayName="EventThumbnail";const tn=z((({data:e,width:t,height:r,cameraNameHidden:n,onClick:i,onAuxClick:a,menuComponent:l})=>{const o=p(ae),{eventSchema:s}=o,[c,d]=function(e){var t;const[r,n]=v(null),i=p(ae),{cameras:a,thumbnails:l}=i;y((()=>{if(e.thumbnailUrl)return void n(null);const t=l.fetchThumbnail(e.cameraId,e.startTime,e.startTime).subscribe((e=>{n(e||null)}));return()=>t.unsubscribe()}),[e.id]);let o="",s=!1;return e.thumbnailUrl?o=e.thumbnailUrl:null===r&&a.loaded?(o=(null===(t=a.camerasById.get(e.cameraId))||void 0===t?void 0:t.imageUrl)||"",s=!0):r&&(o=r.url),[o,s]}(e);let u=null,m=null,f=null;if(e.detectedObjects.length){let n,i;const{ThumbnailSize:a}=JSON.parse(e.raw.data);a&&(n=a.Width,i=a.Height),u=e.detectedObjects.filter((({Type:e})=>s.foundObjectTypes.includes(e)&&"LicensePlate"!==e)).map(((e,n)=>h.createElement(Gr,{key:n,...e,height:r,width:t}))),m=e.detectedObjects.filter((({Type:e})=>"LicensePlate"===e)).map(((e,a)=>h.createElement(Yr,{key:a,detectedObject:e,width:t,height:r,thumbWidth:n,thumbHeight:i,url:c})))}if(e.faces){const{Width:n,Height:i}=JSON.parse(e.raw.data).ThumbnailSize;f=e.faces.map(((e,a)=>h.createElement(Zr,{key:a,face:e,url:c,thumbWidth:n,thumbHeight:i,width:t,height:r})))}return h.createElement(Ur,{onClick:i,onAuxClick:a,data:e,width:t,height:r,cameraNameHidden:n,menuComponent:l},h.createElement("div",{style:{position:"absolute",top:0,left:0,bottom:0,right:0}},h.createElement(en,{url:c,noPreview:d,width:t}),u,m,f,e.acknowledged?h.createElement("div",{className:"acknowledged-overlay"},"acknowledged"):null,h.createElement(Kr,{data:e,cameraNameHidden:n})))}));tn.displayName="EventItem";class rn extends h.Component{constructor(){super(...arguments),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:{hasError:!1}})}componentDidCatch(e,t){this.setState({hasError:!0}),K.withScope((r=>{Object.keys(t).forEach((e=>{r.setExtra(e,t[e])})),K.captureException(e)})),console.error(e),console.log(t)}render(){if(!this.state.hasError)return this.props.children;const{style:e,children:t,...r}=this.props;return h.createElement("div",{style:{flex:1,padding:10,display:"grid",placeItems:"center",alignContent:"center",textAlign:"center",...this.props.style},...r},h.createElement("h1",null,"Oops. Something went wrong"),h.createElement("div",null,"We've been notified about this problem"),h.createElement(Je,{onClick:()=>this.setState({hasError:!1})},"retry"))}}const nn=z((({store:e,captionHeight:t=0,minColumnWidth:r=180,onEventClick:n,onEventAuxClick:i,eventRenderer:a=(({data:e,width:t,height:r})=>h.createElement(tn,{data:e,cameraNameHidden:!1,onClick:n,onAuxClick:i,width:t,height:r}))})=>{const l=f(),o=A((()=>({rowIndex:0,columnIndex:0,update(e,t){this.rowIndex=e,this.columnIndex=t},reset(){this.rowIndex=0,this.columnIndex=0}})));if(e.error&&!e.data.length)return o.reset(),h.createElement("div",{style:{flex:1,display:"flex",justifyContent:"center",alignItems:"center"}},h.createElement("div",{style:{textAlign:"center"}},h.createElement("div",null,"Couldn't fetch data"),h.createElement(Je,{onClick:e.reload},"Retry")));if(e.loading)return o.reset(),h.createElement("div",{style:{flex:1,display:"flex",justifyContent:"center",alignItems:"center"}},h.createElement(ct,null));if(!e.data.length)return o.reset(),h.createElement("div",{style:{flex:1,display:"flex",justifyContent:"center",alignItems:"center"}},ne.t("noEventsFound"));const s=(t,r)=>(e.loadMore(),Promise.resolve()),c=({scrollTop:t})=>{"disabled"!==e.liveUpdateMode&&e.setLiveUpdateMode(t>=1||e.pendingData.length?"manual":"auto")};return h.createElement(J,null,(({width:n,height:i})=>h.createElement(R,null,(()=>{var d;const u=Math.floor(n/r)||1,m=n/u/16*9+t,p=u*Math.floor(i/m)>=e.data.length?0:Br(),f=Math.max(1,Math.floor((n-p)/r)),b=Math.ceil(e.data.length/f),v=(n-p-2*(f-1))/f,g=v/16*9+t;return h.createElement(h.Fragment,null,h.createElement(Y,{isItemLoaded:e=>e<b,itemCount:b+((null===(d=e.pageInfo)||void 0===d?void 0:d.haveMore)?1:0),loadMoreItems:s},(({onItemsRendered:t,ref:r})=>{var s;return h.createElement(X,{key:`${n}x${i}`,ref:Q(l,r),columnCount:f,columnWidth:e=>v+(e?2:0),height:i,width:n,rowCount:b+((null===(s=e.pageInfo)||void 0===s?void 0:s.haveMore)||e.error?1:0),rowHeight:e=>g+(e?2:0),initialScrollTop:g*o.rowIndex,onScroll:c,onItemsRendered:({visibleRowStartIndex:e,visibleColumnStartIndex:r,visibleRowStopIndex:n,overscanRowStopIndex:i,overscanRowStartIndex:a})=>{o.update(e,r),t({overscanStartIndex:a,overscanStopIndex:i,visibleStartIndex:e,visibleStopIndex:n})}},(t=>({columnIndex:r,rowIndex:n,style:i})=>h.createElement(R,null,(()=>{var l,o;const s=n*t+r,c=e.data[s];return i={...i,left:i.left+(r?2:0),width:i.width-(r?2:0),top:i.top+(n?2:0),height:i.height-(n?2:0)},s===e.data.length?e.error?h.createElement("div",{style:i},h.createElement("div",{style:{position:"absolute",inset:0,display:"grid",placeItems:"center"}},h.createElement("div",{style:{textAlign:"center"}},h.createElement("div",null,"Couldn't fetch more data"),h.createElement(Je,{onClick:e.loadMore},"Retry")))):(null===(l=e.pageInfo)||void 0===l?void 0:l.haveMore)?h.createElement("div",{style:i},h.createElement("div",{style:{position:"absolute",inset:0,display:"grid",placeItems:"center"}},h.createElement(ct,{size:32}))):h.createElement("div",{style:i}):!c&&(null===(o=e.pageInfo)||void 0===o?void 0:o.haveMore)?h.createElement("div",{style:i}):c?h.createElement("div",{style:i},h.createElement(rn,null,a({data:c,width:i.width,height:i.height}))):h.createElement("div",{style:i})})))(f))})),h.createElement(R,null,(()=>e.pendingData.length?h.createElement("div",{style:{position:"absolute",top:0,left:0,right:p,pointerEvents:"none",textAlign:"center",padding:8}},h.createElement(Je,{className:"x-3deye-button--overlay",style:{background:"rgba(0, 0, 0, 0.75)",padding:"8px 16px",backdropFilter:"blur(2px)",borderRadius:32,pointerEvents:"auto"},onClick:()=>{var t;e.flushUpdates(),null===(t=l.current)||void 0===t||t.scrollTo({scrollLeft:0,scrollTop:0}),e.setLiveUpdateMode("auto")}},ne.t("showEvents",{count:e.pendingData.length}))):null)))}))))}));nn.displayName="EventGrid";const an=({onEventClick:e,style:t,...r})=>{var n;const i=null!==(n=p(w))&&void 0!==n?n:C,[a,l]=v();return y((()=>{null==a||a.dispose();const e=new Ee(i.events);e.initWith(i.api),e.load(),l(e)}),[i]),h.createElement(ae.Provider,{value:i},a?h.createElement("div",{style:{display:"flex",flexDirection:"column",...t},...r},h.createElement(Ae,{addionalFiltersEnabled:!0,store:a}),h.createElement(nt,{store:a}),a.someAnalyticsFilterSelected&&h.createElement(h.Fragment,null,h.createElement(at,{getter:a.getProbabilityTreshold,setter:a.setProbabilityTreshold}),h.createElement(st,{value:a.colors,toggle:a.toggleColor,clear:a.clearColors})),h.createElement("div",{style:{flex:1}},h.createElement(nn,{minColumnWidth:1/0,store:a.eventsLoader,eventRenderer:({data:t,width:r,height:n})=>h.createElement(tn,{data:t,cameraNameHidden:!1,onClick:e,width:r,height:n})}))):null)};var ln;an.displayName="EventList",(ln={resources:{en:{translation:ee}}})&&Object.assign(re,ln),l(ne.init(re));export{an as default};
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.18.14"
8
+ "packageVersion": "7.19.4"
9
9
  }
10
10
  ]
11
11
  }
package/package.json CHANGED
@@ -1,32 +1,32 @@
1
1
  {
2
2
  "name": "@3deye-toolkit/react-event-list",
3
- "version": "0.0.1-alpha.22",
3
+ "version": "0.0.1-alpha.23",
4
4
  "module": "dist/react-event-list.js",
5
5
  "types": "dist/react-event-list.d.ts",
6
6
  "files": [
7
7
  "dist"
8
8
  ],
9
9
  "dependencies": {
10
- "@3deye-toolkit/core": "0.0.1-alpha.22",
10
+ "@3deye-toolkit/core": "0.0.1-alpha.23",
11
11
  "@material/slider": "^5.1.0",
12
12
  "@reach/tooltip": "^0.15.3",
13
- "@react-spring/web": "^9.2.5",
13
+ "@react-spring/web": "^9.4.2",
14
+ "@sentry/browser": "^5.15.5",
14
15
  "@seznam/compose-react-refs": "^1.0.6",
15
16
  "clsx": "^1.1.1",
16
- "date-fns": "^2.22.1",
17
- "i18next": "21.5.3",
17
+ "date-fns": "^2.28.0",
18
+ "i18next": "21.6.11",
18
19
  "lodash": "4.17.21",
19
- "material-colors": "^1.2.6",
20
- "mobx": "^6.3.2",
21
- "mobx-react-lite": "^3.2.0",
22
- "react-datepicker": "^4.1.1",
20
+ "mobx": "^6.3.13",
21
+ "mobx-react-lite": "^3.2.3",
22
+ "react-datepicker": "^4.6.0",
23
23
  "react-ink": "^6.5.1",
24
- "react-select": "^4.3.1",
25
- "react-virtualized-auto-sizer": "^1.0.5",
24
+ "react-select": "^5.2.2",
25
+ "react-virtualized-auto-sizer": "^1.0.6",
26
26
  "react-window": "^1.8.6",
27
27
  "react-window-infinite-loader": "^1.0.7",
28
28
  "resize-observer-polyfill": "^1.5.1",
29
- "rxjs": "^6.5.5"
29
+ "rxjs": "^7.5.3"
30
30
  },
31
31
  "peerDependencies": {
32
32
  "react": "^16.8.0 || ^17",