1"use strict";(self.webpackChunkone_web=self.webpackChunkone_web||[]).push([[4752],{10427:(e,t,i)=>{i.d(t,{Ay:()=>v,nU:()=>p});var s=i(71413),r=i(52706),o=i(30555),a=i(24634),l=i(56365),n=i(65585),d=(i(5366),Object.defineProperty),c=Object.getOwnPropertyDescriptor,h=(e,t,i,s)=>{for(var r,o=s>1?void 0:s?c(t,i):t,a=e.length-1;a>=0;a--)(r=e[a])&&(o=(s?r(t,i,o):r(o))||o);return s&&o&&d(t,i,o),o},p=(e=>(e.CENTER="CENTER",e.LEFT="LEFT",e.RIGHT="RIGHT",e))(p||{});let u=class extends s.WF{constructor(){super(...arguments),this.splash=!1,this.expanded=!1,this.forceExpanded=!1,this.noAutoClose=!1,this._disable=!1,this.onBodyClick=e=>{const t=this.renderRoot.querySelector("#toggler");(0,n.A)(this.noAutoClose?this:t,e)||(this.expanded=!1)},this.onBodyEsc=e=>{"Escape"===e.key&&(this.expanded=!1)}}get disable(){return this._disable}set disable(e){const t=this._disable;this._disable=e,this.expanded=!1,this.requestUpdate("disable",t)}static get styles(){return[l.A,a.A,s.AH` 2 :host { 3 position: relative; 4 display: flex; 5 } 6 .btn.btn-link { 7 margin-top: var(--gap); 8 } 9 .menu { 10 text-align: end; 11 } 12 .menu.splash-menu { 13 text-align: start; 14 width: 375px; 15 } 16 .menu.splash-menu { 17 color: rgb(var(--darker)); 18 background-color: #fff; 19 font-size: var(--smaller); 20 } 21 `]}render(){return s.qy` 22 <popper-container 23 @click="${this.toggleExpanded}" 24 is-flip 25 ?is-visible=${this.expanded||this.forceExpanded} 26 style=${this.splash?"width: 100%; height: 100%":""} 27 > 28 <div 29 slot="toggler" 30 id="toggler" 31 style=${this.splash?"width: 100%; height: 100%":""} 32 class=${(0,o.H)({active:this.expanded||this.forceExpanded})} 33 > 34 <slot name="toggler"></slot> 35 </div> 36 <div 37 class="menu ${this.splash?"splash-menu":""}" 38 role="menu" 39 part="menu" 40 aria-hidden=${!this.expanded} 41 > 42 <slot id="options"></slot> 43 ${this.noAutoClose?s.qy`<button id="close-dropdown" class="btn btn-link">Close</button>`:null} 44 </div> 45 </popper-container> 46 `}updated(){(this.expanded||this.forceExpanded)&&this.dispatchEvent(new CustomEvent("show")),this.expanded||this.forceExpanded||this.dispatchEvent(new CustomEvent("hide"))}toggleExpanded(e){const t=this.renderRoot.querySelector("#close-dropdown");(0,n.A)(t,e)?this.expanded=!1:this.disable||this.noAutoClose&&this.expanded||(this.expanded=!this.expanded)}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this.onBodyClick),document.addEventListener("keyup",this.onBodyEsc)}disconnectedCallback(){document.removeEventListener("click",this.onBodyClick),document.removeEventListener("keyup",this.onBodyEsc),super.disconnectedCallback()}};h([(0,r.MZ)({type:Boolean})],u.prototype,"splash",2),h([(0,r.MZ)({type:Boolean,reflect:!0})],u.prototype,"expanded",2),h([(0,r.MZ)({type:Boolean,reflect:!0,attribute:"force-expanded"})],u.prototype,"forceExpanded",2),h([(0,r.MZ)({type:Boolean,reflect:!0,attribute:"no-auto-close"})],u.prototype,"noAutoClose",2),h([(0,r.MZ)({type:Boolean})],u.prototype,"disable",1),u=h([(0,r.EM)("dropdown-menu")],u);const v=u},56483:(e,t,i)=>{i.r(t),i.d(t,{default:()=>W});var s=i(92943),r=i(71413),o=i(10391),a=i(52706),l=i(56599),n=i(30555),d=i(25461),c=i(80027),h=i(5218),p=i(52850),u=i(61531),v=i(10514),m=i(36398),g=i(72932),y=i(32701),f=i(31376),b=i(24634),w=i(30842),k=i(69199),A=i(80480),$=i(35135),x=i(85512),C=i(27547),E=i(5124),L=i(19472),T=i(21693),P=i(11891),S=i(48444),O=i(63822),R=i(56188),V=Object.defineProperty,q=Object.getOwnPropertyDescriptor,I=(e,t,i,s)=>{for(var r,o=s>1?void 0:s?q(t,i):t,a=e.length-1;a>=0;a--)(r=e[a])&&(o=(s?r(t,i,o):r(o))||o);return s&&o&&V(t,i,o),o};let M=class extends r.WF{constructor(){super(...arguments),this.viewTitle="",this.videoState=S.Xt.NONE,this.textColor="dark",this.smallScreenHideText=!1,this.firstLoad=!1}static get styles(){return[y.A,b.A,E.A,r.AH` 47 .video-control { 48 display: flex; 49 font-size: 1rem; 50 padding: 0; 51 } 52 53 .video-control > svg { 54 width: 2rem; 55 height: 2rem; 56 fill: rgb(var(--dark-blue)); 57 } 58 59 .video-control > span { 60 /* display: none; */ 61 margin-left: 0.5rem; 62 } 63 64 .hide-text-small > span { 65 display: none; 66 } 67 68 @media (min-width: 768px) { 69 .hide-text-small > span { 70 display: block; 71 } 72 } 73 74 .text-dark { 75 color: rgb(var(--darker)); 76 } 77 .text-light { 78 color: rgb(var(--clouds)); 79 } 80 `]}handleButtonClick(e){return()=>{const t=(0,R.h)("crc:video:action",{detail:{action:e}});this.dispatchEvent(t)}}render(){return r.qy` 81 ${this.videoState===S.Xt.LOADING?r.qy` 82 <button 83 type="button" 84 id="loading-message" 85 disabled 86 class=${(0,n.H)({btn:!0,"video-control":!0,"hide-text-small":this.smallScreenHideText,"text-dark":"dark"===this.textColor,"text-light":"light"===this.textColor})} 87 part="button" 88 aria-label="Loading Video - Click to Stop" 89 > 90 <svg role="presentation" part="icon" aria-hidden="true"> 91 <use href="${"/images/sprites.svg#refresh"}"></use> 92 </svg> 93 <span>${(0,O.t)("Loading Video...")}</span> 94 </button> 95 `:r.qy``} 96 ${this.videoState===S.Xt.PAUSED||this.videoState===S.Xt.NONE?r.qy` 97 <button 98 type="button" 99 id="play-button" 100 class=${(0,n.H)({btn:!0,"video-control":!0,"hide-text-small":this.smallScreenHideText,"text-dark":"dark"===this.textColor,"text-light":"light"===this.textColor})} 101 @click=${this.handleButtonClick("play")} 102 title="Play video of camera ${this.viewTitle}" 103 part="button" 104 > 105 <svg role="presentation" part="icon" aria-hidden="true"> 106 <use href="${"/images/sprites.svg#play"}"></use> 107 </svg> 108 <span>${(0,O.t)("Play Video")}</span> 109 </button> 110 `:r.qy``} 111 ${this.videoState===S.Xt.PLAYING?r.qy` 112 <button 113 type="button" 114 id="pause-button" 115 class=${(0,n.H)({btn:!0,"video-control":!0,"hide-text-small":this.smallScreenHideText,"text-dark":"dark"===this.textColor,"text-light":"light"===this.textColor})} 116 @click=${this.handleButtonClick("pause")} 117 title="Pause video of camera ${this.viewTitle}" 118 part="button" 119 > 120 <svg role="presentation" part="icon" aria-hidden="true"> 121 <use href="${"/images/sprites.svg#pause"}"></use> 122 </svg> 123 <span>${(0,O.t)("Pause Video")}</span> 124 </button> 125 `:r.qy``} 126 ${this.videoState===S.Xt.COMPLETE?r.qy` 127 <button 128 tabindex="-1" 129 type="button" 130 id="refresh-button" 131 class=${(0,n.H)({btn:!0,"video-control":!0,"hide-text-small":this.smallScreenHideText,"text-dark":"dark"===this.textColor,"text-light":"light"===this.textColor})} 132 @click=${this.handleButtonClick("refresh")} 133 title="Refresh video of camera ${this.viewTitle}" 134 part="button" 135 > 136 <svg role="presentation" part="icon" aria-hidden="true"> 137 <use href="${"/images/sprites.svg#refresh"}"></use> 138 </svg> 139 <span>${(0,O.t)("Refresh Video")}</span> 140 </button> 141 `:r.qy``} 142 ${this.videoState===S.Xt.ERRORING?r.qy` 143 <button 144 type="button" 145 id="retry-button" 146 class=${(0,n.H)({btn:!0,"video-control":!0,"hide-text-small":this.smallScreenHideText,"text-dark":"dark"===this.textColor,"text-light":"light"===this.textColor})} 147 @click=${this.handleButtonClick("retry")} 148 title="Reload video of camera ${this.viewTitle}" 149 part="button" 150 > 151 <svg role="presentation" part="icon" aria-hidden="true"> 152 <use href="${"/images/sprites.svg#refresh"}"></use> 153 </svg> 154 <span>${(0,O.t)("Retry Video")}</span> 155 </button> 156 `:r.qy``} 157 `}connectedCallback(){super.connectedCallback()}disconnectedCallback(){super.disconnectedCallback()}willUpdate(e){super.willUpdate(e),e.has("videoState")&&(this.firstLoad||(this.firstLoad=!0))}};I([(0,a.MZ)({type:String})],M.prototype,"viewTitle",2),I([(0,a.MZ)({type:String})],M.prototype,"videoState",2),I([(0,a.MZ)({type:String})],M.prototype,"textColor",2),I([(0,a.MZ)({type:Boolean})],M.prototype,"smallScreenHideText",2),I([(0,a.MZ)({type:Boolean})],M.prototype,"firstLoad",2),M=I([(0,a.EM)("video-player-control
157s-list-view")],M),i(33106);var N=i(38155),B=Object.defineProperty,H=Object.getOwnPropertyDescriptor,D=(e,t,i,s)=>{for(var r,o=s>1?void 0:s?H(t,i):t,a=e.length-1;a>=0;a--)(r=e[a])&&(o=(s?r(t,i,o):r(o))||o);return s&&o&&B(t,i,o),o};let X=class extends((0,l.N)(v.A)(r.WF)){constructor(){super(...arguments),this.href="#",this.anchorRef=(0,N._)()}static get styles(){return[b.A,r.AH` 158 a.btn.btn-link { 159 padding: calc(var(--gap) - 0.25rem); 160 margin: 0.25rem; 161 } 162 163 .square-button { 164 position: relative; 165 width: 1rem; 166 height: 1rem; 167 } 168 169 .square-a { 170 width: 1rem; 171 height: 1rem; 172 border: 2px solid rgb(var(--dell-gray)); 173 background-color: white; 174 position: absolute; 175 top: 0.1rem; 176 right: 0.1rem; 177 } 178 179 .square-b { 180 width: 1rem; 181 height: 1rem; 182 border: 2px solid rgb(var(--dell-gray)); 183 background-color: white; 184 position: absolute; 185 top: -0.3rem; 186 right: -0.3rem; 187 } 188 `]}render(){return r.qy` <a 189 ${(0,N.K)(this.anchorRef)} 190 href="${this.href}" 191 class="btn btn-link" 192 title="See enlarged view" 193 > 194 <div class="square-button"> 195 <div class="square-a"></div> 196 <div class="square-b"></div> 197 </div> 198 </a>`}connectedCallback(){super.connectedCallback(),this.focusAnchorCallback=this.focusAnchor.bind(this),document.addEventListener("media-modal-dismissed",this.focusAnchorCallback)}disconnectedCallback(){super.disconnectedCallback(),this.focusAnchorCallback&&document.removeEventListener("media-modal-dismissed",this.focusAnchorCallback)}focusAnchor(e){const t=e?.detail?.href;this.href===t&&setTimeout((()=>this.anchorRef?.value?.focus()),0)}};D([(0,a.MZ)({type:String})],X.prototype,"href",2),X=D([(0,a.EM)("view-enlarged-link")],X),i(4169);var _=Object.defineProperty,Z=Object.getOwnPropertyDescriptor,G=(e,t,i,s)=>{for(var r,o=s>1?void 0:s?Z(t,i):t,a=e.length-1;a>=0;a--)(r=e[a])&&(o=(s?r(t,i,o):r(o))||o);return s&&o&&_(t,i,o),o};const z="crc:video:refetch";let U=class extends((0,l.N)(v.A)(r.WF)){constructor(){super(...arguments),this.error=!1,this.success=!1,this.renderTimeoutId=NaN,this.renderVideo=!0,this.videoState=S.Xt.NONE}static get styles(){return[w.A,y.A,E.A,b.A,r.AH` 199 .list-card { 200 height: 100%; 201 } 202 203 .video-control { 204 padding: 0; 205 display: flex; 206 font-size: 1rem; 207 } 208 209 .video-control > svg { 210 width: 2rem; 211 height: 2rem; 212 fill: rgb(var(--dark-blue)); 213 } 214 215 .video-control > span { 216 margin-left: 0.5rem; 217 } 218 219 .video-player-container { 220 position: relative; 221 } 222 223 .video-player-overlay { 224 position: absolute; 225 top: 0; 226 left: 0; 227 width: 100%; 228 height: 100%; 229 } 230 231 video-player { 232 height: 100%; 233 width: 100%; 234 } 235 236 .right { 237 margin-left: auto; 238 margin-right: var(--gap); 239 } 240 241 .btn-link { 242 font-size: 1rem; 243 cursor: pointer; 244 margin-top: calc(var(--gap) / 3); 245 } 246 247 video-player-controls-list-view::part(button) { 248 padding: calc(var(--gap) - 0.25rem); 249 margin: 0.25rem; 250 } 251 252 video-player-controls-list-view::part(icon) { 253 width: 1.5rem; 254 height: 1.5rem; 255 } 256 `]}trackVideoState(e){const t=e.detail.state;if(t===S.Xt.PLAYING){v.A.dispatch({type:L.w.GTAG_VIDEO_PLAY});const e=(0,R.h)(z,{detail:"system"});if(this.dispatchEvent(e),c.mc?.tokenized){const e=this.view?.sources?.[0]?.src??"";if(null!=e&&""!==e){let t=Date.now();const i=new URL(e),s=i.searchParams.get("token");let r=!1;if(null!=s)try{const e=(0,C.s)(s);null!=e?.exp&&(t=1e3*e.exp,r=!0)}catch(e){}const o=i.searchParams.get("startBy");!r&&null!=o&&/\d+/.test(o)&&(t=parseInt(o,10));const a=Date.now();if(t>a){const e=t-a,i=3e3,s=e-i>0?e-i:e;clearTimeout(this.playingRefetchTimeoutId),this.playingRefetchTimeoutId=window.setTimeout((()=>{v.A.dispatch((0,g.q)());const e=(0,R.h)(z,{detail:"system"});this.dispatchEvent(e)}),s)}}}}else null!=this.playingRefetchTimeoutId&&window.clearTimeout(this.playingRefetchTimeoutId);t===S.Xt.PAUSED&&v.A.dispatch({type:L.w.GTAG_VIDEO_PAUSE}),null!=c.mc&&([S.Xt.LOADING,S.Xt.PLAYING].includes(this.videoState)&&[S.Xt.COMPLETE,S.Xt.PAUSED].includes(t)?(clearTimeout(this.renderTimeoutId),this.renderTimeoutId=window.setTimeout((()=>{this.renderVideo=!1,window.setTimeout((()=>{this.renderVideo=!0,this.videoState=S.Xt.COMPLETE}),0)}),c.mc.playbackTimeLimit)):[S.Xt.COMPLETE,S.Xt.PAUSED].includes(this.videoState)&&[S.Xt.LOADING,S.Xt.PLAYING].includes(t)&&(clearTimeout(this.renderTimeoutId),this.renderTimeoutId=NaN)),this.videoState=t}handleControlAction(e){if(null==this.videoPlayer)return;const{action:t}=e.detail;t===P.ez.PLAY&&c.mc?.onlyAllowOneListVideo&&U.stopOrResetPreviousVideo(this.videoPlayer);const i=this.videoPlayer;(0,S.JI)(i,t),U.stopOrResetPreviousVideo=e=>{e!==this.videoPlayer&&(clearTimeout(this.renderTimeoutId),this.renderVideo=!1,this.renderTimeoutId=window.setTimeout((()=>{this.renderVideo=!0}),0))}}videoClicked(){null!=this.videoPlayer&&(c.mc?.onlyAllowOneListVideo&&U.stopOrResetPreviousVideo(this.videoPlayer),U.stopOrResetPreviousVideo=e=>{e!==this.videoPlayer&&(clearTimeout(this.renderTimeoutId),this.renderVideo=!1,this.renderTimeoutId=window.setTimeout((()=>{this.renderVideo=!0}),0))})}updated(e){if(e.has("renderVideo")&&(e.get("renderVideo")||(this.videoState=S.Xt.PAUSED)),e.has("view")){const e=document.createElement("img");e.src=this.view?.url||"",e.onerror=()=>{this.error=!0},e.onload=()=>{this.success=!0,this.error=!1}}}
256determineBackgroundImage(){return this.error?"/images/icon-camera-closed-fill-solid-padded.svg":this.error||this.success?this.view?.url||"":"/images/loading.svg"}renderVideoButton(){return this.view?.url===c.QW["camera-video-unavailable"]?null:r.qy`<video-player-controls-list-view 257 videoState=${this.videoState} 258 viewTitle=${this.view?.title||""} 259 textColor="dark" 260 @crc:video:action=${this.handleControlAction} 261 ></video-player-controls-list-view>`}handlePause(e){if(c.mc?.tokenized){v.A.dispatch((0,g.q)());const e=(0,R.h)(z,{detail:"system"});this.dispatchEvent(e)}}render(){if(!this.view)return r.qy``;const e=this.view?.category===p.NaE.VIDEO;return r.qy` 262 <div class="card list-card"> 263 <div class="list-card-title"> 264 <h3 class="list-card-title-text" ignore>${this.view?.title}</h3> 265 </div> 266 267 <div 268 class="list-card-img video-player-container" 269 @click=${this.videoClicked} 270 style=${(0,A.W)({"background-image":e?"":`url(${this.determineBackgroundImage()})`,cursor:e?"pointer":"auto","background-size":this.view?.url===c.QW["camera-video-unavailable"]?"contain":"cover"})} 271 role="img" 272 aria-label="${(0,$.J)(this.view.title)}" 273 > 274 ${e?r.qy`<div class="video-player-overlay"> 275 ${this.renderVideo?(0,x.D)(this.view?.uri??"",r.qy` <video-player 276 @crc:video:stateChange=${this.trackVideoState} 277 @crc:video:paused=${this.handlePause} 278 .sources=${this.view?.sources} 279 poster=${(0,$.J)(this.view?.url??void 0)} 280 component="card" 281 ></video-player>`):null} 282 </div>`:r.qy``} 283 </div> 284 285 <div class="list-card-footer"> 286 ${e?this.renderVideoButton():r.qy``} 287 288 <div class="right"> 289 <view-on-map-link 290 .href="#${T.UG.MAP}/${this.view.parentCollection.uri}" 291 ></view-on-map-link> 292 <view-enlarged-link 293 .href="#${T.UG.MEDIA}/${this.view.uri}" 294 ></view-enlarged-link> 295 </div> 296 </div> 297 </div> 298 `}};U.stopOrResetPreviousVideo=()=>{},G([(0,a.MZ)({type:Object})],U.prototype,"view",2),G([(0,a.MZ)({type:Boolean,reflect:!0})],U.prototype,"error",2),G([(0,a.MZ)({type:Boolean,reflect:!0})],U.prototype,"success",2),G([(0,a.MZ)({type:Boolean})],U.prototype,"renderVideo",2),G([(0,a.MZ)({type:String})],U.prototype,"videoState",2),G([(0,a.P)("video-player")],U.prototype,"videoPlayer",2),U=G([(0,a.EM)("list-cameras-view")],U),i(15245);var j=Object.defineProperty,Y=Object.getOwnPropertyDescriptor,F=(e,t,i,s)=>{for(var r,o=s>1?void 0:s?Y(t,i):t,a=e.length-1;a>=0;a--)(r=e[a])&&(o=(s?r(t,i,o):r(o))||o);return s&&o&&j(t,i,o),o};let W=class extends((0,l.N)(v.A)(k.A)){constructor(){super(...arguments),this.listType=p.OXP.CAMERAS,this.refetchTimeout=setInterval((()=>{c.mc?.tokenized&&v.A.dispatch((0,g.q)())}),c.mc?.playbackTimeLimit?c.mc.playbackTimeLimit+3e4:15e4),this.refetchedVideos=(0,u.A)((()=>{clearInterval(this.refetchTimeout),this.refetchTimeout=setInterval((()=>{c.mc?.tokenized&&v.A.dispatch((0,g.q)())}),c.mc?.playbackTimeLimit?c.mc.playbackTimeLimit+3e4:15e4)}),750)}static get styles(){const e=(0,r.iz)(p.EA.PHONE_XL);return[y.A,f.A,b.A,w.A,r.AH` 299 /* for android upper and lower bars */ 300 :host { 301 display: block; 302 background-color: #fff; 303 box-shadow: var(--shadow-sm); 304 border-top: var(--border-width) solid rgb(var(--silver)); 305 border-bottom: var(--border-width) solid rgb(var(--silver)); 306 } 307 308 .notification { 309 grid-area: 2 / 1 / -1 / -1; 310 } 311 312 .controls { 313 border-bottom: var(--border-width) solid rgb(var(--silver)); 314 } 315 316 @media all and (min-width: ${e}) { 317 .list-card-gallery { 318 grid-template-columns: repeat(auto-fit, minmax(25rem, 1fr)); 319 } 320 } 321 `]}render(){if(!this.cameraViewList)return r.qy`${this.renderLoadingSpinner()}`;const e=Object.keys(this.cameraViewList);return r.qy` 322 <h1 class="list-page-header"> 323 ${s.zx.find((({slug:e})=>e===this.page))?.label} 324 </h1> 325 <div id="scroll-sentinel"></div> 326 <div 327 id="sticky-controls" 328 class=${(0,n.H)({"sticky-header":!0,controls:!0,"sticky-header--shadow":this.isHeaderStuck})} 329 > 330 ${this.renderControls()} 331 ${this.isOffline||this.error?.type!==p.i65.INTERNAL_SERVER_ERROR?void 0:r.qy` 332 <div class="notification notification--error"> 333 ${(0,h._)(c.s1.error.application)} 334 </div> 335 `} 336 ${this.isOffline?r.qy` 337 <div class="notification notification--warning"> 338 ${(0,h._)(c.s1.error.network)} 339 </div> 340 `:void 0} 341 </div> 342 ${e.length||this.error?void 0:r.qy`<div class="notification notification--warning">${this.renderNoData()}</div>`} 343 ${e.length?r.qy`<div class="list-card-gallery"> 344 ${(0,o.u)(e,(e=>e),(e=>r.qy` <h2 class="list-card-gallery-title">${e}</h2> 345 ${null==this.cameraViewList?.[e]?r.s6:(0,o.u)(this.cameraViewList[e],(({url:e,uri:t})=>e||t),(e=>r.qy`<list-cameras-view 346 .view=${e} 347 @crc:video:refetch=${()=>this.refetchedVideos()} 348 ></list-cameras-view>`))}`))} 349 </div>`:void 0} 350 `}renderFilters(){const e=c.YA.listCameraConfig?.normalCameraLabel||"Normal Cameras",t=c.YA.listCameraConfig?.hotCameraLabel||c.Wx["dashboard.camera.header"]||"Hot Cameras";return r.qy` 351 <ow-multi-select 352 name="roadway" 353 label="Roadway" 354 class="form-element filter-select" 355 .value=${(0,d.V)(this.routes)} 356 .categorizedChoices=${this.getMultiSelectRoadwayChoices()} 357 ?loading=${!this.allRoutes} 358 @change=${this.filterPredRoutes} 359 ></ow-multi-select> 360 <ow-multi-select 361 name="area" 362 label="Predefined area" 363 class="form-element filter-select" 364 .value=${(0,d.V)(this.areas)} 365 .categorizedChoices=${this.getAllPredefinedAreaChoices()} 366 ?loading=${!this.allPredefinedAreas} 367 @change=${this.filterArea} 368 ></ow-multi-select> 369 ${c.YA.disableCameraStatusFilter?r.qy``:r.qy`<ow-multi-select 370 name="status" 371 label="Status" 372 class="form-element filter-select" 373 .value=${(0,d.V)(this.classificationsOrSlugs)} 374 .categorizedChoices=${[{choices:[{id:p.f2p.NORMAL_CAMERA,label:e},{id:p.f2p.HOT_CAMERA,label:t}]}]} 375 @change=${this.filterType} 376 ></ow-multi-select>`} 377 `}stateChanged(e){this.allPredefinedAreas=e.filterList.allPredefinedAreas,this.allRoutes=e.filterList.allRoutes,this.sortDirection=e.filterList.sortDirection,this.sortType=e.filterList.sortType,this.freeSearchTerm=e.filterList.freeSearchTerm,this.routes=e.filterList.routes,this.areas=e.filterList.areas,this.classificationsOrSlugs=e.f
377ilterList.classificationsOrSlugs,this.page=e.routingList.page,this.pageRecordLimit=e.filterList.pageRecordLimit,this.currentPage=e.filterList.currentPage,this.totalRecords=e.filterList.totalRecords,this.cameraViewList=(0,m.V)(e),this.isLoading=e.cameraList.isLoading,this.modalView=e.modalList.modalView,this.isOffline=e.layoutList.isOffline,this.error=e.cameraList.error}};F([(0,a.MZ)({type:Array})],W.prototype,"cameraViewList",2),W=F([(0,a.EM)("list-cameras")],W)},65585:(e,t,i)=>{i.d(t,{A:()=>s});const s=(e,t)=>t.composedPath?!!t.composedPath().find((t=>e===t)):!!e.contains(t.target)}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.