1!function(){try{("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).__faroGitHash_myeroad="5ce3e63ee526711d9fdee9e150f093852f3a7cc4"}catch(e){}}(),function(){try{("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).__faroBundleId_myeroad="10.1.5092-apac"}catch(e){}}();try{let e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},a=(new e.Error).stack;a&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[a]="103c4f61-7fe5-4873-ac17-e5a1c07d802b",e._sentryDebugIdIdentifier="sentry-dbid-103c4f61-7fe5-4873-ac17-e5a1c07d802b")}catch(e){}("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{}).SENTRY_RELEASE={id:"10.1.5092-apac"},(self.webpackChunk_eroad_myeroad=self.webpackChunk_eroad_myeroad||[]).push([[7191],{2759:(e,a,t)=>{t.d(a,{q:()=>i});var s=t(70541),n=t(82162),o=t(62009);const i=()=>{const{organisationId:e}=(0,s.d4)(n.T.getSelectedOrganisation);return{isDashcamFaultsEnabled:!0===(0,o.F)("dashcams.showFaults","showFaultsWhitelist",e),showEnhancedManageDetectors:!0===(0,o.F)("dashcams.showEnhancedManageDetectors"),showRollingStopDetector:!0===(0,o.F)("dashcams.showRollingStopDetector","showRollingStopDetectorWhitelist",e),showOverSpeedDetector:!0===(0,o.F)("dashcams.showOverSpeedDetector","showOverSpeedDetectorWhitelist",e)}}},4525:(e,a,t)=>{t.d(a,{S:()=>m});var s=t(52711),n=t(44448),o=t(14041),i=Object.defineProperty,l=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable,d=(e,a,t)=>a in e?i(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t;const m=e=>{var a=e,{accordion:t=!1,bordered:i=!0,"data-testid":m,"data-pendoid":h,destroyInactivePanel:u=!1,expandIconPosition:p="start",ghost:g=!1,size:f=n.o.MIDDLE}=a,A=((e,a)=>{var t={};for(var s in e)r.call(e,s)&&a.indexOf(s)<0&&(t[s]=e[s]);if(null!=e&&l)for(var s of l(e))a.indexOf(s)<0&&c.call(e,s)&&(t[s]=e[s]);return t})(a,["accordion","bordered","data-testid","data-pendoid","destroyInactivePanel","expandIconPosition","ghost","size"]);return o.createElement(s.A,((e,a)=>{for(var t in a||(a={}))r.call(a,t)&&d(e,t,a[t]);if(l)for(var t of l(a))c.call(a,t)&&d(e,t,a[t]);return e})({accordion:t,bordered:i,"data-pendoid":null!=h?h:"ui-library-collapse-pendo","data-testid":null!=m?m:"ui-library-collapse",destroyInactivePanel:u,expandIconPosition:p,ghost:g,size:f},A))}},13350:(e,a,t)=>{t.d(a,{x:()=>m});var s=t(14041),n=t(70541),o=t(19615),i=t(62664),l=t(94462),r=t(40508),c=t(66838),d=t(22088);const m=()=>{const e=(0,n.wA)(),a=(0,i.Zp)(),t=(0,i.zy)(),[m]=(0,i.ok)(),h="true"===m.get("default"),{availableDashcamPlans:u=[]}=(0,n.d4)(d.T.getDashcamPlansStatuses)||{};(0,o.y)(()=>{e(r.o.fetchAvailableDashcamPlans())}),(0,s.useEffect)(()=>{if(0===u.length)return;const e=(0,l.Zl)(u),s=(0,l.h7)(u),n=!s;!e||h&&s?t.pathname!==c.Io.CLARITY_EDGE&&a(c.Io.CLARITY_EDGE):n&&t.pathname!==c.Io.CLARITY&&a(c.Io.CLARITY)},[u,h,t.pathname,a])}},22088:(e,a,t)=>{t.d(a,{T:()=>B});var s=t(39552),n=t(76787),o=t(12291),i=t(51962),l=t(93753),r=t(18198),c=t(94462),d=t(66838),m=t(43499),h=Object.defineProperty,u=Object.defineProperties,p=Object.getOwnPropertyDescriptors,g=Object.getOwnPropertySymbols,f=Object.prototype.hasOwnProperty,A=Object.prototype.propertyIsEnumerable,D=(e,a,t)=>a in e?h(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,E=(e,a)=>{for(var t in a||(a={}))f.call(a,t)&&D(e,t,a[t]);if(g)for(var t of g(a))A.call(a,t)&&D(e,t,a[t]);return e},S=(e,a)=>u(e,p(a));const b=r.$n.DASHCAMS,y=[],I=e=>e[b].dashcams,v=e=>e[b].dashcamsQuery,N=e=>e[b].modal,C=e=>e[b].vehicles,O=e=>e[b].snapshots,_=e=>e[b].dashcamsNotifications,T=e=>e[b].dashcamAiDetectorSettings,w=(0,s.Mz)(I,N,({byId:e},{dashcam:a})=>{var t,s;return null!=(s=a.id?null==(t=e[a.id])?void 0:t.dashcamSettings:void 0)?s:y}),R=(0,s.Mz)(e=>e[b],e=>e.dashcamSelection),P=(0,s.Mz)(e=>e[b].dashcamProducts,({products:e,addOns:a,deviceConfigs:t,request:s})=>{const n=null!=e?e:[],o=null!=a?a:[],{productName:i,recordingPlans:r}=n.find(({selected:e})=>e)||{},{planName:c}=(null==r?void 0:r.find(({selected:e})=>e))||{},d=o.reduce((e,a)=>{const{addOnName:t,selected:s}=a;return s?S(E({},e),{[t]:s}):e},{}),m=o.filter(({addOnName:e})=>Object.values(l.oH.ADDON_NAMES).includes(e));return{products:n,addOns:o,mainAddOns:m,request:s,defaultProductName:i,defaultRecordingPlan:c,addOnValues:d,configs:(null!=t?t:[]).reduce((e,a)=>{const{name:t,value:s}=a;return S(E({},e),{[t]:s})},{})}}),L=(0,s.Mz)(P,N,(e,{dashcamType:a})=>{const{products:t}=e,{clarityDashcamProducts:s=[],clarityEdgeProducts:n=[]}=(e=>(null==e?void 0:e.reduce((e,a)=>{const{productName:t}=a;return(0,c.P7)(t)?e.clarityEdgeProducts.push(a):e.clarityDashcamProducts.push(a),e},{clarityEdgeProducts:[],clarityDashcamProducts:[]}))||{})(t);return S(E({},e),{products:(0,c.VI)(a)?n:s})}),M=(0,s.Mz)(T,({deviceFeatures:e=[],updateSuccessCount:a})=>S(E({},(0,m.zz)(e)),{updateSuccessCount:a})),F=(0,s.Mz)(e=>e[b].dashcamAiDetectorSettingsUpdate,({request:{status:e}})=>({isDetectorsUpdating:e===n.IQ.PENDING,isDetectorsUpdateFailed:e===n.IQ.FAILED})),k=(0,s.Mz)(T,({request:{status:e}})=>e===n.IQ.PENDING),H=(0,s.Mz)(e=>e[b].bulkDashcamAiDetectorSettingsUpdate,({request:{status:e}})=>({isBulkDetectorsUpdating:e===n.IQ.PENDING,isBulkDetectorsUpdateFailed:e===n.IQ.FAILED})),U=(0,s.Mz)(F,H,e=>e[b].dashcamAiDetectorSettingsRefetch,({isDetectorsUpdating:e},{isBulkDetectorsUpdating:a},{isPending:t})=>e||a||t),G=(0,s.Mz)(e=>e[b].dataRetention,e=>e[b].dataRetentionPeriodUpdateStatus,e=>e[b].dataRetentionDashcamInfo,({period:e,request:{status:a}},{request:{status:t}={}},{dashcamCount:s,currencyUnit:o,periods:i,request:{status:l}={}})=>{var r;const c=l===n.IQ.SUCCESS&&Boolean(s&&o&&i),m=e?null==(r=d.fv[e])?void 0:r.months:void 0;return{dataRetentionPeriodInMonths:m,dataRetentionPeriod:e,status:a,updateRequestStatus:t,dashcamCount:s,currencyUnit:o,periods:i,fetchDashcamInfoStatus:l,dataRetentionInfoLoading:a===n.IQ.PENDING||l===n.IQ.PENDING,dashcamInfoAvailable:c,dataRetentionPeriodAvailable:a===n.IQ.SUCCESS&&Boolean(m)&&c}}),x=(0,s.Mz)(v,C,({filters:e},a)=>e.isAllSelected?[]:a.reduce((a,t)=>(e.assetIds&&e.assetIds.includes(t.id)&&a.push(t.displayName),a),[])),V=(0,s.Mz)(O,({result:{frontSnapshotDateTimeInUtc:e,rearSnapshotDateTimeInUtc:a}={}}
1)=>!!e&&(a&&(0,o.Y)(a,e)?a:e)),j=(0,s.Mz)(_,({eventTypes:e=[],aiDashcamNotificationTypes:a=[],request:{status:t}})=>({notificationStatuses:[...e,...a].filter(i.O),requestProcessing:t===n.IQ.PENDING})),Y=(0,s.Mz)(e=>e[b].dashcamPlans,({availableDashcamPlans:e,request:{status:a}})=>{const t=null==e?void 0:e.length,s=!t||1===(null==e?void 0:e.length)&&(0,c._1)(e[0]),o=t===(null==e?void 0:e.filter(e=>e===l.oH.PLAN_NAMES.CLARITY_GET_DUAL||e===l.oH.PLAN_NAMES.CLARITY_GET_FRONT||(0,c._1)(e)).length);return{availableDashcamPlans:e,requestProcessing:a===n.IQ.PENDING,containsOnlyLocateOrNoPlansAvailable:s,containsOnlyLocateOrGet:o,dashcamPlansAvailable:Boolean(t)}}),B={getAvailabilityToAssignDashcam:e=>e[b].availabilityToAssignDashcam,getBulkDashcamAiDetectorSettingsUpdateStatus:H,getDashcamAiDetectors:T,getDashcamAiDetectorsGrouped:M,getDashcamAiDetectorSettingsUpdateStatus:F,getDashcamFleets:e=>e[b].fleets,getDashcamInfo:e=>e[b].info,getDashcamModal:N,getDashcamModalProducts:L,getDashcamNotificationStatuses:j,getDashcamOfflineNotificationData:(0,s.Mz)(e=>e[b].dashcamsOfflineNotifications,({offlineInterval:e,request:{status:a}})=>({notificationEnabled:Boolean(e),offlineInterval:e,requestProcessing:a===n.IQ.PENDING})),getDashcamPlansStatuses:Y,getDashcamProducts:P,getDashcams:I,getDashcamsNotifications:_,getDashcamsQuery:v,getDashcamSelection:R,getDashcamSettings:w,getDashcamStats:e=>e[b].stats,getDashcamVehicles:C,getDashcamVideoSummaryNotificationData:(0,s.Mz)(e=>e[b].dashcamVideoSummaryNotification,({eventSummaryTimePeriod:e,request:{status:a}})=>({notificationEnabled:Boolean(e),requestProcessing:a===n.IQ.PENDING})),getDataRetentionPeriod:G,getDriverLogon:e=>e[b].driverLogon,getIsDetectorSettingsFetching:k,getIsDetectorSettingsUpdating:U,getLatestSnapshotDatetime:V,getSelectedVehicleNames:x,getSnapshots:O}},24637:(e,a,t)=>{t.d(a,{A:()=>w});var s=t(43420),n=t(2175),o=t(18198),i=t(66838),l=t(44053),r=t(43499);const c=(0,t(1454).wY)(e=>({tabsWrapper:{margin:`0 ${e.spacing(4)}px`},tableData:{display:"flex",justifyContent:"center",textAlign:"center",margin:`${e.spacing(1)}px 0`},tableDataDetectorName:{margin:`${e.spacing(1)}px 0`},tableHeader:{fontWeight:e.typography.weights.medium},inCabAlertInfo:{marginTop:e.spacing(4)}}),{name:"DetectorSettingsTabs"});var d=t(40026),m=t(14041);const h=()=>{const e=c();return m.createElement(d.y,{gutter:[12,8]},m.createElement(d.f,{span:16,className:e.tableHeader},m.createElement(s.s,{id:"dashcams.detectors.management.drawer.tab.table.title.detectors"})),m.createElement(d.f,{span:4,className:e.tableHeader},m.createElement(s.s,{id:"dashcams.detectors.management.drawer.tab.table.title.enableDetector"})),m.createElement(d.f,{span:4,className:e.tableHeader},m.createElement(s.s,{id:"dashcams.detectors.management.drawer.tab.table.title.enableInCabAlert"})))};var u=t(28871),p=t(95141),g=t(14041);const f=({detector:e,selectedAiDetectors:a,selectedAiDetectorsInCabAlert:t,detectorSelectionState:n,inCabAlertSelectionState:o,onChangeAiDetectors:r,onChangeInCabAlert:m})=>{const h=c(),f=i.hg[e],A=f.inCabAudioDetector,D=n===l.Xh.ENABLED||(0,u.b)(n)&&(null==a?void 0:a.includes(e)),E=n===l.Xh.MIXED,S=(0,u.b)(n)?a.includes(e):n===l.Xh.ENABLED,b=o===l.Xh.ENABLED||(0,u.b)(o)&&(null==t?void 0:t.includes(A)),y=o===l.Xh.MIXED;return g.createElement(d.y,null,g.createElement(d.f,{span:16,className:h.tableDataDetectorName},g.createElement(s.s,{id:f.detectorNameMessageId})),g.createElement(d.f,{span:4,className:h.tableData},g.createElement(p.S,{"data-testid":`dashcam-detector-checkbox-${e}`,"data-pendoid":`dashcam-detector-checkbox-${e}`,checked:D,indeterminate:E,onChange:r(e,A)})),g.createElement(d.f,{span:4,className:h.tableData},g.createElement(p.S,{"data-testid":`dashcam-detector-in-cab-alert-checkbox-${A}`,"data-pendoid":`dashcam-detector-in-cab-alert-checkbox-${A}`,checked:b,indeterminate:y,onChange:m(A),disabled:!S})))},A=e=>e in i.hg,D=e=>e in i.Be;var E=t(14041),S=Object.defineProperty,b=Object.defineProperties,y=Object.getOwnPropertyDescriptors,I=Object.getOwnPropertySymbols,v=Object.prototype.hasOwnProperty,N=Object.prototype.propertyIsEnumerable,C=(e,a,t)=>a in e?S(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,O=(e,a)=>{for(var t in a||(a={}))v.call(a,t)&&C(e,t,a[t]);
1if(I)for(var t of I(a))N.call(a,t)&&C(e,t,a[t]);return e},_=(e,a)=>b(e,y(a));const T={selectedAiDetectors:[],selectedAiDetectorsInCabAlert:[]},w=({"data-testid":e,allDetectors:a,defaultCameraType:t=o.db.ROAD_FACING,showRollingStopDetector:d=!1,showOverSpeedDetector:m=!1,value:u=T,onChange:p=()=>{}})=>{const g=c(),{selectedAiDetectors:S,selectedAiDetectorsInCabAlert:b,detectorSelectionStates:y,inCabAlertSelectionStates:I}=u,v=new Map(null==y?void 0:y.map(({name:e,selectionState:a})=>[e,a])),N=new Map(null==I?void 0:I.map(({name:e,selectionState:a})=>[e,a])),C=(e,a)=>t=>{const s=null==y?void 0:y.map(a=>a.name===e?_(O({},a),{selectionState:t.target.checked?l.Xh.ENABLED:l.Xh.DISABLED}):a);if(t.target.checked)p(O(O({selectedAiDetectors:(0,r.Nj)({names:S,name:e,checked:!0}),selectedAiDetectorsInCabAlert:b},s?{detectorSelectionStates:s}:{}),I?{inCabAlertSelectionStates:I}:{}));else{const t=null==I?void 0:I.map(e=>e.name===a?_(O({},e),{selectionState:l.Xh.DISABLED}):e);p(O(O({selectedAiDetectors:S.filter(a=>a!==e),selectedAiDetectorsInCabAlert:b.filter(e=>e!==a)},s?{detectorSelectionStates:s}:{}),t?{inCabAlertSelectionStates:t}:{}))}},w=e=>a=>{const t=null==I?void 0:I.map(t=>t.name===e?_(O({},t),{selectionState:a.target.checked?l.Xh.ENABLED:l.Xh.DISABLED}):t);p(O(O({selectedAiDetectors:S,selectedAiDetectorsInCabAlert:(0,r.Nj)({names:b,name:e,checked:a.target.checked})},y?{detectorSelectionStates:y}:{}),t?{inCabAlertSelectionStates:t}:{}))},R=(({allDetectors:e,showRollingStopDetector:a,showOverSpeedDetector:t})=>{const s=Object.keys(i.Be).filter(D),n=Object.keys(i.hg).filter(A);return s.map(s=>{const o=[];for(const l of n){const n=i.hg[l],r=l===i.zO.DASHCAM_AI_ROAD_STOP_SIGN_VIOLATION&&!a,c=l===i.zO.DASHCAM_AI_ROAD_SPEED_SIGN_VIOLATION&&!t;r||c||e.includes(l)&&(null==n?void 0:n.cameraType)===s&&o.push(l)}return{cameraType:s,visibleDetectorsForCameraType:o}}).filter(({visibleDetectorsForCameraType:e})=>e.length>0)})({allDetectors:a,showRollingStopDetector:d,showOverSpeedDetector:m});return E.createElement(n.t,{className:g.tabsWrapper,"data-testid":e,defaultActiveKey:t,items:R.map(({cameraType:e,visibleDetectorsForCameraType:a})=>{var t;return{key:e,label:E.createElement(s.s,{id:null==(t=i.Be[e])?void 0:t.messageId,tagName:"span"}),children:E.createElement(E.Fragment,null,E.createElement(h,null),a.map(a=>E.createElement(f,{key:`dashcam-detector-row-${e}-${a}`,detector:a,selectedAiDetectors:S,selectedAiDetectorsInCabAlert:b,detectorSelectionState:v.get(a),inCabAlertSelectionState:N.get(i.hg[a].inCabAudioDetector),onChangeAiDetectors:C,onChangeInCabAlert:w})),e===o.db.DRIVER_FACING&&E.createElement("div",{className:g.inCabAlertInfo},E.createElement(s.s,{id:"dashcams.detectors.management.drawer.tab.table.info.inCabAlert",tagName:"div"})))}})})}},24889:(e,a,t)=>{t.r(a),t.d(a,{default:()=>T});var s=t(70541),n=t(37506),o=t(82162),i=t(62009),l=t(18198),r=t(92644),c=t(66838),d=t(71476),m=t(13350),h=t(90798),u=t(68422),p=t(58699),g=t(76787),f=t(43420),A=t(80601),D=t(62664),E=t(4078),S=t(5358),b=t(1303),y=t(40508),I=t(22088),v=t(48929),N=t(14041);const C=({sessionStorageDashcamFiltersKey:e})=>{const a=(0,s.wA)(),{t}=(0,A.t)(),n=(0,D.Zp)(),{request:o,result:i}=(0,s.d4)(I.T.getDashcams),r=(0,s.d4)(I.T.getDashcamsQuery);return N.createElement(S.XI,{"data-testid":"dashcams-table",loading:o.status===g.IQ.PENDING,dataSource:i.data,columns:v.$,pagination:{current:r.pageNumber,pageSize:r.pageSize,pageSizeOptions:[10,20,50,100],total:i.totalRecords},sortColumnKey:r.orderBy,sortOrder:r.orderDesc?"descend":"ascend",onSortChange:e=>a(y.o.dashcamTableSortChange(e)),onPageNumberChange:t=>{a(y.o.dashcamTablePageChange({pageNumber:t,sessionStorageDashcamFiltersKey:e}))},onPageSizeChange:e=>a(y.o.dashcamTablePageSizeChange(e)),onRow:e=>({onClick:()=>{switch(e.lifeCycleState){case c.g4.PENDING_INSTALL:E.a.warning({title:t("dashcams.table.warning.pendingInstall.title"),content:t("dashcams.table.warning.pendingInstall.message")});break;case c.g4.PENDING_ASSIGNMENT:E.a.warning({title:t("dashcams.table.warning.pendingAssignment.title"),content:t("dashcams.table.warning.pendingAssignment.message")});break;default:n((0,b.tW)(c.I7[l.YN.CLARITY].DASHCAM_HEALTH,{recordId:e.id}))}}}),locale:{emptyText:N.createElement(f.s,{id:"dashcams.table.empty.message"})},disableHorizontalScroll:!0})};var O=t(35534),_=t(14041);const T=(0,h.A)(()=>{var e;const{username:a}=null!=(e=(0,s.d4)(o.T.getUserProfile))?e:{},{organisationId:t}=(0,s.d4)(o.T.getSelectedOrganisation),h=(0,i.F)("dashcams.showClarityEdgeTab","showClarityEdgeTabWhitelist",t),g=`${c.fp.CLARITY}-${null==a?void 0:a.toUpperCase()}-${t}`;return(0,d.Y)({sessionStorageDashcamFiltersKey:g,subType:h?l.YN.CLARITY:null}),(0,m.x)(),_.createElement(n.YW,null,_.createElement(p.t,null),_.createElement(n.TK,null,!h&&_.createElement(r.r,null),_.createElement(O.q,{sessionStorageDashcamFiltersKey:g}),_.createElement(C,{sessionStorageDashcamFiltersKey:g})),_.createElement(u.w,null))})},35534:(e,a,t)=>{t.d(a,{q:()=>N});var s=t(14041),n=t(70541),o=t(43420),i=t(80601),l=t(15313),r=t(62457),c=t(79623),d=t(61418),m=t(68425),h=t(40508),u=t(66838),p=t(44053),g=t(57192),f=t(2759),A=t(22088);var D=t(14041),E=Object.defineProperty,S=Object.getOwnPropertySymbols,b=Object.prototype.hasOwnProperty,y=Object.prototype.propertyIsEnumerable,I=(e,a,t)=>a in e?E(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,v=(e,a)=>{for(var t in a||(a={}))b.call(a,t)&&I(e,t,a[t]);if(S)for(var t of S(a))y.call(a,t)&&I(e,t,a[t]);return e};const N=({isClarityEdge:e=!1,sessionStorageDashcamFiltersKey:a})=>{const t=(0,n.wA)(),{t:E}=(0,i.t)(),{isDashcamFaultsEnabled:S}=(0,f.q)(),b=(0,n.d4)(A.T.getIsDetectorSettingsUpdating),{searchString:y,filters:{lifeCycleState:I,rmaPending:N,assetIds:O=[],fleetIds:_=[],vendorFaultCodes:T=[]}}=(0,n.d4)(A.T.getDashcamsQuery),w=(0,n.d4)(A.T.getDashcamVehicles),R=(0,n.d4)(A.T.getDashcamFleets),[P,L]=(0,s.use
1State)(y),M=w.filter(e=>e.active).map(e=>({title:(0,m.M)({displayName:e.displayName,registration:e.registration}),value:e.id})),F=Object.values(p.nM).map((e,a)=>{const{titleMessageId:t}=(0,g.X)(e,a);return{title:E(t),value:e}}),k=S&&e,H=N&&I===u.g4.INSTALLED?u.g4.INSTALLED_PENDING_RMA:I,U=R.map(e=>({title:e.name,value:e.id}));return D.createElement(l.Qn,{disabled:b,onReset:()=>{t(h.o.dashcamTableResetFilters({sessionStorageDashcamFiltersKey:a})),L("")},search:D.createElement("span",{"data-testid":"dashcam-serial-search"},D.createElement(r.NJ,{enterButton:!0,value:P,onChange:e=>L(e.target.value),placeholder:E("dashcams.table.filter.search.placeholder"),onSearch:e=>{e&&e.length<2?c.i.info(E({id:"dashcams.table.filter.search.error.message",values:{strong:e=>D.createElement("strong",null,e)}})):t(h.o.dashcamTableSearchSubmitted({value:e,sessionStorageDashcamFiltersKey:a}))},allowClear:!0,"data-testid":"dashcam-data-search"}))},D.createElement(l.Qn.MobileGroupHeading,{text:D.createElement(o.s,{id:"dashcams.table.filter.lifecycle.mobileHeading"})}),D.createElement(d.l,{"data-testid":"lifecycle-filter",value:H,placeholder:E("dashcams.table.filter.lifecycle.placeholder"),onChange:e=>t(h.o.dashcamTableFilterChange({filters:v({},C(e)),sessionStorageDashcamFiltersKey:a})),fullWidth:!0,maxTagCount:1,options:u.cf.map(e=>({key:e.value,value:e.value,label:e.label}))}),D.createElement(l.Qn.MobileGroupHeading,{text:D.createElement(o.s,{id:"dashcams.table.filter.vehicles.mobileHeading"})}),D.createElement(l.yH,{onChange:e=>{t(h.o.selectVehicles({selectedVehicleIds:e,isAllSelected:M.length>0&&e.length===M.length,sessionStorageDashcamFiltersKey:a}))},parentNodeLabel:E("filters.vehicles.multiSelect.allSelectedTitle"),pendoId:"dashcams-filter-vehicles",placeholder:E("filters.vehicles.multiSelect.inputPlaceholder"),treeData:M,value:O}),D.createElement(l.Qn.MobileGroupHeading,{text:D.createElement(o.s,{id:"dashcams.table.filter.fleets.mobileHeading"})}),D.createElement(l.yH,{onChange:e=>{t(h.o.selectFleets({selectedFleetIds:e,isAllFleetsSelected:U.length>0&&e.length===U.length,sessionStorageDashcamFiltersKey:a}))},parentNodeLabel:E("filters.fleets.multiSelect.allSelectedTitle"),pendoId:"dashcams-filter-fleets",placeholder:E("filters.fleets.multiSelect.inputPlaceholder"),treeData:U,value:_}),k&&D.createElement(l.Qn.MobileGroupHeading,{text:D.createElement(o.s,{id:"dashcams.table.filter.faults.mobileHeading"})}),k&&D.createElement(l.yH,{testId:"faults-filter",pendoId:"dashcams-filter-faults",onChange:e=>{t(h.o.selectVendorFaultCodes({vendorFaultCodes:e,sessionStorageDashcamFiltersKey:a}))},parentNodeLabel:E("dashcams.table.filter.faults.all"),placeholder:E("dashcams.table.filter.faults.placeholder"),treeData:F,value:T}))},C=e=>e===u.g4.INSTALLED_PENDING_RMA?{lifeCycleState:u.g4.INSTALLED,rmaPending:!0}:e===u.g4.INSTALLED?{lifeCycleState:e,rmaPending:!1}:{lifeCycleState:e,rmaPending:void 0}},37547:(e,a,t)=>{t.d(a,{A:()=>l});var s=t(14041),n=t(79501),o=t(80601),i=t(57192);const l=()=>{const{t:e}=(0,o.t)(),a=(0,n.S)(e);return(0,s.useCallback)(e=>{if(null==e?void 0:e.length)return e.map(({name:e,value:t})=>{const s=(0,i.K)(t);
1return s?a.current({id:s}):e}).join(", ")},[a])}},40508:(e,a,t)=>{t.d(a,{o:()=>s});const s=(0,t(40421).E)("DASHCAMS",e=>({assignDashcam:e.asyncAction(),fetchDashcams:e.asyncAction(),fetchDashcamInfo:e.asyncAction(),fetchSnapshots:e.asyncAction(),fetchDashcamStats:e.asyncAction(),fetchDashcamAddOnsCounts:e.asyncAction(),reassignDashcam:e.asyncAction(),uninstallDashcam:e.asyncAction(),dashcamMachineSelected:e.action(),dashcamSelected:e.action(),dashcamTableLinkClick:e.action(),dashcamTableSearchSubmitted:e.action(),dashcamTableSortChange:e.action(),dashcamTablePageChange:e.action(),dashcamTablePageSizeChange:e.action(),dashcamSelectionChanged:e.action(),dashcamTableResetFilters:e.action(),dashcamTaskModalCancelClicked:e.action(),dashcamTableFilterChange:e.action(),lifeCycleStateFilterSelected:e.action(),fetchAuthorizedVehicles:e.asyncAction(),fetchAuthorizedFleets:e.asyncAction(),selectVehicles:e.action(),selectVendorFaultCodes:e.action(),selectFleets:e.action(),exportDashcams:e.asyncAction(),changePlanForMachine:e.asyncAction(),fetchDashcamsNotification:e.asyncAction(),updateDashcamsNotification:e.asyncAction(),deleteDashcamsNotification:e.asyncAction(),fetchDriverLogon:e.asyncAction(),fetchDashcamHealthStatistics:e.asyncAction(),fetchDataRetentionPeriod:e.asyncAction(),updateDataRetentionPeriod:e.asyncAction(),fetchDataRetentionDashcamInfo:e.asyncAction(),fetchDashcamsOfflineNotification:e.asyncAction(),updateDashcamsOfflineNotification:e.asyncAction(),deleteDashcamsOfflineNotification:e.asyncAction(),fetchDashcamProducts:e.asyncAction(),fetchDashcamAssignAvailability:e.asyncAction(),fetchAvailableDashcamPlans:e.asyncAction(),fetchDashcamVideoSummaryNotification:e.asyncAction(),updateDashcamVideoSummaryNotification:e.asyncAction(),deleteDashcamVideoSummaryNotification:e.asyncAction(),fetchAiDashcamDetectorSettings:e.asyncAction(),updateAiDashcamDetectorSettings:e.asyncAction(),updateBulkAiDashcamDetectorSettings:e.asyncAction()}))},43499:(e,a,t)=>{t.d(a,{FY:()=>h,Nj:()=>D,YF:()=>m,kn:()=>c,nM:()=>A,pH:()=>u,qu:()=>r,zz:()=>l});var s=t(66838),n=t(44053);const o=e=>Object.keys(s.zO).includes(e),i=e=>Object.keys(s.b8).includes(e),l=e=>{const[a,t,s,n]=e.reduce(([e,a,t,s],n)=>{const{name:l,enabled:r}=n;return o(l)&&(t.push(l),r&&e.push(l)),i(l)&&(s.push(l),r&&a.push(l)),[e,a,t,s]},[[],[],[],[]]);return{enabledDetectors:a,enabledInCabAlerts:t,allDetectors:s,allInCabAlerts:n}},r=(e,a,t,s)=>[...t.map(a=>({name:a,enabled:e.includes(a)})),...s.map(e=>({name:e,enabled:a.includes(e)}))],c=({allDetectors:e,selectedAiDetectors:a,currentDetectorSelectionStates:t=[],allInCabAlerts:s,selectedAiDetectorsInCabAlert:o,currentInCabAlertSelectionStates:i=[]})=>{const l=(e,a,t)=>{const s=new Map(t.map(({name:e,selectionState:a})=>[e,a]));return e.reduce((e,t)=>{const o=s.get(t);return o===n.Xh.MIXED?e.unchangedDeviceFeatureNames.push(t):e.deviceFeatures.push({name:t,enabled:o?o===n.Xh.ENABLED:a.includes(t)}),e},{deviceFeatures:[],unchangedDeviceFeatureNames:[]})},r=l(e,a,t),c=l(s,o,i);return{deviceFeatures:[...r.deviceFeatures,...c.deviceFeatures],unchangedDeviceFeatureNames:[...r.unchangedDeviceFeatureNames,...c.unchangedDeviceFeatureNames]}},d=(e,a)=>[...new Set(e.flatMap(({dashcamSettings:e})=>{var a;return null!=(a=null==e?void 0:e.map(({name:e})=>e))?a:[]}))].filter(a).map(a=>{const t=e.map(({dashcamSettings:e})=>{var t,s;return null!=(s=null==(t=null==e?void 0:e.find(e=>e.name===a))?void 0:t.enabled)&&s}),s=t.every(Boolean),o=t.every(e=>!e);let i=n.Xh.MIXED;return s?i=n.Xh.ENABLED:o&&(i=n.Xh.DISABLED),{name:a,selectionState:i}}),m=e=>e.filter(({selectionState:e})=>e===n.Xh.ENABLED).map(({name:e})=>e),h=e=>d(e,o),u=e=>d(e,i),p=(e,a)=>e.localeCompare(a),g=(e,a)=>JSON.stringify([...e].sort(p))===JSON.stringify([...a].sort(p)),f=(e,a)=>{const t=e=>[...null!=e?e:[]].sort((e,a)=>p(e.name,a.name));return JSON.stringify(t(e))===JSON.stringify(t(a))},A=({enabledDetectors:e,selectedAiDetectors:a,enabledInCabAlerts:t,selectedAiDetectorsInCabAlert:s,detectorSelectionStates:n,currentDetectorSelectionStates:o,inCabAlertSelectionStates:i,currentInCabAlertSelectionStates:l})=>{const r=!g(e,a),c=!g(t,s),d=!f(n,o),m=!f(i,l);return r||c||d||m},D=({names:e,name:a,checked:t})=>t?e.includes(a)?e:[...e,a]:e.filter(e=>e!==a)},44053:(e,a,t)=>{t.d(a,{$C:()=>s,Fj:()=>r,Xh:()=>i,_i:()=>n,nM:()=>o,vL:()=>l});var s=(e=>(e.CAMERA="camera",e.SD_CARD="sdCard",e))(s||{}),n=(e=>(e.ROAD_CAMERA="ROAD_CAMERA",e.DRIVER_CAMERA="DRIVER_CAMERA",e.FATIGUE="FATIGUE",e.DUAL_FATIGUE="DUAL_FATIGUE",e.LEFT_MIRROR_RAIL="LEFT_MIRROR_RAIL",e.RIGHT_MIRROR_RAIL="RIGHT_MIRROR_RAIL",e.LEFT_SIDE_FLUSH="LEFT_SIDE_FLUSH",e.RIGHT_SIDE_FLUSH="RIGHT_SIDE_FLUSH",e.REAR_OTHER="REAR_OTHER",e.REAR_ROAD="REAR_ROAD",e.STORAGE1="STORAGE1",e.STORAGE2="STORAGE2",e))(n||{}),o=(e=>(e.LENS_OCCLUSION="LENS_OCCLUSION",e.MEMORY_FAILURE="MEMORY_FAILURE",e.VIDEO_LOST="VIDEO_LOST",e))(o||{}),i=(e=>(e.ENABLED="ENABLED",e.DISABLED="DISABLED",e.MIXED="MIXED",e))(i||{}),l=(e=>(e.ASSIGN="ASSIGN",e.REASSIGN="REASSIGN",e.MANAGE_PLAN="MANAGE_PLAN",e.UNINSTALL="UNINSTALL",e))(l||{}),r=(e=>(e.MONTHS_3="3_MONTHS",e.MONTHS_6="6_MONTHS",e.MONTHS_12="12_MONTHS",e.MONTHS_18="18_MONTHS",e.MONTHS_24="24_MONTHS",e.MONTHS_36="36_MONTHS",e))(r||{})},48929:(e,a,t)=>{t.d(a,{I:()=>Xe,$:()=>Qe});var s=t(90947),n=t(43420),o=t(94462),i=t(66838),l=t(14041),r=t(70541),c=t(42453),d=t(83049),m=t
1(19116),h=t(82162),u=t(62009),p=t(1454),g=Object.defineProperty,f=Object.defineProperties,A=Object.getOwnPropertyDescriptors,D=Object.getOwnPropertySymbols,E=Object.prototype.hasOwnProperty,S=Object.prototype.propertyIsEnumerable,b=(e,a,t)=>a in e?g(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,y=(e,a)=>{for(var t in a||(a={}))E.call(a,t)&&b(e,t,a[t]);if(D)for(var t of D(a))S.call(a,t)&&b(e,t,a[t]);return e};const I=(0,p.wY)(e=>{return{root:{cursor:"pointer",fontSize:"2.4rem",padding:`0 ${e.spacing(1)}px 0 0`,float:"right"},modalContent:{marginTop:e.spacing(4),fontWeight:e.typography.weights.bold},menuWrapper:{alignItems:"flex-start",display:"flex",flexDirection:"column"},menuButton:(a=y({},e.typography.sizes.sm),t={padding:0,textAlign:"left",color:"#3B434B"},f(a,A(t))),disable:{color:"#D5D5D5"}};var a,t},{name:"ActionsCell"});var v=t(62397),N=t(40508),C=t(44053),O=t(14041);const _=({dashcamType:e,dashcamId:a,serialNumber:t,setShowPopoverMenu:s})=>{const o=I(),i=(0,r.wA)();return O.createElement(v.$,{className:o.menuButton,"data-testid":"dashcam-plan-assign",key:"assign",type:"link",onClick:n=>{n.stopPropagation(),s(!1),i(N.o.dashcamTableLinkClick({dashcamType:e,dashcam:{id:a,serialNumber:t},taskType:C.vL.ASSIGN}))}},O.createElement(n.s,{id:"dashcams.table.cell.assignLink"}))};var T=t(14041);const w=({dashcamId:e,dashcamType:a,serialNumber:t,machine:s,plan:o,setShowPopoverMenu:i})=>{const l=I(),c=(0,r.wA)();return T.createElement(v.$,{className:l.menuButton,"data-testid":"dashcam-plan-manage",key:"manage",type:"link",onClick:n=>{n.stopPropagation(),i(!1),c(N.o.dashcamTableLinkClick({plan:o,dashcamType:a,dashcam:{id:e,serialNumber:t},oldMachine:s,taskType:C.vL.MANAGE_PLAN}))}},T.createElement(n.s,{id:"dashcams.table.cell.managePlanLink"}))};var R=t(80601),P=t(53923),L=t(4078),M=t(14041);const F=({dashcamType:e,dashcamId:a,serialNumber:t,machine:s,setShowPopoverMenu:o})=>{const i=I(),l=(0,r.wA)(),{t:c}=(0,R.t)();return M.createElement(v.$,{className:i.menuButton,"data-testid":"dashcam-plan-re-assign",key:"reassign",type:"link",onClick:n=>{n.stopPropagation(),o(!1),L.a.confirm({icon:M.createElement(P.A,null),title:M.createElement("span",{className:i.modalContent},c({id:"dashcams.modal.title.reassignConfirm",values:{serialNumber:t}})),content:c("dashcams.modal.description.reassignConfirm"),onOk:()=>{l(N.o.dashcamTableLinkClick({dashcam:{id:a,serialNumber:t},oldMachine:s,taskType:C.vL.REASSIGN,dashcamType:e}))},okText:c("dashcams.modal.okText.reassignConfirm")})}},M.createElement(n.s,{id:"dashcams.table.cell.reassignLink"}))};var k=t(22088),H=t(14041),U=Object.defineProperty,G=Object.defineProperties,x=Object.getOwnPropertyDescriptors,V=Object.getOwnPropertySymbols,j=Object.prototype.hasOwnProperty,Y=Object.prototype.propertyIsEnumerable,B=(e,a,t)=>a in e?U(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,q=(e,a)=>{for(var t in a||(a={}))j.call(a,t)&&B(e,t,a[t]);if(V)for(var t of V(a))Y.call(a,t)&&B(e,t,a[t]);return e};const $=({dashcamId:e,serialNumber:a,machine:t,plan:s,setShowPopoverMenu:i})=>{const l=I(),c=(0,r.wA)(),{t:d}=(0,R.t)(),m=(0,r.d4)(k.T.getDashcamsQuery),h=(0,o.o8)(s);return H.createElement(v.$,{className:l.menuButton,"data-testid":"dashcam-plan-uninstall",key:"uninstall",type:"link",onClick:s=>{s.stopPropagation(),i(!1),c(N.o.dashcamSelected({dashcamId:e,serialNumber:a})),L.a.confirm({icon:H.createElement(P.A,null),title:H.createElement("span",{className:l.modalContent},d({id:"dashcams.modal.title.uninstallConfirm",values:{serialNumber:a}})),content:d("dashcams.modal.description.uninstallConfirm"),onOk:()=>{var s,n;c(N.o.uninstallDashcam({dashcam:{id:e,serialNumber:a},machine:t},{meta:{query:(s=q({},m),n={subType:h},G(s,x(n))),successMessage:d({id:"dashcams.message.uninstallComplete",values:{serialNumber:a}})}}))},okText:d("dashcams.modal.okText.uninstallConfirm"),okButtonProps:{"data-testid":"dashcam-plan-uninstall-confirm"},cancelButtonProps:{"data-testid":"dashcam-plan-uninstall-cancel"}})}},H.createElement(n.s,{id:"dashcams.table.cell.uninstallLink"}))};var W=t(14041);const z=({dashcamId:e,serialNumber:a,lifeCycleState:t,machine:s,plan:n,dashcamType:p})=>{const g=I(),[f,A]=(0,l.useState)(!1),{organisationId:D}=(0,r.d4)(h.T.getSelectedOrganisation),E=(0,u.F)("dashcams.enableAssignForStreamaxPendingInstallDashcams","enableAssignForStreamaxPendingInstallDashcamsWhitelist",D);return[i.Zh.PENDING_ASSIGNMENT,i.Zh.INSTALLED].includes(t)||(0,o.VI)(p)&&E?W.createElement("span",{onClick:e=>e.stopPropagation(),role:"presentation"},W.createElement(m.A,{content:W.createElement("div",{className:g.menuWrapper},[i.Zh.PENDING_ASSIGNMENT,i.g4.PENDING_INSTALL].includes(t)&&W.createElement(_,{setShowPopoverMenu:A,dashcamId:e,serialNumber:a,dashcamType:p}),t===i.Zh.INSTALLED&&W.createElement(W.Fragment,null,W.createElement(F,{dashcamType:p,setShowPopoverMenu:A,dashcamId:e,serialNumber:a,machine:s}),W.createElement($,{setShowPopoverMenu:A,dashcamId:e,serialNumber:a,machine:s,plan:n}),W.createElement(w,{dashcamType:p,setShowPopoverMenu:A,dashcamId:e,serialNumber:a,machine:s,plan:n}))),trigger:"click",placement:"left",open:f,onOpenChange:()=>A(!f)},W.createElement("div",{className:g.root,"data-testid":`dashcam-plan-actions-${e}`},W.createElement(d.A,{rotate:90}
1)))):W.createElement("div",{className:(0,c.$)(g.root,g.disable),"data-testid":`dashcam-plan-actions-disabled-${e}`},W.createElement(d.A,{rotate:90,disabled:!0}))},Q=(0,p.wY)(e=>({root:{lineHeight:"1.6em",minWidth:120},selectAddOnLink:{color:e.colors.primaryBlueDefault,fontWeight:"bold"}}),{name:"DriverLogOnAndActionsCell"}),X=(0,p.wY)(e=>({notSupported:{color:e.colors.onsurfaceTechnicalFont}}),{name:"EmptyCell"});var K=t(14041);const Z=({showNotSupported:e=!1})=>{const a=X();return e?K.createElement("span",{className:a.notSupported},K.createElement(n.s,{id:"dashcams.table.cells.notSupported"})):K.createElement(n.s,{id:"dashcams.table.cells.empty"})};var J=t(14041),ee=t(33233),ae=t(57192),te=t(37547);const se=(0,p.wY)(e=>({root:{display:"flex",flexDirection:"row",gap:e.spacing(1)},tagsContainer:{display:"flex",flexDirection:"column",gap:e.spacing(1),flex:1,justifyContent:"center"},actionsContainer:{display:"flex",alignItems:"center"},tagWrapper:{display:"inline-flex",alignSelf:"flex-start",minWidth:0},tag:{display:"inline-flex",alignItems:"center",gap:e.spacing(1),color:e.colors.onsurfaceFont,backgroundColor:e.colors.surfaceCriticalRed,border:`1px solid ${e.colors.onsurfaceCriticalRed}`,margin:0,fontSize:12,paddingLeft:8,paddingRight:8,maxWidth:180,minWidth:0},tagText:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},warningIcon:{color:e.colors.onsurfaceCriticalRed,fontSize:14,flexShrink:0},overflowTag:{display:"inline-flex",alignItems:"center",margin:0,fontSize:12,paddingLeft:8,paddingRight:8,width:"fit-content"}}),{name:"FaultsCell"});var ne=t(14041),oe=t(22284);const ie=(0,p.wY)(e=>({root:{display:"flex",minWidth:e.spacing(40)}}),{name:"LastOnlineCell"});var le=t(14041),re=t(56076);const ce=(0,p.wY)(()=>({root:{display:"flex"}}),{name:"LastSnapshot"});var de=t(14041);const me=(0,p.wY)(e=>({root:{minWidth:e.spacing(25)}}),{name:"LifecycleCell"});var he=t(14041),ue=t(92211),pe=t(96039),ge=t(28966),fe=t(36922),Ae=t(85203);const De=(0,p.wY)(e=>({root:{display:"flex",alignItems:"center"},dashcamStatus:{margin:`0 ${e.spacing(1)}px`},dot:{width:e.spacing(2),height:e.spacing(2),margin:`0 ${e.spacing(2)}px 0`},fromNowDuration:{color:e.colors.onsurfaceTechnicalFont},tick:{width:e.spacing(4),height:e.spacing(4),margin:`0 ${e.spacing(2)}px 0`},tooltipOverlay:{maxWidth:320}}),{name:"OnlineStatusCell"});var Ee=t(14041),Se=t(93753);const be=(0,p.wY)(e=>({root:{lineHeight:"1.6em",minWidth:e.spacing(15)},selectAddOnLink:{color:e.colors.primaryBlueDefault,fontWeight:"bold"}}),{name:"PlanCell"});var ye=t(14041);const Ie=({plan:e,dashcamType:a,machine:t,id:s,serialNumber:o,lifeCycleState:i,displayActionsButton:l})=>{var r,c;const d=be();return ye.createElement("div",{className:d.root,"data-testid":`dashcam-plan-${s}`},(null==(r=Se.Dw[e])?void 0:r.cameraPlanType)?ye.createElement(n.s,{id:null==(c=Se.Dw[e])?void 0:c.cameraPlanType}):ye.createElement(Z,null),l&&ye.createElement(z,{dashcamId:s,serialNumber:o,machine:t,plan:e,dashcamType:a,lifeCycleState:i}))},ve=(0,p.wY)(e=>({root:{minWidth:e.spacing(25)},subText:{color:e.colors.onsurfaceTechnicalFont}}),{name:"SerialTypeCell"});var Ne=t(14041);const Ce=(0,p.wY)(e=>({root:{minWidth:e.spacing(25)},subText:{color:e.colors.onsurfaceTechnicalFont}}),{name:"VehicleCell"});var Oe=t(14041),_e=t(14041),Te=Object.defineProperty,we=Object.defineProperties,Re=Object.getOwnPropertyDescriptors,Pe=Object.getOwnPropertySymbols,Le=Object.prototype.hasOwnProperty,Me=Object.prototype.propertyIsEnumerable,Fe=(e,a,t)=>a in e?Te(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,ke=(e,a)=>{for(var t in a||(a={}))Le.call(a,t)&&Fe(e,t,a[t]);if(Pe)for(var t of Pe(a))Me.call(a,t)&&Fe(e,t,a[t]);return e},He=(e,a)=>we(e,Re(a));const Ue=(e,a=!1)=>function(t,s){return _e.createElement(e,He(ke({},s),{displayActionsButton:a}))},Ge={title:_e.createElement(n.s,{id:"dashcams.table.column.lastsnapshot.title"}),dataIndex:"snapshot",render:Ue(({id:e,plan:a,snapshots:t})=>{const s=ce();return de.createElement("div",{className:s.root,"data-testid":`dashcam-last-snapsh
1ot-${e}`},de.createElement(re.w,{isClarityLocatePlan:(0,o._1)(a),isClarityEdgePlan:(0,o.xQ)(a),snapshots:t,type:i.dA.SMALL}))}),key:"snapshot",width:320,sorter:!1},xe=He(ke({},Ge),{title:_e.createElement(n.s,{id:"dashcams.table.column.lastsnapshot.clarityEdge.title"})}),Ve={title:_e.createElement(n.s,{id:"dashcams.table.column.serialType.title"}),dataIndex:"serialNumber",render:Ue(({id:e,serialNumber:a,plan:t,dashcamType:s})=>{const i=ve(),l=(0,o.VI)(s);return Ne.createElement("div",{className:i.root,"data-testid":`dashcam-serial-${e}`},a,Ne.createElement("br",null),Ne.createElement("span",{className:i.subText},Ne.createElement(n.s,{id:(0,o.HG)({planName:t,isClarityEdgeDevice:l})})))}),key:"serialNumber",width:200,sorter:!0},je={title:_e.createElement(n.s,{id:"dashcams.table.column.vehicle.title"}),dataIndex:"vehicleDisplayName",render:Ue(({id:e,machine:a})=>{const t=Ce(),{vehicleName:s,vehicleRego:n}=a||{},o=!s&&!n;return Oe.createElement("div",{className:t.root,"data-testid":`dashcam-vehicle-${e}`},o?Oe.createElement(Z,null):Oe.createElement(Oe.Fragment,null,n,Oe.createElement("br",null),Oe.createElement("span",{className:t.subText},s)))}),key:"machine",width:200},Ye={title:_e.createElement(n.s,{id:"dashcams.table.column.lifecycle.title"}),dataIndex:"lifeCycleState",render:Ue(({id:e,lifeCycleState:a,rmaPending:t})=>{const s=me(),o=t&&a===i.g4.INSTALLED?he.createElement(n.s,{id:"dashcams.enum.lifecycle.installedPendingRma"}):i.$F[a];return he.createElement("div",{className:s.root,"data-testid":`dashcam-lifecycle-${e}`},o)}),key:"lifecycle",width:220,sorter:!0,sortIndexes:["lifeCycleState","lifeCycleLastModified"]},Be={title:_e.createElement(n.s,{id:"dashcams.table.column.lastOnlineTime.title"}),dataIndex:"lastOnlineTime",render:Ue(({id:e,dashcamType:a,lastOnlineTime:t,lifeCycleState:s,plan:n})=>{const l=ie(),r=!t||s!==i.g4.INSTALLED||!n;return(0,o.VI)(a)?le.createElement(Z,{showNotSupported:!0}):le.createElement("span",{className:l.root,"data-testid":`dashcam-last-online-time-${e}`},r?le.createElement(Z,null):le.createElement(oe.X,{value:t,showTimeZone:!0}))}),key:"lastOnlineTime",width:200,sorter:!0,sortIndexes:["lastOnlineTime"]},qe={title:_e.createElement(n.s,{id:"dashcams.table.column.driverlogonAndActions.title"}),dataIndex:"DriveLogOnAndActions",render:Ue(({driverLogonEnabled:e,plan:a,dashcamType:t,machine:s,id:n,serialNumber:l,lifeCycleState:r,displayActionsButton:c})=>{const d=Q();return J.createElement("div",{className:d.root},J.createElement("span",{"data-testid":`dashcam-driver-logon-${n}`}
1,e?i.bL[String(e)]:J.createElement(Z,{showNotSupported:(0,o.VI)(t)})),c&&J.createElement(z,{dashcamType:t,dashcamId:n,serialNumber:l,machine:s,plan:a,lifeCycleState:r}))},!0),key:"driveLogOnAndActions"},$e={title:_e.createElement(n.s,{id:"dashcams.table.column.planAndActions.title"}),dataIndex:"plan",render:Ue(Ie,(0,s.G)()),key:"plan"},We={title:_e.createElement(n.s,{id:"dashcams.table.column.dashcamStatus.title"}),dataIndex:"dashcamStatus",render:Ue(({id:e,dashcamStatus:a,deviceStatusTime:t})=>{const s=De(),{timeZone:o,locale:l}=(0,R.t)(),r=i.KU.OFFLINE===a?Ee.createElement("span",{className:s.fromNowDuration},(c=t,(0,pe.y)(null!=c?c:Date.now()).fromNow())):null;var c;const d=a&&Ee.createElement(n.s,{id:i.Do[a].tooltipMessageId,values:{dateTime:`${(0,ue.Y)({date:t,timeZone:o,format:"DD MMM YYYY, hh:mm a"})} ${(0,ge.v)({date:new Date(t),timeZone:o,locale:l,short:!0})}`}});return a?Ee.createElement(fe.m,{title:d,overlayClassName:s.tooltipOverlay},Ee.createElement("div",{className:s.root,"data-testid":`dashcam-online-status-${e}`},Ee.createElement(Ae.z,{onlineStatus:a,testId:`dashcam-status-icon-${e}-${a}`}),Ee.createElement("div",{className:s.dashcamStatus},Ee.createElement(n.s,{id:i.Do[a].messageId,tagName:"span"}),Ee.createElement("br",null),r))):Ee.createElement(Z,null)}),key:"dashcamStatus",sorter:!0},ze={title:_e.createElement(n.s,{id:"dashcams.table.column.dashcamFaults.title"}),dataIndex:"faults",render:Ue(({faults:e,displayActionsButton:a,id:t,plan:s,serialNumber:n,lifeCycleState:o,machine:i,dashcamType:l})=>{const r=se(),{t:c}=(0,R.t)(),d=(0,te.A)(),m=(null!=e?e:[]).map(({vendorFaultCode:e,componentsAffected:a},t)=>({vendorFaultCode:e,componentsAffected:a,faultIndex:t})),h=m.slice(0,2),u=Math.max(0,m.length-2);return ne.createElement("div",{className:r.root,"data-testid":`dashcam-faults-${t}`},ne.createElement("div",{className:r.tagsContainer},m.length?ne.createElement(ne.Fragment,null,h.map(({vendorFaultCode:e,componentsAffected:a,faultIndex:t})=>{const{titleMessageId:s,key:n}=(0,ae.X)(e,t),o=c({id:s}),i=d(a),l=null!=i?i:o;return ne.createElement("span",{key:n,className:r.tagWrapper,"data-testid":`fault-tag-${n}`,title:l},ne.createElement(ee.v,{className:r.tag},ne.createElement(P.A,{className:r.warningIcon}),ne.createElement("span",{className:r.tagText},o)))}),u>0&&ne.createElement(ee.v,{className:r.overflowTag,"data-testid":"fault-tag-overflow"},`+${u}`)):ne.createElement(Z,null)),a&&ne.createElement("div",{className:r.actionsContainer},ne.createElement(z,{dashcamId:t,plan:s,serialNumber:n,lifeCycleState:o,machine:i,dashcamType:l})))},!0),key:"faults",sorter:!1},Qe=[Ge,je,Ve,Be,Ye,$e,(0,s.G)()?null:qe].filter(e=>null!==e),Xe=e=>{const a=He(ke({},$e),{render:Ue(Ie,!e)});return[xe,je,Ve,We,Ye,a,e?ze:null].filter(e=>null!==e)}},56076:(e,a,t)=>{t.d(a,{w:()=>S});var s=t(22284),n=t(43420),o=t(80601),i=t(66838),l=t(68387),r=t(1454),c=Object.defineProperty,d=Object.defineProperties,m=Object.getOwnPropertyDescriptors,h=Object.getOwnPropertySymbols,u=Object.prototype.hasOwnProperty,p=Object.prototype.propertyIsEnumerable,g=(e,a,t)=>a in e?c(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,f=(e,a)=>{for(var t in a||(a={}))u.call(a,t)&&g(e,t,a[t]);if(h)for(var t of h(a))p.call(a,t)&&g(e,t,a[t]);return e},A=(e,a)=>d(e,m(a));const D=(0,r.wY)(e=>({root:({isSmallSnapshots:e})=>({display:"flex",width:"100%",flexWrap:e?"nowrap":"wrap"}),snapshotWrapper:({isSmallSnapshots:a,wideColumns:t,narrowColumns:s})=>f({display:"flex",flexDirection:"column",width:a?"auto":`calc(${100/t}% - ${e.spacing(2)}px)`,maxWidth:a?void 0:"50%",margin:e.spacing(1)},a?{}:{"@container (max-width: 800px)":{width:`calc(${100/s}% - ${e.spacing(2)}px)`},"@container (max-width: 480px)":{width:`calc(100% - ${e.spacing(2)}px)`,maxWidth:"100%"}}),snapshotSmall:{width:96},snapshotLarge:{width:"100%"},noSnapshot:{width:"50%"},snapshotHeading:A(f({},e.typography.sizes.md),{fontFamily:e.typography.fonts.primary,fontWeight:e.typography.weights.bold}),snapshotCaption:A(f({},e.typography.sizes.xs),{color:e.colors.onsurfaceTechnicalFont,marginTop:e.spacing(1),textAlign:"left"})}),{name:"AllLastSnapshotImages"});var E=t(14041);const S=({isClarityEdgePlan:e,isClarityLocatePlan:a,snapshots:t,type:r=i.dA.SMALL})=>{var c,d,m;const h=r===i.dA.SMALL,{t:u}=(0,o.t)(),p=null==t?void 0:t.length,g=null==t?void 0:t.every(e=>!!e.type&&e.type in i.dH),f=null!=(c=null==t?void 0:t.length)?c:0,A=D({isSmallSnapshots:h,wideColumns:(0,l.i)({itemCount:f,maxColumns:i.hL.WIDE}),narrowColumns:(0,l.i)({itemCount:f,maxColumns:i.hL.NARROW})}),S=h?A.snapshotSmall:A.snapshotLarge,b=u("dashcams.table.column.lastsnapshot.noCameraImage.clarityLocate.title"),y=u("dashcams.table.column.noSnapsh
1ot");if(a)return E.createElement("img",{src:null==(d=i.S9[r])?void 0:d.NO_CAMERA_IMAGE,alt:b,title:b,className:S,"data-testid":"dashcam-table-no-snapshot-clarity-locate"});if(!p)return E.createElement("img",{src:null==(m=i.S9[r])?void 0:m.NO_SNAPSHOT_IMAGE,alt:y,title:y,className:A.noSnapshot,"data-testid":"dashcam-table-no-snapshot"});const I=Object.keys(i.dH).reduce((a,o,l)=>{var c,d;const m=o,p=g?null==t?void 0:t.find(e=>e.type===m):void 0,f=g?null==p?void 0:p.url:null==(c=t[l])?void 0:c.url,D=g?u(i.dH[m].imageTooltipMessageId):`Snapshot-${l+1}`,b=f&&r===i.dA.LARGE,y=f&&h&&i.dH[m].showInDashcamsListPage,I=g?o:l,v=r===i.dA.LARGE&&g,N=v&&e,C=g?null==p?void 0:p.lastSnapshotDateTimeInUtc:null==(d=t[l])?void 0:d.lastSnapshotDateTimeInUtc;return b||y?[...a,E.createElement("div",{className:A.snapshotWrapper,key:`snapshot-${I}`},v&&E.createElement("div",{className:A.snapshotHeading},E.createElement(n.s,{id:i.dH[m].headingMessageId})),E.createElement("img",{src:f,alt:D,title:D,className:S,"data-testid":`dashcam-table-snapshot-${I}`}),N&&C&&E.createElement("div",{className:A.snapshotCaption},E.createElement(n.s,{id:"dashcams.health.snapshots.perCamera.lastUpdatedOn",values:{lastUpdatedDate:E.createElement(s.X,{value:C,showTimeZone:!0})},tagName:"div"}),E.createElement(n.s,{id:i.dH[m].refreshMessageId,tagName:"div"})))]:a},[]);return E.createElement("div",{className:A.root},I)}},57192:(e,a,t)=>{t.d(a,{K:()=>n,X:()=>o});var s=t(66838);const n=e=>s.Oh.get(e),o=(e,a,t)=>{var n,o;const i=e?s.UK.get(e):void 0,l=null==i?void 0:i.componentTitleMessageId;return{faultContent:i,titleMessageId:Boolean(null==t?void 0:t.length)&&void 0!==l?l:null!=(n=null==i?void 0:i.titleMessageId)?n:"dashcams.faults.unknown",noteValues:{componentScope:null!=(o=null==i?void 0:i.componentType)?o:"none"},key:`${e||"unknown"}-${a}`}}},58699:(e,a,t)=>{t.d(a,{t:()=>Ze});var s=t(70541),n=t(43420),o=t(37506),i=t(34164),l=t(82162),r=t(62009),c=t(94462),d=t(66838),m=t(22088),h=t(14041),u=t(80601),p=t(43167),g=t(34191),f=t(62397),A=t(82479),D=t(40508),E=t(90947),S=t(93815),b=t(67370),y=t(67595),I=t(51962),v=t(59110),N=t(53923),C=t(31820),O=t(36922),_=t(1454);const T=(0,_.wY)(e=>({title:{display:"flex",paddingTop:e.spacing(3)},details:{display:"flex",justifyContent:"center"},months:{fontWeight:e.typography.weights.bold},supportUserTooltip:{color:e.colors.onsurfaceWarningOrange,marginLeft:e.spacing(1),marginTop:e.spacing(2)}}),{name:"DataRetentionSection"});var w=t(76787),R=t(93100),P=t(15195),L=t(95141),M=t(4078),F=t(11952),k=t(61418),H=Object.defineProperty,U=Object.defineProperties,G=Object.getOwnPropertyDescriptors,x=Object.getOwnPropertySymbols,V=Object.prototype.hasOwnProperty,j=Object.prototype.propertyIsEnumerable,Y=(e,a,t)=>a in e?H(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,B=(e,a)=>{for(var t in a||(a={}))V.call(a,t)&&Y(e,t,a[t]);if(x)for(var t of x(a))j.call(a,t)&&Y(e,t,a[t]);return e};const q=(0,_.wY)(e=>{return{confirmationNote:{fontWeight:e.typography.weights.bold},costContainer:{backgroundColor:e.colors.surfaceLevel3,padding:`${e.spacing(4)}px ${e.spacing(4)}px ${e.spacing(2)}px`,marginBottom:e.spacing(3)},costConfirmation:{width:"600px !important",[`@media only screen and (max-width: ${e.breakpoints.values.md-1}px)`]:{width:"560px !important"}},costRow:{display:"flex",justifyContent:"space-between",marginBottom:e.spacing(1)},highlightBold:{fontWeight:e.typography.weights.bold},questionIcon:{color:`${e.colors.onsurfaceFont} !important`},periodsDropdrown:{width:"50%",margin:`${e.spacing(4)}px 0 `},subSection:{margin:`0 0 ${e.spacing(4)}px`},subSectionNote:{margin:`0 0 ${e.spacing(4)}px`,fontWeight:e.typography.weights.bold},subSectionFinancialPermission:{margin:0,fontWeight:e.typography.weights.bold,"& a":(a=B({},e.typography.sizes.sm),t={padding:`0 ${e.spacing(1)}px`,height:"auto"},U(a,G(t)))},totalCostRow:{borderTop:"1px solid",padding:`${e.spacing(1)}px 0`,fontWeight:e.typography.weights.bold,display:"flex",justifyContent:"space-between"}};var a,t},{name:"DataRetentionPeriodUpdateModal"});var $=t(14041);const W=({closeModal:e,visible:a,currentDataRetentionPeriod:t,updateStatus:o,periods:i,currencyUnit:l,dashcamCount:r})=>{var c,m,p,g,f,A,D;const[E,S]=(0,h.useState)(t),[b,I]=(0,h.useState)(!1),[v,N]=(0,h.useState)(),C=(0,s.wA)(),O=q(),{t:_,formatNumber:T}=(0,u.t)();(({closeModal:e,updateStatus:a})=>{const t=(0,h.useRef)(e);(0,h.useEffect)(()=>{t.current=e},[e]),(0,h.useEffect)(()=>{a===w.IQ.SUCCESS&&t.current()},[a])})({updateStatus:o,closeModal:e});const P=(0,y.T)("PAID_UPDATE.VIDEO_DATA_RETENTION"),F=t!==E,k=(null==(c=d.fv[E])?void 0:c.months)<(null==(m=d.fv[t])?void 0:m.months),H=(null==(p=d.fv[E])?void 0:p.months)>(null==(g=d.fv[t])?void 0:g.months),U=d.Rn.includes(t)&&!d.Rn.includes(E),G=d.Rn.includes(t)&&d.Rn.includes(E)&&k,x=d.Rn.includes(t)&&d.Rn.includes(E)&&H,
1V=!d.Rn.includes(t)&&d.Rn.includes(E),j=U||G,Y=x||V,B=F&&(d.Rn.includes(t)||d.Rn.includes(E)),W=B&&!P,X=B&&P||!B&&F,Z=d.Rn.includes(E)&&E!==t;return $.createElement(M.a,{centered:!0,okText:$.createElement(n.s,{id:"dashcams.drawer.dataRetention.period.update.modal.button.updateSettings"}),okButtonProps:{disabled:!b,loading:o===w.IQ.PENDING,"data-testid":"dashcam-data-retention-duration-update"},cancelButtonProps:{"data-testid":"dashcam-data-retention-duration-cancel"},onOk:K({classes:O,currencyUnit:l,dashcamCount:r,dispatch:C,formatNumber:T,periods:i,selectedPeriod:E,showDowngradeConfirmation:k,showUpgradeConfirmation:Y,t:_}),onCancel:e,title:$.createElement(n.s,{id:"dashcams.drawer.dataRetention.period.update.modal.title"}),open:a},$.createElement(n.s,{id:"dashcams.drawer.dataRetention.period.select.title"}),$.createElement(z,{className:O.periodsDropdrown,setSelectedPeriod:S,setSelectedTotalCost:N,selectedPeriod:E,setUpdateConfirmed:I,periods:i,currencyUnit:l}),Z&&$.createElement("p",{className:O.subSection},$.createElement(n.s,{id:"dashcams.drawer.dataRetention.period.select.costInformation",values:{dashcamCount:r,totalCost:$.createElement(R.G,{style:"currency",currency:l,value:v,maximumFractionDigits:0}),months:null==(f=d.fv[E])?void 0:f.months,bold:e=>$.createElement("span",{className:O.highlightBold},e)}})),$.createElement("p",{className:O.subSection},$.createElement(n.s,{id:"dashcams.drawer.dataRetention.period.select.description",values:{bold:e=>$.createElement("span",{className:O.highlightBold},e)}})),j&&$.createElement("p",{className:O.subSectionNote},$.createElement(n.s,{id:"dashcams.drawer.dataRetention.period.select.note"})),W&&$.createElement(Q,{className:O.subSectionFinancialPermission,t:_}),X&&$.createElement(L.S,{onChange:e=>I(e.target.checked),checked:b,"data-testid":"dashcam-data-retention-period-update-confirmation-checkbox"},$.createElement(n.s,{id:"dashcams.drawer.dataRetention.period.select.confirmation",values:{fromMonths:null==(A=d.fv[t])?void 0:A.months,toMonths:null==(D=d.fv[E])?void 0:D.months}})))},z=({className:e,setSelectedPeriod:a,selectedPeriod:t,setUpdateConfirmed:s,periods:o,currencyUnit:i,setSelectedTotalCost:l})=>$.createElement("div",null,$.createElement(k.l,{className:e,onChange:e=>{const{totalCost:t}=o.find(({period:a})=>a===e);a(e),l(t),s(!1)},value:t,"data-testid":"dashcam-data-retention-period-selection",options:o.map(({period:e,costPerUnit:a})=>{var t,s;const o=$.createElement(R.G,{style:"currency",currency:i,value:a,maximumFractionDigits:0});return{key:e,value:e,label:$.createElement($.Fragment,null,$.createElement(n.s,{id:(null==(t=d.fv[e])?void 0:t.messageId)||"dashcams.drawer.dataRetention.period.months",values:{months:null==(s=d.fv[e])?void 0:s.months}}),Boolean(a)&&$.createElement(n.s,{id:"dashcams.drawer.dataRetention.period.perUnit.cost",values:{costPerUnit:o}}))}})})),Q=({className:e,t:a})=>$.createElement("p",{className:e},$.createElement(F.j,{type:"deprecatedAlert",textPadding:4,status:F.w.RED,text:$.createElement($.Fragment,null,$.createElement(n.s,{id:"dashcams.drawer.dataRetention.period.select.permission"}),$.createElement(f.$,{type:"link",target:"_blank",href:a("dashcams.drawer.dataRetention.period.select.permission.learnMore.link")},$.createElement(n.s,{id:"dashcams.drawer.dataRetention.period.select.permission.learnMore.link.text"})))})),X=({classes:e,costPerUnit:a,dashcamCount:t,selectedPeriod:s,t:n,totalCost:o})=>{var i;return $.createElement("div",{className:e.costContainer},$.createElement("div",{className:e.costRow},$.createElement("span",null,n("dashcams.confirmation.drawer.charges.confirmation.estimation.period")),$.createElement("span",null,n({id:"dashcams.drawer.dataRetention.period.months",values:{months:null==(i=d.fv[s])?void 0:i.months}}))),$.createElement("div",{className:e.costRow},$.createElement("span",null,n("dashcams.confirmation.drawer.charges.confirmation.estimation.costPerDashcam")),$.createElement("span",null,a)),$.createElement("div",{className:e.costRow},$.createElement("span",null,n("dashcams.confirmation.drawer.charges.confirmation.estimation.dashcamUnits")),$.createElement("span",null,t)),$.createElement("div",{className:e.totalCostRow},$.createElement("span",null,n("dashcams.confirmation.drawer.charges.confirmation.estimation.total")),$.createElement("span",null,o)))},K=({classes:e,currencyUnit:a,dashcamCount:t,dispatch:s,formatNumber:n,periods:o,selectedPeriod:i,showDowngradeConfirmation:l,showUpgradeConfirmation:r,t:c})=>()=>{if(l||r){const{totalCost:d,costPerUnit:m}=o.find(({period:e})=>e===i),h=c(l?"dashcams.confirmation.drawer.retentionPeriodReduction.confirmation.title":"dashcams.confirmation.drawer.charges.confirmation.title"),u=$.createElement($.Fragment,null,l&&c("dashcams.confirmation.drawer.retentionPeriodReduction.confirmation.details"),r&&$.createElement($.Fragment,null,$.createElement(X,{classes:e,selectedPeriod:i,costPerUnit:n(m,{style:"currency",currency:a,maximumFractionDigits:0}),dashcamCount:t,t:c,totalCost:n(d,{style:"currency",currency:a,maximumFractionDigits:0})}),$.createElement("span",{className:e.confirmationNote},c("dashcams.confirmation.drawer.charges.confirmation.note")))),p=c(l?"dashcams.confirmation.drawer.retentionPeriodReduction.confirmation.button.text":"dashcams.confirmation.drawer.charges.confirmation.button.text");return M.a.confirm({title:h,icon:$.createElement(P.A,{className:e.questionIcon}),content:u,okText:p,onOk:()=>Z({dispatch:s,selectedPeriod:i,t:c}),cancelText:c("dashcams.confirmation.drawer.cancel"),className:e.costConfirmation,zIndex:2e3})}
1return Z({dispatch:s,selectedPeriod:i,t:c})},Z=({dispatch:e,selectedPeriod:a,t})=>{e(D.o.updateDataRetentionPeriod({period:a},{meta:{errorMessage:t("dashcams.confirmation.drawer.retentionPeriod.update.failure.message"),successMessage:t("dashcams.confirmation.drawer.retentionPeriod.update.success.message")}}))};var J=t(14041);const ee=()=>{const e=(0,s.wA)(),a=T(),{currencyUnit:t,dashcamCount:o,dataRetentionInfoLoading:i,dataRetentionPeriod:r,dataRetentionPeriodAvailable:c,dataRetentionPeriodInMonths:d,periods:u,updateRequestStatus:p}=(0,s.d4)(m.T.getDataRetentionPeriod),[g,A]=(0,h.useState)(!1),D=(0,y.T)("FREE_UPDATE.VIDEO_DATA_RETENTION"),E=(0,s.d4)(l.T.getIsUserOrgSwitched);ae({dispatch:e});const S=E||!D,b=D?E&&"dashcams.drawer.edit.supportUserTooltip":"dashcams.drawer.edit.restrictedUserTooltip",_=g&&r&&u&&t&&(0,I.O)(o),w=c?J.createElement(n.s,{id:"dashcams.drawer.dataRetention.details",values:{months:d,bold:e=>J.createElement("span",{className:a.months},e)}}):J.createElement(n.s,{id:"dashcams.drawer.dataRetention.details.notAvailable"});return J.createElement("div",null,J.createElement("div",{className:a.title},J.createElement("h2",null,J.createElement(n.s,{id:"dashcams.drawer.dataRetention.title"})),c&&J.createElement("div",null,J.createElement(f.$,{type:"link",icon:J.createElement(v.A,null),onClick:()=>A(!0),disabled:S,"data-testid":"dashcam-data-retention-settings"}),S&&J.createElement(O.m,{title:J.createElement(n.s,{id:b}),placement:"left"},J.createElement(N.A,{className:a.supportUserTooltip})))),J.createElement("div",{className:a.details},i?J.createElement(C.t,null):J.createElement("p",null,w)),_&&J.createElement(W,{visible:g,closeModal:()=>A(!1),currentDataRetentionPeriod:r,updateStatus:p,periods:u,currencyUnit:t,dashcamCount:o}))},ae=({dispatch:e})=>{(0,h.useEffect)(()=>{e(D.o.fetchDataRetentionPeriod()),e(D.o.fetchDataRetentionDashcamInfo())},[e])};var te=t(20307),se=t(64145),ne=Object.defineProperty,oe=Object.defineProperties,ie=Object.getOwnPropertyDescriptors,le=Object.getOwnPropertySymbols,re=Object.prototype.hasOwnProperty,ce=Object.prototype.propertyIsEnumerable,de=(e,a,t)=>a in e?ne(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,me=(e,a)=>{for(var t in a||(a={}))re.call(a,t)&&de(e,t,a[t]);if(le)for(var t of le(a))ce.call(a,t)&&de(e,t,a[t]);return e};const he=(0,_.wY)(e=>{return{root:{"&:last-of-type":{marginBottom:0}},content:{marginBottom:e.spacing(4),paddingLeft:e.spacing(3)},header:{alignItems:"center",display:"flex",justifyContent:"space-between",marginBottom:e.spacing(2)},title:(a=me({},e.typography.sizes.md),t={marginBottom:0,marginRight:e.spacing(3)},oe(a,ie(t))),titleEdit:{display:"flex",alignItems:"center"},supportUserTooltip:{color:e.colors.onsurfaceWarningOrange,marginLeft:e.spacing(3)}};var a,t},{name:"SettingsToggle"});var ue=t(14041);const pe=({title:e,toggled:a,onToggleChanged:t,onEdit:n,children:o,disabled:i,infoTooltip:r,supportUserTooltip:c,nonSupportUserWarningTooltip:d,testIdKey:m=""})=>{const h=he(),u=(0,s.d4)(l.T.getIsUserOrgSwitched),p=!u&&d,g="function"==typeof t;return ue.createElement("section",{className:h.root},ue.createElement("header",{className:h.header},ue.createElement("div",{className:h.titleEdit},ue.createElement("span",{className:h.title},e),ue.createElement(ue.Fragment,null,ue.createElement(O.m,{title:r},ue.createElement(te.A,null)),u&&ue.createElement(O.m,{title:c},ue.createElement(N.A,{className:h.supportUserTooltip})),p&&ue.createElement(O.m,{title:d},ue.createElement(N.A,{className:h.supportUserTooltip}))),n&&a&&!u&&ue.createElement(f.$,{type:"link",icon:ue.createElement(v.A,null),onClick:n,disabled:i})),g&&ue.createElement(se.d,{"data-testid":`dashcam-setting-toggle-${m}`,disabled:i||u,checked:a,onChange:e=>t(e)})),o&&!u&&ue.createElement("div",{className:h.content},o))},ge=({containsOnlyLocateOrGet:e,fetchAction:a})=>{const t=(0,s.wA)(),n=(0,s.d4)(l.T.getIsUserOrgSwitched);(0,h.useEffect)(()=>{e||n||t(a())},[e,n,t,a])},fe=(0,_.wY)(()=>({loadingWrapper:{display:"flex",justifyContent:"center"}}),{name:"DailyVideoSummaryEmailNotification"});var Ae=t(14041);const De=()=>{const{t:e}=(0,u.t)(),a=fe(),t=(0,s.wA)(),{notificationEnabled:o,requestProcessing:i}=(0,s.d4)(m.T.getDashcamVideoSummaryNotificationData),{containsOnlyLocateOrGet:c}=(0,s.d4)(m.T.getDashcamPlansStatuses),{organisationId:d}=(0,s.d4)(l.T.getSelectedOrganisation),h=(0,r.F)("dashcams.showAiDashcamNotificationSettings","showAiDashcamNotificationSettingsWhitelist",d);ge({containsOnlyLocateOrGet:c,fetchAction:D.o.fetchDashcamVideoSummaryNotification});const p=i||c,g=h?"dashcams.drawers.dashcamVideoSummaryNotification.tooltip.clarityEdge":"dashcams.drawers.dashcamVideoSummaryNotification.tooltip";return Ae.createElement(pe,{toggled:o,onToggleChanged:Ee({dispatch:t,t:e}),disabled:p,title:Ae.createElement(n.s,{id:"dashcams.drawers.dashcamVideoSummaryNotification.title"}),infoTooltip:Ae.createElement(n.s,{id:g}),supportUserTooltip:Ae.createElement(n.s,{id:"dashcams.drawers.dashcamVideoSummaryNotification.supportUser.tooltip"}),testIdKey:"dashcamVideoSummaryNotification"},i?Ae.createElement("div",{className:a.loadingWrapper},Ae.createElement(C.t,null)):null)},Ee=({dispatch:e,t:a})=>t=>{e(t?D.o.updateDashcamVideoSummaryNotification({},{meta:{errorMessage:a("dashcams.drawers.dashcamVideoSummaryNotification.update.failure.message"),successMessage:a("dashcams.drawers.dashcamVideoSummaryNotification.enabled.success.message")}}):D.o.deleteDashcamVideoSummaryNotification({},{meta:{errorMessage:a("dashcams.drawers.dashcamVideoSummaryNotification.update.failure.message"),successMessage:a("dashcams.drawers.dashcamVideoSummaryNotification.disabled.success.message")}}))};var Se=t(13215),be=t(99728),ye=t(14041);
1const Ie=({childOptions:e,onChange:a,placeholderLabel:t,selectedValues:s,wrapperTitle:n})=>{const o=e.length>0?[{title:n,value:"__ALL_OPTIONS__",children:e}]:[];return ye.createElement(be.f,{maxTagCount:"responsive",onChange:e=>{a(Array.isArray(e)?e:[e])},placeholder:t,treeCheckable:!0,treeData:o,treeDefaultExpandAll:!0,value:s})},ve=(0,_.wY)(e=>({itemDescription:{display:"flex"},loadingWrapper:{display:"flex",justifyContent:"center"},selectedItems:{fontWeight:e.typography.weights.medium,paddingLeft:e.spacing(1)}}),{name:"HarshEventNotifications"});var Ne=t(14041),Ce=Object.defineProperty,Oe=Object.getOwnPropertySymbols,_e=Object.prototype.hasOwnProperty,Te=Object.prototype.propertyIsEnumerable,we=(e,a,t)=>a in e?Ce(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,Re=(e,a)=>{for(var t in a||(a={}))_e.call(a,t)&&we(e,t,a[t]);if(Oe)for(var t of Oe(a))Te.call(a,t)&&we(e,t,a[t]);return e};const Pe=()=>{const{t:e}=(0,u.t)(),a=ve(),t=(0,s.wA)(),{notificationStatuses:o,requestProcessing:i}=(0,s.d4)(m.T.getDashcamNotificationStatuses),{containsOnlyLocateOrGet:c}=(0,s.d4)(m.T.getDashcamPlansStatuses),[p,g]=(0,h.useState)(o),[f,A]=(0,h.useState)(!1);ge({containsOnlyLocateOrGet:c,fetchAction:D.o.fetchDashcamsNotification});const{organisationId:E}=(0,s.d4)(l.T.getSelectedOrganisation),S=(0,r.F)("dashcams.showAiDashcamNotificationSettings","showAiDashcamNotificationSettingsWhitelist",E),b=i||c,y=o,I="dashcams.drawers.harshEvents.title",v=S?Re(Re({},d.GQ),d.LI):d.GQ,N=Object.keys(v).map(a=>{var t,s;return(null==(t=v[a])?void 0:t.messageId)&&{key:a,label:e(null==(s=v[a])?void 0:s.messageId)}}).filter(Boolean),O=Boolean(y.length)&&Ne.createElement("div",{className:a.itemDescription},Ne.createElement("div",{className:a.selectedItems},null==y?void 0:y.map(e=>{var a;return(null==(a=v[e])?void 0:a.messageId)&&Ne.createElement("div",{key:e},Ne.createElement(n.s,{id:v[e].messageId}),Ne.createElement("br",null))}).filter(Boolean)));return Ne.createElement(Ne.Fragment,null,Ne.createElement(pe,{toggled:y.length>0,onToggleChanged:a=>{a?(g(Object.keys(v)),A(!0)):Fe({dispatch:t,setSelectedNotificationStatuses:g,t:e})},disabled:b,title:Ne.createElement(n.s,{id:I}),onEdit:()=>{g(o),A(!0)},infoTooltip:Ne.createElement(n.s,{id:"dashcams.drawers.emailNotifications.tooltip"}),supportUserTooltip:Ne.createElement(n.s,{id:"dashcams.drawers.modal.message.supportUser"}),testIdKey:"dashcamEventNotifications"},i?Ne.createElement("div",{className:a.loadingWrapper},Ne.createElement(C.t,null)):O),Ne.createElement(M.a,{centered:!0,okText:Ne.createElement(n.s,{id:"dashcams.drawers.modal.ok.text"}),onCancel:()=>A(!1),onOk:Me({emailNotificationToggleDisabled:b,selectedNotificationStatuses:p,setSelectedNotificationStatuses:g,setShowConfirmationModal:A,dispatch:t,t:e}),title:Ne.createElement(n.s,{id:I}),open:f,cancelButtonProps:{"data-testid":"harsh-event-notifications-type-selection-cancel"},okButtonProps:{"data-testid":"harsh-event-notifications-type-selection-update"}},Ne.createElement(Le,{selectedNotificationStatuses:p,notificationStatusesData:N,setSelectedNotificationStatuses:g})))},Le=({selectedNotificationStatuses:e,notificationStatusesData:a,setSelectedNotificationStatuses:t})=>{const{t:s}=(0,u.t)();return Ne.createElement(Ne.Fragment,null,Ne.createElement(n.s,{id:"dashcams.drawers.modal.harshEvents.description"}),Ne.createElement(Se.h,{size:3}),Ne.createElement(Ie,{childOptions:a.map(({key:e,label:a})=>({title:a,value:e}
1)),onChange:t,placeholderLabel:s("dashcams.table.filter.notification.placeholder"),selectedValues:e,wrapperTitle:s("dashcams.table.filter.notification.all")}))},Me=({dispatch:e,emailNotificationToggleDisabled:a,selectedNotificationStatuses:t,setSelectedNotificationStatuses:s,setShowConfirmationModal:n,t:o})=>()=>{if(!a){const a=t,i=a.filter(e=>Object.values(d.xc).includes(e)),l=a.filter(e=>Object.values(d.U5).includes(e));a&&a.length>0?e(D.o.updateDashcamsNotification({eventTypes:i,aiDashcamNotificationTypes:l},{meta:{errorMessage:o("dashcams.confirmation.drawer.harshEventNotification.update.failure.message"),successMessage:o("dashcams.confirmation.drawer.harshEventNotification.enabled.success.message")}})):Fe({dispatch:e,setSelectedNotificationStatuses:s,t:o}),n(!1)}},Fe=({dispatch:e,setSelectedNotificationStatuses:a,t})=>{e(D.o.deleteDashcamsNotification(null,{meta:{errorMessage:t("dashcams.confirmation.drawer.harshEventNotification.update.failure.message"),successMessage:t("dashcams.confirmation.drawer.harshEventNotification.disabled.success.message")}})),a([])};var ke=t(19615);const He=(0,_.wY)(e=>({intervalDropDrown:{width:"50%"},loadingWrapper:{display:"flex",justifyContent:"center"},selectedItems:{fontWeight:e.typography.weights.medium,paddingLeft:e.spacing(1)}}),{name:"OfflineNotifications"});var Ue=t(14041);const Ge=()=>{const{t:e}=(0,u.t)(),a=He(),t=(0,s.wA)(),{notificationEnabled:o,offlineInterval:i,requestProcessing:c}=(0,s.d4)(m.T.getDashcamOfflineNotificationData),[p,g]=(0,h.useState)(i),[f,A]=(0,h.useState)(!1);(()=>{const e=(0,s.wA)(),a=(0,s.d4)(l.T.getIsUserOrgSwitched);(0,ke.y)(()=>{a||e(D.o.fetchDashcamsOfflineNotification())})})();const{organisationId:E}=(0,s.d4)(l.T.getSelectedOrganisation),S=(0,r.F)("dashcams.showAiDashcamNotificationSettings","showAiDashcamNotificationSettingsWhitelist",E)?"dashcams.drawers.offlineNotifications.tooltip.clarityEdge":"dashcams.drawers.offlineNotifications.tooltip",b=c,y=i&&d.Mw[i]||null,I="dashcams.drawers.offlineNotifications.title",v=Boolean(y)&&Ue.createElement(Ue.Fragment,null,Ue.createElement(n.s,{id:"dashcams.drawers.offlineNotifications.selected.interval.title"}),":"," ",Ue.createElement(n.s,{id:"dashcams.drawers.offlineNotifications.modal.interval.days",values:{days:y,isSingleDay:1===y}}));return Ue.createElement(Ue.Fragment,null,Ue.createElement(pe,{toggled:o,onToggleChanged:je({setSelectedOfflineInterval:g,setShowConfirmationModal:A,dispatch:t,t:e}),disabled:b,title:Ue.createElement(n.s,{id:I}),onEdit:()=>{g(i),A(!0)},infoTooltip:Ue.createElement(n.s,{id:S}),supportUserTooltip:Ue.createElement(n.s,{id:"dashcams.drawers.offlineNotifications.supportUser.tooltip"}),testIdKey:"dashcamOfflineNotifications"},c?Ue.createElement("div",{className:a.loadingWrapper},Ue.createElement(C.t,null)):v),Ue.createElement(M.a,{centered:!0,okText:Ue.createElement(n.s,{id:"dashcams.drawers.offlineNotifications.modal.ok.text"}),okButtonProps:{disabled:!p,"data-testid":"offline-notifications-days-update"},cancelButtonProps:{"data-testid":"offline-notifications-days-cancel"},onCancel:()=>{A(!1),g(i)},onOk:Ve({offlineNotificationToggleDisabled:b,selectedOfflineInterval:p,setShowConfirmationModal:A,dispatch:t,t:e}),title:Ue.createElement(n.s,{id:I}),open:f},Ue.createElement(xe,{classes:a,setSelectedOfflineInterval:g,selectedOfflineInterval:p})))},xe=({classes:e,setSelectedOfflineInterval:a,selectedOfflineInterval:t})=>Ue.createElement(Ue.Fragment,null,Ue.createElement(n.s,{id:"dashcams.drawers.offlineNotifications.modal.description"}),Ue.createElement(Se.h,{size:3}),Ue.createElement(k.l,{className:e.intervalDropDrown,onChange:a,value:t,placeholder:Ue.createElement(n.s,{id:"dashcams.drawers.offlineNotifications.modal.interval.dropdown.placeholder"}),"data-testid":"offline-notifications-days-dropdown",options:Object.keys(d.Mw).map(e=>{const a=d.Mw[e];return{key:e,value:e,label:Ue.createElement(n.s,{id:"dashcams.drawers.offlineNotifications.modal.interval.days",values:{days:a,isSingleDay:1===a}})}})})),Ve=({dispatch:e,offlineNotificationToggleDisabled:a,selectedOfflineInterval:t,setShowConfirmationModal:s,t:n})=>()=>{!a&&t&&(e(D.o.updateDashcamsOfflineNotification({offlineInterval:t,dashcamNotificationOfflineEnabled:!0},{meta:{errorMessage:n("dashcams.confirmation.drawer.harshEventNotification.update.failure.message"),successMessage:n("dashcams.drawers.offlineNotifications.enabled.success.message")}})),s(!1))},je=({dispatch:e,setSelectedOfflineInterval:a,setShowConfirmationModal:t,t:s})=>n=>{n?t(!0):Ye({dispatch:e,setSelectedOfflineInterval:a,t:s})},Ye=({dispatch:e,setSelectedOfflineInterval:a,t})=>{e(D.o.deleteDashcamsOfflineNotification({},{meta:{errorMessage:t("dashcams.drawers.offlineNotifications.update.failure.message"),successMessage:t("dashcams.drawers.offlineNotifications.disabled.success.message")}})),a(null)};var Be=t(14041);const qe=()=>Be.createElement(Be.Fragment,null,Be.createElement("h2",null,Be.createElement(n.s,{id:"dashcams.drawers.emailN
1otifications.title"})),Be.createElement(Pe,null),Be.createElement(Ge,null),Be.createElement(b.K,{config:"dashcams.enableVideoSummaryNotificationToggle"},Be.createElement(De,null)));var $e=t(14041);const We=({isDrawerOpen:e,closeDrawer:a})=>{const t=(0,y.T)("READ.VIDEO_DATA_RETENTION"),{dashcamPlansAvailable:o,containsOnlyLocateOrNoPlansAvailable:i,requestProcessing:l}=(0,s.d4)(m.T.getDashcamPlansStatuses),r=!(0,E.G)()&&!i&&t;return $e.createElement(S._s,{type:S.ts.STANDARD,mask:!0,title:$e.createElement(n.s,{id:"dashcams.drawer.title"}),open:e,onClose:a,destroyOnClose:!0,loading:l,error:!l&&!o,"data-testid":"dashcam-settings-drawer"},$e.createElement(S.Tm,null,$e.createElement($e.Fragment,null,o&&$e.createElement(qe,null),r&&$e.createElement(b.K,{config:"replay.dataRetention"},$e.createElement(ee,null)))))},ze=(0,_.wY)(e=>({buttonGroup:{display:"flex",flexDirection:"row",paddingBottom:e.spacing(4),justifyContent:"flex-end",gap:e.spacing(4)},aiStarIcon:{width:e.spacing(4),height:e.spacing(4)}}),{name:"ButtonGroupDashcams"});var Qe=t(14041);const Xe=()=>{const e=ze(),a=(0,s.wA)(),{timeZone:t}=(0,u.t)(),{result:{totalRecords:o=0}}=(0,s.d4)(m.T.getDashcams)||{},[i,l]=(0,h.useState)(!1),r=(0,A.N)();return Qe.createElement("div",{className:e.buttonGroup},Qe.createElement(f.$,{icon:Qe.createElement(p.A,null),"data-testid":"dashcam-settings",onClick:()=>{l(!0)}},Qe.createElement(n.s,{id:"dashcams.setting.button.title",tagName:"span"})),Qe.createElement(We,{isDrawerOpen:i,closeDrawer:()=>l(!1)}),Qe.createElement(f.$,{icon:Qe.createElement(g.A,null),"data-testid":"export-dashcams",onClick:()=>a(D.o.exportDashcams({timeZone:r?t:void 0})),disabled:0===o},Qe.createElement(n.s,{id:"dashcams.page.export.button.label",tagName:"span"})))};var Ke=t(14041);const Ze=()=>{const{organisationId:e}=(0,s.d4)(l.T.getSelectedOrganisation),a=Je(),t=(0,r.F)("dashcams.showClarityEdgeTab","showClarityEdgeTabWhitelist",e)&&a;return Ke.createElement(o.zY,{hasBottomNav:!0},Ke.createElement(o.sT,{title:Ke.createElement(n.s,{id:"dashcams.page.title"}),actions:Ke.createElement(Xe,null)}),t?Ke.createElement(i.I,{activeKey:window.location.pathname,testId:"dashcams-NavTabs",tabs:a}):null)},Je=()=>{const{availableDashcamPlans:e=[]}=(0,s.d4)(m.T.getDashcamPlansStatuses)||{};return(0,c.h7)(e)&&(0,c.Zl)(e)?d.gu:null}},66838:(e,a,t)=>{t.d(a,{$F:()=>g,Be:()=>k,Cz:()=>b,Do:()=>G,GQ:()=>E,I7:()=>w,Io:()=>T,KU:()=>U,LI:()=>S,Mw:()=>_,Oh:()=>V,PD:()=>y,Rn:()=>O,S9:()=>h,U5:()=>D,UK:()=>j,Zh:()=>l,aO:()=>r,b8:()=>M,bL:()=>v,cf:()=>f,cw:()=>P,dA:()=>m,dD:()=>d,dH:()=>x,fp:()=>i,fv:()=>C,g4:()=>p,gu:()=>H,hL:()=>u,hg:()=>F,pC:()=>c,uU:()=>R,xc:()=>A,zO:()=>L});var s=t(18198),n=t(47752),o=t(44053);const i={CLARITY:"DASHCAM_FILTERS_CLARITY",CLARITY_EDGE:"DASHCAM_FILTERS_CLARITY_EDGE"},l={INSTALLED:"INSTALLED",PENDING_ASSIGNMENT:"PENDING_ASSIGNMENT"},r=1,c={[o.vL.ASSIGN]:{titleMessageId:"dashcams.modal.title.assign",submitMessageId:"dashcams.modal.okText.assign",cancelMessageId:"dashcams.modal.cancelText",successMessageId:"dashcams.message.assignComplete"},[o.vL.REASSIGN]:{titleMessageId:"dashcams.modal.title.reassign",submitMessageId:"dashcams.modal.okText.reassign",cancelMessageId:"dashcams.modal.cancelText",successMessageId:"dashcams.message.reassignComplete"},[o.vL.MANAGE_PLAN]:{titleMessageId:"dashcams.modal.title.managePlan",submitMessageId:"dashcams.modal.okText.managePlan",cancelMessageId:"dashcams.modal.cancelText",successMessageId:"dashcams.message.changePlanComplete"}},d={7:"dashcams.error.codes.7.internalServiceFailed",8:"dashcams.error.codes.8.entryNotFound",29:"dashcams.error.codes.29.machineAlreadyAssigned"},m={SMALL:"SMALL",LARGE:"LARGE"},h={[m.SMALL]:{NO_SNAPSHOT_IMAGE:"./images/replay/no-thumbnail.png",NO_CAMERA_IMAGE:"./images/replay/no-camera.png"},[m.LARGE]:{NO_SNAPSHOT_IMAGE:"./images/replay/no-thumbnail-lg.png",NO_CAMERA_IMAGE:"./images/replay/no-camera-lg.png"}},u={WIDE:3,NARROW:2},[p,g,f]=(0,n.E)({ALL:"ALL",PENDING_INSTALL:"PENDING_INSTALL",PENDING_ASSIGNMENT:"PENDING_ASSIGNMENT",INSTALLED:"INSTALLED",INSTALLED_PENDING_RMA:"INSTALLED_PENDING_RMA"},["dashcams.enum.lifecycle.all","dashcams.enum.lifecycle.pendingInstall","dashcams.enum.lifecycle.pendingAssignment","dashcams.enum.lifecycle.installed","dashcams.enum.lifecycle.installedPendingRma"]),A={HARSH_BRAKING:"HARSH_BRAKING",HARSH_ACCELERATION:"HARSH_ACCELERATION",SHARP_CORNERING:"SHARP_CORNERING",MANUAL:"MANUAL"},D={DASHCAM_AI_ROAD_OVERSPEED:"DASHCAM_AI_ROAD_OVERSPEED",DASHCAM_AI_ROAD_ROLLING_STOP:"DASHCAM_AI_ROAD_ROLLING_STOP",DASHCAM_AI_ROAD_FOLLOWING_TOO_CLOSE:"DASHCAM_AI_ROAD_FOLLOWING_TOO_CLOSE",DASHCAM_AI_ROAD_FORWARD_COLLISION_WARNING:"DASHCAM_AI_ROAD_FORWARD_COLLISION_WARNING",DASHCAM_AI_ROAD_PROXIMITY_ALERT:"DASHCAM_AI_ROAD_PROXIMITY_ALERT",DASHCAM_AI_DRIVER_PHONE_USE:"DASHCAM_AI_DRIVER_PHONE_USE",DASHCAM_AI_DRIVER_UNFASTENED_SEATBELT:"DASHCAM_AI_DRIVER_UNFASTENED_SEATBELT",DASHCAM_AI_FATIGUE_FATIGUE:"DASHCAM_AI_FATIGUE_FATIGUE",DASHCAM_AI_DRIVER_SMOKING:"DASHCAM_AI_DRIVER_SMOKING",DASHCAM_AI_DRIVER_DISTRACTION:"DASHCAM_AI_DRIVER_DISTRACTION",DASHCAM_AI_DRIVER_YAWNING:"DASHCAM_AI_DRIVER_YAWNING",DASHCAM_AI_DRIVER_NO_DRIVER:"DASHCAM_AI_DRIVER_NO_DRIVER"},E={[A.HARSH_BRAKING]:{messageId:"dashcams.enum.notification.harshBraking"},[A.HARSH_ACCELERATION]:{messageId:"dashcams.enum.notification.harshAcceleration"},[A.SHARP_CORNERING]:{messageId:"dashcams.enum.notification.harshCornering"},[A.MANUAL]:{messageId:"dashcams.enum.notification.manual"}},S={[D.DASHCAM_AI_ROAD_OVERSPEED]:{messageId:"dashcams.enum.notification.overspeed"},[D.DASHCAM_AI_ROAD_ROLLING_STOP]:{messageId:"dashcams.enum.notification.rollingStop"},[D.DASHCAM_AI_ROAD_FOLLOWING_TOO_CLOSE]:{messageId:"dashcams.enum.notification.followingTooClose"},[D.DASHCAM_AI_ROAD_FORWARD_COLLISION_WARNING]:{messageId:"dashcams.enum.notification.forwardCollisionWarning"},[D.DASHCAM_AI_ROAD_PROXIMITY_ALERT]:{messageId:"dashcams.enum.notification.proximityAlert"},[D.DASHCAM_AI_DRIVER_PHONE_USE]:{messageId:"dashcams.enum.notification.mobilePhoneUsage"},[D.DASHCAM_AI_DRIVER_UNFASTENED_SEATBELT]:{messageId:"dashcams.enum.notification.noSeatbelt"},[D.DASHCAM_AI_FATIGUE_FATIGUE]:{messageId:"dashcams.enum.notification.fatigue"},[D.DASHCAM_AI_DRIVER_SMOKING]:{messageId:"dashcams.enum.notification.smoking"},[D.DASHCAM_AI_DRIVER_DISTRACTION]:{messageId:"dashcams.enum.notification.distractedDriving"},[D.DASHCAM_AI_DRIVER_YAWNING]:{messageId:"dashcams.enum.notification.yawning"},[D.DASHCAM_AI_DRIVER_NO_DRIVER]:{messageId:"dashcams.enum.notification.noDriver"}},b={TOTAL_CLIPS:{messageId:"dashcams.health.page.stats.totalclips",progressClass:"totalClips"},TOTAL_MANUALS:{messageId:"dashcams.health.page.stats.manual",progressClass:"manualEvents"},TOTAL_HARSHS:{messageId:"dashcams.health.page.stats.harsh",progressClass:"harshEvents"},TOTAL_REQUESTEDS:{messageId:"dashcams.health.page.stats.requested",progressClass:"requestedEvents"}},y={lifecycleState:["lifeCycleState","lifecycleLastModified"]},[I,v,N]=(0,n.E)({ENABLED:"true",DISABLED:"false"},["dashcams.enum.driverlogon.enabled","dashcams.enum.driverlogon.disabled"]),C={[o.Fj.MONTHS_3]:{key:o.Fj.MONTHS_3,months:3,messageId:"dashcams.drawer.dataRetention.period.3Months"},[o.Fj.MONTHS_6]:{key:o.Fj.MONTHS_6,months:6,messageId:"dashcams.drawer.dataRetention.period.6Months"},[o.Fj.MONTHS_12]:{key:o.Fj.MONTHS_12,months:12,messageId:"dashcams.drawer.dataRetention.period.12Months"},[o.Fj.MONTHS_18]:{key:o.Fj.MONTHS_18,months:18,messageId:"dashcams.drawer.dataRetention.period.18Months"},[o.Fj.MONTHS_24]:{key:o.Fj.MONTHS_24,months:24,messageId:"dashcams.drawer.dataRetention.period.24Months"},[o.Fj.MONTHS_36]:{key:o.Fj.MONTHS_36,months:36,messageId:"dashcams.drawer.dataRetention.period.36Months"}},O=[o.Fj.MONTHS_24,o.Fj.MONTHS_36],_={"1_DAY":1,"2_DAYS":2,"3_DAYS":3,"4_DAYS":4,"5_DAYS":5,"6_DAYS":6,"7_DAYS":7},T={CLARITY:"/dashcams",CLARITY_EDGE:"/dashcams/clarity-edge"},w={[s.YN.CLARITY]:{DASHCAM_LIST:T.CLARITY,DASHCAM_LIST_CORETEX:"/myeroaddashcams",DASHCAM_HEALTH:"/dashcams/health/:recordId"},[s.YN.STREAMAX]:{DASHCAM_LIST:T.CLARITY_EDGE,DASHCAM_LIST_CORETEX:"/myeroaddashcams/clarityedge",DASHCAM_HEALTH:"/dashcams/clarity-edge/health/:recordId"}},R={AUTO_DRIVER_LOGOFF:"AUTO_DRIVER_LOGOFF",REPEATED_DRIVER_LOGON:"REPEATE
1D_DRIVER_LOGON"},P={AO_MONITORED_SERVICE_BASIC:"AO_MONITORED_SERVICE_BASIC",AO_MONITORED_SERVICE_PRO:"AO_MONITORED_SERVICE_PRO"},L={DASHCAM_AI_DRIVER_DISTRACTION:"DASHCAM_AI_DRIVER_DISTRACTION",DASHCAM_AI_DRIVER_NO_DRIVER:"DASHCAM_AI_DRIVER_NO_DRIVER",DASHCAM_AI_DRIVER_PHONE_USE:"DASHCAM_AI_DRIVER_PHONE_USE",DASHCAM_AI_DRIVER_SMOKING:"DASHCAM_AI_DRIVER_SMOKING",DASHCAM_AI_DRIVER_UNFASTENED_SEATBELT:"DASHCAM_AI_DRIVER_UNFASTENED_SEATBELT",DASHCAM_AI_DRIVER_YAWNING:"DASHCAM_AI_DRIVER_YAWNING",DASHCAM_AI_ROAD_FOLLOWING_TOO_CLOSE:"DASHCAM_AI_ROAD_FOLLOWING_TOO_CLOSE",DASHCAM_AI_ROAD_FORWARD_COLLISION_WARNING:"DASHCAM_AI_ROAD_FORWARD_COLLISION_WARNING",DASHCAM_AI_ROAD_PEDESTRIAN_COLLISION_WARNING:"DASHCAM_AI_ROAD_PEDESTRIAN_COLLISION_WARNING",DASHCAM_AI_ROAD_SPEED_SIGN_VIOLATION:"DASHCAM_AI_ROAD_SPEED_SIGN_VIOLATION",DASHCAM_AI_ROAD_STOP_SIGN_VIOLATION:"DASHCAM_AI_ROAD_STOP_SIGN_VIOLATION",DASHCAM_AI_FATIGUE_FATIGUE:"DASHCAM_AI_FATIGUE_FATIGUE"},M={DASHCAM_AI_DRIVER_DISTRACTION_IN_CAB_PROMPT:"DASHCAM_AI_DRIVER_DISTRACTION_IN_CAB_PROMPT",DASHCAM_AI_DRIVER_NO_DRIVER_IN_CAB_PROMPT:"DASHCAM_AI_DRIVER_NO_DRIVER_IN_CAB_PROMPT",DASHCAM_AI_DRIVER_PHONE_USE_IN_CAB_PROMPT:"DASHCAM_AI_DRIVER_PHONE_USE_IN_CAB_PROMPT",DASHCAM_AI_DRIVER_SMOKING_IN_CAB_PROMPT:"DASHCAM_AI_DRIVER_SMOKING_IN_CAB_PROMPT",DASHCAM_AI_DRIVER_UNFASTENED_SEATBELT_IN_CAB_PROMPT:"DASHCAM_AI_DRIVER_UNFASTENED_SEATBELT_IN_CAB_PROMPT",DASHCAM_AI_DRIVER_YAWNING_IN_CAB_PROMPT:"DASHCAM_AI_DRIVER_YAWNING_IN_CAB_PROMPT",DASHCAM_AI_ROAD_FOLLOWING_TOO_CLOSE_IN_CAB_PROMPT:"DASHCAM_AI_ROAD_FOLLOWING_TOO_CLOSE_IN_CAB_PROMPT",DASHCAM_AI_ROAD_FORWARD_COLLISION_WARNING_IN_CAB_PROMPT:"DASHCAM_AI_ROAD_FORWARD_COLLISION_WARNING_IN_CAB_PROMPT",DASHCAM_AI_ROAD_PEDESTRIAN_COLLISION_WARNING_IN_CAB_PROMPT:"DASHCAM_AI_ROAD_PEDESTRIAN_COLLISION_WARNING_IN_CAB_PROMPT",DASHCAM_AI_ROAD_SPEED_SIGN_VIOLATION_IN_CAB_PROMPT:"DASHCAM_AI_ROAD_SPEED_SIGN_VIOLATION_IN_CAB_PROMPT",DASHCAM_AI_ROAD_STOP_SIGN_VIOLATION_IN_CAB_PROMPT:"DASHCAM_AI_ROAD_STOP_SIGN_VIOLATION_IN_CAB_PROMPT",DASHCAM_AI_FATIGUE_FATIGUE_IN_CAB_PROMPT:"DASHCAM_AI_FATIGUE_FATIGUE_IN_CAB_PROMPT"},F={[L.DASHCAM_AI_ROAD_SPEED_SIGN_VIOLATION]:{detectorNameMessageId:"dashcams.detectors.management.drawer.tab.overspeed",inCabAudioDetector:M.DASHCAM_AI_ROAD_SPEED_SIGN_VIOLATION_IN_CAB_PROMPT,cameraType:s.db.ROAD_FACING},[L.DASHCAM_AI_ROAD_STOP_SIGN_VIOLATION]:{detectorNameMessageId:"dashcams.detectors.management.drawer.tab.rollingStop",inCabAudioDetector:M.DASHCAM_AI_ROAD_STOP_SIGN_VIOLATION_IN_CAB_PROMPT,cameraType:s.db.ROAD_FACING},[L.DASHCAM_AI_ROAD_FOLLOWING_TOO_CLOSE]:{detectorNameMessageId:"dashcams.detectors.management.drawer.tab.followingDistance",inCabAudioDetector:M.DASHCAM_AI_ROAD_FOLLOWING_TOO_CLOSE_IN_CAB_PROMPT,cameraType:s.db.ROAD_FACING},[L.DASHCAM_AI_ROAD_FORWARD_COLLISION_WARNING]:{detectorNameMessageId:"dashcams.detectors.management.drawer.tab.forwardCollisionWarning",inCabAudioDetector:M.DASHCAM_AI_ROAD_FORWARD_COLLISION_WARNING_IN_CAB_PROMPT,cameraType:s.db.ROAD_FACING},[L.DASHCAM_AI_ROAD_PEDESTRIAN_COLLISION_WARNING]:{detectorNameMessageId:"dashcams.detectors.management.drawer.tab.proximityAlert",inCabAudioDetector:M.DASHCAM_AI_ROAD_PEDESTRIAN_COLLISION_WARNING_IN_CAB_PROMPT,cameraType:s.db.ROAD_FACING},[L.DASHCAM_AI_DRIVER_PHONE_USE]:{detectorNameMessageId:"dashcams.detectors.management.drawer.tab.cellphoneUsage",inCabAudioDetector:M.DASHCAM_AI_DRIVER_PHONE_USE_IN_CAB_PROMPT,cameraType:s.db.DRIVER_FACING},[L.DASHCAM_AI_DRIVER_UNFASTENED_SEATBELT]:{detectorNameMessageId:"dashcams.detectors.management.drawer.tab.noSeatBelt",inCabAudioDetector:M.DASHCAM_AI_DRIVER_UNFASTENED_SEATBELT_IN_CAB_PROMPT,cameraType:s.db.DRIVER_FACING},[L.DASHCAM_AI_FATIGUE_FATIGUE]:{detectorNameMessageId:"dashcams.detectors.management.drawer.tab.fatigue",inCabAudioDetector:M.DASHCAM_AI_FATIGUE_FATIGUE_IN_CAB_PROMPT,cameraType:s.db.DRIVER_FACING},[L.DASHCAM_AI_DRIVER_SMOKING]:{detectorNameMessageId:"dashcams.detectors.management.drawer.tab.smoking",inCabAudioDetector:M.DASHCAM_AI_DRIVER_SMOKING_IN_CAB_PROMPT,cameraType:s.db.DRIVER_FACING},[L.DASHCAM_AI_DRIVER_DISTRACTION]:{detectorNameMessageId:"dashcams.detectors.management.drawer.tab.driverDistraction",inCabAudioDetector:M.DASHCAM_AI_DRIVER_DISTRACTION_IN_CAB_PROMPT,cameraType:s.db.DRIVER_FACING},[L.DASHCAM_AI_DRIVER_YAWNING]:{detectorNameMessageId:"dashcams.detectors.management.drawer.tab.yawning",inCabAudioDetector:M.DASHCAM_AI_DRIVER_YAWNING_IN_CAB_PROMPT,cameraType:s.db.DRIVER_FACING},[L.DASHCAM_AI_DRIVER_NO_DRIVER]:{detectorNameMessageId:"dashcams.detectors.management.drawer.tab.noDriverDetected",inCabAudioDetector:M.DASHCAM_AI_DRIVER_NO_DRIVER_IN_CAB_PROMPT,cameraType:s.db.DRIVER_FACING}}
1,k={[s.db.ROAD_FACING]:{messageId:"dashcams.detectors.management.drawer.tab.title.roadFacing"},[s.db.DRIVER_FACING]:{messageId:"dashcams.detectors.management.drawer.tab.title.driverFacing"}},H=[{path:`${T.CLARITY_EDGE}`,tabTestId:"clarity-edge-dashcams-list",titleId:"dashcams.tab.title.clarityEdge"},{path:`${T.CLARITY}`,tabTestId:"clarity-dashcam-list",titleId:"dashcams.tab.title.clarity"}],U={ONLINE:"ONLINE",OFFLINE:"OFFLINE"},G={[U.ONLINE]:{messageId:"dashcams.table.column.dashcamStatus.online",tooltipMessageId:"dashcams.table.column.dashcamStatus.tooltip.online"},[U.OFFLINE]:{messageId:"dashcams.table.column.dashcamStatus.offline",tooltipMessageId:"dashcams.table.column.dashcamStatus.tooltip.offline"}},x={[s.kX.FRONT_SNAPSHOT]:{headingMessageId:"dashcams.table.column.lastsnapshot.front.label",imageTooltipMessageId:"dashcams.table.column.lastsnapshot.front.title",refreshMessageId:"dashcams.health.snapshots.perCamera.refreshCameraEvent",showInDashcamsListPage:!0},[s.kX.DRIVER_SNAPSHOT]:{headingMessageId:"dashcams.table.column.lastsnapshot.rear.label",imageTooltipMessageId:"dashcams.table.column.lastsnapshot.rear.title",refreshMessageId:"dashcams.health.snapshots.perCamera.refreshCameraEvent",showInDashcamsListPage:!0},[s.kX.FATIGUE_SNAPSHOT]:{headingMessageId:"dashcams.table.column.lastsnapshot.fatigue.label",imageTooltipMessageId:"dashcams.table.column.lastsnapshot.fatigue.title",refreshMessageId:"dashcams.health.snapshots.perCamera.refreshDriverEvent",showInDashcamsListPage:!0}},V=new Map([[o._i.ROAD_CAMERA,"dashcams.faults.component.roadCamera"],[o._i.DRIVER_CAMERA,"dashcams.faults.component.driverCamera"],[o._i.FATIGUE,"dashcams.faults.component.fatigue"],[o._i.DUAL_FATIGUE,"dashcams.faults.component.dualFatigue"],[o._i.LEFT_MIRROR_RAIL,"dashcams.faults.component.leftMirrorRail"],[o._i.RIGHT_MIRROR_RAIL,"dashcams.faults.component.rightMirrorRail"],[o._i.LEFT_SIDE_FLUSH,"dashcams.faults.component.leftSideFlush"],[o._i.RIGHT_SIDE_FLUSH,"dashcams.faults.component.rightSideFlush"],[o._i.REAR_OTHER,"dashcams.faults.component.rearOther"],[o._i.REAR_ROAD,"dashcams.faults.component.rearRoad"],[o._i.STORAGE1,"dashcams.faults.component.storage1"],[o._i.STORAGE2,"dashcams.faults.component.storage2"]]),j=new Map([[o.nM.LENS_OCCLUSION,{titleMessageId:"dashcams.faults.lensOcclusion",componentTitleMessageId:"dashcams.faults.lensOcclusion.component",componentType:o.$C.CAMERA,descriptionMessageId:"dashcams.faults.resolution.lensOcclusion.description",repairMessageId:"dashcams.faults.resolution.lensOcclusion.repair.steps",severityLabelMessageId:"dashcams.faults.severity.medium"}],[o.nM.MEMORY_FAILURE,{titleMessageId:"dashcams.faults.memoryFailure",componentTitleMessageId:"dashcams.faults.memoryFailure.component",componentType:o.$C.SD_CARD,descriptionMessageId:"dashcams.faults.resolution.memoryFailure.description",repairMessageId:"dashcams.faults.resolution.memoryFailure.repair.steps",severityLabelMessageId:"dashcams.faults.severity.high"}],[o.nM.VIDEO_LOST,{titleMessageId:"dashcams.faults.videoLost",componentTitleMessageId:"dashcams.faults.videoLost.component",componentType:o.$C.CAMERA,descriptionMessageId:"dashcams.faults.resolution.videoLost.description",repairMessageId:"dashcams.faults.resolution.videoLost.repair.steps",severityLabelMessageId:"dashcams.faults.severity.high"}]])},67370:(e,a,t)=>{t.d(a,{K:()=>n});var s=t(62009);const n=({children:e,config:a})=>(0,s.F)(a)?e:null},68387:(e,a,t)=>{t.d(a,{O:()=>s,i:()=>n});const s=(e=0,a=1)=>{const t=a>0?a:1;return Math.round(e/t*100)},n=({itemCount:e,maxColumns:a})=>Math.max(1,Math.min(a,e))},68422:(e,a,t)=>{t.d(a,{w:()=>je});var s=t(14041),n=t(70541),o=t(76787),i=t(43420),l=t(80601),r=t(93815),c=t(63244),d=t(79623),m=t(31820),h=t(94462),u=t(40508),p=t(24637),g=t(66838),f=t(44053),A=t(43499),D=t(2759);const E=[],S=({products:e,selectedProductName:a})=>{var t;return(null==e?void 0:e.length)&&(null==(t=null==e?void 0:e.find(({productName:e})=>e===a))?void 0:t.recordingPlans)||null};var b=t(22088),y=t(28871),I=t(95141),v=t(40026),N=t(93753),C=t(1454);const O=(0,C.wY)(e=>({labelWrapper:{display:"flex",alignItems:"center"},colWrapper:{display:"flex",justifyContent:"space-between",alignItems:"baseline",padding:`${e.spacing(.5)}px 0`}}),{name:"DriverAddOns"});
1var _=t(87908),T=t(20307),w=t(13215),R=t(36922);const P=(0,C.wY)(e=>({root:{marginLeft:e.spacing(4)},labelWrapper:{display:"flex",alignItems:"center"},rowWrapper:{display:"flex",justifyContent:"space-between",alignItems:"baseline",padding:`${e.spacing(.5)}px 0`}}),{name:"DriverAutoLogout"});var L=t(14041),M=Object.defineProperty,F=Object.defineProperties,k=Object.getOwnPropertyDescriptors,H=Object.getOwnPropertySymbols,U=Object.prototype.hasOwnProperty,G=Object.prototype.propertyIsEnumerable,x=(e,a,t)=>a in e?M(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t;const V=({onChange:e=_.l,value:a={}})=>{const t=P(),s=t=>s=>{var n,o;e((n=((e,a)=>{for(var t in a||(a={}))U.call(a,t)&&x(e,t,a[t]);if(H)for(var t of H(a))G.call(a,t)&&x(e,t,a[t]);return e})({},a),o={[t]:Boolean(s.target.checked)},F(n,k(o))))};return L.createElement("div",{className:t.root},L.createElement(v.y,null,L.createElement(v.f,{span:24},L.createElement("div",{className:t.rowWrapper},L.createElement("div",{className:t.labelWrapper},L.createElement("span",null,L.createElement(i.s,{id:"dashcams.modal.products.deviceConfig.autoLogout"})),L.createElement(w.h,{size:3}),L.createElement(R.m,{title:L.createElement(i.s,{id:"dashcams.modal.products.deviceConfig.autoLogout.tooltip"})},L.createElement(T.A,null))),L.createElement(I.S,{checked:a[g.uU.AUTO_DRIVER_LOGOFF],"data-testid":"dashcam-config-auto-logoff",onChange:s(g.uU.AUTO_DRIVER_LOGOFF)})))),L.createElement(v.y,null,L.createElement(v.f,{span:24},L.createElement("div",{className:t.rowWrapper},L.createElement("div",{className:t.labelWrapper},L.createElement("span",null,L.createElement(i.s,{id:"dashcams.modal.products.deviceConfig.repeatedAlarm"})),L.createElement(w.h,{size:3}),L.createElement(R.m,{title:L.createElement(i.s,{id:"dashcams.modal.products.deviceConfig.repeatedAlarm.tooltip"})},L.createElement(T.A,null))),L.createElement(I.S,{checked:a[g.uU.REPEATED_DRIVER_LOGON],"data-testid":"dashcam-config-repeated-alarm",onChange:s(g.uU.REPEATED_DRIVER_LOGON)})))))};var j=t(51962);const Y=(0,C.wY)(e=>({root:{marginLeft:e.spacing(4)},labelWrapper:{alignItems:"center",display:"flex"},rowWrapper:{alignItems:"baseline",display:"flex",justifyContent:"space-between",padding:`${e.spacing(.5)}px 0`}}),{name:"FatigueCameraPlans"});var B=t(14041),q=Object.defineProperty,$=Object.defineProperties,W=Object.getOwnPropertyDescriptors,z=Object.getOwnPropertySymbols,Q=Object.prototype.hasOwnProperty,X=Object.prototype.propertyIsEnumerable,K=(e,a,t)=>a in e?q(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,Z=(e,a)=>{for(var t in a||(a={}))Q.call(a,t)&&K(e,t,a[t]);if(z)for(var t of z(a))X.call(a,t)&&K(e,t,a[t]);return e},J=(e,a)=>$(e,W(a));const ee=({onChange:e=_.l,value:a={},addOns:t})=>{const s=Y(),n=null==t?void 0:t.filter(({addOnName:e})=>Object.keys(g.cw).includes(e)),o=Object.keys(g.cw).reduce((e,a)=>J(Z({},e),{[a]:!1}),{});return(0,j.O)(n)?B.createElement("div",{className:s.root},null==n?void 0:n.map(({available:t=0,used:n=0,addOnName:l,selected:r})=>{const c=a&&a[l],d=(r?n-1:n)>=t,m=g.cw.AO_MONITORED_SERVICE_BASIC===l?"dashcams.modal.addons.driver.fatigueCamera.plan.basic":"dashcams.modal.addons.driver.fatigueCamera.plan.pro";return B.createElement(v.y,{key:`dashcam-fatigue-camera-addon-key-${l}`},B.createElement(v.f,{span:24},B.createElement("div",{className:s.rowWrapper},B.createElement("div",{className:s.labelWrapper},B.createElement(i.s,{id:m,values:{used:n,available:t}})),B.createElement(I.S,{checked:c,"data-testid":`dashcam-fatigue-camera-plan-${l}`,onChange:(h=l,t=>{e(J(Z(Z({},a),o),{[h]:Boolean(t.target.checked)}))}),disabled:d}))));var h})):null};var ae=t(14041),te=Object.defineProperty,se=Object.defineProperties,ne=Object.getOwnPropertyDescriptors,oe=Object.getOwnPropertySymbols,ie=Object.prototype.hasOwnProperty,le=Object.prototype.propertyIsEnumerable,re=(e,a,t)=>a in e?te(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,ce=(e,a)=>{for(var t in a||(a={}))ie.call(a,t)&&re(e,t,a[t]);if(oe)for(var t of oe(a))le.call(a,t)&&re(e,t,a[t]);return e},de=(e,a)=>se(e,ne(a));const me=({addOns:e,value:a,onChange:t})=>
1{const n=O(),[o,l]=(0,s.useState)(a&&a[N.oH.ADDON_NAMES.CLARITY_SOLO_DRIVER_LOGON]),[r,d]=(0,s.useState)(a&&a[N.oH.ADDON_NAMES.CLARITY_EDGE_FATIGUE_CAMERA]),[m,h]=(0,s.useState)(a&&a[N.oH.ADDON_NAMES.CLARITY_EDGE_DUAL_FATIGUE_CAMERA]);(0,s.useEffect)(()=>{a&&(l(a[N.oH.ADDON_NAMES.CLARITY_SOLO_DRIVER_LOGON]),d(a[N.oH.ADDON_NAMES.CLARITY_EDGE_FATIGUE_CAMERA]),h(a[N.oH.ADDON_NAMES.CLARITY_EDGE_DUAL_FATIGUE_CAMERA]))},[a]);const u=e=>s=>{if(t&&e===N.oH.ADDON_NAMES.CLARITY_SOLO_DRIVER_LOGON&&(t(de(ce({},a),{[e]:s.target.checked})),l(s.target.checked)),t&&[N.oH.ADDON_NAMES.CLARITY_EDGE_FATIGUE_CAMERA,N.oH.ADDON_NAMES.CLARITY_EDGE_DUAL_FATIGUE_CAMERA].includes(e)){const n=ce(ce(ce({},a),(0,y.b)(a&&a[g.cw.AO_MONITORED_SERVICE_BASIC])?{}:{[g.cw.AO_MONITORED_SERVICE_BASIC]:!1}),(0,y.b)(a&&a[g.cw.AO_MONITORED_SERVICE_PRO])?{}:{[g.cw.AO_MONITORED_SERVICE_PRO]:!1});t(de(ce({},s.target.checked?a:n),{[e]:s.target.checked})),e===N.oH.ADDON_NAMES.CLARITY_EDGE_FATIGUE_CAMERA&&d(s.target.checked),e===N.oH.ADDON_NAMES.CLARITY_EDGE_DUAL_FATIGUE_CAMERA&&h(s.target.checked)}},p=null==e?void 0:e.filter(({addOnName:e})=>Object.keys(N.yZ).includes(e));return ae.createElement(ae.Fragment,null,null==p?void 0:p.map(({available:t=0,used:s=0,addOnName:l,selected:d})=>{var h;const p=a&&a[l],g=(d?s-1:s)>=t,f=(r||m)&&[N.oH.ADDON_NAMES.CLARITY_EDGE_FATIGUE_CAMERA,N.oH.ADDON_NAMES.CLARITY_EDGE_DUAL_FATIGUE_CAMERA].includes(l);return ae.createElement("div",{key:`dashcam-addon-${l}`},ae.createElement(v.y,null,ae.createElement(v.f,{span:24,className:n.colWrapper},ae.createElement(i.s,{id:(null==(h=N.yZ[l])?void 0:h.messageId)||"dashcams.modal.products.addOns.unnamed",values:{used:s,available:t}}),ae.createElement("div",null,ae.createElement(I.S,{key:"addon-checkbox","data-testid":`dashcam-addon-${l}`,checked:p,disabled:g,onChange:u(l)})))),o&&l===N.oH.ADDON_NAMES.CLARITY_SOLO_DRIVER_LOGON&&ae.createElement(c.eI,{noStyle:!0,name:"configs"},ae.createElement(V,null)),f&&ae.createElement(c.eI,{noStyle:!0,name:"addOnValues"},ae.createElement(ee,{addOns:e})))}))};var he=t(76866),ue=t(41026);const pe=(0,C.wY)(e=>({alert:{marginBottom:e.spacing(3)}}),{name:"ManageDashcamError"});var ge=t(14041);const fe={NOT_COMPATIBLE_PLAN:{id:"dashcams.modal.error.not.compatible.plan",getValues:e=>({DepotLink:a=>ge.createElement(ue.p,{to:`/Portal/admin/machinemanagement/updatevehicle?machineGid=${null==e?void 0:e.id}&iframeSpinner=show`},a)})},NO_MAIN_SERVICE_PLAN:{id:"dashcams.modal.error.no.main.plan",getValues:e=>({DepotLink:a=>ge.createElement(ue.p,{to:`/Portal/admin/machinemanagement/updatevehicle?machineGid=${null==e?void 0:e.id}&iframeSpinner=show`},a)})},SERVER_UNREACHABLE:{id:"dashcams.modal.error.server.unreachable",getValues:null}},Ae=({selector:e=b.T.getDashcamModal})=>{const a=pe(),{t}=(0,l.t)(),{machine:s,oldMachine:o,request:i}=(0,n.d4)(e),r=(null==s?void 0:s.id)?s:null!=o?o:{id:null},c=fe[i.errorCode],d="string"==typeof i.errorCode?i.errorCode:"generic",m=c?t({id:c.id,values:c.getValues?c.getValues(r):{}}):i.errorMessage;return ge.createElement(he.F,{"data-testid":`ModalError.${d}`,showIcon:!0,className:a.alert,message:m,type:"error"})};var De=t(61418),Ee=t(14041);const Se=({products:e,onChange:a,value:t})=>Ee.createElement(De.l,{"data-testid":"dashcam-products-list",placeholder:Ee.createElement(i.s,{id:"dashcams.modal.products.dropdown.placeholder"}),onChange:a,value:t,options:e.map(({productName:e,totalAvailable:a,totalUsed:t})=>{var s;return{key:e,value:e,"data-testid":`dashcam-product-${e}`,label:Ee.createElement(i.s,{id:(null==(s=N.TH[e])?void 0:s.planInfoMessageId)||"dashcams.modal.products.label.unnamed",values:{used:t,available:a}})}})});var be=t(67252);const ye=(0,C.wY)(e=>({radio:{display:"flex",marginTop:e.spacing(1)}}),{name:"RecordingPlans"});var Ie=t(14041);const ve=({recordingPlans:e,value:a,onChange:t})=>{const s=ye(),n=null==e?void 0:e.map(({planName:e,available:a,used:t,selected:n})=>{var o;const l=(n?t-1:t)>=a;return Ie.createElement(be.sx,{className:s.radio,disabled:l,value:e,key:e,"data-testid":`recording-pan-option-${e}`},Ie.createElement(i.s,{id:(null==(o=N.Dw[e])?void 0:o.planInfoMessageId)||"dashcams.modal.products.unnamed.recordingPlan",values:{used:t,available:a}}))});return(null==n?void 0:n.length)?Ie.createElement(be.z6,{"data-testid":"dashcam-recording-plans",onChange:t,value:a},n):null};var Ne=t(14041);const Ce=/^[a-zA-Z0-9]+$/,Oe=({disabled:e=!1,loading:a=!1,form:t})=>{const o=(0,n.wA)(),l=(0,n.d4)(b.T.getDashcamVehicles),{machine:r}=(0,n.d4)(b.T.getDashcamModal),{request:{status:d,errors:m}}=(0,n.d4)(b.T.getAvailabilityToAssignDashcam);return(0,s.useEffect)(()=>{t&&d&&t.validateFields(["vehicle"])},[t,d]),Ne.createElement(c.eI,{label:Ne.createElement(i.s,{id:"dashcams.modal.label.vehicle"}),name:"vehicle",rules:[{required:!0,message:Ne.createElement(i.s,{id:"dashcams.modal.required.vehicle"})},{validator:Te(m)}],initialValue:null==r?void 0:r.initialMachineId},Ne.createElement(De.l,{disabled:e,"data-testid":"dashcam-vehicle-search",filterOption:(e,a)=>"string"==typeof(null==a?void 0:a.label)&&a.label.toLowerCase().indexOf(e.toLowerCase())>=0,loading:a,placeholder:Ne.createElement(i.s,{id:"dashcams.modal.placeholder.vehicle"}),onChange:e=>o(u.o.dashcamMachineSelected({selectedMachineId:e,machines:l})),onInputKeyDown:_e,showSearch:!0,value:null==r?void 0:r.id,options:l.filter(({active:e=!1})=>
1!0===e).map(({id:e,displayName:a,registration:t})=>({key:e,value:e,label:`${a} | ${t}`}))}))},_e=e=>{const a=Ce.test(e.key);return a||e.preventDefault(),a},Te=(e=[])=>()=>(null==e?void 0:e.length)?Promise.reject(Ne.createElement(Ne.Fragment,null,e.map(({code:e})=>Ne.createElement(i.s,{tagName:"div",key:g.dD[e],id:g.dD[e]||"dashcams.error.codes.0.defaultError"})))):Promise.resolve(),we=(0,C.wY)(e=>({rowWrapper:{display:"flex",justifyContent:"space-between"},servicePlanLink:{color:e.colors.primaryBlueDefault,fontWeight:"bold"},subHeading:{fontWeight:e.typography.weights.medium},loadingWrapper:{display:"flex",justifyContent:"center"},radio:{display:"flex",marginTop:e.spacing(1)}}),{name:"ManageDashcamDrawer"});var Re=t(14041),Pe=Object.defineProperty,Le=Object.defineProperties,Me=Object.getOwnPropertyDescriptors,Fe=Object.getOwnPropertySymbols,ke=Object.prototype.hasOwnProperty,He=Object.prototype.propertyIsEnumerable,Ue=(e,a,t)=>a in e?Pe(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,Ge=(e,a)=>{for(var t in a||(a={}))ke.call(a,t)&&Ue(e,t,a[t]);if(Fe)for(var t of Fe(a))He.call(a,t)&&Ue(e,t,a[t]);return e},xe=(e,a)=>Le(e,Me(a));const Ve=e=>e in g.uU,je=()=>{var e,a,t;const y=we(),I=(0,n.wA)(),{t:v}=(0,l.t)(),[N]=(0,c.mN)(),C=(0,n.d4)(b.T.getDashcamsQuery),{dashcam:O,machine:_,oldMachine:T,request:w,taskType:R,visible:P}=(0,n.d4)(b.T.getDashcamModal),L=null!=R?R:f.vL.ASSIGN,{products:M,addOns:F,mainAddOns:k,request:H,defaultProductName:U="",addOnValues:G,configs:x}=(0,n.d4)(b.T.getDashcamModalProducts),{request:V}=(0,n.d4)(b.T.getAvailabilityToAssignDashcam),[j,Y]=(0,s.useState)(null),[B,q]=(0,s.useState)(U),{showEnhancedManageDetectors:$,showRollingStopDetector:W,showOverSpeedDetector:z}=(0,D.q)(),Q=(0,n.d4)(b.T.getDashcamSettings),{allDetectors:X,allInCabAlerts:K,enabledDetectors:Z,enabledInCabAlerts:J,selectedAiDetectors:ee,selectedAiDetectorsInCabAlert:ae,setSelectedAiDetectors:te,setSelectedAiDetectorsInCabAlert:se}=((e=E)=>{const{allDetectors:a,allInCabAlerts:t,enabledDetectors:n,enabledInCabAlerts:o}=(0,s.useMemo)(()=>(0,A.zz)(e),[e]),[i,l]=(0,s.useState)(n),[r,c]=(0,s.useState)(o);return(0,s.useEffect)(()=>
1{l(n),c(o)},[n,o]),{allDetectors:a,allInCabAlerts:t,enabledDetectors:n,enabledInCabAlerts:o,selectedAiDetectors:i,selectedAiDetectorsInCabAlert:r,setSelectedAiDetectors:l,setSelectedAiDetectorsInCabAlert:c}})(Q);Be({machineId:L===f.vL.MANAGE_PLAN?T.id:_.id,dashcamId:O.id,mode:L}),(({addOnValues:e,configs:a,isDashcamInfoReady:t,productName:n,products:o,setFieldsValue:i,setRecordingPlans:l})=>{const r=(0,s.useRef)(e),c=(0,s.useRef)(a),d=(0,s.useRef)(o);(0,s.useEffect)(()=>{r.current=e,c.current=a,d.current=o}),(0,s.useEffect)(()=>{if(t){const e=S({products:d.current,selectedProductName:n}),{planName:a}=(null==e?void 0:e.find(({selected:e})=>e))||{};i({product:n,recordingPlan:a,addOnValues:r.current,configs:c.current}),l(S({products:d.current,selectedProductName:n}))}},[t,n,i,l])})({setFieldsValue:N.setFieldsValue,productName:B,addOnValues:G,products:M,setRecordingPlans:Y,isDashcamInfoReady:H.status===o.IQ.SUCCESS,configs:x}),(0,s.useEffect)(()=>{U&&q(U)},[U]),(0,s.useEffect)(()=>{R===f.vL.UNINSTALL&&w.status===o.IQ.FAILED&&w.errorMessage&&d.i.error(w.errorMessage)},[w,R]);const ne=w.status===o.IQ.PENDING,oe=(null==H?void 0:H.status)===o.IQ.PENDING||(null==V?void 0:V.status)===o.IQ.PENDING,ie=oe||Boolean(null==V?void 0:V.errors)||Boolean(null==H?void 0:H.errorMessage)||Boolean(null==w?void 0:w.errorMessage),le=(null==H?void 0:H.status)===o.IQ.SUCCESS&&Boolean(null==M?void 0:M.length),re=!(0,h.Cv)(B||U)&&(null==H?void 0:H.status)===o.IQ.SUCCESS&&Boolean(null==k?void 0:k.length),ce=L===f.vL.MANAGE_PLAN&&$&&(null==H?void 0:H.status)===o.IQ.SUCCESS&&(0,h.P7)(B||U)&&!(0,h.Cv)(B||U)&&X.length>0,de=(0,A.nM)({enabledDetectors:Z,selectedAiDetectors:ee,enabledInCabAlerts:J,selectedAiDetectorsInCabAlert:ae}),he=ce&&de?{selectedAiDetectors:ee,selectedAiDetectorsInCabAlert:ae,allDetectors:X,allInCabAlerts:K}:void 0,ue=()=>{I(u.o.dashcamTaskModalCancelClicked()),q(U),te(Z),se(J),N.resetFields()};return(e=>e in g.pC)(L)?Re.createElement(r._s,{type:r.ts.STANDARD,open:P,title:null==O?void 0:O.serialNumber,onClose:ue,destroyOnClose:!0,primaryButtonConfig:{"data-testid":`submit-action-${L}`,htmlType:"submit",form:`dashcam-action-form-${L}`,loading:ne,disabled:ie,label:Re.createElement(i.s,{id:null==(e=g.pC[L])?void 0:e.submitMessageId})},secondaryButtonConfig:{"data-testid":`cancel-action-${L}`,label:Re.createElement(i.s,{id:null==(a=g.pC[L])?void 0:a.cancelMessageId}),onClick:ue}},Re.createElement(r.Tm,null,Re.createElement("h2",null,Re.createElement(i.s,{id:null==(t=g.pC[L])?void 0:t.titleMessageId})),L===f.vL.ASSIGN&&Re.createElement("p",null,Re.createElement(i.s,{id:"dashcams.modal.description.assign",values:{serialNumber:Re.createElement("strong",null,O.serialNumber)}})),w.status===o.IQ.FAILED&&w.errorMessage&&Re.createElement(Ae,null),H.status===o.IQ.FAILED&&H.errorMessage&&Re.createElement(Ae,{selector:b.T.getDashcamProducts}),Re.createElement(c.lV,{layout:"vertical",name:`dashcam-action-form-${L}`,"data-testid":`dashcam-action-form-${L}`,form:N,requiredMark:!1,preserve:!1,onFinish:Ye({dispatch:I,dashcam:O,query:C,machine:_,mode:L,oldMachine:T,t:v,detectorSettings:he}),onValuesChange:(e,a)=>{Y(S({products:M,selectedProductName:a.product})),q(a.product)}},L!==f.vL.MANAGE_PLAN&&Re.createElement(Oe,{loading:oe,disabled:ne||oe,form:N}),(null==H?void 0:H.status)===o.IQ.PENDING&&Re.createElement("div",{className:y.loadingWrapper},Re.createElement(m.t,null)),le&&Re.createElement(Re.Fragment,null,Re.createElement(c.eI,{label:Re.createElement("span",{className:y.subHeading},Re.createElement(i.s,{id:"dashcams.modal.label.product"})),name:"product",rules:[{required:!0,message:Re.createElement(i.s,{id:"dashcams.modal.required.product"})}]},Re.createElement(Se,{products:M})),Boolean(null==j?void 0:j.length)&&Re.createElement(c.eI,{label:Re.createElement("span",{className:y.subHeading},Re.createElement(i.s,{id:"dashcams.modal.label.recordingPlan"})),name:"recordingPlan",rules:[{required:!0,message:Re.createElement(i.s,{id:"dashcams.modal.required.plan"})}]},Re.createElement(ve,{recordingPlans:j}))),re&&Re.createElement(c.eI,{name:"addOnValues",label:Re.createElement("span",{className:y.subHeading},Re.createElement(i.s,{id:"dashcams.modal.label.extras"}))},Re.createElement(me,{addOns:F})),ce&&Re.createElement(Re.Fragment,null,Re.createElement("span",{className:y.subHeading},Re.createElement(i.s,{id:"dashcams.modal.label.manageDetectors"})),Re.createElement(p.A,{"data-testid":"manage-dashcam-detectors-tabs",allDetectors:X,showRollingStopDetector:W,showOverSpeedDetector:z,value:{selectedAiDetectors:ee,selectedAiDetectorsInCabAlert:ae},onChange:({selectedAiDetectors:e,selectedAiDetectorsInCabAlert:a})=>{te(e),se(a)}}))))):null},Ye=({dashcam:e,dispatch:a,query:t,machine:s,mode:n,oldMachine:o,t:i,detectorSettings:l})=>r=>{var c;const{addOnValues:d={},recordingPlan:m,product:p,configs:D={}}=r,E=null==(c=Object.keys(d))?void 0:c.map(e=>d[e]&&e).filter(e=>Boolean(e)),S=Object.keys(g.uU).filter(Ve).map(e=>({name:e,value:Boolean(D[e])})),b=[m||p,...E],y=(0,h.o8)(m),I={meta:{query:xe(Ge({},t),{subType:y}),successMessage:i({id:g.pC[n].successMessageId,values:{serialNumber:e.serialNumber,machineLabel:s.label}})}},v={dashcamId:e.id,dashcamSerialNumber:e.serialNumber,machineId:s.id,plans:b,deviceConfigs:S};switch(n){case f.vL.ASSIGN:{const e=v;a(u.o.assignDashcam(e,I));break}case f.vL.REASSIGN:{const e=xe(Ge({},v),{oldMachineId:o.id});a(u.o.reassignDashcam(e,I));break}case f.vL.MANAGE_PLAN:{const e=l?(0,A.qu)(l.selectedAiDetectors,l.selectedAiDetectorsInCabAlert,l.allDetectors,l.allInCabAlerts):[],t=Ge(xe(Ge({},v),{machineId:o.id}),e.length?{detectorSettings:e}:{});a(u.o.changePlanForMachine(t,I));break}}},Be=({machineId:e,dashcamId:a,mode:t})=>{const o=(0,n.wA)();(0,s.useEffect)(()=>{a&&e&&(t!==f.vL.MANAGE_PLAN?o(u.o.fetchDashcamAssignAvailability({machineId:e,dashcamId:a})):o(u.o.fetchDashcamProducts({machineId:e,dashcamId:a})))},[o,e,t,a])}},68425:(e,a,t)=>{t.d(a,{M:()=>s});
1const s=({displayName:e,registration:a,vehicleFallbackText:t="Vehicle data not available",separator:s=" | "})=>e||a?`${[e,a].filter(Boolean).join(s)}`.trim():t},71061:(e,a,t)=>{t.r(a),t.d(a,{DashcamsHealthPage:()=>xa,default:()=>qa});var s=t(14041),n=t(70541),o=t(76787),i=t(75734),l=t(80601),r=t(62664),c=t(40026),d=t(37506),m=t(93753),h=t(82479),u=t(94462),p=t(40508),g=t(27242),f=t(38097);const A=(e=new Date)=>(0,f.w)(e),D=(e=new Date)=>(0,g.p)(e),E=(e=new Date)=>{const a=new Date;return a.getUTCMonth()===e.getUTCMonth()&&a.getUTCFullYear()===e.getUTCFullYear()};var S=t(2759),b=t(90798),y=t(22088),I=t(24134),v=t(22284),N=t(82162),C=t(62009),O=t(1454);const _=(0,O.wY)(e=>({root:{backgroundColor:e.colors.surfaceOverlay,display:"flex",flexDirection:"column"},titleBar:{display:"flex",justifyContent:"space-between",alignItems:"center",flexWrap:"wrap",padding:`${e.spacing(4)}px ${e.spacing(4)}px ${e.spacing(2)}px`},title:{fontSize:"2rem",color:e.colors.onsurfaceFont,margin:0},bodyNoPadding:{padding:0},bodyCompact:{padding:`0px ${e.spacing(4)}px ${e.spacing(4)}px`},bodyRegular:{padding:e.spacing(4)}}),{name:"DashcamHealthCard"});var T=t(14041);const w=({title:e,bodyPadding:a=!0,children:t})=>{const s=_(),n=!!e,o=a;return T.createElement("div",{className:s.root},n&&T.createElement("div",{className:s.titleBar},T.createElement("h2",{className:s.title},e)),T.createElement("div",{className:R(o,n,s)},t))},R=(e,a,t)=>e?a?t.bodyCompact:t.bodyRegular:t.bodyNoPadding;var P=Object.defineProperty,L=Object.defineProperties,M=Object.getOwnPropertyDescriptors,F=Object.getOwnPropertySymbols,k=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable,U=(e,a,t)=>a in e?P(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,G=(e,a)=>{for(var t in a||(a={}))k.call(a,t)&&U(e,t,a[t]);if(F)for(var t of F(a))H.call(a,t)&&U(e,t,a[t]);return e};const x=(0,O.wY)(e=>{return{root:(a=G({},e.typography.sizes.md),t={width:"100%"},L(a,M(t))),metaContent:{color:e.colors.onsurfaceFont},metaTitle:{color:e.colors.onsurfaceTechnicalFont,display:"flex",fontWeight:e.typography.weights.medium,justifyContent:"flex-start",minWidth:80,paddingRight:e.spacing(2)}};var a,t},{name:"dashcamMetaInformationRow"});var V=t(14041);const j=({label:e,value:a})=>{const t=x();return a?V.createElement("tr",{className:t.root,"data-testid":`dashcam-info-row-${e}`},V.createElement("td",{className:t.metaTitle,"data-testid":`dashcam-info-row-label-${e}`},e),V.createElement("td",{className:t.metaContent,"data-testid":`dashcam-info-row-value-${e}`},a)):null};var Y=t(92211),B=t(28966),q=t(43420),$=t(85203),W=t(66838);const z=(0,O.wY)(()=>({root:{alignItems:"baseline",display:"flex",justifyContent:"flex-start"}}),{name:"OnlineStatus"});var Q=t(14041);const X=({onlineStatus:e,onlineStatusDateTime:a})=>{const t=z(),s=K({onlineStatus:e,onlineStatusDateTime:a});return Q.createElement("div",{className:t.root},Q.createElement($.z,{onlineStatus:e,testId:`dashcam-status-icon-${e}`}),s)},K=({onlineStatus:e,onlineStatusDateTime:a})=>{const{timeZone:t,locale:s}=(0,l.t)();return e===W.KU.ONLINE?Q.createElement(q.s,{id:W.Do[e].messageId,tagName:"span"}):e===W.KU.OFFLINE?Q.createElement(q.s,{id:W.Do[e].tooltipMessageId,values:{dateTime:a?`${(0,Y.Y)({date:a,timeZone:t,format:"DD MMM YYYY, hh:mm a"})} ${(0,B.v)({date:new Date(a),timeZone:t,locale:s,short:!0})}`:null}}):null};var Z=Object.defineProperty,J=Object.defineProperties,ee=Object.getOwnPropertyDescriptors,ae=Object.getOwnPropertySymbols,te=Object.prototype.hasOwnProperty,se=Object.prototype.propertyIsEnumerable,ne=(e,a,t)=>a in e?Z(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,oe=(e,a)=>{for(var t in a||(a={}))te.call(a,t)&&ne(e,t,a[t]);if(ae)for(var t of ae(a))se.call(a,t)&&ne(e,t,a[t]);return e};const ie=(0,O.wY)(e=>{return{metaInfoWrapper:(a=oe({},e.typography.sizes.md),t={display:"flex",justifyContent:"space-between",flexWrap:"wrap"},J(a,ee(t))),table:{borderCollapse:"separate",borderSpacing:`0px ${e.spacing(2)}px`}};var a,t},{name:"DashcamInfoCard"});var le=t(14041);const re=()=>{var e;const a=ie(),{t}=(0,l.t)(),{result:{dashcamExtraCameras:s,dashcamExtraDevices:i,asset:r,dashcamConfig:c,dashcamStatus:d,deviceStatusTime:h,lastOnlineTime:p,lifecycleLastModifiedDate:g,serialNumber:f,vehicleDashcamAddon:A},request:D}=(0,n.d4)(y.T.getDashcamInfo),{organisationId:E}=(0,n.d4)(N.T.getSelectedOrganisation),S=(0,C.F)("dashcams.showClarityEdgeTab","showClarityEdgeTabWhitelist",E),b=(0,C.F)("dashcams.showClarityEdgeAudioSettings"),{status:O}=D||{},{vehicleRego:_,vehicleName:T}=r||{},{vehicleWeightType:R,dashcamVersion:P,installationType:L,isAudioEnabled:M,sensorVersion:F,eventsVersion:k,foundationVersion:H}=c||{},U=null==(e=m.Dw[A])?void 0:e.cameraPlanType,G=(0,u.xQ)(A),x=S&&d&&G,V=!G&&p,Y=!G||b;return le.createElement(w,{title:t("dashcams.health.page.info.title")},le.createElement("div",{className:a.metaInfoWrapper},O===o.IQ.SUCCESS&&le.createElement("table",{className:a.table},le.createElement("tbody",null,le.createElement(j,{label:t("dashcams.health.page.info.serial"),value:f}),le.createElement(j,{label:t("dashcams.health.page.info.product"),value:t((0,u.HG)({planName:A}))}),x&&le.createElement(j,{label:t("dashcams.health.page.info.onlineStatus"),value:le.createElement(X,{onlineStatus:d,onlineStatusDateTime:h})}),le.createElement(j,{label:t("dashcams.health.page.info.installationStatus"),value:t("dashcams.enum.lifecycle.installed")}),le.createElement(j,{label:t("dashcams.health.page.info.installationDate"),value:le.createElement(v.X,{value:g,dateOnly:!0})}),le.createElement(j,{label:t("dashcams.health.page.info.numberPlate"),value:_}),le.createElement(j,{label:t("dashcams.health.page.info.vehicleName"),value:T}),le.createElement(j,{label:t("dashcams.health.page.info.weightType"),value:R}),V&&le.createElement(j,{label:t("dashcams.health.page.info.lastOnline"),value:le.createElement(v.X,{value:p,showTimeZone:!0})}),le.createElement(j,{label:t("dashcams.health.page.info.installationType"),value:L}),le.createElement(j,{label:t("dashcams.health.page.info.plan"),value:A&&U?t(U):null}),Y&&le.createElement(j,{label:t("dashcams.health.page.info.audio"),value:M?"Enabled":"Disabled"}),le.createElement(j,{label:t("dashcams.health.page.info.dvr"),value:P}),le.createElement(j,{label:t("dashcams.health.page.info.sensor"),value:F}),le.createElement(j,{label:t("dashcams.health.page.info.event"),value:k}),le.createElement(j,{label:t("dashcams.health.page.info.foundation"),value:H}),i&&Array.isArray(i)&&le.createElement(j,{label:t("dashcams.health.page.info.extras"),value:le.createElement(le.Fragment,null,(0,I.I)(i)?"-":i.map(({name:e})=>le.createElement("div",{key:`dashcam-extra-${e}`},e)))}),s&&Array.isArray(s)&&le.createElement(j,{label:t("dashcams.health.page.info.cameras"),value:le.createElement(le.Fragment,null,(0,I.I)(s)?"-":s.map(({name:e="",type:a="",serialNumber:t=""})=>le.createElement("div",{key:`dashcam-extra-${e}`},e," ","FATIGUE"===a&&t&&`(${t})`)))})))))};var ce=t(42453),de=t(76866),me=t(56076),he=t(11644);const ue=(0,O.wY)(e=>({root:{display:"flex",flexDirection:"column",background:e.colors.surfaceOverlay,containerType:"inline-size","& .ant-tabs-nav-list":{paddingLeft:e.spacing(4),[`@media only screen and (max-width: ${e.breakpoints.values.md-1}px)`]:{paddingLeft:e.spacing(2)}}},cardContainer:{padding:`${e.spacing(3)}px ${e.spacing(4)}px`},innerCard:{marginTop:e.spacing(8)},snapshotImageContainer:{justifyContent:"center"},snapshotFooter:{fontFamily:e.typography.fonts.primary,color:e.colors.onsurfaceTechnicalFont}}),{name:"DashcamSnapshotCard"});var pe=t(14041);const ge=({dashcamPlan:e})=>{var a;const t=ue(),{t:s}=(0,l.t)(),{request:i,result:r}=(0,n.d4)(y.T.getSnapshots),{data:c}=r||{},d=(0,n.d4)(y.T.getLatestSnapshotDatetime),m=(e=>(null==e?void 0:e.reduce((e,a)=>{const{lastSnapshotDateTimeInUtc:t}=a;return e?(0,he.d)(t,e)?t:e:t},""))||"")(c)||d,h=(0,u._1)(e),p=(0,u.xQ)(e);if((null==i?void 0:i.status)===o.IQ.FAILED)return pe.createElement(de.F,{message:s("dashcams.modal.error.server.unreachable"),type:"error",showIcon:!0});const g=(null==i?void 0:i.status)===o.IQ.SUCCESS;return pe.createElement(w,{bodyPadding:!1},pe.createElement("div",{"data-testid":"dashcam-snapshot-container",className:(0,
1ce.$)(t.root)},g&&pe.createElement("div",{className:t.cardContainer},pe.createElement("div",{className:t.snapshotImageContainer},pe.createElement(me.w,{snapshots:c,isClarityLocatePlan:h,isClarityEdgePlan:p,type:W.dA.LARGE})),!p&&!h&&m&&pe.createElement("div",{className:t.snapshotFooter},s({id:"dashcams.health.snapshots.lastUpdatedOn",values:{snapshotCount:null==(a=null==r?void 0:r.data)?void 0:a.length,lastUpdatedDate:pe.createElement(v.X,{value:m,showTimeZone:!0})}})))))};var fe=t(87908),Ae=t(31820),De=t(68387),Ee=t(23246),Se=t(72245);const be=(0,O.wY)(e=>({monthSelector:{backgroundColor:e.colors.surfaceLevel3,padding:e.spacing(2),marginBottom:e.spacing(2),textAlign:"center"},monthSelectorButton:{color:e.colors.decorativeBlue,cursor:"pointer",border:"none",background:"none"},monthSelectorDate:{color:e.colors.onsurfaceTechnicalFont,fontWeight:e.typography.weights.medium}}),{name:"DashcamStatsMonthSelectorRow"});var ye=t(14041);const Ie=({selectedDate:e=new Date,onChangeDateRange:a=fe.l})=>{const t=be();return ye.createElement(c.y,{className:t.monthSelector},ye.createElement(c.f,{span:2},ye.createElement("button",{onClick:()=>{const t=new Date(e);t.setMonth(t.getMonth()-1),a(t)},type:"button",className:t.monthSelectorButton},ye.createElement(Ee.A,null))),ye.createElement(c.f,{className:t.monthSelectorDate,flex:"auto"},(0,Y.Y)({date:A(e),format:"DD MMM YYYY"}),ye.createElement("span",null," to "),(0,Y.Y)({date:D(e),format:"DD MMM YYYY"})),ye.createElement(c.f,{span:2},ye.createElement("button",{disabled:E(e),onClick:()=>{const t=new Date(e);t.setMonth(t.getMonth()+1),a(t)},type:"button",className:t.monthSelectorButton},ye.createElement(Se.A,null))))};var ve=t(20307),Ne=t(19116),Ce=t(59913);const Oe=(0,O.wY)(e=>({statsRow:{marginTop:e.spacing(1),marginBottom:e.spacing(1)},statsRowPopover:{marginRight:e.spacing(2),marginLeft:e.spacing(2)},statsRowTitle:{color:e.colors.onsurfaceTechnicalFont,fontWeight:e.typography.weights.medium,minWidth:80,paddingRight:e.spacing(2)}}),{name:"DashcamStatsRow"});var _e=t(14041);const Te=({label:e,value:a,percent:t=0,progressClass:s,popoverMessage:n=!1})=>{const o=Oe();return _e.createElement(c.y,{className:o.statsRow},_e.createElement(c.f,{span:7,className:o.statsRowTitle},e),_e.createElement(c.f,{span:3},_e.createElement("span",null,a)),_e.createElement(c.f,{span:2},n&&_e.createElement(Ne.A,{className:o.statsRowPopover,content:n,trigger:"click"},_e.createElement(ve.A,null))),_e.createElement(c.f,{span:12},_e.createElement(Ce.k,{showInfo:!1,percent:t,strokeLinecap:"square",className:s})))};var we=Object.defineProperty,Re=Object.defineProperties,Pe=Object.getOwnPropertyDescriptors,Le=Object.getOwnPropertySymbols,Me=Object.prototype.hasOwnProperty,Fe=Object.prototype.propertyIsEnumerable,ke=(e,a,t)=>a in e?we(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,He=(e,a)=>{for(var t in a||(a={}))Me.call(a,t)&&ke(e,t,a[t]);if(Le)for(var t of Le(a))Fe.call(a,t)&&ke(e,t,a[t]);return e};const Ue=(0,O.wY)(e=>{return{metaInfoWrapper:(a=He({},e.typography.sizes.md),t={flexWrap:"wrap","& .totalClips .ant-progress-bg":{backgroundColor:e.colors.decorativeBlue},"& .manualEvents .ant-progress-bg":{backgroundColor:e.colors.decorativeYellowLight},"& .harshEvents .ant-progress-bg":{backgroundColor:e.colors.decorativeRed},"& .requestedEvents .ant-progress-bg":{backgroundColor:e.colors.decorativeGreen}},Re(a,Pe(t))),loadingSpin:{padding:e.spacing(6),margin:"auto"},statsTitle:{color:e.colors.onsurfaceTechnicalFont,fontWeight:e.typography.weights.medium,minWidth:80,paddingRight:e.spacing(2)}};var a,t},{name:"DashcamStatsCard"});var Ge=t(14041);const xe=({selectedDate:e=new Date,onChangeDateRange:a=fe.l})=>{const t=Ue(),{t:s}=(0,l.t)(),{request:i,result:r}=(0,n.d4)(y.T.getDashcamStats),{totalClips:d,manualTotal:m,harshTotal:h,requestedTotal:u}=Ve(r);return Ge.createElement(w,{title:s("dashcams.health.page.stats.title")},Ge.createElement(Ie,{onChangeDateRange:a,selectedDate:e}),(null==i?void 0:i.status)===o.IQ.FAILED&&Ge.createElement(de.F,{message:s("dashcams.health.page.stats.error"),type:"error",showIcon:!0}),(null==i?void 0:i.status)===o.IQ.PENDING&&Ge.createElement(c.y,{className:t.loadingSpin},Ge.createElement(c.f,{flex:"auto"},Ge.createElement(Ae.t,null))),(null==i?void 0:i.status)===o.IQ.SUCCESS&&Ge.createElement("div",{className:t.metaInfoWrapper},Ge.createElement(Te,{label:s(W.Cz.TOTAL_CLIPS.messageId),value:d,percent:d>0?100:0,progressClass:W.Cz.TOTAL_CLIPS.progressClass}),Ge.createElement(Te,{label:s(W.Cz.TOTAL_MANUALS.messageId),value:`${m} | ${(0,De.O)(m,d)}%`,percent:(0,De.O)(m,d),progressClass:W.Cz.TOTAL_MANUALS.progressClass}),Ge.createElement(Te,{label:s(W.Cz.TOTAL_HARSHS.messageId),value:`${h} | ${(0,De.O)(h,d)}%`,percent:(0,De.O)(h,d),popoverMessage:s("dashcams.health.page.stats.harsh.popover"),progressClass:W.Cz.TOTAL_HARSHS.progressClass}),Ge.createElement(Te,{label:s(W.Cz.TOTAL_REQUESTEDS.messageId),value:`${u} | ${(0,De.O)(u,d)}%`,percent:(0,De.O)(u,d),progressClass:W.Cz.TOTAL_REQUESTEDS.progressClass})))},Ve=e=>
1{const[a,t]=(0,s.useState)(0),[n,o]=(0,s.useState)(0),[i,l]=(0,s.useState)(0),[r,c]=(0,s.useState)(0);return(0,s.useEffect)(()=>{if(e){const{manual:a=0,request:s=0,harshBreaking:n=0,harshAcceleration:i=0}=e;o(a),l(n+i),c(s),t(a+n+i+s)}},[e]),{totalClips:a,manualTotal:n,harshTotal:i,requestedTotal:r}},je=(0,O.wY)(e=>({contentContainer:{minHeight:"calc(100% - 188px)",padding:e.spacing(8),backgroundColor:e.colors.surfaceLevel2,[`@media only screen and (max-width: ${e.breakpoints.values.md-1}px)`]:{padding:`${e.spacing(3)}px 0 0 0`}},cardDivider:{height:"auto",marginBottom:e.spacing(8),[`@media only screen and (max-width: ${e.breakpoints.values.md-1}px)`]:{marginBottom:e.spacing(3)}},sectionDivider:{background:e.colors.onsurfaceTechnicalFont,margin:0},loadingSpinContainer:{alignItems:"center",display:"flex",height:"100%",justifyContent:"center",width:"100%"}}),{name:"DashcamHealthPage"});var Ye=Object.defineProperty,Be=Object.defineProperties,qe=Object.getOwnPropertyDescriptors,$e=Object.getOwnPropertySymbols,We=Object.prototype.hasOwnProperty,ze=Object.prototype.propertyIsEnumerable,Qe=(e,a,t)=>a in e?Ye(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,Xe=(e,a)=>{for(var t in a||(a={}))We.call(a,t)&&Qe(e,t,a[t]);if($e)for(var t of $e(a))ze.call(a,t)&&Qe(e,t,a[t]);return e};const Ke=(0,O.wY)(e=>{return{metaInfoWrapper:(a=Xe({},e.typography.sizes.md),t={justifyContent:"space-between",flexWrap:"wrap"},Be(a,qe(t)))};var a,t},{name:"DriverLogonCard"});var Ze=t(58560),Je=t(44448),ea=t(5358);const aa=(0,O.wY)(e=>({root:{},subText:{color:e.colors.onsurfaceTechnicalFont}}),{name:"DateTimeLogonCell"});var ta=t(14041);const sa=({datetime:e})=>{const a=aa();return ta.createElement("div",{className:a.root,"data-testid":"date-time-logon-cell"},ta.createElement(v.X,{value:e,showTimeZone:!0}))},na=(0,O.wY)(()=>({root:{}}),{name:"DriverCell"});var oa=t(14041);const ia=({driver:e})=>{const a=na();return oa.createElement("div",{className:a.root},e)},la=(0,O.wY)(()=>({root:{}}),{name:"LocationCell"});var ra=t(14041);const ca=({location:e})=>{const a=la();return ra.createElement("div",{className:a.root},e)},da=(0,O.wY)(()=>({root:{}}),{name:"StatusCell"});var ma=t(14041);const ha=({status:e})=>{const a=da();return ma.createElement("div",{className:a.root},e)};var ua=t(14041);const pa=[{title:ua.createElement(q.s,{id:"dashcams.health.table.column.driver.title"}),dataIndex:"driver",render:(e,{driver:a})=>ua.createElement(ia,{driver:a}),key:"driver"},{title:ua.createElement(q.s,{id:"dashcams.health.table.column.status.title"}),dataIndex:"status",render:(e,{status:a})=>ua.createElement(ha,{status:a}),key:"status"},{title:ua.createElement(q.s,{id:"dashcams.health.table.column.dateTimeLogon.title"}),dataIndex:"datetime",render:(e,{datetime:a})=>ua.createElement(sa,{datetime:a}),key:"datetime"},{title:ua.createElement(q.s,{id:"dashcams.health.table.column.location.title"}),dataIndex:"location",render:(e,{location:a})=>ua.createElement(ca,{location:a}),key:"location"}];var ga=t(14041);const fa=()=>{const{request:e,result:a}=(0,n.d4)(y.T.getDriverLogon),t=a.data.slice(0,5);return ga.createElement(ea.XI,{bordered:!1,loading:e.status===o.IQ.PENDING,columns:pa,dataSource:t,pagination:!1,size:Je.o.SMALL,rowKey:e=>(null==e?void 0:e.id)+(null==e?void 0:e.datetime),sticky:!1,useDefaultColumnWidth:!1,disableHorizontalScroll:!0,locale:{emptyText:ga.createElement(Ze.S,{description:ga.createElement(q.s,{id:"dashcams.health.table.empty.message"}),image:Ze.S.PRESENTED_IMAGE_SIMPLE})}})};var Aa=t(14041);const Da=()=>{const e=Ke(),{t:a}=(0,l.t)(),{request:t}=(0,n.d4)(y.T.getDriverLogon);if((null==t?void 0:t.status)===o.IQ.FAILED)return Aa.createElement(de.F,{message:a("dashcams.modal.error.server.unreachable"),type:"error",showIcon:!0});const s=(null==t?void 0:t.status)===o.IQ.SUCCESS;return Aa.createElement(w,{title:a("dashcams.health.page.logon.title")},Aa.createElement("div",{className:e.metaInfoWrapper},s&&Aa.createElement(fa,null)))};var Ea=t(53923),Sa=t(4525),ba=t(57192),ya=t(37547);const Ia=(0,O.wY)(e=>({faultsCollapse:{background:e.colors.surfaceCriticalRed,border:"none"},faultTitle:{alignItems:"center",color:e.colors.decorativeRedDark,display:"flex",fontWeight:e.typography.weights.medium,gap:e.spacing(2)},faultIcon:{color:e.colors.decorativeRedDark},faultDescription:{marginBottom:e.spacing(2)},faultRepairSteps:{marginLeft:e.spacing(2),marginBottom:e.spacing(2)},repairStepsList:{listStyleType:"decimal",margin:0,paddingLeft:e.spacing(4)},repairSubStepsList:{listStyleType:"lower-alpha",margin:0,paddingLeft:e.spacing(4)}}),{name:"FaultsDetailsList"});var va=t(14041);const Na=({faults:e})=>
1{const a=Ia(),t=(0,ya.A)(),s=(null!=e?e:[]).map(({vendorFaultCode:e,componentsAffected:s},n)=>{const{faultContent:o,titleMessageId:i,noteValues:l,key:r}=(0,ba.X)(e,n,s),c=t(s),d=void 0!==(null==o?void 0:o.componentTitleMessageId),m=void 0!==c&&d?{componentName:c}:void 0,h=d?{componentName:null!=c?c:"",hasComponentName:void 0!==c,count:(null==s?void 0:s.length)||1}:void 0;return{key:r,label:va.createElement("div",{className:a.faultTitle},va.createElement(Ea.A,{className:a.faultIcon}),o?va.createElement(q.s,{id:"dashcams.faults.severityTitle",tagName:"span",values:{faultName:va.createElement(q.s,{id:i,values:m}),severityLabel:va.createElement(q.s,{id:o.severityLabelMessageId,defaultMessage:""})}}):va.createElement(q.s,{id:"dashcams.faults.unknown",tagName:"span"})),children:va.createElement(va.Fragment,null,va.createElement("div",{className:a.faultDescription},va.createElement(q.s,{id:(null==o?void 0:o.descriptionMessageId)||"dashcams.faults.unknown.description",values:h})),o?va.createElement(va.Fragment,null,va.createElement("div",{className:a.faultRepairSteps},va.createElement(q.s,{id:o.repairMessageId,values:{ol:e=>va.createElement("ol",{className:a.repairStepsList},e),subol:e=>va.createElement("ol",{className:a.repairSubStepsList},e),li:e=>va.createElement("li",null,e),strong:e=>va.createElement("strong",null,e)}})),va.createElement(q.s,{id:"dashcams.faults.resolution.note",tagName:"strong",defaultMessage:"",values:l})):null)}});return s.length?va.createElement(Sa.S,{"data-testid":"dashcam-faults-collapse",className:a.faultsCollapse,items:s,expandIconPosition:"end",ghost:!0}):null};var Ca=t(18198),Oa=t(90947),_a=t(62222);const Ta=(e=Ca.YN.CLARITY)=>(0,Oa.G)()?(0,_a.Y)()+W.I7[e].DASHCAM_LIST_CORETEX:W.I7[e].DASHCAM_LIST;var wa=Object.defineProperty,Ra=Object.getOwnPropertySymbols,Pa=Object.prototype.hasOwnProperty,La=Object.prototype.propertyIsEnumerable,Ma=(e,a,t)=>a in e?wa(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,Fa=(e,a)=>{for(var t in a||(a={}))Pa.call(a,t)&&Ma(e,t,a[t]);if(Ra)for(var t of Ra(a))La.call(a,t)&&Ma(e,t,a[t]);return e};const ka=(0,O.wY)(e=>({titleRow:()=>({display:"flex",justifyContent:"space-between",marginBottom:e.spacing(5.5),[`@media only screen and (max-width: ${e.breakpoints.values.md-1}px)`]:{width:"100%",marginBottom:0}}),titleWrapper:{display:"flex",margin:`0 ${e.spacing(6)}px 0 0`,"& h1":{[`@media only screen and (max-width: ${e.breakpoints.values.md}px)`]:{fontSize:"3.2rem",lineHeight:"4rem"},[`@media only screen and (max-width: ${e.breakpoints.values.md-1}px)`]:Fa({},e.typography.sizes.xxl),[`@media only screen and (max-width: ${e.breakpoints.values.sm-1}px)`]:{fontSize:"1.8rem"}},[`@media only screen and (max-width: ${e.breakpoints.values.md-1}px)`]:{display:"flex",justifyContent:"space-between",marginRight:0,width:"100%"}},statusesRow:{alignItems:"center",display:"flex","& > div":{flexDirection:"row"},[`@media only screen and (max-width: ${e.breakpoints.values.md-1}px)`]:{flexDirection:"column",width:"100%"}},statusesWrapper:{"& > div":{flexDirection:"row"},[`@media only screen and (max-width: ${e.breakpoints.values.md-1}px)`]:{alignSelf:"flex-start"}}}),{name:"DashcamHealthPageHeader"});var Ha=t(14041);const Ua=({dashcamType:e})=>{const a=ka(),{organisationId:t}=(0,n.d4)(N.T.getSelectedOrganisation),s=(0,C.F)("dashcams.showClarityEdgeTab","showClarityEdgeTabWhitelist",t);return Ha.createElement(d.zY,{isBackCompat:!0,breadcrumb:Ha.createElement(d.DQ,{backUrl:Ta(s?e:Ca.YN.CLARITY),"data-testid":"back-to-dashcams-list",isBackCompat:!0},Ha.createElement(q.s,{id:"dashcams.health.page.listBack"})),title:Ha.createElement("div",{className:a.titleRow},Ha.createElement("div",{className:a.statusesRow},Ha.createElement("div",{className:a.titleWrapper},Ha.createElement(d.sT,{"data-testid":"event-info-header-title",title:Ha.createElement(q.s,{id:"dashcams.health.page.title"})}))))})};var Ga=t(14041);const xa=()=>{const e=je(),{recordId:a}=(0,r.g)(),{isDashcamFaultsEnabled:t}=(0,S.q)(),[i,l]=(0,s.useState)(new Date),{request:h}=(0,n.d4)(y.T.getSnapshots),{request:p}=(0,n.d4)(y.T.getDriverLogon),{result:{vehicleDashcamAddon:g,serialNumber:f,faults:E}={},request:b}=(0,n.d4)(y.T.getDashcamInfo)||{},I=(0,u.xQ)(g),v=(0,u.o8)(g),N=(null==h?void 0:h.status)===o.IQ.PENDING||(null==p?void 0:p.status)===o.IQ.PENDING||(null==b?void 0:b.status)===o.IQ.PENDING,C=g&&(0,u._1)(g),O=g===m.oH.PLAN_NAMES.CLARITY_GET_DUAL||g===m.oH.PLAN_NAMES.CLARITY_GET_FRONT,_=Boolean(f)&&!I&&!C&&!O,T=t&&Boolean(null==E?void 0:E.length);return Va(a),ja(a,I,g),Ya(a),Ba(A(i).toISOString(),D(i).toISOString(),a,_,f),N?Ga.createElement(d.LK,null):Ga.createElement(d.YW,null,Ga.createElement(Ua,{dashcamType:v}),Ga.createElement("div",{className:e.contentContainer},Ga.createElement(c.y,{gutter:{md:32}},Ga.createElement(c.f,{lg:16,sm:24,xs:24},T&&Ga.createElement("div",{className:e.cardDivider},Ga.createElement(Na,{faults:E})),g&&Ga.createElement("div",{className:e.cardDivider},Ga.createElement(ge,{dashcamPlan:g})),!I&&Ga.createElement("div",{className:e.cardDivider},Ga.createElement(Da,null))),Ga.createElement(c.f,{lg:8,sm:24,xs:24},Ga.createElement("div",{className:e.cardDivider},Ga.createElement(re,null)),_&&Ga.createElement("div",{className:e.cardDivider},Ga.createElement(xe,{onChangeDateRange:e=>{l(e)},selectedDate:i}))))))},Va=e=>{const a=(0,n.wA)();(0,s.useEffect)(()=>{e&&a(p.o.fetchSnapshots({dashcamId:e}))},[a,e])},ja=(e,a,t)=>{const o=(0,n.wA)();(0,s.useEffect)(()=>{e&&t&&!a&&o(p.o.fetchDriverLogon({dashcamId:e}))},[o,e,a,t])},Ya=e=>{const a=(0,n.wA)();(0,s.useEffect)(()=>{e&&a(p.o.fetchDashcamInfo({dashcamId:e}))},[a,e])},Ba=(e,a,t,o,r)=>{const c=(0,n.wA)(),d=(0,h.N)(),{timeZone:m}=(0,l.t)();(0,s.useEffect)(()=>
1{if(!t||!r||!o)return;const s=d?(0,i.L)({date:e,timeZone:m}).toISOString():e,n=d?(0,i.L)({date:a,timeZone:m}).toISOString():a;c(p.o.fetchDashcamStats({dashcamId:t,serialNumber:r,eventStartTime:s,eventEndTime:n}))},[c,t,r,a,e,m,d,o])},qa=(0,b.A)(xa)},71476:(e,a,t)=>{t.d(a,{Y:()=>S});var s=t(14041),n=t(70541),o=t(13455),i=t(40508),l=t(66838),r=t(94462),c=Object.getOwnPropertySymbols,d=Object.prototype.hasOwnProperty,m=Object.prototype.propertyIsEnumerable;var h=t(22088),u=Object.defineProperty,p=Object.defineProperties,g=Object.getOwnPropertyDescriptors,f=Object.getOwnPropertySymbols,A=Object.prototype.hasOwnProperty,D=Object.prototype.propertyIsEnumerable,E=(e,a,t)=>a in e?u(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t;const S=({sessionStorageDashcamFiltersKey:e,subType:a})=>{const t=(0,n.wA)(),u=(0,n.d4)(h.T.getDashcamsQuery),S=(0,o.C8)(e),b=JSON.stringify(u),y=JSON.stringify(S);(0,s.useEffect)(()=>{e&&t(i.o.fetchAuthorizedFleets())},[t,e]),(0,s.useEffect)(()=>{var s,n;if(!e)return;const o=JSON.parse(b),h=JSON.parse(y),u=(null==h?void 0:h.pageNumber)||l.aO,S=null!=(n=null==(s=o.filters)?void 0:s.fleetIds)?n:[],I=((e,a)=>{const t=null!=e?e:{},{vendorFaultCodes:s}=t,n=((e,a)=>{var t={};for(var s in e)d.call(e,s)&&a.indexOf(s)<0&&(t[s]=e[s]);if(null!=e&&c)for(var s of c(e))a.indexOf(s)<0&&m.call(e,s)&&(t[s]=e[s]);return t})(t,["vendorFaultCodes"]);return(0,r.VI)(a)?e:n})(o.filters,a);var v;u>1&&t(i.o.dashcamTablePageChange({pageNumber:u,sessionStorageDashcamFiltersKey:e})),t(i.o.fetchDashcams((v=((e,a)=>{for(var t in a||(a={}))A.call(a,t)&&E(e,t,a[t]);if(f)for(var t of f(a))D.call(a,t)&&E(e,t,a[t]);return e})({},o),p(v,g({filters:I,pageNumber:u,subType:a}))))),t(i.o.fetchAuthorizedVehicles({selectedFleetIds:S}))},[t,b,y,e,a])}},79340:(e,a,t)=>{t.r(a),t.d(a,{default:()=>L});var s=t(70541),n=t(37506),o=t(82162),i=t(18198),l=t(94462),r=t(92644),c=t(66838),d=t(71476),m=t(13350),h=t(90798),u=t(68422),p=t(22088),g=t(14041),f=t(76787),A=t(19615),D=t(43420),E=t(80601),S=t(62664),b=t(4078),y=t(5358),I=t(1303),v=t(40508),N=t(43499),C=t(2759),O=t(48929),_=t(14041);const T=({sessionStorageDashcamFiltersKey:e})=>{const a=(0,s.wA)(),{t}=(0,E.t)(),n=(0,S.Zp)(),{isDashcamFaultsEnabled:o,showEnhancedManageDetectors:l}=(0,C.q)(),{request:r,result:d}=(0,s.d4)(p.T.getDashcams),{updateSuccessCount:m}=(0,s.d4)(p.T.getDashcamAiDetectorsGrouped),h=(0,g.useRef)(m),u=(0,s.d4)(p.T.getIsDetectorSettingsUpdating),T=(0,s.d4)(p.T.getDashcamsQuery),w=d.data.map(e=>e.id),{selectedCount:R,selectedKeys:P,excludedKeys:L,isAllSelected:M,onSelectionChange:F,onSelectAllData:k,onClearAllData:H}=(0,y.Wj)(d.totalRecords),U=(0,g.useMemo)(()=>{if(M){const e=new Set(L.map(String));return w.filter(a=>!e.has(String(a)))}return P},[L,M,w,P]),G=(0,g.useMemo)(()=>{const e=new Set(U.map(String));return d.data.reduce((a,t)=>{var s;return e.has(t.id)&&a.push({dashcamId:t.id,dashcamSettings:null!=(s=t.dashcamSettings)?s:[]}),a},[])},[d.data,U]),x=(0,g.useMemo)(()=>(0,N.FY)(G),[G]),V=(0,g.useMemo)(()=>(0,N.pH)(G),[G]),j=(0,g.useMemo)(()=>(M?L:P).map(String),[L,M,P]);return(0,A.y)(()=>()=>{a(v.o.dashcamSelectionChanged({selectedCount:0,detectorSettings:[],inCabAlertSettings:[],ids:[],isAllSelected:!1}))}),(0,g.useEffect)(()=>{a(v.o.dashcamSelectionChanged({selectedCount:R,detectorSettings:x,inCabAlertSettings:V,ids:j,isAllSelected:M}))},[a,x,V,R,j,M]),(0,g.useEffect)(()=>{m!==h.current&&(h.current=m,H())},[m,H]),_.createElement(y.XI,{"data-testid":"clarity-edge-dashcams-table",loading:r.status===f.IQ.PENDING||u,dataSource:d.data,columns:(0,O.I)(o),pagination:{current:T.pageNumber,pageSize:T.pageSize,pageSizeOptions:[10,20,50,100],total:d.totalRecords},sortColumnKey:T.orderBy,sortOrder:T.orderDesc?"descend":"ascend",onSortChange:e=>{u||a(v.o.dashcamTableSortChange(e))},onPageNumberChange:t=>{u||a(v.o.dashcamTablePageChange({pageNumber:t,sessionStorageDashcamFiltersKey:e}))},onPageSizeChange:e=>{u||a(v.o.dashcamTablePageSizeChange(e))},onRow:e=>({onClick:()=>{switch(e.lifeCycleState){case c.g4.PENDING_INSTALL:b.a.warning({title:t("dashcams.table.warning.pendingInstall.title"),content:t("dashcams.table.warning.pendingInstall.message")});break;case c.g4.PENDING_ASSIGNMENT:b.a.warning({title:t("dashcams.table.warning.pendingAssignment.title"),content:t("dashcams.table.warning.pendingAssignment.message")});break;default:n((0,I.tW)(c.I7[i.YN.STREAMAX].DASHCAM_HEALTH,{recordId:e.id}))}}}),rowSelection:l?{selectedRowKeys:U,selectedCount:R,onChange:e=>F(w,e),onClearSelection:H,selections:[{key:"selectAllData",text:_.createElement(D.s,{id:"dashcams.table.selection.selectAllData"}),onSelect:k},{key:"clearAllData",text:_.createElement(D.s,{id:"dashcams.table.selection.clearAllData"}),onSelect:H}]}:void 0,locale:{emptyText:_.createElement(D.s,{id:"dashcams.table.empty.message"})},disableHorizontalScroll:!0})};var w=t(58699),R=t(35534),P=t(14041);const L=(0,h.A)(()=>{var e;const{organisationId:a}=(0,s.d4)(o.T.getSelectedOrganisation),{username:t}=null!=(e=(0,s.d4)(o.T.getUserProfile))?e:{},{availableDashcamPlans:h=[]}=(0,s.d4)(p.T.getDashcamPlansStatuses)||{},g=h.every(e=>(0,l.DR)(e)),f=`${c.fp.CLARITY_EDGE}-${null==t?void 0:t.toUpperCase()}-${a}`;return(0,d.Y)({sessionStorageDashcamFiltersKey:f,subType:i.YN.STREAMAX}),(0,m.x)(),P.createElement(n.YW,null,P.createElement(w.t,null),P.createElement(n.TK,null,!g&&P.createElement(r.r,{subType:i.YN.STREAMAX}),P.createElement(R.q,{isClarityEdge:!0,sessionStorageDashcamFiltersKey:f}),P.createElement(T,{sessionStorageDashcamFiltersKey:f})),P.createElement(u.w,null))})},79501:(e,a,t)=>{t.d(a,{S:()=>n});var s=t(14041);function n(e){const a=(0,s.useRef)(e);return(0,s.useLayoutEffect)(()=>{a.current=e},[e]),a}},85203:(e,a,t)=>{t.d(a,{z:()=>r});var s=t(44396),n=t(83593),o=t(66838);const i=(0,t(1454).wY)(e=>({dot:{width:e.spacing(2),height:e.spacing(2),margin:`0 ${e.spacing(2)}px 0 ${e.spacing(1)}px`},fromNowDuration:{color:e.colors.onsurfaceTechnicalFont},tick:{width:e.spacing(4),height:e.spacing(4),margin:`0 ${e.spacing(2)}px 0 0`}}),{name:"OnlineStatusIcon"});
1var l=t(14041);const r=({onlineStatus:e,testId:a="online-status-icon"})=>{const t=i(),r=(0,n.D)();return e===o.KU.ONLINE?l.createElement(s.gr,{"data-testid":a,fill:r.colors.onsurfaceSuccessGreen,className:t.tick}):e===o.KU.OFFLINE?l.createElement(s.cL,{"data-testid":a,fill:r.colors.onsurfaceGrayBorders,className:t.dot}):null}},90798:(e,a,t)=>{t.d(a,{A:()=>Xe});var s=t(83381),n=t(18198),o=t(90645),i=t(76787),l=t(40421),r=t(19951),c=t(93753),d=t(44013),m=t(89590),h=t(74652),u=t(13455),p=t(40508),g=t(44053),f=Object.defineProperty,A=Object.defineProperties,D=Object.getOwnPropertyDescriptors,E=Object.getOwnPropertySymbols,S=Object.prototype.hasOwnProperty,b=Object.prototype.propertyIsEnumerable,y=(e,a,t)=>a in e?f(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,I=(e,a)=>{for(var t in a||(a={}))S.call(a,t)&&y(e,t,a[t]);if(E)for(var t of E(a))b.call(a,t)&&y(e,t,a[t]);return e},v=(e,a)=>A(e,D(a));const N={addOnsCounts:{AO_DASHCAM_DUAL_CAM:{available:0,used:0},AO_DASHCAM_FRONT_CAM:{available:0,used:0}},dashcams:m.AL,dashcamsQuery:v(I({},h.sw),{filters:{assetIds:[],fleetIds:[],isAllSelected:!1,isAllFleetsSelected:!1,healthStatuses:[],vendorFaultCodes:[]},searchString:(()=>{const e=new URLSearchParams(window.location.search),a=e.get("serialno");return e.get("vin")&&a?a:""})(),orderBy:"lastOnlineTime",orderDesc:!0}),modal:{plan:null,dashcamType:null,dashcam:{id:null,serialNumber:null},machine:{id:null,displayName:null,registrationPlate:null,label:null,initialMachineId:null},oldMachine:{id:null},request:{},serialNumber:null,taskType:null,visible:!1},dashcamPlans:{availableDashcamPlans:[],request:{status:null}},dashcamVideoSummaryNotification:{eventSummaryTimePeriod:null,request:{status:null}},dashcamsNotifications:{dashcamNotificationEnabled:null,eventTypes:[],aiDashcamNotificationTypes:[],request:{status:null}},dashcamSelection:{selectedCount:0,detectorSettings:[],inCabAlertSettings:[],ids:[],isAllSelected:!1},dashcamsOfflineNotifications:{dashcamNotificationOfflineEnabled:!1,offlineInterval:null,request:{status:null}},info:m.mQ,snapshots:{},fleets:[],vehicles:[],stats:{},driverLogon:m.AL,dashcamHealthStatistics:{organisationId:null,healthy:null,notHealthy:null,needsAttention:null,request:{}},dataRetention:{period:null,request:{}},dataRetentionPeriodUpdateStatus:{request:{}},dataRetentionDashcamInfo:{request:{}},dashcamProducts:{products:null,addOns:null,request:{status:null}},dashcamAiDetectorSettings:{deviceType:null,deviceSubType:null,deviceFeatures:[],request:{status:null},updateSuccessCount:0},dashcamAiDetectorSettingsUpdate:{request:{status:null}},bulkDashcamAiDetectorSettingsUpdate:{request:{status:null}},dashcamAiDetectorSettingsRefetch:{isPending:!1},availabilityToAssignDashcam:{availableToAssign:!1,request:{status:null,errors:null}}},C=(e,{message:a,errorCode:t})=>v(I({},e),{request:{status:i.IQ.FAILED,errorMessage:a,errorCode:t}}),O=(e,a)=>{var t;return(null==(t=null==a?void 0:a.message)?void 0:t.includes("404"))?v(I({},e),{request:{status:i.IQ.SUCCESS},result:{}}):v(I({},e),{request:{status:i.IQ.FAILED},error:a})},_=(0,o.HY)({vehicles:(0,l.v)([p.o.fetchAuthorizedVehicles.success.reduce((e,{data:a})=>(0,r.r)({list:a,key:"displayName"}))],N.vehicles),fleets:(0,l.v)([p.o.fetchAuthorizedFleets.success.reduce((e,{data:a})=>(0,r.r)({list:a,key:"name"}))],N.fleets),addOnsCounts:(0,l.v)([p.o.dashcamTableLinkClick.reduce(()=>N.addOnsCounts),p.o.fetchDashcamAddOnsCounts.request.reduce(d.m$),p.o.fetchDashcamAddOnsCounts.success.reduce((e,{counter:a})=>v(I({},a),{request:{status:i.IQ.SUCCESS}})),p.o.fetchDashcamAddOnsCounts.failure.reduce(d.C1)],N.addOnsCounts),dashcams:(0,l.v)([p.o.fetchDashcams.request.reduce(d.m$),p.o.fetchDashcams.success.reduce(d.gn),p.o.fetchDashcams.failure.reduce(d.C1)],N.dashcams),info:(0,l.v)([p.o.fetchDashcamInfo.request.reduce(d.m$),p.o.fetchDashcams.success.reduce(()=>N.info),p.o.fetchDashcamInfo.success.reduce(d.tU),p.o.fetchDashcamInfo.failure.reduce(d.C1)],N.info),stats:(0,l.v)([p.o.fetchDashcamStats.request.reduce(d.m$),p.o.fetchDashcamStats.success.reduce(d.tU),p.o.fetchDashcamStats.failure.reduce(O)],N.stats),snapshots:(0,l.v)([p.o.fetchSnapshots.request.reduce(d.m$),p.o.fetchSnapshots.success.reduce(d.t
1U),p.o.fetchSnapshots.failure.reduce(O)],N.snapshots),dashcamsQuery:(0,l.v)([p.o.dashcamTableSearchSubmitted.reduce((e,a)=>((0,u.sN)(a.sessionStorageDashcamFiltersKey),(0,h.tx)(e,a.value))),p.o.dashcamTableFilterChange.reduce((e,a)=>((0,u.sN)(a.sessionStorageDashcamFiltersKey),(0,h.y5)(e,a))),p.o.dashcamTableResetFilters.reduce((e,a)=>((0,u.sN)(a.sessionStorageDashcamFiltersKey),(0,h.eD)(e))),p.o.dashcamTableSortChange.reduce(h.S),p.o.dashcamTablePageChange.reduce((e,a)=>((0,u.kH)(a.sessionStorageDashcamFiltersKey,{pageNumber:a.pageNumber}),(0,h.ou)(e,a.pageNumber))),p.o.dashcamTablePageSizeChange.reduce(h.On),p.o.selectVehicles.reduce((e,a)=>((0,u.sN)(a.sessionStorageDashcamFiltersKey),v(I({},e),{pageNumber:1,filters:v(I({},e.filters),{isAllSelected:a.isAllSelected,assetIds:a.selectedVehicleIds})}))),p.o.selectFleets.reduce((e,a)=>((0,u.sN)(a.sessionStorageDashcamFiltersKey),v(I({},e),{pageNumber:1,filters:v(I({},e.filters),{isAllFleetsSelected:a.isAllFleetsSelected,fleetIds:a.selectedFleetIds})}))),p.o.selectVendorFaultCodes.reduce((e,a)=>((0,u.sN)(a.sessionStorageDashcamFiltersKey),v(I({},e),{pageNumber:1,filters:v(I({},e.filters),{vendorFaultCodes:a.vendorFaultCodes})})))],N.dashcamsQuery),modal:(0,l.v)([p.o.assignDashcam.request.reduce(d.m$),p.o.assignDashcam.success.reduce(e=>v(I({},e),{visible:!1})),p.o.assignDashcam.failure.reduce(C),p.o.dashcamMachineSelected.reduce((e,{selectedMachineId:a,machines:t})=>{const s=t.find(e=>e.id===a),n=s?{id:s.id,displayName:s.displayName,registration:s.registration}:{};return v(I({},e),{machine:v(I({},n),{label:`${n.displayName} | ${n.registration}`}),request:{}})}),p.o.dashcamSelected.reduce((e,a)=>v(I({},e),{dashcam:a})),p.o.dashcamTableLinkClick.reduce((e,{dashcam:a,dashcamType:t,oldMachine:s,taskType:n,plan:o,initialMachineId:i})=>v(I({},N.modal),{plan:o,dashcamType:t,dashcam:a,oldMachine:s,taskType:n,visible:!0,machine:v(I({},N.modal.machine),{initialMachineId:i})})),p.o.dashcamTaskModalCancelClicked.reduce(()=>N.modal),p.o.fetchDashcams.reduce(()=>N.modal),p.o.fetchDashcamAddOnsCounts.failure.reduce(C),p.o.reassignDashcam.request.reduce(d.m$),p.o.reassignDashcam.success.reduce(e=>v(I({},e),{visible:!1})),p.o.reassignDashcam.failure.reduce(C),p.o.uninstallDashcam.request.reduce(e=>v(I({},(0,d.m$)(e)),{request:{},taskType:g.vL.UNINSTALL})),p.o.uninstallDashcam.success.reduce(e=>v(I({},e),{visible:!1})),p.o.uninstallDashcam.failure.reduce(C),p.o.changePlanForMachine.request.reduce(d.m$),p.o.changePlanForMachine.success.reduce(e=>v(I({},e),{visible:!1})),p.o.changePlanForMachine.failure.reduce(C)],N.modal),dashcamPlans:(0,l.v)([p.o.fetchAvailableDashcamPlans.request.reduce(e=>v(I(I({},e),N.dashcamPlans),{request:{status:i.IQ.PENDING}})),p.o.fetchAvailableDashcamPlans.success.reduce((e,a)=>v(I(I({},e),a),{request:{status:i.IQ.SUCCESS}})),p.o.fetchAvailableDashcamPlans.failure.reduce(C)],N.dashcamPlans),dashcamsNotifications:(0,l.v)([p.o.fetchDashcamsNotification.request.reduce(e=>v(I(I({},e),N.dashcamsNotifications),{request:{status:i.IQ.PENDING}})),p.o.fetchDashcamsNotification.success.reduce((e,a)=>v(I(I({},e),a),{request:{status:i.IQ.SUCCESS}})),p.o.fetchDashcamsNotification.failure.reduce(C),p.o.updateDashcamsNotification.request.reduce(d.m$),p.o.updateDashcamsNotification.success.reduce((e,a)=>v(I(I({},e),a),{request:{status:i.IQ.SUCCESS}})),p.o.updateDashcamsNotification.failure.reduce(C),p.o.deleteDashcamsNotification.request.reduce(d.m$),p.o.deleteDashcamsNotification.success.reduce((e,a)=>v(I(I({},e),a),{eventTypes:[],aiDashcamNotificationTypes:[],request:{status:i.IQ.SUCCESS}})),p.o.deleteDashcamsNotification.failure.reduce(C)],N.dashcamsNotifications),dashcamSelection:(0,l.v)([p.o.dashcamSelectionChanged.reduce((e,a)=>a)],N.dashcamSelection),dashcamsOfflineNotifications:(0,l.v)([p.o.fetchDashcamsOfflineNotification.request.reduce(e=>v(I(I({},e),N.dashcamsOfflineNotifications),{request:{status:i.IQ.PENDING}})),p.o.fetchDashcamsOfflineNotification.success.reduce((e,a)=>v(I(I({},e),a),{request:{status:i.IQ.SUCCESS}})),p.o.fetchDashcamsOfflineNotification.failure.reduce(C),p.o.updateDashcamsOfflineNotification.request.reduce(d.m$),p.o.updateDashcamsOfflineNotification.success.reduce((e,a)=>v(I(I({},e),a),{request:{status:i.IQ.SUCCESS}})),p.o.updateDashcamsOfflineNotification.failure.reduce(C),p.o.deleteDashcamsOfflineNotification.request.reduce(d.m$),p.o.deleteDashcamsOfflineNotification.success.reduce(e=>v(I(I({},e),N.dashcamsOfflineNotifications),{request:{status:i.IQ.SUCCESS}})),p.o.deleteDashcamsOfflineNotification.failure.reduce(C)],N.dashcamsOfflineNotifications),dashcamVideoSummaryNotification:(0,l.v)([p.o.fetchDashcamVideoSummaryNotification.request.reduce(e=>v(I(I({},e),N.dashcamsNotifications),{request:{status:i.IQ.PENDING}})),p.o.fetchDashcamVideoSummaryNotification.success.reduce((e,a)=>v(I(I({},e),a),{request:{status:i.IQ.SUCCESS}})),p.o.fetchDashcamVideoSummaryNotification.failure.reduce(C),p.o.updateDashcamVideoSummaryNotification.request.reduce(d.m$),p.o.updateDashcamVideoSummaryNotification.success.reduce((e,a)=>v(I(I({},e),a),{request:{status:i.IQ.SUCCESS}})),p.o.updateDashcamVideoSummaryNotification.failure.reduce(C),p.o.deleteDashcamVideoSummaryNotification.request.reduce(d.m$),p.o.deleteDashcamVideoSummaryNotification.success.reduce(e=>v(I(I({},e),N.dashcamVideoSummaryNotification),{request:{status:i.IQ.SUCCESS}})),p.o.deleteDashcamVideoSummaryNotification.failure.reduce(C)],N.dashcamVideoSummaryNotification),dashcamProducts:(0,l.v)([p.o.fetchDashcamProducts.request.reduce(e=>v(I(I({},e),N.dashcamProducts),{request:v(I({},N.dashcamProducts.request),{status:i.IQ.PENDING})})),p.o.fetchDashcamProducts.success.reduce((e,a)=>v(I(I({},e),a),{request:{status:i.IQ.SUCCESS}})),p.o.fetchDashcamProducts.failure.reduce(C),p.o.fetchDashcamAssignAvailability.request.reduce(()=>N.dashcamProducts),p.o.dashcamTableLinkClick.reduce(()=>N.dashcamProducts)],N.dashcamProducts),availabilityToAssignDashcam:(0,l.v)([p.o.fetchDashcamAssignAvailability.request.reduce(e=>v(I(I({},e),N.availabilityToAssignDashcam),{request:v(I({},N.availabilityToAssignDashcam.request),{status:i.IQ.PENDING})})),p.o.fetchDashcamAssignAvailability.success.reduce(e=>v(I({},e),{availableToAssign:!0,request:{status:i.IQ.SUCCESS}})),p.o.fetchDashcamAssignAvailability.failure.reduce((e,a)=>{var t,s;return v(I({},e),{request:{status:i.IQ.FAILED,errors:(null==(s=null==(t=null==a?void 0:a.response)?void 0:t.data)?void 0:s.errors)||c.Of.response.data.errors}})}),p.o.dashcamTableLinkClick.reduce(()=>N.availabilityToAssignDashcam)],N.availabilityToAssignDashcam),dashcamAiDetectorSettings:(0,l.v)([p.o.fetchAiDashcamDetectorSettings.request.reduce(e=>v(I(I({},e),N.dashcamAiDetectorSettings),{request:v(I({},N.dashcamAiDetectorSettings.request),{status:i.IQ.PENDING}),updateSuccessCount:e.updateSuccessCount})),p.o.fetchAiDashcamDetectorSettings.success.reduce((e,a)=>v(I(I({},e),a),{request:{status:i.IQ.SUCCESS}})),p.o.fetchAiDashcamDetectorSettings.failure.reduce(C),p.o.updateAiDashcamDetectorSettings.success.reduce((e,a)=>v(I(I({},e),a),{updateSuccessCount:e.updateSuccessCount+1})),p.o.updateBulkAiDashcamDetectorSettings.success.reduce(e=>v(I({},e),{updateSuccessCount:e.updateSuccessCount+1}))],N.dashcamAiDetectorSettings),dashcamAiDetectorSettingsUpdate:(0,l.v)([p.o.updateAiDashcamDetectorSettings.request.reduce(d.m$),p.o.updateAiDashcamDetectorSettings.success.reduce(e=>v(I({},e),{request:{status:i.IQ.SUCCESS}})),p.o.updateAiDashcamDetectorSettings.failure.reduce(C)],N.dashcamAiDetectorSettingsUpdate),bulkDashcamAiDetectorSettingsUpdate:(0,l.v)([p.o.updateBulkAiDashcamDetectorSettings.request.reduce(d.m$),p.o.updateBulkAiDashcamDetectorSettings.success.reduce(e=>v(I({},e),{request:{status:i.IQ.SUCCESS}})),p.o.updateBulkAiDashcamDetectorSettings.failure.reduce(C)],N.bulkDashcamAiDetectorSettingsUpdate),dashcamAiDetectorSettingsRefetch:(0,l.v)([p.o.updateAiDashcamDetectorSettings.success.reduce(()=>({isPending:!0})),p.o.updateBulkAiDashcamDetectorSettings.success.reduce(()=>({isPending:!0})),p.o.fetchDashcams.success.reduce(()=>({isPending:!1})),p.o.fetchDashcams.failure.reduce(()=>({isPending:!1}))],N.dashcamAiDetectorSettingsRefetch),driverLogon:(0,l.v)([p.o.fetchDriverLogon.request.reduce(d.m$),p.o.fetchDriverLogon.success.reduce(d.gn),p.o.fetchDriverLogon.failure.reduce(d.C1)],N.driverLogon),dashcamHealthStatistics:(0,l.v)([p.o.fetchDashcamHealthStatistics.request.reduce(d.m$),p.o.fetchDashcamHealthStatistics.success.reduce((e,a)=>v(I(I({},e),a),{request:{status:i.IQ.SUCCESS}})),p.o.fetchDashcamHealthStatistics.failure.reduce(d.C1)],N.dashcamHealthStatistics),dataRetention:(0,l.v)([p.o.fetchDataRetentionPeriod.request.reduce(d.m$),p.o.fetchDataRetentionPeriod.success.reduce((e,a)=>v(I(I({},e),a),{request:{status:i.IQ.SUCCESS}})),p.o.fetchDataRetentionPeriod.failure.reduce(d.C1)],N.dataRetention),dataRetentionPeriodUpdateStatus:(0,l.v)([p.o.updateDataRetentionPeriod.request.reduce(d.m$),p.o.updateDataRetentionPeriod.success.reduce(e=>v(I({},e),{request:{status:i.IQ.SUCCESS}})),p.o.updateDataRetentionPeriod.failure.reduce(d.C1),p.o.fetchDataRetentionPeriod.request.reduce(()=>({request:{}}))],N.dataRetentionPeriodUpdateStatus),dataRetentionDashcamInfo:(0,l.v)([p.o.fetchDataRetentionDashcamInfo.request.reduce(d.m$),p.o.fetchDataRetentionDashcamInfo.success.reduce((e,a)=>v(I(I({},e),a),{request:{status:i.IQ.SUCCESS}})),p.o.fetchDataRetentionDashcamInfo.failure.reduce(d.C1)],N.dataRetentionDashcamInfo)});var T=t(28853),w=t(24392),R=t(48632),P=t(97561),L=t(35060),M=t(90947),F=t(94386),k=t(62222),H=t(66838),U=Object.defineProperty,G=Object.defineProperties,x=Object.getOwnPropertyDescriptors,V=Object.getOwnPropertySymbols,j=Object.prototype.hasOwnProperty,Y=Object.prototype.propertyIsEnumerable,B=(e,a,t)=>a in e?U(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,q=(e,a)=>{for(var t in a||(a={}))j.call(a,t)&&B(e,t,a[t]);if(V)for(var t of V(a))Y.call(a,t)&&B(e,t,a[t]);return e},$=(e,a)=>G(e,x(a));const W=(0,M.G)()?"https://apac-api-my.int.coretex.com/replay/v2":"https://api-my.eroad.co.nz/replay/v2",z=(0,M.G)()?"https://apac.int.coretex.com":(0,k.Y)(),Q={depot:`${z}/Portal/api/v1/dashcams`,machinePlans:`${z}/Portal/api/v1/machine`,machines:"https://api-my.eroad.co.nz/machines",vehicles:W},X=({pageNumber:e,pageSize:a,searchString:t,filters:s,orderBy:n,orderDesc:o,subType:l})=>{var r;return(0,F.F)({baseURL:Q.vehicles,method:i.ym.POST,data:$(q({serialNumber:t,pageSize:a,pageNo:e},s),{sort:{property:null!=(r=H.PD[n])?r:n,direction:o?"DESC":"ASC"},subType:l}),url:"/replay/dashcams"})},K=({dashcamId:e})=>(0,F.F)({baseURL:Q.vehicles,method:i.ym.GET,url:`/replay/dashcams/${e}
1/snapshots`}),Z=e=>(0,F.F)({baseURL:Q.depot,method:i.ym.POST,data:e,url:"/assign"}),J=e=>(0,F.F)({baseURL:Q.depot,method:i.ym.GET,url:`/add-ons?machineId=${e}`}),ee=({machineId:e,dashcamId:a})=>(0,F.F)({baseURL:Q.depot,method:i.ym.GET,url:`/products?machineId=${e}&dashcamId=${a}`}),ae=({machineId:e})=>(0,F.F)({baseURL:Q.vehicles,method:i.ym.GET,url:`/replay/machines/${e}/availableToAssign`}),te=({dashcamId:e,dashcamSerialNumber:a,machineId:t,oldMachineId:s,plans:n,deviceConfigs:o})=>(0,F.F)({baseURL:Q.depot,url:"/reassign",method:i.ym.POST,data:{dashcamId:e,dashcamSerialNumber:a,newMachineId:t,oldMachineId:s,plans:n,deviceConfigs:o}}),se=({dashcam:e,machine:a})=>(0,F.F)({baseURL:Q.depot,method:i.ym.DELETE,url:`/uninstall?dashcamId=${e.id}&dashcamSerialNumber=${e.serialNumber}&machineId=${a.id}`}),ne=({pageNumber:e,pageSize:a,searchString:t,filters:s,orderBy:n,orderDesc:o,selectedVehicleNames:l,timeZone:r})=>{var c;return(0,F.F)({baseURL:Q.depot,url:"/export",method:i.ym.POST,data:q($(q({assetNames:l,serialNumber:t,deviceType:"DASHCAM",includedFields:["VEHICLE_INFO","ADD_ON","LAST_ONLINE_TIME"],pageSize:a,pageNo:e},s),{sort:{property:null!=(c=H.PD[n])?c:n,direction:o?"DESC":"ASC"}}),r?{timeZone:r}:{}),returnDataOnly:!1,responseType:"arraybuffer",headers:{accept:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/json"}})},oe=({selectedFleetIds:e})=>e&&e.length>0?(0,F.F)({baseURL:Q.vehicles,url:"/authorisation/fleets/authorisedMachineSummaries",method:i.ym.POST,data:{fleetIds:e||[]}}):(0,F.F)({baseURL:Q.vehicles,url:"/authorisation/authorisedMachineSummaries",method:i.ym.GET}),ie=()=>(0,F.F)({baseURL:Q.vehicles,url:"/authorisation/authorisedFleetSummaries",method:i.ym.GET}),le=({plans:e,machineId:a,deviceConfigs:t,dashcamId:s,dashcamSerialNumber:n,detectorSettings:o})=>(0,F.F)({baseURL:Q.machinePlans,url:"/plans",method:i.ym.PATCH,data:q({plans:e,machineId:a,deviceConfigs:t,dashcamId:s,dashcamSerialNumber:n},(null==o?void 0:o.length)?{detectorSettings:o}:{})}),re=()=>(0,F.F)({baseURL:Q.depot,method:i.ym.GET,url:"/availableDashcamPlans"}),ce=()=>(0,F.F)({baseURL:Q.vehicles,method:i.ym.GET,url:"/replay/dashcams/notification"}),de=({eventTypes:e,aiDashcamNotificationTypes:a})=>(0,F.F)({baseURL:Q.vehicles,method:i.ym.POST,data:{eventTypes:e,aiDashcamNotificationTypes:a},url:"/replay/dashcams/notification"}),me=()=>(0,F.F)({baseURL:Q.vehicles,method:i.ym.GET,url:"/replay/dashcams/notification/eventSummary"}),he=()=>(0,F.F)({baseURL:Q.vehicles,method:i.ym.POST,data:{eventSummaryTimePeriod:"DAILY"},url:"/replay/dashcams/notification/eventSummary"}),ue=()=>(0,F.F)({baseURL:Q.vehicles,method:i.ym.DELETE,url:"/replay/dashcams/notification/eventSummary"}),pe=()=>(0,F.F)({baseURL:Q.vehicles,method:i.ym.DELETE,url:"/replay/dashcams/notification"}),ge=({dashcamId:e})=>(0,F.F)({baseURL:Q.vehicles,method:i.ym.GET,url:`/replay/dashcams/${e}`}),fe=({dashcamId:e,serialNumber:a,eventStartTime:t,eventEndTime:s})=>(0,F.F)({baseURL:Q.vehicles,method:i.ym.POST,url:`/replay/dashcams/${e}/statistics`,data:{serialNumber:a,eventStartTime:t,eventEndTime:s}}),Ae=({dashcamId:e})=>(0,F.F)({baseURL:Q.vehicles,method:i.ym.GET,url:`/replay/dashcams/${e}/logon`}),De=()=>(0,F.F)({baseURL:Q.vehicles,url:"/replay/dashcamhealthstatistics"}),Ee=()=>(0,F.F)({baseURL:Q.vehicles,url:"/replay/dashcams/dataretention"}),Se=({period:e})=>(0,F.F)({baseURL:Q.vehicles,method:i.ym.POST,url:"/replay/dashcams/dataretention",data:{newPeriod:e}}),be=()=>(0,F.F)({baseURL:Q.vehicles,url:"/replay/dashcams/dataretentionpricelist"}),ye=()=>(0,F.F)({baseURL:Q.vehicles,method:i.ym.GET,url:"/replay/dashcams/notification/offline"}),Ie=({offlineInterval:e})=>(0,F.F)({baseURL:Q.vehicles,method:i.ym.POST,data:{offlineInterval:e},url:"/replay/dashcams/notification/offline"}),ve=()=>(0,F.F)({baseURL:Q.vehicles,method:i.ym.DELETE,url:"/replay/dashcams/notification/offline"}),Ne=()=>(0,F.F)({baseURL:Q.vehicles,url:"/replay/dashcamAiDetectors",method:i.ym.GET}),Ce=({deviceFeatures:e})=>(0,F.F)({baseURL:Q.vehicles,url:"/replay/dashcamAiDetectors",method:i.ym.PATCH,data:{deviceType:"Dashcam",deviceSubType:n.YN.STREAMAX,deviceFeatures:e}}),Oe=e=>(0,F.F)({baseURL:Q.vehicles,url:"/replay/dashcams/AiDetectors",method:i.ym.PATCH,data:e});var _e=Object.defineProperty,Te=Object.defineProperties,we=Object.getOwnPropertyDescriptors,Re=Object.getOwnPropertySymbols,Pe=Object.prototype.hasOwnProperty,Le=Object.prototype.propertyIsEnumerable,Me=(e,a,t)=>a in e?_e(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t;const Fe=({records:e,total:a})=>({data:e.map(e=>{var a;const{vehicleName:t,vehicleRego:s,id:n}=e.asset||{};return o=((e,a)=>{for(var t in a||(a={}))Pe.call(a,t)&&Me(e,t,a[t]);if(Re)for(var t of Re(a))Le.call(a,t)&&Me(e,t,a[t]);return e})({},e),i={machine:{vehicleName:t,vehicleRego:s,id:n},plan:e.vehicleDashcamAddon,lastOnlineTime:e.lastOnlineTime,dashcamType:null!=(a=null==e?void 0:e.deviceSubType)?a:null},Te(o,we(i));var o,i}),totalRecords:a});var ke=t(79623),He=t(46186);function*Ue(){var e;const{serialno:a,vin:t}=Object.fromEntries(new URLSearchParams(window.location.search));if(!a||!t)return null;const[{payload:{data:[s]}},{payload:{data:n}}]=yield(0,w.Q7)([(0,w.s)(p.o.fetchDashcams.success.type),(0,w.s)(p.o.fetchAuthorizedVehicles.success.type)]);if(!s)return ke.i.error("Linked dashcam was not found");
1if(s.serialNumber!==a)return(0,He.N)(new Error("The Install Summary Email feature code contract is broken: searching a serial does not uniquely/first return that dashcam")),ke.i.error("Linked dashcam was not found");if(s.lifeCycleState!==H.Zh.PENDING_ASSIGNMENT)return ke.i.error("This dashcam has already been assigned");const o=null==(e=n.find(({registration:e})=>e===t))?void 0:e.id;return yield(0,w.yJ)(p.o.dashcamTableLinkClick({dashcam:{id:s.id,serialNumber:s.serialNumber},dashcamType:s.dashcamType,taskType:g.vL.ASSIGN,initialMachineId:o})),o?(yield(0,w.yJ)(p.o.dashcamMachineSelected({selectedMachineId:o,machines:n})),null):ke.i.warning("Linked asset could not be found")}var Ge=t(22088),xe=Object.defineProperty,Ve=Object.defineProperties,je=Object.getOwnPropertyDescriptors,Ye=Object.getOwnPropertySymbols,Be=Object.prototype.hasOwnProperty,qe=Object.prototype.propertyIsEnumerable,$e=(e,a,t)=>a in e?xe(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t;function*We({payload:e}){const a=yield(0,w.Lt)(Ge.T.getDashcamsQuery),t=yield(0,w.Lt)(Ge.T.getSelectedVehicleNames),s=(n=((e,a)=>{for(var t in a||(a={}))Be.call(a,t)&&$e(e,t,a[t]);if(Ye)for(var t of Ye(a))qe.call(a,t)&&$e(e,t,a[t]);return e})({},a),o={selectedVehicleNames:t,timeZone:e.timeZone},Ve(n,je(o)));var n,o;return[s]}const ze=e=>{var a;try{return(0,P.U)((null==(a=e.response)?void 0:a.data)||e,["message","errorCode"])}catch(e){return{error:e,message:"",errorCode:"SERVER_UNREACHABLE"}}},Qe={enAU:JSON.parse('{"dashcams.drawer.dataRetention.period.select.permission.learnMore.link":"https://help.eroad.com/au/depot/administration/users/au-rolespermissions/","dashcams.detectors.management.button.selectedDashcamOnly":"Selected dashcams only ({count})","dashcams.drawers.offlineNotifications.tooltip":"Automated email notification delivered at 2am AEST of the Clarity Dashcams that have been offline for a configurable period of time.","dashcams.drawers.offlineNotifications.tooltip.clarityEdge":"Automated email notification delivered at 2am AEST of the Clarity Dashcams that have been offline for a configurable period of time."}'),enNZ:JSON.parse('{"dashcams.confirmation.drawer.cancel":"Cancel","dashcams.confirmation.drawer.charges.confirmation.button.text":"Confirm charges","dashcams.confirmation.drawer.charges.confirmation.estimation.costPerDashcam":"Cost per dashcam:","dashcams.confirmation.drawer.charges.confirmation.estimation.dashcamUnits":"Number of dashcam units:","dashcams.confirmation.drawer.charges.confirmation.estimation.period":"Period:","dashcams.confirmation.drawer.charges.confirmation.estimation.total":"Total one-time charge approximately:","dashcams.confirmation.drawer.charges.confirmation.note":"Note: Charges for retention period increases are not refundable and may be subject to local tax.","dashcams.confirmation.drawer.charges.confirmation.title":"Confirm charges","dashcams.confirmation.drawer.harshEventNotification.disabled.success.message":"Event notifications disabled","dashcams.confirmation.drawer.harshEventNotification.enabled.success.message":"Event notifications enabled","dashcams.confirmation.drawer.harshEventNotification.update.failure.message":"Something went wrong. Please try again later","dashcams.confirmation.drawer.retentionPeriod.update.failure.message":"Something went wrong. Please try again later","dashcams.confirmation.drawer.retentionPeriod.update.success.message":"Data retention period is updated","dashcams.confirmation.drawer.retentionPeriodReduction.confirmation.button.text":"Yes, decrease retention period","dashcams.confirmation.drawer.retentionPeriodReduction.confirmation.details":"IMPORTANT: Decreasing the data retention period automatically deletes ALL videos and related information stored outside the new retention period for ALL dashcams in your fleet.","dashcams.confirmation.drawer.retentionPeriodReduction.confirmation.title":"Confirm retention period reduction","dashcams.detectors.management.button.text":"Manage detectors","dashcams.detectors.management.button.selectedDashcamOnly":"Selected dashcams only ({count})","dashcams.detectors.management.drawer.cancel":"Cancel","dashcams.detectors.management.drawer.save":"Save","dashcams.detectors.management.drawer.tab.cellphoneUsage":"Mobile phone usage","dashcams.detectors.management.drawer.tab.driverDistraction":"Distracted driving","dashcams.detectors.management.drawer.tab.fatigue":"Fatigue","dashcams.detectors.management.drawer.tab.followingDistance":"Following distance","dashcams.detectors.management.drawer.tab.forwardCollisionWarning":"Forward collision warning","dashcams.detectors.management.drawer.tab.noDriverDetected":"No driver visible","dashcams.detectors.management.drawer.tab.noSeatBelt":"No seat belt","dashcams.detectors.management.drawer.tab.overspeed":"Overspeed","dashcams.detectors.management.drawer.tab.proximityAlert":"Proximity alert","dashcams.detectors.management.drawer.tab.rollingStop":"Stop sign violation","dashcams.detectors.management.drawer.tab.smoking":"Smoking","dashcams.detectors.management.drawer.tab.table.info.inCabAlert":"The driver facing changes will only apply to cameras on the dual plan.","dashcams.detectors.management.drawer.tab.table.title.detectors":"AI Detectors","dashcams.detectors.management.drawer.tab.table.title.enableDetector":"Enable","dashcams.detectors.management.drawer.tab.table.title.enableInCabAlert":"In-cab Audio","dashcams.detectors.management.drawer.tab.title.driverFacing":"Driver facing","dashcams.detectors.management.drawer.tab.title.roadFacing":"Road facing","dashcams.detectors.management.drawer.tab.yawning":"Yawning","dashcams.detectors.management.drawer.title":"Detector management","dashcams.detectors.management.noSettingsData":"Manage detectors settings are temporary unavailable. Try again later.","dashcams.drawer.button.cancel":"Cancel","dashcams.drawer.button.save":"Save","dashcams.drawer.dataRetention.details":"Your videos and attached notes and documents are available for <bold>{months} months</bold> from video creation date.","dashcams.drawer.dataRetention.details.notAvailable":"Data retention information is temporary unavailable. Try again later.","dashcams.drawer.dataRetention.period.12Months":"12 months","dashcams.drawer.dataRetention.period.18Months":"18 months (default)","dashcams.drawer.dataRetention.period.24Months":"24 months","dashcams.drawer.dataRetention.period.36Months":"36 months","dashcams.drawer.dataRetention.period.3Months":"3 months","dashcams.drawer.dataRetention.period.6Months":"6 months","dashcams.drawer.dataRetention.period.months":"{months} months","dashcams.drawer.dataRetention.period.perUnit.cost":" ({costPerUnit}/dashcam)","dashcams.drawer.dataRetention.period.select.confirmation":"I confirm that I am updating my company\'s data retention period from {fromMonths} months to {toMonths} months.","dashcams.drawer.dataRetention.period.select.costInformation":"The one-time cost for increasing the retention period to {months} months for the {dashcamCount} dashcams in your fleet is approximately <bold>{totalCost}</bold>. After you submit the request, EROAD will invoice you via email.","dashcams.drawer.dataRetention.period.select.description":"Decreasing the data retention period automatically deletes all videos and related information outside the new retention period. Once data is deleted, it will not be restored automatically by increasing the data retention period again. <bold>
1Your deleted data can be restored within 30 days of deletion only by sending a Support request.</bold>","dashcams.drawer.dataRetention.period.select.note":"Note: Charges paid in association with retention period changes are not refundable.","dashcams.drawer.dataRetention.period.select.permission":"To complete this request, you need Financial Permission added to your user account.","dashcams.drawer.dataRetention.period.select.permission.learnMore.link":"https://help.eroad.com/nz/depot/administration/users/nz-rolespermissions/","dashcams.drawer.dataRetention.period.select.permission.learnMore.link.text":"Learn more","dashcams.drawer.dataRetention.period.select.title":"Set data retention period:","dashcams.drawer.dataRetention.period.update.modal.button.updateSettings":"Update settings","dashcams.drawer.dataRetention.period.update.modal.title":"Data retention","dashcams.drawer.dataRetention.title":"Data retention period","dashcams.drawer.detectors.drawer.close.confirm.discard":"Discard changes","dashcams.drawer.detectors.drawer.close.confirm.keepEditing":"Keep editing","dashcams.drawer.detectors.drawer.close.confirm.message":"Are you sure you want to discard your changes?","dashcams.drawer.detectors.drawer.close.confirm.title":"You haven\'t saved your changes","dashcams.drawer.detectors.update.confirm.message":"Changed checkboxes will update settings for all Clarity Edge cameras. Unchanged checkboxes will keep their current settings.","dashcams.drawer.detectors.update.confirm.message.note":"Note: Changes will apply when the device is in cell coverage.","dashcams.drawer.detectors.update.confirm.title":"Do you want to save detector changes?","dashcams.drawer.detectors.update.error.message":"Something went wrong. Please try again later.","dashcams.drawer.detectors.update.success.message":"Camera AI settings are updated","dashcams.drawer.edit.restrictedUserTooltip":"You do not have access to this feature. Contact your Client Administrator for more information.","dashcams.drawer.edit.supportUserTooltip":"This user role isn\'t able to change data retention period whilst using the organisation switcher.","dashcams.drawer.title":"Settings","dashcams.drawers.dashcamVideoSummaryNotification.disabled.success.message":"Dashcams video activity report is disabled","dashcams.drawers.dashcamVideoSummaryNotification.enabled.success.message":"Dashcams video activity report is enabled","dashcams.drawers.dashcamVideoSummaryNotification.supportUser.tooltip":"This user role isn\'t able to subscribe to event related email subscriptions whilst using the organisation switcher. Please return to your own organisation to subscribe.","dashcams.drawers.dashcamVideoSummaryNotification.title":"Video Activity Report","dashcams.drawers.dashcamVideoSummaryNotification.tooltip":"Automatically receive a daily report for video events in your inbox. This is currently unavailable for Clarity Get and Locate plans.","dashcams.drawers.dashcamVideoSummaryNotification.tooltip.clarityEdge":"Automatically receive a daily report for video events in your inbox. This is currently unavailable for Clarity Get and Locate plans.","dashcams.drawers.dashcamVideoSummaryNotification.update.failure.message":"Something went wrong. Please try again later","dashcams.drawers.emailNotifications.description":"Sets notifications for your user only","dashcams.drawers.emailNotifications.title":"Email notifications","dashcams.drawers.emailNotifications.tooltip":"Automatically receive email notifications for the events in your inbox. This is currently unavailable for Clarity Get and Clarity Locate plans.","dashcams.drawers.harshEvents.description":"Notifications delivered in real time","dashcams.drawers.harshEvents.title":"Events","dashcams.drawers.modal.harshEvents.description":"Set event notification details (delivered in real time)","dashcams.drawers.modal.message.email":"This operation will affect all dashcams in the organisation. Are you sure you would like to continue?","dashcams.drawers.modal.message.supportUser":"This user role isn\'t able to subscribe to event email subscriptions whilst using the organisation switcher. Please return to your own organisation to subscribe.","dashcams.drawers.modal.message.tooltip.clarityLocate":"Harsh event notification is unavailable for vehicles on Clarity Locate.","dashcams.drawers.modal.ok":"Yes, save settings","dashcams.drawers.modal.ok.text":"Update settings","dashcams.drawers.modal.title":"Update settings?","dashcams.drawers.offlineNotifications.disabled.success.message":"Dashcams offline notification is disabled","dashcams.drawers.offlineNotifications.enabled.success.message":"Dashcams offline notification is enabled","dashcams.drawers.offlineNotifications.modal.description":"Set dashcam offline notification (emails delivered daily)","dashcams.drawers.offlineNotifications.modal.interval.days":"{days} {isSingleDay, select, true {Day} other {Days}}","dashcams.drawers.offlineNotifications.modal.interval.dropdown.placeholder":"Select number of days","dashcams.drawers.offlineNotifications.modal.ok.text":"Update settings","dashcams.drawers.offlineNotifications.selected.interval.title":"Offline interval","dashcams.drawers.offlineNotifications.supportUser.tooltip":"This user role isn\'t able to subscribe to event related email subscriptions whilst using the organisation switcher. Please return to your own organisation to subscribe.","dashcams.drawers.offlineNotifications.title":"Dashcams offline","dashcams.drawers.offlineNotifications.tooltip":"Automated email notification delivered daily of the Clarity Dashcams that have been offline for a configurable period of time.","dashcams.drawers.offlineNotifications.tooltip.clarityEdge":"Automated email notification delivered daily of the Clarity Dashcams that have been offline for a configurable period of time.","dashcams.drawers.offlineNotifications.update.failure.message":"Something went wrong. Please try again later","dashcams.enum.driverlogon.disabled":"Not Enabled","dashcams.enum.driverlogon.enabled":"Enabled","dashcams.enum.health.healthy":"Operational","dashcams.enum.health.na":"n/
1a","dashcams.enum.health.needsAttention":"Potential Fault","dashcams.enum.health.notHealthy":"Not Operational","dashcams.enum.health.unknown":"Unassigned","dashcams.enum.lifecycle.all":"All","dashcams.enum.lifecycle.available":"Available","dashcams.enum.lifecycle.decommissioned":"Decommissioned","dashcams.enum.lifecycle.installed":"Installed","dashcams.enum.lifecycle.installedPendingRma":"Installed - Pending RMA","dashcams.enum.lifecycle.pendingAssignment":"Pending assignment","dashcams.enum.lifecycle.pendingInstall":"Pending install","dashcams.enum.lifecycle.retired":"Retired","dashcams.enum.lifecycle.sleeping":"Sleeping","dashcams.enum.model.clarity":"Clarity","dashcams.enum.model.clarityEdge":"Clarity Edge","dashcams.enum.model.clarityEdgeConnected":"Clarity Edge Connected","dashcams.enum.model.clarityEdgeNonAi":"Clarity Edge Connected Non-AI","dashcams.enum.model.clarityEdgeSolo":"Clarity Edge Solo","dashcams.enum.model.connected":"Clarity Connected","dashcams.enum.model.get":"Clarity Get","dashcams.enum.model.locate":"Clarity Locate","dashcams.enum.model.locate.and.video":"Clarity Locate + Video","dashcams.enum.model.solo":"Clarity Solo","dashcams.enum.model.solo.promo":"Clarity Get Solo Promo","dashcams.enum.notification.distractedDriving":"Distracted driving","dashcams.enum.notification.fatigue":"Fatigue","dashcams.enum.notification.followingTooClose":"Following distance","dashcams.enum.notification.forwardCollisionWarning":"Forward collision warning","dashcams.enum.notification.harshAcceleration":"Harsh acceleration","dashcams.enum.notification.harshBraking":"Harsh braking","dashcams.enum.notification.harshCornering":"Harsh cornering","dashcams.enum.notification.manual":"Manual trigger","dashcams.enum.notification.mobilePhoneUsage":"Mobile phone usage","dashcams.enum.notification.noDriver":"No driver","dashcams.enum.notification.noSeatbelt":"No seatbelt","dashcams.enum.notification.overspeed":"Overspeed","dashcams.enum.notification.proximityAlert":"Proximity alert","dashcams.enum.notification.rollingStop":"Stop sign violation","dashcams.enum.notification.smoking":"Smoking","dashcams.enum.notification.yawning":"Yawning","dashcams.enum.plan.dual":"Dual","dashcams.enum.plan.empty":"-","dashcams.enum.plan.front":"Front","dashcams.error.codes.0.defaultError":"Something went wrong. Please try again later.","dashcams.error.codes.29.machineAlreadyAssigned":"An EROAD dashcam is currently installed in this vehicle.","dashcams.error.codes.7.internalServiceFailed":"Something went wrong. Please try again later.","dashcams.error.codes.8.entryNotFound":"Selected vehicle is not available.","dashcams.faults.algorithmCalibrationFailure":"Calibration required","dashcams.faults.component.driverCamera":"Driver camera","dashcams.faults.component.dualFatigue":"Dual fatigue camera","dashcams.faults.component.fatigue":"Fatigue camera","dashcams.faults.component.leftMirrorRail":"Left mirror rail camera","dashcams.faults.component.leftSideFlush":"Left side flush camera","dashcams.faults.component.rearOther":"Rear other camera","dashcams.faults.component.rearRoad":"Rear road camera","dashcams.faults.component.rightMirrorRail":"Right mirror rail camera","dashcams.faults.component.rightSideFlush":"Right side flush camera","dashcams.faults.component.roadCamera":"Road camera","dashcams.faults.component.storage1":"SD card 1","dashcams.faults.component.storage2":"SD card 2","dashcams.faults.frequentAbnormalShutdown":"Unexpected dashcam shutdowns","dashcams.faults.lensOcclusion":"Lens covered/blurred","dashcams.faults.lensOcclusion.component":"Lens covered/blurred - {componentName}","dashcams.faults.memoryFailure":"SD card undetected","dashcams.faults.memoryFailure.component":"SD card undetected - {componentName}","dashcams.faults.peripheralFailure":"External camera disconnected","dashcams.faults.resolution.algorithmCalibrationFailure.description":"The camera has not been calibrated or calibration has been lost. Safety alerts (e.g. forward collision, lane departure) may not function correctly until calibration is complete.","dashcams.faults.resolution.algorithmCalibrationFailure.repair.steps":"<ol><li>Open the Clarity Edge Installer App and navigate to the calibration section.</li><li>Follow the on-screen calibration steps, ensuring the vehicle is parked on a flat, level surface.</li><li>Confirm all calibration parameters are correctly set and save the calibration settings.</li><li>If calibration cannot be completed, contact EROAD Support and provide the following: <subol><li>Vehicle information</li><li>Fault information</li><li>Troubleshooting steps already attempted</li></subol></li></ol>
1","dashcams.faults.resolution.frequentAbnormalShutdown.description":"The dashcam has shut down unexpectedly on one or more occasions. This may indicate an underlying software or hardware issue and could result in gaps in video recording. If this fault is recurring, escalate to EROAD Support for investigation.","dashcams.faults.resolution.frequentAbnormalShutdown.repair.steps":"<ol><li>Monitor the device for recurring unexpected shutdowns.</li><li>If the fault persists, contact EROAD Support and provide the following: <subol><li>Vehicle information</li><li>Fault information</li></subol></li></ol>","dashcams.faults.resolution.lensOcclusion.description":"Camera lens is blocked or dirty, reducing footage quality and safety detection.","dashcams.faults.resolution.lensOcclusion.repair.steps":"<ol><li>Clean lens with a soft, dry cloth.</li><li>Ensure nothing is physically blocking the camera\'s field of view.</li><li>After the checks, request video for verification in Replay.</li><li>If the camera remains blocked after cleaning, contact EROAD Support and provide the following: <subol><li>Vehicle information</li><li>Fault information</li><li>Troubleshooting steps already attempted, including any photographic evidence of the camera hardware and connection points.</li></subol></li></ol>","dashcams.faults.resolution.memoryFailure.description":"At least one SD card is missing, incorrectly seated, or faulty. This may prevent video footage from being recorded or saved.","dashcams.faults.resolution.memoryFailure.repair.steps":"<ol><li>In Replay, request the latest video to confirm nothing is being recorded.</li><li>Ignition OFF and disconnect Clarity Edge dashcam.</li><li>Using a Torx T6, open the dashcam\'s port door and check the slots and cards for misalignment or damage.</li><li>Check the Clarity Edge version on its info-sticker. If the dashcam ID is: <subol><li><strong>AD Plus 2.0</strong> - the two cards\' gold contacts should face TOWARD each other.</li><li><strong>AD Plus 2.0 (v1.1)</strong> - the two cards\' gold contacts should face AWAY from each other.</li></subol></li><li>Re-seat or replace the SD card(s) as required, re-secure the port door, reconnect the dashcam, and Ignition ON.</li><li>After the checks, request video for verification in Replay.</li><li>If the fault persists, contact EROAD Support and provide the following: <subol><li>Vehicle information</li><li>Fault information</li><li>Troubleshooting steps already attempted, including any photographic evidence of the SD card and slot.</li></subol></li></ol>","dashcams.faults.resolution.note":"Note: Once you\'ve completed these steps{componentScope, select, camera { for all cameras} sdCard { for SD cards} other {}}, the system will automatically verify and clear this fault on the next daily review. No manual action is needed to dismiss this message.","dashcams.faults.resolution.peripheralFailure.description":"The external camera has been disconnected from the dashcam. Video recording from this camera will be unavailable until the connection is restored.","dashcams.faults.resolution.peripheralFailure.repair.steps":"<ol><li>In Replay, request the latest footage from the affected camera to confirm it is offline.</li><li>Inspect all cables and connectors between the affected external camera and the dashcam unit for loose connections or visible damage.</li><li>Reseat or reconnect any loose cables and restart the dashcam.</li><li>In Replay, request the latest footage to confirm the camera is reconnected and footage is coming through.</li><li>If the camera remains disconnected, contact EROAD Support and provide the following: <subol><li>Vehicle information</li><li>Fault information</li><li>Troubleshooting steps already attempted, including any photographic evidence of the camera hardware and connection points.</li></subol></li></ol>","dashcams.faults.resolution.unknown.description":"Please contact EROAD Support for assistance","dashcams.faults.resolution.unknown.repair.steps":"Please contact EROAD Support for assistance","dashcams.faults.resolution.videoLost.description":"The {hasComponentName, select, true {{componentName}} other {camera}} {count, plural, one {is} other {are}} not sending video to the dashcam. This may be caused by a loose cable connection or camera fault. Footage from {count, plural, one {this camera} other {these cameras}} may be interrupted or unavailable until the issue is resolved.","dashcams.faults.resolution.videoLost.repair.steps":"<ol><li>In Replay, request the video from the affected cameras to confirm the issue.</li><li>If video cannot be retrieved, physically inspect the following: <subol><li>Check that the camera is securely connected to the dashcam or video expander box (if fitted).</li><li>Check the camera and cables for signs of physical damage.</li></subol></li><li>After the checks, request video for verification in Replay.</li><li>If the camera remains unavailable after checking the connection, contact EROAD Support and provide the following: <subol><li>Vehicle information</li><li>Fault information</li><li>Troubleshooting steps already attempted, including any photographic evidence of the camera hardware and connection points.</li></subol></li></ol>","dashcams.faults.severity.high":"Immediate Action required!","dashcams.faults.severity.low":"Monitor closely (EROAD Support only
1)","dashcams.faults.severity.medium":"Action recommended!","dashcams.faults.severityTitle":"{faultName}, {severityLabel}","dashcams.faults.unknown":"Unrecognised fault","dashcams.faults.unknown.description":"Details not available for this fault.","dashcams.faults.videoLost":"Camera unavailable","dashcams.faults.videoLost.component":"{componentName} unavailable","dashcams.health.page.info.audio":"Audio","dashcams.health.page.info.cameras":"Cameras","dashcams.health.page.info.dvr":"DVR APK version","dashcams.health.page.info.event":"Event APK version","dashcams.health.page.info.extras":"Extras","dashcams.health.page.info.foundation":"Foundation APK version","dashcams.health.page.info.health":"Health","dashcams.health.page.info.installationDate":"Installation Date","dashcams.health.page.info.installationStatus":"Installation Status","dashcams.health.page.info.installationType":"Installation Type","dashcams.health.page.info.lastOnline":"Last online","dashcams.health.page.info.numberPlate":"Number Plate","dashcams.health.page.info.onlineStatus":"Status","dashcams.health.page.info.plan":"Plan","dashcams.health.page.info.product":"Product","dashcams.health.page.info.sdCapacity":"SD card capacity","dashcams.health.page.info.sensor":"Sensor APK version","dashcams.health.page.info.serial":"Serial","dashcams.health.page.info.title":"Dashcam info","dashcams.health.page.info.vehicleName":"Vehicle Name","dashcams.health.page.info.weightType":"Weight Type","dashcams.health.page.listBack":"Back to Dashcams","dashcams.health.page.logon.title":"Driver log on","dashcams.health.page.stats.averangeDistance":"Average distance per event","dashcams.health.page.stats.averangeDistance.popover":"Vehicle distance traveled divided by its harsh events for selected time frame.","dashcams.health.page.stats.error":"Statistics currently unavailable for this dashcam. Please try again later.","dashcams.health.page.stats.harsh":"Harsh event triggered","dashcams.health.page.stats.harsh.popover":"Total harsh braking and harsh acceleration clips","dashcams.health.page.stats.manual":"Manually triggered","dashcams.health.page.stats.requested":"Requested","dashcams.health.page.stats.title":"Dashcam statistics","dashcams.health.page.stats.totalclips":"Total clips","dashcams.health.page.title":"Dashcam health","dashcams.health.snapshots.lastEventSnapshotTime":"The {snapshotCount, plural, one {image was} other {images were}} updated on {lastUpdatedDate}. {snapshotCount, plural, one {Image refreshes} other {Images refresh}} with every new camera event.","dashcams.health.snapshots.lastUpdatedOn":"The {snapshotCount, plural, one {image was} other {images were}} updated on {lastUpdatedDate}. {snapshotCount, plural, one {Image automatically refreshes} other {Images automatically refresh}} every time the vehicle ignition off.","dashcams.health.snapshots.perCamera.lastUpdatedOn":"Last updated on {lastUpdatedDate}","dashcams.health.snapshots.perCamera.refreshCameraEvent":"Refreshes on every new camera event","dashcams.health.snapshots.perCamera.refreshDriverEvent":"Refreshes on every new driver camera event","dashcams.health.table.column.dateTimeLogon.title":"Date  | Time","dashcams.health.table.column.driver.title":"Driver","dashcams.health.table.column.location.title":"Location","dashcams.health.table.column.status.title":"Status","dashcams.health.table.empty.message":"No driver log on found","dashcams.health.tooltip.healthy":"Dashcam operational","dashcams.health.tooltip.needsAttention":"Dashcam potentially faulty","dashcams.health.tooltip.notHealthy":"Dashcam not operational","dashcams.health.total.title":"Health:","dashcams.message.assignComplete":"Dashcam {serialNumber} assigned to vehicle {machineLabel}","dashcams.message.changePlanComplete":"Dashcam plan is updated","dashcams.message.no.plan.warning":"Dashcam will not record without a plan selected.","dashcams.message.reassignComplete":"Dashcam {serialNumber} re-assigned to vehicle {machineLabel}","dashcams.message.uninstallComplete":"Dashcam {serialNumber} has been uninstalled","dashcams.modal.addon.driver.logon":"({used}/{available} used)","dashcams.modal.addon.dual":"Dual ({used}/{available} used)","dashcams.modal.addon.front":"Front ({used}/{available} used)","dashcams.modal.addons.driver.dualFatigueCamera":"Dual fatigue camera ({used}/{available} used)","dashcams.modal.addons.driver.fatigueCamera":"Fatigue camera ({used}/{available} used)","dashcams.modal.addons.driver.fatigueCamera.plan.basic":"EROAD monitored service, Basic ({used}/{available} used)","dashcams.modal.addons.driver.fatigueCamera.plan.pro":"EROAD monitored service, Pro ({used}/{available} used)","dashcams.modal.addons.driver.logon":"Driver log on ({used}/{available} used)","dashcams.modal.cancelText":"Cancel","dashcams.modal.description.assign":"Enter the registration plate no. in which dashcam {serialNumber} has been installed and choose between front or dual to activate video recording.","dashcams.modal.description.reassignConfirm":"Do this only if the dashcam was mistakenly associated with this vehicle. Click continue to re-assign the camera.","dashcams.modal.description.uninstallConfirm":"You\'ll need to re-run the Install Wizard if you want to move the camera to a new vehicle.","dashcams.modal.error.no.main.plan":"No Vehicle Plan assigned to this vehicle. <DepotLink>Click here to Manage Plans</DepotLink> that support dashcam.","dashcams.modal.error.not.compatible.plan":"Incompatible Vehicle Plan assigned to this vehicle. <DepotLink>Click here to Manage Plans</DepotLink> that support dashcam.","dashcams.modal.error.server.unreachable":"Sorry, our network is temporarily down. We are working to resolve this issue as soon as possible.","dashcams.modal.label.dashcam":"Dashcam","dashcams.modal.label.extras":"Extras","dashcams.modal.label.manageDetectors":"Manage Detectors","dashcams.modal.label.product":"Product","dashcams.modal.label.recordingPlan":"Recording plan","dashcams.modal.label.vehicle":"Vehicle","dashcams.modal.okText.assign":"Assign","dashcams.modal.okText.managePlan":"Confirm","dashcams.modal.okText.reassign":"Re-assign","dashcams.modal.okText.reassignConfirm":"Continue","dashcams.modal.okText.uninstall":"Uninstall","dashcams.modal.okText.uninstallConfirm":"Uninstall","dashcams.modal.pattern.vehicle":"Invalid registration plate format","dashcams.modal.placeholder.vehicle":"Select vehicle","dashcams.modal.products.addOns.driverLogon":"({used}/{available} used)","dashcams.modal.products.addOns.fatigueCamera":"({used}/{available} used)","dashcams.modal.products.addOns.unnamed":"unnamed","dashcams.modal.products.addOns.unnamedInfo":"({used}/{available} used)","dashcams.modal.products.clarityConnected.recordingPlan.dual":"Dual ({used}/{available} used)","dashcams.modal.products.clarityConnected.recordingPlan.front":"Front ({used}/{available} used)","dashcams.modal.products.clarityEdgeConnected.recordingPlan.dual":"Dual ({used}/{available} used)","dashcams.modal.products.clarityEdgeConnected.recordingPlan.front":"Front ({used}/{available} used)","dashcams.modal.products.clarityEdgeNonAi.recordingPlan.dual":"Dual ({used}/{available} used)","dashcams.modal.products.clarityEdgeNonAi.recordingPlan.front":"Front ({used}/{available} used)","dashcams.modal.products.clarityEdgeSolo.recordingPlan.dual":"Dual ({used}/{available} used)","dashcams.modal.products.clarityEdgeSolo.recordingPlan.front":"Front ({used}/{available} used)","dashcams.modal.products.clarityGet.recordingPlan.dual":"Dual ({used}/{available} used)","dashcams.modal.products.clarityGet.recordingPlan.front":"Front ({used}/{available} used)","dashcams.modal.products.clarityLocateVideo.recordingPlan.dual":"Dual ({used}/{available} used)","dashcams.modal.products.clarityLocateVideo.recordingPlan.front":"Front ({used}/{available} used)","dashcams.modal.products.claritySolo.recordingPlan.dual":"Dual ({used}/{available} used)","dashcams.modal.products.claritySolo.recordingPlan.front":"Front ({used}/{available} used)","dashcams.modal.products.claritySoloPromo.recordingPlan.dual":"Dual ({used}/{available} used)","dashcams.modal.products.claritySoloPromo.recordingPlan.front":"Front ({used}/{available} used)","dashcams.modal.products.clarityUsage.recordingPlan.dual":"Dual ({used}/{available} used)","dashcams.modal.products.clarityUsage.recordingPlan.front":"Front ({used}/{available} used)","dashcams.modal.products.deviceConfig.autoLogout":"Automatic driver log off","dashcams.modal.products.deviceConfig.autoLogout.tooltip":"The device will automatically log off the driver, when the vehicle is switched off","dashcams.modal.products.deviceConfig.repeatedAlarm":"Repeated in-cab log on alarm","dashcams.modal.products.deviceConfig.repeatedAlarm.tooltip":"Dashcam sounds a recurring alarm when the vehicle starts to move with no logged on driver","dashcams.modal.products.dropdown.placeholder":"Select product","dashcams.modal.products.label.clarityConnected":"Clarity Connected ({used}/{available} used)","dashcams.modal.products.label.clarityEdgeConnected":"Clarity Edge Connected ({used}/{available} used)","dashcams.modal.products.label.clarityEdgeNonAi":"Clarity Edge Connected Non-AI ({used}/{available} used)","dashcams.modal.products.label.clarityEdgeSolo":"Clarity Edge Solo ({used}/{available} used)","dashcams.modal.products.label.clarityGet":"Clarity Get ({used}/{available} used)","dashcams.modal.products.label.clarityLocate":"Clarity Locate ({used}/{available} used)","dashcams.modal.products.label.clarityLocateVideo":"Clarity Locate + Video ({used}/{available} used)","dashcams.modal.products.label.claritySolo":"Clarity Solo ({used}/{available} used)","dashcams.modal.products.label.claritySoloPromo":"Clarity Get Solo Promo ({used}/{available} used)","dashcams.modal.products.label.clarityUsage":"Clarity Usage ({used}/{available} used)","dashcams.modal.products.label.unnamed":"Unnamed ({used}/{available} used)","dashcams.modal.products.unnamed.recordingPlan":"Unnamed ({used}/{available} used)","dashcams.modal.required.plan":"Please select a plan","dashcams.modal.required.product":"Please select a product","dashcams.modal.required.vehicle":"Please enter a full registration plate no.","dashcams.modal.title.assign":"Assign","dashcams.modal.title.managePlan":"Manage","dashcams.modal.title.reassign":"Re-assign","dashcams.modal.title.reassignConfirm":"Re-assign dashcam {serialNumber}?","dashcams.modal.title.uninstall":"Uninstall dashcam","dashcams.modal.title.uninstallConfirm":"Uninstall dashcam {serialNumber}?","dashcams.modal.vehicle.notFound":"Vehicle not found in organisation.","dashcams.page.export.button.label":"Export","dashcams.page.footer.rmaPending.symbol.desc":"{referenceSymbol} indicates a pending RMA case","dashcams.page.title":"Dashcams","dashcams.setting.button.title":"Settings","dashcams.tab.title.clarity":"Clarity","dashcams.tab.title.clarityEdge":"Clarity Edge","dashcams.table.cell.assignLink":"Assign","dashcams.table.cell.managePlanLink":"Manage dashcam","dashcams.table.cell.reassignLink":"Re-
1assign","dashcams.table.cell.uninstallLink":"Uninstall","dashcams.table.cells.empty":"-","dashcams.table.cells.notSupported":"Not supported","dashcams.table.column.dashcamExtras.title":"Extras","dashcams.table.column.dashcamFaults.title":"Faults","dashcams.table.column.dashcamStatus.offline":"Offline","dashcams.table.column.dashcamStatus.online":"Online","dashcams.table.column.dashcamStatus.title":"Connection status","dashcams.table.column.dashcamStatus.tooltip.offline":"Offline {dateTime, select, null {} other {since {dateTime}}}","dashcams.table.column.dashcamStatus.tooltip.online":"Online since {dateTime}","dashcams.table.column.driverlogonAndActions.title":"Driver log on","dashcams.table.column.health.title":"Health","dashcams.table.column.lastOnlineTime.title":"Last online","dashcams.table.column.lastsnapshot.clarityEdge.title":"Last event snapshot","dashcams.table.column.lastsnapshot.fatigue.label":"Fatigue","dashcams.table.column.lastsnapshot.fatigue.title":"Fatigue camera","dashcams.table.column.lastsnapshot.front.label":"Road facing","dashcams.table.column.lastsnapshot.front.title":"Road facing camera","dashcams.table.column.lastsnapshot.noCameraImage.clarityLocate.title":"No snapshot available for Clarity Locate plan","dashcams.table.column.lastsnapshot.rear.label":"Driver facing","dashcams.table.column.lastsnapshot.rear.title":"Driver facing camera","dashcams.table.column.lastsnapshot.title":"Last snapshot","dashcams.table.column.lifecycle.rmaPending.symbol":"*","dashcams.table.column.lifecycle.title":"Installation status","dashcams.table.column.noSnapshot":"No snapshot","dashcams.table.column.planAndActions.title":"Plan","dashcams.table.column.serialType.title":"Serial  | Product","dashcams.table.column.vehicle.title":"Vehicle info","dashcams.table.empty.message":"No dashcams found","dashcams.table.filter.driverlogon.mobileHeading":"Driver log on status","dashcams.table.filter.driverlogon.placeholder":"All statuses","dashcams.table.filter.faults.all":"All faults","dashcams.table.filter.faults.mobileHeading":"Faults","dashcams.table.filter.faults.placeholder":"Select faults","dashcams.table.filter.fleets.mobileHeading":"Fleets","dashcams.table.filter.health.mobileHeading":"Health status","dashcams.table.filter.health.placeholder":"All statuses","dashcams.table.filter.lifecycle.mobileHeading":"Installation status","dashcams.table.filter.lifecycle.placeholder":"Select installation status","dashcams.table.filter.notification.all":"All events","dashcams.table.filter.notification.placeholder":"All events","dashcams.table.filter.search.error.message":"Enter at least <strong>2 characters</strong> to show relevant results","dashcams.table.filter.search.placeholder":"Search serial","dashcams.table.filter.vehicles.mobileHeading":"Vehicles","dashcams.table.rmaPending.no":"No","dashcams.table.rmaPending.yes":"Yes","dashcams.table.selection.clearAllData":"Clear all data","dashcams.table.selection.selectAllData":"Select all data","dashcams.table.warning.pendingAssignment.message":"Additional information is not available because the Dashcam is not assigned to a vehicle.","dashcams.table.warning.pendingAssignment.title":"Pending assignment","dashcams.table.warning.pendingInstall.message":"Additional information is not available because the Dashcam is not installed.","dashcams.table.warning.pendingInstall.title":"Pending install","filters.driverlogon.multiSelect.dropdownTitle":"Select driver log on","filters.fleets.multiSelect.allSelectedTitle":"All groups (fleets)","filters.fleets.multiSelect.inputPlaceholder":"Select groups (fleets)","filters.health.multiSelect.dropdownTitle":"Select health","filters.notificaion.multiSelect.dropdownTitle":"No events selected","filters.vehicles.multiSelect.activeDriverGroupTitle":"All vehicles","filters.vehicles.multiSelect.allSelectedTitle":"All vehicles","filters.vehicles.multiSelect.dropdownTitle":"Select vehicles","filters.vehicles.multiSelect.inactive.item.label":"{itemName} (inactive)","filters.vehicles.multiSelect.inputPlaceholder":"Select vehicles","purchase.additional.add.ons":"Please contact EROAD Support to purchase additional add-ons"}'),enUS:JSON.parse('{"dashcams.detectors.management.drawer.tab.cellphoneUsage":"Cellphone usage","dashcams.detectors.management.drawer.tab.rollingStop":"Failure to stop","dashcams.detectors.management.button.selectedDashcamOnly":"Selected dashcams only ({count})","dashcams.drawer.dataRetention.period.select.costInformation":"The one-time cost for increasing the retention period to {months} months for the {dashcamCount} dashcams in your fleet is approximately <bold>{totalCost}</bold> (potentially subject to sales and use tax). After you submit the request, EROAD will invoice you via email.","dashcams.drawer.dataRetention.period.select.permission.learnMore.link":"https://help.eroad.com/us/depot/administration/users/us-rolespermissions/","dashcams.drawer.edit.supportUserTooltip":"This user role isn\'t able to change data retention period whilst using the organization switcher.","dashcams.drawers.dashcamVideoSummaryNotification.supportUser.tooltip":"This user role isn\'t able to subscribe to event related email subscriptions whilst using the organization switcher. Please return to your own organization to subscribe.","dashcams.drawers.modal.message.email":"This operation will affect all dashcams in the organization. Are you sure you would like to continue?","dashcams.drawers.modal.message.supportUser":"This user role isn\'t able to subscribe to event email subscriptions whilst using the organization switcher. Please return to your own organization to subscribe.","dashcams.drawers.offlineNotifications.supportUser.tooltip":"This user role isn\'t able to subscribe to event related email subscriptions whilst using the organization switcher. Please return to your own organization to subscribe.","dashcams.drawers.offlineNotifications.tooltip":"Automated email notification delivered at 5am PDT of the Clarity Dashcams that have been offline for a configurable period of time.","dashcams.drawers.offlineNotifications.tooltip.clarityEdge":"Automated email notification delivered at 5am PDT of the Clarity Dashcams that have been offline for a configurable period of time.","dashcams.enum.notification.mobilePhoneUsage":"Cellphone usage","dashcams.enum.notification.rollingStop":"Failure to stop","dashcams.faults.unknown":"Unrecognized fault","dashcams.table.column.vehicle.title":"Vehicle info"}'),frCA:JSON.parse('{"dashcams.detectors.management.button.selectedDashcamOnly":"Selected dashcams only ({count})"}')},Xe=(0,s.G)({key:n.$n.DASHCAMS,reducer:_,saga:function*(){yield(0,w.Q7)([(0,w.T1)(Ue),(0,w.p8)(p.o.assignDashcam.type,(0,L.X)(p.o.assignDashcam,Z,{makeErrorPayload:ze,*onSuccess(e,a){yield(0,w.yJ)(p.o.fetchDashcams(a.meta.query))}})),(0,w.p8)(p.o.fetchDashcamAddOnsCounts.type,(0,L.X)(p.o.fetchDashcamAddOnsCounts,J,{makeErrorPayload:ze})),(0,w.p8)(p.o.fetchDashcams.type,(0,L.X)(p.o.fetchDashcams,X,{makeSuccessPayload:Fe})),(0,w.p8)(p.o.reassignDashcam.type,(0,L.X)(p.o.reassignDashcam,te,{makeErrorPayload:ze,*onSuccess(e,a){yield(0,w.yJ)(p.o.fetchDashcams(a.meta.query))}})),(0,w.p8)(p.o.uninstallDashcam.type,(0,L.X)(p.o.uninstallDashcam,se,{makeErrorPayload:ze,*onSuccess(e,a){yield(0,w.yJ)(p.o.fetchDashcams(a.meta.query))}})),(0,w.p8)(p.o.fetchAuthorizedVehicles.type,(0,L.X)(p.o.fetchAuthorizedVehicles,oe)),(0,w.p8)(p.o.fetchAuthorizedFleets.type,(0,L.X)(p.o.fetchAuthorizedFleets,ie)),(0,w.p8)(p.o.fetchAvailableDashcamPlans.type,(0,L.X)(p.o.fetchAvailableDashcamPlans,re)),(0,w.p8)(p.o.fetchDashcamsNotification.type,(0,L.X)(p.o.fetchDashcamsNotification,ce)),(0,w.p8)(p.o.updateDashcamsNotification.type,(0,L.X)(p.o.updateDashcamsNotification,de)),(0,w.p8)(p.o.deleteDashcamsNotification.type,(0,L.X)(p.o.deleteDashcamsNotification,pe)),(0,w.p8)(p.o.fetchDashcamInfo.type,(0,L.X)(p.o.fetchDashcamInfo,ge)),(0,w.p8)(p.o.fetchDashcamStats.type,(0,L.X)(p.o.fetchDashcamStats,fe)),(0,w.p8)(p.o.fetchSnapshots.type,(0,L.X)(p.o.fetchSnapshots,K)),(0,w.p8)(p.o.exportDashcams.type,(0,L.X)(p.o.exportDashcams,ne,{makeCallFnParams:We,makeErrorPayload:ze,*onSuccess(e){const{data:a,headers:t}=e;yield(0,w.T1)(R.P,a,(0,T.parse)(t["content-disposition"]).parameters.filename,t["content-type"])}})),(0,w.p8)(p.o.changePlanForMachine.type,(0,L.X)(p.o.changePlanForMachine,le,{makeErrorPayload:ze,*onSuccess(e,a){yield(0,w.yJ)(p.o.fetchDashcams(a.meta.query))}})),(0,w.p8)(p.o.fetchDriverLogon.type,(0,L.X)(p.o.fetchDriverLogon,Ae)),(0,w.p8)(p.o.fetchDashcamHealthStatistics.type,(0,L.X)(p.o.fetchDashcamHealthStatistics,De)),(0,w.p8)(p.o.fetchDataRetentionPeriod.type,(0,L.X)(p.o.fetchDataRetentionPeriod,Ee)),(0,w.p8)(p.o.updateDataRetentionPeriod.type,(0,L.X)(p.o.updateDataRetentionPeriod,Se,{*onSuccess(){yield(0,w.yJ)(p.o.fetchDataRetentionPeriod())}})),(0,w.p8)(p.o.fetchDataRetentionDashcamInfo.type,(0,L.X)(p.o.fetchDataRetentionDashcamInfo,be)),(0,w.p8)(p.o.fetchDashcamsOfflineNotification.type,(0,L.X)(p.o.fetchDashcamsOfflineNotification,ye)),(0,w.p8)(p.o.updateDashcamsOfflineNotification.type,(0,L.X)(p.o.updateDashcamsOfflineNotification,Ie)),(0,w.p8)(p.o.deleteDashcamsOfflineNotification.type,(0,L.X)(p.o.deleteDashcamsOfflineNotification,ve)),(0,w.p8)(p.o.fetchDashcamProducts.type,(0,L.X)(p.o.fetchDashcamProducts,ee,{makeErrorPayload:ze})),(0,w.p8)(p.o.fetchDashcamAssignAvailability.type,(0,L.X)(p.o.fetchDashcamAssignAvailability,ae,{*onSuccess(e,a){yield(0,w.yJ)(p.o.fetchDashcamProducts({machineId:a.payload.machineId,dashcamId:a.payload.dashcamId}))}})),(0,w.p8)(p.o.fetchDashcamVideoSummaryNotification.type,(0,L.X)(p.o.fetchDashcamVideoSummaryNotification,me)),(0,w.p8)(p.o.updateDashcamVideoSummaryNotification.type,(0,L.X)(p.o.updateDashcamVideoSummaryNotification,he)),(0,w.p8)(p.o.deleteDashcamVideoSummaryNotification.type,(0,L.X)(p.o.deleteDashcamVideoSummaryNotification,ue)),(0,w.p8)(p.o.fetchAiDashcamDetectorSettings.type,(0,L.X)(p.o.fetchAiDashcamDetectorSettings,Ne)),(0,w.p8)(p.o.updateAiDashcamDetectorSettings.type,(0,L.X)(p.o.updateAiDashcamDetectorSettings,Ce,{*onSuccess(e,a){yield(0,w.yJ)(p.o.fetchDashcams(a.meta.query))}})),(0,w.p8)(p.o.updateBulkAiDashcamDetectorSettings.type,(0,L.X)(p.o.updateBulkAiDashcamDetectorSettings,Oe,{makeErrorPayload:ze,*onSuccess(e,a){yield(0,w.yJ)(p.o.fetchDashcams(a.meta.query))}}))])},translations:Qe})},92644:(e,a,t)=>{t.d(a,{r:()=>x});var s=t(14041),n=t(70541),o=t(43420),i=t(80601),l=t(56664),r=t(44396),c=t(62397),d=t(37195),m=t(40026),h=t(83593),u=t(82162),p=t(62009),g=t(94462),f=t(40508),A=t(2759),D=t(22088),E=t(1454);const S=(0,E.wY)(e=>({root:{display:"flex",justifyContent:"flex-end",marginBottom:e.spacing(3)},aiStarIcon:{height:e.spacing(4),width:e.spacing(4)}}),{name:"ManageDetectorsButton"});var b=t(87908),y=t(15195),I=t(93815),v=t(4078),N=t(18198),C=t(43499),O=t(24637);const _=(0,E.wY)(e=>({confirmationMessageNote:{fontWeight:e.typography.weights.medium,marginTop:e.spacing(3)},questionIcon:{color:`${e.colors.onsurfaceFont} !important`}}),{name:"ManageDetectorsDrawer"});var T=t(14041),w=Object.defineProperty,R=Object.defineProperties,P=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,M=Object.prototype.hasOwnProperty,F=Object.prototype.propertyIsEnumerable,k=(e,a,t)=>a in e?w(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,H=(e,a)=>{for(var t in a||(a={}))M.call(a,t)&&k(e,t,a[t]);if(L)for(var t of L(a))F.call(a,t)&&k(e,t,a[t]);return e};
1const U=({closeDrawer:e=b.l,isDrawerOpen:a=!1,defaultCameraType:t=N.db.ROAD_FACING,isSelectedDashcamsOnly:l=!1,subType:r=null})=>{const{t:c}=(0,i.t)(),d=_(),m=(0,n.wA)(),h=(0,n.d4)(D.T.getDashcamsQuery),{detectorSettings:u,inCabAlertSettings:p,isAllSelected:g,ids:E}=(0,n.d4)(D.T.getDashcamSelection),S=l?u:void 0,w=l?p:void 0,[L,M]=(0,s.useState)(S),[F,k]=(0,s.useState)(w),{allDetectors:U,allInCabAlerts:G,enabledDetectors:x,enabledInCabAlerts:V,selectedAiDetectors:j,selectedAiDetectorsInCabAlert:Y,setSelectedAiDetectors:B,setSelectedAiDetectorsInCabAlert:q}=(({detectorSelectionStates:e,inCabAlertSelectionStates:a}={})=>{const{allDetectors:t,allInCabAlerts:o,enabledDetectors:i,enabledInCabAlerts:l}=(0,n.d4)(D.T.getDashcamAiDetectorsGrouped),{isDetectorsUpdateFailed:r}=(0,n.d4)(D.T.getDashcamAiDetectorSettingsUpdateStatus),{isBulkDetectorsUpdateFailed:c}=(0,n.d4)(D.T.getBulkDashcamAiDetectorSettingsUpdateStatus),d=(0,s.useMemo)(()=>e?(0,C.YF)(e):i,[e,i]),m=(0,s.useMemo)(()=>a?(0,C.YF)(a):l,[a,l]),[h,u]=(0,s.useState)(d),[p,g]=(0,s.useState)(m);return(0,s.useEffect)(()=>{u(d),g(m)},[d,m,r,c]),{allDetectors:t,allInCabAlerts:o,enabledDetectors:d,enabledInCabAlerts:m,selectedAiDetectors:h,selectedAiDetectorsInCabAlert:p,setSelectedAiDetectors:u,setSelectedAiDetectorsInCabAlert:g}})({detectorSelectionStates:S,inCabAlertSelectionStates:w}),{showRollingStopDetector:$,showOverSpeedDetector:W}=(0,A.q)(),z=!(0,C.nM)({enabledDetectors:x,selectedAiDetectors:j,enabledInCabAlerts:V,selectedAiDetectorsInCabAlert:Y,detectorSelectionStates:S,currentDetectorSelectionStates:L,inCabAlertSelectionStates:w,currentInCabAlertSelectionStates:F}),Q=()=>{z?(X(),e()):v.a.confirm({title:c("dashcams.drawer.detectors.drawer.close.confirm.title"),content:c("dashcams.drawer.detectors.drawer.close.confirm.message"),icon:T.createElement(y.A,{className:d.questionIcon}),okText:c("dashcams.drawer.detectors.drawer.close.confirm.discard"),cancelText:c("dashcams.drawer.detectors.drawer.close.confirm.keepEditing"),onOk:()=>{X(),e()}})},X=()=>{B(x),q(V),M(S),k(w)};return T.createElement(I._s,{type:I.ts.STANDARD,mask:!0,"data-testid":"dashcam-detectors-drawer",title:c("dashcams.detectors.management.drawer.title"),open:a,width:375,error:!(null==U?void 0:U.length),primaryButtonConfig:{"data-testid":"dashcam-detectors-drawer-save",disabled:z,label:T.createElement(o.s,{id:"dashcams.detectors.management.drawer.save"}),onClick:()=>{const a=T.createElement(T.Fragment,null,c("dashcams.drawer.detectors.update.confirm.message"),T.createElement("div",{className:d.confirmationMessageNote},c("dashcams.drawer.detectors.update.confirm.message.note")));v.a.confirm({title:c("dashcams.drawer.detectors.update.confirm.title"),content:a,icon:T.createElement(y.A,{className:d.questionIcon}),onOk:()=>{const a={query:(t=H({},h),s={subType:r},R(t,P(s))),successMessage:c("dashcams.drawer.detectors.update.success.message"),errorMessage:c("dashcams.drawer.detectors.update.error.message")};var t,s;m(l?f.o.updateBulkAiDashcamDetectorSettings(H(H({isAllSelected:g,ids:E},(0,C.kn)({allDetectors:U,selectedAiDetectors:j,currentDetectorSelectionStates:L,allInCabAlerts:G,selectedAiDetectorsInCabAlert:Y,currentInCabAlertSelectionStates:F})),g?{filter:h.filters}:{}),{meta:a}):f.o.updateAiDashcamDetectorSettings({deviceFeatures:(0,C.qu)(j,Y,U,G)},{meta:a})),e()}})}},secondaryButtonConfig:{"data-testid":"dashcam-detectors-drawer-cancel",label:T.createElement(o.s,{id:"dashcams.detectors.management.drawer.cancel"}),onClick:Q},onClose:Q},T.createElement(O.A,{"data-testid":"manage-detectors-tabs",defaultCameraType:t,allDetectors:U,showRollingStopDetector:$,showOverSpeedDetector:W,value:{selectedAiDetectors:j,selectedAiDetectorsInCabAlert:Y,detectorSelectionStates:L,inCabAlertSelectionStates:F},onChange:({selectedAiDetectors:e,selectedAiDetectorsInCabAlert:a,detectorSelectionStates:t,inCabAlertSelectionStates:s})=>{B(e),q(a),M(e=>null!=t?t:e),k(e=>null!=s?s:e)}}))};var G=t(14041);const x=({subType:e=null})=>{const a=(0,h.D)(),t=S(),{t:f}=(0,i.t)(),[E,b]=(0,s.useState)(!1),[y,I]=(0,s.useState)(!1),[v,N]=(0,s.useState)(0),C=(0,n.d4)(D.T.getIsDetectorSettingsUpdating),O=(0,n.d4)(D.T.getIsDetectorSettingsFetching),_=C||O,{result:{totalRecords:T=0}={}}=(0,n.d4)(D.T.getDashcams)||{},{selectedCount:w}=(0,n.d4)(D.T.getDashcamSelection),{organisationId:R}=(0,n.d4)(u.T.getSelectedOrganisation),{availableDashcamPlans:P=[]}=(0,n.d4)(D.T.getDashcamPlansStatuses)||{},L=(0,g.h7)(P),{showEnhancedManageDetectors:M}=(0,A.q)(),F=Boolean((0,p.F)("dashcams.showAiDashcamsManagementSettings","showAiDashcamsManagementSettingsWhitelist",R)&&L);if(V(F),!F)return null;
1const k=()=>{I(!1),N(e=>e+1),b(!0)},H=[{key:"selectedDashcamOnly",label:G.createElement(o.s,{id:"dashcams.detectors.management.button.selectedDashcamOnly",values:{count:T>0&&w===T?f("dashcams.enum.lifecycle.all"):w}}),disabled:0===w||_,onClick:()=>{I(!0),N(e=>e+1),b(!0)}}];return G.createElement("div",{className:t.root},M?G.createElement(m.y,null,G.createElement(d.g,{type:"primary",icon:G.createElement(l.A,null),menu:{items:H},"data-testid":"ai-dashcam-settings",loading:_,onClick:k},G.createElement(r.KQ,{fill:a.colors.surfaceOverlay,className:t.aiStarIcon}),G.createElement(o.s,{id:"dashcams.detectors.management.button.text",tagName:"span"}))):G.createElement(c.$,{type:"primary",icon:G.createElement(r.KQ,{fill:a.colors.surfaceOverlay,className:t.aiStarIcon}),"data-testid":"ai-dashcam-settings",loading:_,onClick:k},G.createElement(o.s,{id:"dashcams.detectors.management.button.text",tagName:"span"})),G.createElement(U,{key:v,isDrawerOpen:E,closeDrawer:()=>b(!1),isSelectedDashcamsOnly:y,subType:e}))},V=e=>{const a=(0,n.wA)();(0,s.useEffect)(()=>{e&&a(f.o.fetchAiDashcamDetectorSettings())},[a,e])}},94462:(e,a,t)=>{t.d(a,{Cv:()=>p,DR:()=>g,HG:()=>o,P7:()=>m,VI:()=>h,Zl:()=>c,_1:()=>d,h7:()=>l,o8:()=>u,xQ:()=>i});var s=t(93753),n=t(18198);const o=({planName:e,isClarityEdgeDevice:a=!1})=>{var t;const n=a?s.Yo.CLARITY_EDGE:s.Yo.CLARITY;return e&&s.Dw[e]?null==(t=s.Dw[e])?void 0:t.productNameMessageId:n},i=e=>!!e&&[s.oH.PLAN_NAMES.CLARITY_EDGE_CONNECTED_AI_FRONT,s.oH.PLAN_NAMES.CLARITY_EDGE_CONNECTED_AI_DUAL,s.oH.PLAN_NAMES.CLARITY_EDGE_SOLO_AI_FRONT,s.oH.PLAN_NAMES.CLARITY_EDGE_SOLO_AI_DUAL,s.oH.PLAN_NAMES.CLARITY_EDGE_NON_AI_FRONT,s.oH.PLAN_NAMES.CLARITY_EDGE_NON_AI_DUAL].includes(e),l=e=>(null==e?void 0:e.some(i))||!1,r=e=>!!e&&[s.oH.PLAN_NAMES.AO_DASHCAM_DUAL_CAM,s.oH.PLAN_NAMES.AO_DASHCAM_FRONT_CAM,s.oH.PLAN_NAMES.CLARITY_GET_DUAL,s.oH.PLAN_NAMES.CLARITY_GET_FRONT,s.oH.PLAN_NAMES.CLARITY_GET_SOLO_PROMO_DUAL,s.oH.PLAN_NAMES.CLARITY_GET_SOLO_PROMO_FRONT,s.oH.PLAN_NAMES.CLARITY_LOCATE,s.oH.PLAN_NAMES.PLAN_SOLO_DASHCAM_DUAL,s.oH.PLAN_NAMES.PLAN_SOLO_DASHCAM_FRONT].includes(e),c=e=>(null==e?void 0:e.some(r))||!1,d=e=>(null==e?void 0:e.toUpperCase())===s.oH.PRODUCT_NAMES.CLARITY_LOCATE,m=e=>!!e&&[s.oH.PRODUCT_NAMES.CLARITY_EDGE_CONNECTED,s.oH.PRODUCT_NAMES.CLARITY_EDGE_SOLO,s.oH.PRODUCT_NAMES.CLARITY_EDGE_NON_AI].includes(e),h=e=>(null==e?void 0:e.toUpperCase())===n.YN.STREAMAX,u=e=>i(e)?n.YN.STREAMAX:n.YN.CLARITY,p=e=>!!e&&[s.oH.PRODUCT_NAMES.CLARITY_EDGE_NON_AI].includes(e),g=e=>!!e&&[s.oH.PLAN_NAMES.CLARITY_EDGE_NON_AI_FRONT,s.oH.PLAN_NAMES.CLARITY_EDGE_NON_AI_DUAL].includes(e)}}]); 2//# sourceMappingURL=dashcams.myeroad.18b64c99215c90fac70d.js.map
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.