af360 0.1.13 → 0.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/af360.mjs +38 -5
- package/dist/.next/BUILD_ID +1 -1
- package/dist/.next/app-build-manifest.json +136 -138
- package/dist/.next/app-path-routes-manifest.json +20 -20
- package/dist/.next/build-manifest.json +5 -5
- package/dist/.next/prerender-manifest.json +46 -46
- package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/_not-found.html +1 -1
- package/dist/.next/server/app/_not-found.rsc +3 -3
- package/dist/.next/server/app/ahead/page.js +1 -1
- package/dist/.next/server/app/ahead/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/ahead.html +1 -1
- package/dist/.next/server/app/ahead.rsc +4 -4
- package/dist/.next/server/app/api/browse/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/card/route.js +1 -1
- package/dist/.next/server/app/api/card/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/card/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/check/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/config/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/connections/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/connectors/github/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/consent/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/context/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/discover/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/expiry/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/first-light/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/handoff/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/health/route.js +1 -1
- package/dist/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/incidents/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/insights/route.js +1 -1
- package/dist/.next/server/app/api/insights/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/insights/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/log/route.js +1 -1
- package/dist/.next/server/app/api/log/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/pulse/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/radar/route.js +1 -1
- package/dist/.next/server/app/api/radar/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/report/route.js +1 -1
- package/dist/.next/server/app/api/report/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/report/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/services/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/api/status/route.js +1 -1
- package/dist/.next/server/app/api/status/route.js.nft.json +1 -1
- package/dist/.next/server/app/api/status/route_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/connections/page.js +2 -2
- package/dist/.next/server/app/connections/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/connections.html +1 -1
- package/dist/.next/server/app/connections.rsc +4 -4
- package/dist/.next/server/app/dashboard/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/dashboard.html +1 -1
- package/dist/.next/server/app/dashboard.rsc +3 -3
- package/dist/.next/server/app/discoveries/page.js +1 -1
- package/dist/.next/server/app/discoveries/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/discoveries.html +1 -1
- package/dist/.next/server/app/discoveries.rsc +4 -4
- package/dist/.next/server/app/expiry/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/expiry.html +1 -1
- package/dist/.next/server/app/expiry.rsc +3 -3
- package/dist/.next/server/app/fleet/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/fleet.html +1 -1
- package/dist/.next/server/app/fleet.rsc +3 -3
- package/dist/.next/server/app/home/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/home.html +1 -1
- package/dist/.next/server/app/home.rsc +3 -3
- package/dist/.next/server/app/legal/privacy/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/legal/terms/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/log/page.js +1 -1
- package/dist/.next/server/app/log/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/log.html +1 -1
- package/dist/.next/server/app/log.rsc +4 -4
- package/dist/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/projects/page.js +1 -1
- package/dist/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/projects.html +1 -1
- package/dist/.next/server/app/projects.rsc +4 -4
- package/dist/.next/server/app/radar/page.js +1 -64
- package/dist/.next/server/app/radar/page.js.nft.json +1 -1
- package/dist/.next/server/app/radar/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/radar.html +1 -1
- package/dist/.next/server/app/radar.rsc +4 -4
- package/dist/.next/server/app/report/page.js +2 -2
- package/dist/.next/server/app/report/page.js.nft.json +1 -1
- package/dist/.next/server/app/report/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/report.html +1 -1
- package/dist/.next/server/app/report.rsc +4 -4
- package/dist/.next/server/app/settings/page.js +1 -1
- package/dist/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/settings.html +1 -1
- package/dist/.next/server/app/settings.rsc +4 -4
- package/dist/.next/server/app/sites/page.js +1 -1
- package/dist/.next/server/app/sites/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/sites.html +1 -1
- package/dist/.next/server/app/sites.rsc +4 -4
- package/dist/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/welcome.html +1 -1
- package/dist/.next/server/app/welcome.rsc +4 -4
- package/dist/.next/server/app-paths-manifest.json +20 -20
- package/dist/.next/server/chunks/2346.js +1 -1
- package/dist/.next/server/chunks/2465.js +64 -1
- package/dist/.next/server/chunks/2817.js +1 -1
- package/dist/.next/server/chunks/4825.js +1 -0
- package/dist/.next/server/chunks/572.js +1 -1
- package/dist/.next/server/chunks/6992.js +1 -1
- package/dist/.next/server/chunks/7511.js +1 -1
- package/dist/.next/server/chunks/7719.js +1 -1
- package/dist/.next/server/chunks/8134.js +1 -1
- package/dist/.next/server/chunks/8150.js +1 -1
- package/dist/.next/server/chunks/876.js +1 -1
- package/dist/.next/server/chunks/9170.js +1 -1
- package/dist/.next/server/middleware-build-manifest.js +1 -1
- package/dist/.next/server/middleware-manifest.json +5 -5
- package/dist/.next/server/pages/404.html +1 -1
- package/dist/.next/server/pages/500.html +1 -1
- package/dist/.next/server/server-reference-manifest.json +1 -1
- package/dist/.next/static/chunks/{1255-612df69cb02f2021.js → 1255-fc6c00ab2f765339.js} +1 -1
- package/dist/.next/static/chunks/3192-40ade9877c89ec45.js +1 -0
- package/dist/.next/static/chunks/5623-53fb7cea5de0afef.js +1 -0
- package/dist/.next/static/chunks/7897-b9c15e8805df61ef.js +1 -0
- package/dist/.next/static/chunks/8050-a75457e83cd8be0f.js +1 -0
- package/dist/.next/static/chunks/app/ahead/page-75602559f92be6c4.js +1 -0
- package/dist/.next/static/chunks/app/connections/page-ff9d0b4e4fcf5ebe.js +1 -0
- package/dist/.next/static/chunks/app/discoveries/{page-52696e6ee0c8d3d5.js → page-6b06c0c2a94f3b94.js} +1 -1
- package/dist/.next/static/chunks/app/{error-37987420de14c10c.js → error-c67c297ef2dd70de.js} +1 -1
- package/dist/.next/static/chunks/app/log/page-842048c36f071dd6.js +1 -0
- package/dist/.next/static/chunks/app/projects/{page-75a41d4a90675d93.js → page-1d6b330842a2ff80.js} +1 -1
- package/dist/.next/static/chunks/app/radar/page-584b42327baac21b.js +1 -0
- package/dist/.next/static/chunks/app/report/page-9dc52d7f76569e42.js +1 -0
- package/dist/.next/static/chunks/app/settings/{page-a38c457b7c57567b.js → page-582279bf3fe509d4.js} +1 -1
- package/dist/.next/static/chunks/app/sites/page-3dcc5a0990fae677.js +1 -0
- package/dist/.next/static/chunks/{main-6828c74376f2b965.js → main-574ae5bf2f2165c4.js} +1 -1
- package/dist/.next/static/css/fbb4cf81dde34731.css +1 -0
- package/dist/build-id.json +145 -147
- package/dist/node_modules/@next/env/package.json +1 -1
- package/dist/node_modules/next/dist/build/swc/index.js +1 -1
- package/dist/node_modules/next/dist/build/webpack-config.js +2 -2
- package/dist/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js +2 -2
- package/dist/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +2 -2
- package/dist/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +2 -2
- package/dist/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js +2 -2
- package/dist/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js +1 -1
- package/dist/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +7 -7
- package/dist/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js +2 -2
- package/dist/node_modules/next/dist/lib/has-necessary-dependencies.js +2 -0
- package/dist/node_modules/next/dist/lib/verify-typescript-setup.js +19 -0
- package/dist/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +1 -1
- package/dist/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
- package/dist/node_modules/next/dist/server/image-optimizer.js +22 -2
- package/dist/node_modules/next/dist/server/lib/app-info-log.js +1 -1
- package/dist/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js +17 -4
- package/dist/node_modules/next/dist/server/lib/start-server.js +1 -1
- package/dist/node_modules/next/dist/shared/lib/canary-only.js +1 -1
- package/dist/node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js +1 -1
- package/dist/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
- package/dist/node_modules/next/dist/telemetry/events/version.js +2 -2
- package/dist/node_modules/next/package.json +11 -11
- package/dist/package.json +2 -2
- package/dist/shell/bin/af360-bridge.exe +0 -0
- package/lib/mcpActivity.mjs +1 -0
- package/package.json +2 -2
- package/scripts/mcp-server.mjs +174 -2
- package/shell/bin/af360-bridge.exe +0 -0
- package/dist/.next/server/chunks/1155.js +0 -1
- package/dist/.next/server/chunks/6584.js +0 -1
- package/dist/.next/static/chunks/1681-b233404f9ec2fc2e.js +0 -1
- package/dist/.next/static/chunks/2036-e29441d605c493a4.js +0 -1
- package/dist/.next/static/chunks/3192-6b341d547a49fa85.js +0 -1
- package/dist/.next/static/chunks/5623-ec4f1a6f7695d8d1.js +0 -1
- package/dist/.next/static/chunks/7897-6e6c509aea495560.js +0 -1
- package/dist/.next/static/chunks/app/ahead/page-e72bed448dd40bd5.js +0 -1
- package/dist/.next/static/chunks/app/connections/page-5d6cae02e6f2b49a.js +0 -1
- package/dist/.next/static/chunks/app/log/page-45b4cfd8f1a29d09.js +0 -1
- package/dist/.next/static/chunks/app/radar/page-4b4aad549dffcd3a.js +0 -1
- package/dist/.next/static/chunks/app/report/page-145496e8f0d5bc86.js +0 -1
- package/dist/.next/static/chunks/app/sites/page-96a7dcf3c1e9aa19.js +0 -1
- package/dist/.next/static/css/94d302c686de7e23.css +0 -1
- /package/dist/.next/static/{da1c2e66999c334d135d9 → 4602553707d90d0fadeba}/_buildManifest.js +0 -0
- /package/dist/.next/static/{da1c2e66999c334d135d9 → 4602553707d90d0fadeba}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2655],{694:(e,l,s)=>{Promise.resolve().then(s.bind(s,7843))},7843:(e,l,s)=>{"use strict";s.r(l),s.d(l,{default:()=>p});var n=s(5155),t=s(2115),o=s(7406),a=s(639),r=s(7470),i=s(436),c=s(5310),d=s(3034),g=s(5834),h=s(1551);function p(){var e;let l=(0,a.x)(),[s,p]=(0,t.useState)("all"),x=(0,h.$c)(null==(e=l.cfg)?void 0:e.lang),m=(e,l)=>(0,h.tr)(x,e,l),j=l.events,u=Date.now(),f=(0,r.l)(u),N=(0,r.l)(u-864e5),k=null!=j?j:[],v=function(e,l){let s=[];for(let l of e){let e=(0,r.l)(l.ts),n=s[s.length-1];n&&n.key===e?n.events.push(l):s.push({key:e,events:[l]})}return s}("all"===s?k:k.filter(e=>e.kind===s),0),y=[["all","log.filterAll",i.UI.log.filterAll],["mcp","log.filterAgents",i.UI.log.filterAgents],["connection","log.filterConnections",i.UI.log.filterConnections],["closed","log.filterClosed",i.UI.log.filterClosed]];return(0,n.jsxs)(o.Ay,{active:"/log",cockpit:l,children:[(0,n.jsxs)("div",{className:"pagebar",children:[(0,n.jsx)("h1",{children:(0,n.jsx)(c.T,{k:"room.log",en:i.UI.log.title})}),(0,n.jsx)("span",{className:"purpose",children:(0,n.jsx)(c.T,{k:"log.purpose",en:i.UI.log.purpose})})]}),null===j?(0,n.jsxs)("div",{className:"sweep-wrap",children:[(0,n.jsx)("div",{className:"sweep","aria-hidden":!0}),(0,n.jsx)("span",{children:(0,n.jsx)(g.hI,{children:m("log.purpose",i.UI.log.purpose)})})]}):0===k.length?(0,n.jsx)("div",{className:"empty",children:(0,n.jsx)("p",{children:m("log.empty",i.UI.log.empty)})}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"logbar",children:[(0,n.jsx)("div",{className:"logchips",role:"group","aria-label":m("log.filterAll",i.UI.log.filterAll),children:y.map(e=>{let[l,t,o]=e;return(0,n.jsxs)("button",{type:"button",className:"logchip".concat(s===l?" on":""),"aria-pressed":s===l,onClick:()=>p(l),children:[(0,n.jsx)(c.T,{k:t,en:o}),(0,n.jsx)("span",{className:"cnt",children:(0,n.jsx)(d.V,{n:"all"===l?k.length:k.filter(e=>e.kind===l).length})})]},l)})}),(0,n.jsx)("p",{className:"logremainder",children:m("log.untaggedNote",i.UI.log.untaggedNote)})]}),v.map(e=>(0,n.jsxs)("section",{className:"logday",children:[(0,n.jsxs)("h2",{className:"logday-h",children:[(e=>{if(e===f)return(0,n.jsx)(c.T,{k:"log.dayToday",en:i.UI.log.dayToday});if(e===N)return(0,n.jsx)(c.T,{k:"log.dayYesterday",en:i.UI.log.dayYesterday});let[l,s,t]=e.split("-").map(Number);return(0,n.jsx)(d.En,{children:new Date(l,(s||1)-1,t||1).toLocaleDateString("en-US",{weekday:"long"})})})(e.key),(0,n.jsx)("span",{className:"cnt",children:(0,n.jsx)(d.V,{n:e.events.length})})]}),(0,n.jsx)("div",{className:"loglist",children:e.events.map(e=>{var l;return(0,n.jsxs)("div",{className:"logrow",children:[(0,n.jsx)("span",{className:"logtime",children:(0,n.jsx)(d.En,{children:new Date(e.ts).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"})})}),e.kind?(0,n.jsx)("span",{className:"logkind k-".concat(e.kind),children:"mcp"===(l=e.kind)?m("log.filterAgents",i.UI.log.filterAgents):"closed"===l?m("log.filterClosed",i.UI.log.filterClosed):m("log.filterConnections",i.UI.log.filterConnections)}):null,(0,n.jsx)("span",{className:"logtext",children:(0,n.jsx)(d.En,{children:e.text})})]},"".concat(e.ts," ").concat(e.text))})})]},e.key)),(0,n.jsx)("p",{className:"logfloor",children:m("log.floor",i.UI.log.floor)})]})]})}}},e=>{e.O(0,[3192,8050,8441,1255,7358],()=>e(e.s=694)),_N_E=e.O()}]);
|
package/dist/.next/static/chunks/app/projects/{page-75a41d4a90675d93.js → page-1d6b330842a2ff80.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[893],{5657:(e,s,n)=>{"use strict";n.r(s),n.d(s,{default:()=>x});var r=n(5155),c=n(2115),a=n(
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[893],{5657:(e,s,n)=>{"use strict";n.r(s),n.d(s,{default:()=>x});var r=n(5155),c=n(2115),a=n(7406),l=n(639),t=n(7897),i=n(5163),o=n(436),p=n(5310),j=n(3034),d=n(2696),h=n(5834),m=n(1551);function x(){var e,s;let n=(0,l.x)(),[x,g]=(0,c.useState)(null),{projects:u,radar:v,changes:N,attention:y}=n,{requestIgnore:I,showToast:k,overlays:U}=(0,t.Wj)(n),f=null!=(s=n.views.projects)?s:"cards",b=(0,c.useRef)(null),w=(0,m.$c)(null==(e=n.cfg)?void 0:e.lang),T=(e,s)=>(0,m.tr)(w,e,s),_="ar"===w,C=e=>(0,i.YV)(y,e),R=e=>"red"===e?2:+("amber"===e),E=[...u].sort((e,s)=>{let r=Number(n.isPinned((0,t.yn)(s)))-Number(n.isPinned((0,t.yn)(e)));return 0!==r?r:R(C((0,t.yn)(s)))-R(C((0,t.yn)(e)))}),V=E.some(e=>null===C((0,t.yn)(e))),P=E.filter(e=>{let s=C((0,t.yn)(e));return null!==s&&"clean"!==s}).length,q=e=>g(s=>s===e?null:e);return(0,r.jsxs)(a.Ay,{active:"/projects",cockpit:n,children:[(0,r.jsxs)("div",{className:"pagebar",children:[(0,r.jsx)("h1",{children:(0,r.jsx)(p.T,{k:"room.projects",en:o.UI.projects.title})}),(0,r.jsx)("span",{className:"purpose",children:(0,r.jsx)(p.T,{k:"projects.purpose",en:o.UI.projects.purpose})})]}),(0,r.jsx)("div",{className:"radar-verdict",children:(0,r.jsx)(d.HE,{cockpit:n})}),v?0===u.length?(0,r.jsxs)("div",{className:"empty",children:[(0,r.jsx)("p",{className:"invite",children:T("projects.emptyInvite",o.UI.projects.emptyInvite)}),(0,r.jsx)("p",{children:T("projects.emptyLine",o.UI.projects.emptyLine)}),(0,r.jsx)("a",{className:"btn primary",href:"/radar",children:T("btn.goRadar",o.UI.projects.goRadar)})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"sec",children:[(0,r.jsx)("h2",{children:(0,r.jsx)(p.T,{k:"sec.projects",en:o.UI.radar.projects})}),(0,r.jsxs)("span",{className:"meta",children:[(0,r.jsx)(j.V,{n:u.length})," \xb7"," ",V?(0,r.jsx)(h.hI,{children:T("common.checking",o.UI.common.checking)}):P>0?_?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(j.V,{n:P})," ",T("projects.needingTail","")]}):o.UI.projects.needing(P):T("projects.allClean",o.UI.projects.allClean)]}),(0,r.jsx)("div",{className:"tools",children:(0,r.jsx)(t.aA,{view:f,onChange:e=>n.setView("projects",e)})})]}),"cards"===f?(0,r.jsx)("div",{className:"grid",ref:b,children:E.map(e=>(0,r.jsx)(t.Uj,{p:e,tone:C((0,t.yn)(e)),cockpit:n,change:N[(0,t.yn)(e)],open:x===e.path,onToggle:()=>q(e.path),onIgnoreRequest:I,onToast:k},e.path))}):(0,r.jsx)("div",{className:"irows",ref:b,children:E.map(e=>(0,r.jsx)(t.ou,{p:e,tone:C((0,t.yn)(e)),cockpit:n,change:N[(0,t.yn)(e)],open:x===e.path,onToggle:()=>q(e.path),onIgnoreRequest:I},e.path))})]}):(0,r.jsxs)("div",{className:"sweep-wrap",children:[(0,r.jsx)("div",{className:"sweep","aria-hidden":!0}),(0,r.jsx)("span",{children:(0,r.jsx)(h.hI,{children:T("common.scanning",o.UI.common.scanning)})})]}),U]})}},6068:(e,s,n)=>{Promise.resolve().then(n.bind(n,5657))}},e=>{e.O(0,[3192,8050,7897,8441,1255,7358],()=>e(e.s=6068)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2305],{8106:(e,a,s)=>{"use strict";s.d(a,{T:()=>i});var n=s(5155),r=s(2115),l=s(436),t=s(5310);function i(e){let{cockpit:a,onAdded:s}=e,[i,d]=(0,r.useState)(""),[c,o]=(0,r.useState)(""),[h,m]=(0,r.useState)(!1),[j,x]=(0,r.useState)(null),p=(0,t.kj)(),g=async e=>{var n;if(e.preventDefault(),!i.trim())return;m(!0),x(null);let r=await a.post({action:"addUrl",url:i.trim(),label:c.trim()||void 0});m(!1),r.ok?(d(""),o(""),x({ok:!0,text:p("site.added",l.UI.radar.siteAdded)}),a.readHealth(),null==s||s()):x({ok:!1,text:null!=(n=r.message)?n:p("common.somethingWrong",l.UI.common.somethingWrong)})};return(0,n.jsxs)("form",{className:"setup",onSubmit:g,children:[(0,n.jsxs)("div",{className:"addrow",children:[(0,n.jsx)("input",{className:"in",type:"text",inputMode:"url",dir:"ltr",value:i,"aria-label":p("site.addrAria",l.UI.radar.siteAddrAria),placeholder:l.UI.radar.sitePlaceholder,onChange:e=>d(e.target.value)}),(0,n.jsx)("input",{className:"in",type:"text",value:c,"aria-label":p("site.nameAria",l.UI.radar.siteNameAria),placeholder:p("site.namePlaceholder",l.UI.radar.siteNamePlaceholder),onChange:e=>o(e.target.value)}),(0,n.jsx)("button",{className:"btn primary",type:"submit",disabled:h||!i.trim(),children:h?p("site.adding",l.UI.radar.siteAdding):p("site.add",l.UI.radar.siteAdd)})]}),j&&(0,n.jsx)("p",{className:j.ok?"ok-line":"error-line",children:j.text})]})}},8216:(e,a,s)=>{Promise.resolve().then(s.bind(s,9151))},9151:(e,a,s)=>{"use strict";s.r(a),s.d(a,{default:()=>T});var n=s(5155),r=s(2115),l=s(7406),t=s(4097),i=s(5623),d=s(639),c=s(7897),o=s(7470),h=s(5163),m=s(2696),j=s(23),x=s(2613),p=s(436),g=s(5310),u=s(3034),k=s(8106),N=s(6400),v=s(5834),I=s(9178);let f={look:74,change:22,closed:22,mcp:56,connection:56},U=new Set(["change","closed"]);function y(e){let{events:a,coverage:s,readAt:r,ar:l,empty:t}=e;if(null===a||null===r)return null;let i=r-864e5,d=a.filter(e=>e.ts>=i&&e.ts<=r&&void 0!==e.kind).sort((e,a)=>e.ts-a.ts),c=0===d.length?i:Math.min(d[0].ts,r-36e5),o=r-Math.min(864e5,Math.max(36e5,36e5*Math.ceil((r-Math.max(i,c))/36e5))),h=a.filter(e=>e.ts>=o&&e.ts<=r&&void 0!==e.kind).sort((e,a)=>e.ts-a.ts),m=r-o,j=m>=864e5,x=h.filter(e=>"look"===e.kind).length,u=a.some(e=>e.ts>=o&&e.ts<=r&&void 0===e.kind),k=(null==s?void 0:s.oldestTs)!=null&&s.oldestTs>o,N=e=>(e-o)/m*1e3,v=k?N(s.oldestTs):0,y=[],b=(e,a)=>{let s=y[y.length-1],n=s?Math.max(e,s[0]):e;s&&n===s[0]&&a===s[1]||y.push([n,a])};for(let e of(b(v,88),h)){let a=N(e.ts);b(a-4,88),b(a,f[e.kind]),b(a+4,88)}return(b(1e3,88),0===h.length&&t)?(0,n.jsx)("div",{className:"tape",children:(0,n.jsx)("div",{className:"tape-paper tape-invite",children:(0,n.jsx)("p",{children:(0,n.jsx)(g.T,{k:"radar.tapeInvite",en:p.UI.radar.tapeInvite})})})}):(0,n.jsxs)("div",{className:"tape",children:[(0,n.jsxs)("div",{className:"tape-paper",children:[(0,n.jsxs)("svg",{viewBox:"0 0 1000 100",preserveAspectRatio:"none","aria-hidden":"true",children:[(0,n.jsx)("line",{className:"tape-base",x1:"0",y1:"88",x2:"1000",y2:"88",vectorEffect:"non-scaling-stroke"}),(0,n.jsx)("polyline",{className:"tape-trace",points:y.map(e=>{let[a,s]=e;return"".concat(a,",").concat(s)}).join(" "),vectorEffect:"non-scaling-stroke"}),h.map((e,a)=>(0,n.jsx)("line",{className:"tape-mark tape-".concat(U.has(e.kind)?"moved":"look"===e.kind?"look":"door"),"data-kind":e.kind,x1:N(e.ts),x2:N(e.ts),y1:88,y2:f[e.kind],vectorEffect:"non-scaling-stroke"},"".concat(e.ts,"-").concat(a)))]}),(0,n.jsx)("span",{className:"tape-now","aria-hidden":"true"})]}),(0,n.jsxs)("div",{className:"tape-foot",children:[(0,n.jsx)("span",{className:"meta",children:j?(0,n.jsx)(g.T,{k:"radar.tapeWindow",en:p.UI.radar.tapeWindow}):(0,n.jsx)(g.T,{k:"radar.tapeSpan",en:p.UI.radar.tapeSpan((0,I.p0)(m))})}),(0,n.jsxs)("span",{className:"tape-key",children:[(0,n.jsx)("i",{className:"k-look","aria-hidden":"true"}),(0,n.jsx)(g.T,{k:"radar.tapeKeyLook",en:p.UI.radar.tapeKeyLook})]}),(0,n.jsxs)("span",{className:"tape-key",children:[(0,n.jsx)("i",{className:"k-door","aria-hidden":"true"}),(0,n.jsx)(g.T,{k:"radar.tapeKeyDoor",en:p.UI.radar.tapeKeyDoor})]}),(0,n.jsxs)("span",{className:"tape-key",children:[(0,n.jsx)("i",{className:"k-change","aria-hidden":"true"}),(0,n.jsx)(g.T,{k:"radar.tapeKeyChange",en:p.UI.radar.tapeKeyChange})]}),(0,n.jsxs)("a",{className:"tape-goto",href:"/log",children:[(0,n.jsx)(g.T,{k:"radar.tapeGoto",en:p.UI.radar.tapeGoto})," ",l?"←":"→"]})]}),0===h.length&&(0,n.jsx)("div",{className:"tape-partial",children:(0,n.jsx)(g.T,{k:"radar.tapeNoMarks",en:p.UI.radar.tapeNoMarks})}),u&&(0,n.jsx)("div",{className:"tape-partial",children:(0,n.jsx)(g.T,{k:"radar.tapeUntyped",en:p.UI.radar.tapeUntyped})}),k&&(0,n.jsx)("div",{className:"tape-partial",children:(0,n.jsx)(g.T,{k:"radar.tapeShort",en:p.UI.radar.tapeShort})}),!u&&!k&&x>0&&!h.some(e=>U.has(e.kind))&&(0,n.jsx)("div",{className:"tape-quiet",children:(0,n.jsx)(g.T,{k:"radar.tapeQuiet",en:p.UI.radar.tapeQuiet(x)})})]})}var b=s(1551),w=s(797);function T(){var e,a,s,o,k,I,f,U,T;let F=(0,d.x)(),[A,M]=(0,r.useState)(null),[D,E]=(0,r.useState)(null),[V,L]=(0,r.useState)(!1),{radar:R,incidents:B,insights:q,insightsLookAt:H,insightsLooking:W,insightsMuted:O,insightsPending:Y,demo:G,projects:K,urls:_,views:J,collapsed:Q,changes:Z,attention:z,events:$,logCoverage:X}=F,{requestIgnore:ee,showToast:ea,overlays:es}=(0,c.Wj)(F),en=(0,b.$c)(null==(e=F.cfg)?void 0:e.lang),er=(e,a)=>(0,b.tr)(en,e,a),el="ar"===en,et=(0,g.qN)(en);(0,r.useEffect)(()=>{let e=Object.keys(Z);if(0===e.length)return;let a=setTimeout(()=>F.markSeen(e),12e3);return()=>clearTimeout(a)},[Object.keys(Z).join("|")]);let ei=e=>M(a=>a===e?null:e),ed=(0,N.yr)(q),ec=e=>(0,h.YV)(z,e),eo=null!=(o=J.projects)?o:"cards",eh=null!=(k=J.urls)?k:"cards",em=e=>"red"===e?2:+("amber"===e),ej=[...K].sort((e,a)=>{let s=Number(F.isPinned((0,c.yn)(a)))-Number(F.isPinned((0,c.yn)(e)));return 0!==s?s:em(ec((0,c.yn)(a)))-em(ec((0,c.yn)(e)))}),ex=[..._].sort((e,a)=>em(ec(a.entry.id))-em(ec(e.entry.id))),ep=e=>{var a;return null!=(a=Q[e])?a:"ignored"===e||"drawer"===e},eg=(0,r.useRef)(null),eu=(0,r.useRef)(null),ek=(0,c.j4)(eg,ej.length,260,[eo,ep("projects"),null!=(I=null==z?void 0:z.items.length)?I:0,V,G]),eN=(0,c.j4)(eu,ex.length,40,[eh,ep("sites"),ek,null!=(f=null==z?void 0:z.items.length)?f:0,V,G]),ev=ej.slice(0,ek),eI=ej.slice(ek),ef=ex.slice(0,eN),eU=ex.slice(eN),ey=z?(0,h.Pl)(z):null,eb=W&&null!==H,ew=!!z&&(0,h.yy)(z)&&!!R,eT=!z||(0,h.yy)(z)?"idle":"INCIDENT"===z.state?"bad":"NEEDS_YOU"===z.state||"SAFETY"===z.state?"":"ok",eS=!z||(0,h.yy)(z)?"acc-none":"INCIDENT"===z.state?"acc-bad":"NEEDS_YOU"===z.state?"acc-warn":"SAFETY"===z.state?"acc-safety":"acc-ok";return(0,n.jsxs)(l.Ay,{active:"/radar",cockpit:F,children:[(0,n.jsx)("div",{className:"radar-head ".concat(eT),children:(0,n.jsx)("div",{className:"rh-left",children:(0,n.jsx)("div",{className:"greet",children:function(e){let a=new Date().getHours();return a<5?e("greet.evening","Good evening"):a<12?e("greet.morning","Good morning"):a<17?e("greet.afternoon","Good afternoon"):e("greet.evening","Good evening")}(er)})})}),!ew&&(0,n.jsxs)("div",{className:"glance-wrap",children:[eb&&(0,n.jsx)("div",{className:"glance-held",children:(0,n.jsx)("span",{className:"meta",children:(0,n.jsx)(g.T,{k:"radar.heldLook",en:p.UI.radar.heldLook})})}),(0,n.jsxs)("div",{className:"glance ".concat(eS).concat(eb?" held":""),children:[(0,n.jsx)(m.HE,{cockpit:F}),null===q?(0,n.jsxs)("a",{className:"meter meter-go",href:"/discoveries",children:[(0,n.jsx)("span",{className:"meter-label",children:(0,n.jsx)(g.T,{k:"radar.meterDisc",en:p.UI.radar.meterDisc})}),(0,n.jsx)("span",{className:"meter-read",children:(0,n.jsx)(v.uF,{children:er("common.loading",p.UI.common.loading)})})]}):(0,n.jsxs)("a",{className:"meter meter-go",href:"/discoveries",children:[(0,n.jsx)("span",{className:"meter-label",children:(0,n.jsx)(g.T,{k:"radar.meterDisc",en:p.UI.radar.meterDisc})}),(0,n.jsx)("span",{className:"meter-read",children:(0,n.jsx)(u.V,{n:ed.length})}),(0,n.jsx)("span",{className:"meter-under",children:er("radar.meterDiscUnit",p.UI.radar.meterDiscUnit(ed.length))})]}),z&&z.items.length>0?(0,n.jsxs)("button",{type:"button",className:"radar-verdict meter meter-jump ".concat(eT),onClick:()=>(0,m.I4)(z.items.map(e=>e.id)),children:[(0,n.jsx)("span",{className:"meter-label",children:(0,n.jsx)(g.T,{k:"radar.meterState",en:p.UI.radar.meterState})}),(0,n.jsx)("div",{className:"state",children:ey?(0,n.jsx)(g.P,{p:ey.lineP}):(0,n.jsx)(v.uF,{children:er("common.loading",p.UI.common.loading)})}),ey&&(0,n.jsx)("div",{className:"reason",children:(0,n.jsx)(g.P,{p:ey.underP})})]}):(0,n.jsxs)("div",{className:"radar-verdict meter ".concat(eT),children:[(0,n.jsx)("span",{className:"meter-label",children:(0,n.jsx)(g.T,{k:"radar.meterState",en:p.UI.radar.meterState})}),(0,n.jsx)("div",{className:"state",children:ey?(0,n.jsx)(g.P,{p:ey.lineP}):(0,n.jsx)(v.uF,{children:er("common.loading",p.UI.common.loading)})}),ey&&(0,n.jsx)("div",{className:"reason",children:(0,n.jsx)(g.P,{p:ey.underP})})]})]})]}),!G&&(0,n.jsx)(y,{events:$,coverage:X,readAt:F.logReadAt,ar:el,empty:ew}),!ew&&!G&&(0,n.jsxs)("div",{className:"glance-acts",children:[(0,n.jsx)(m.KF,{onToast:ea}),(0,n.jsx)("span",{className:"meta",children:(0,n.jsx)(g.T,{k:"radar.handoffHint",en:p.UI.radar.handoffHint})})]}),(0,n.jsxs)("div",{className:"pagebar",style:{marginBlockStart:4},children:[(0,n.jsx)("h1",{children:(0,n.jsx)(g.T,{k:"room.radar",en:p.UI.radar.title})}),(0,n.jsx)("span",{className:"purpose",children:(0,n.jsx)(g.T,{k:"radar.purpose",en:p.UI.radar.purpose})})]}),G&&(0,n.jsxs)("p",{className:"banner",children:[er("banner.radarLead",p.UI.radar.bannerLead)," ",(0,n.jsx)("strong",{children:er("banner.radarStrong",p.UI.radar.bannerStrong)})," ",er("banner.radarRest",p.UI.radar.bannerRest)," ",(0,n.jsx)("button",{className:"link",onClick:()=>L(!0),children:er("banner.radarLink",p.UI.radar.bannerLink)})," ",er("banner.radarTail",p.UI.radar.bannerTail)]}),z&&z.items.length>0&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"sec",children:[(0,n.jsx)("h2",{children:(0,n.jsx)(g.T,{k:"sec.needsYou",en:p.UI.radar.needsYou})}),(0,n.jsxs)("span",{className:"meta",children:[(0,n.jsx)(u.V,{n:z.items.length})," \xb7 ",(0,n.jsx)(g.T,{k:"radar.needsYouAlways",en:p.UI.radar.needsYouAlways})]})]}),(0,j.bI)(z).map(e=>(0,n.jsx)(C,{it:e,cockpit:F,demo:G,onIgnoreRequest:ee,onFind:e=>E(e)},e.id))]}),(0,n.jsx)(P,{cockpit:F,collapsed:ep("ignored")}),R?0===K.length&&0===_.length?(0,n.jsx)(S,{cockpit:F}):(0,n.jsxs)(n.Fragment,{children:[K.length>0&&(0,n.jsxs)(n.Fragment,{children:[z&&z.items.length>0&&(0,n.jsx)("div",{className:"secline","aria-hidden":!0}),(0,n.jsxs)("div",{className:"sec",children:[(0,n.jsx)("h2",{children:(0,n.jsx)(g.T,{k:"sec.projects",en:p.UI.radar.projects})}),(0,n.jsxs)("span",{className:"meta",children:[(0,n.jsx)(u.V,{n:K.length})," \xb7 ",(0,n.jsx)(g.T,{k:"radar.projectsMeta",en:p.UI.radar.projectsMeta})]}),(0,n.jsxs)("div",{className:"tools",children:[(0,n.jsx)("button",{className:"b",...(0,w.uN)(et.watch),onClick:()=>L(!V),children:V?(0,n.jsx)(g.T,{k:"btn.close",en:p.UI.common.close}):(0,n.jsx)(g.T,{k:"btn.watchMore",en:p.UI.radar.watchMore})}),(0,n.jsx)(c.aA,{view:eo,onChange:e=>F.setView("projects",e)}),(0,n.jsx)(c.cc,{value:ep("projects"),onChange:e=>F.setCollapsed("projects",e)}),(0,n.jsx)("a",{className:"seeall",href:"/projects",children:el?(0,n.jsxs)(n.Fragment,{children:[er("more.seeAllProjects","")," (",(0,n.jsx)(u.V,{n:K.length}),") ","←"]}):p.UI.radar.seeAllProjects(K.length)})]})]}),V&&(0,n.jsx)("div",{className:"card plain",style:{marginBlockEnd:10},children:(0,n.jsx)(t.A,{watched:null!=(U=null==(a=F.cfg)?void 0:a.roots)?U:[],onChanged:()=>F.refresh(!0)})}),!ep("projects")&&(0,n.jsxs)(n.Fragment,{children:["cards"===eo?(0,n.jsx)("div",{className:"grid",ref:eg,children:ev.map(e=>(0,n.jsx)(c.Uj,{p:e,tone:ec((0,c.yn)(e)),cockpit:F,change:Z[(0,c.yn)(e)],open:A===e.path,onToggle:()=>ei(e.path),onIgnoreRequest:ee,onToast:ea},e.path))}):(0,n.jsx)("div",{className:"irows",ref:eg,children:ev.map(e=>(0,n.jsx)(c.ou,{p:e,tone:ec((0,c.yn)(e)),cockpit:F,change:Z[(0,c.yn)(e)],open:A===e.path,onToggle:()=>ei(e.path),onIgnoreRequest:ee},e.path))}),eI.length>0&&(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("div",{className:"cleanline",children:eI.every(e=>"clean"===ec((0,c.yn)(e)))?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"okw",children:"✓"})," ",eI.every(e=>e.hasRemote||e.looksDownloaded)?el?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(u.V,{n:eI.length})," ",er("more.cleanBacked","")]}):p.UI.radar.moreCleanBacked(eI.length):el?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(u.V,{n:eI.length})," ",er("more.clean","")]}):p.UI.radar.moreClean(eI.length)]}):el?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(u.V,{n:eI.length})," ",er("more.projects","")]}):(0,n.jsx)(n.Fragment,{children:p.UI.radar.moreProjects(eI.length)})})})]})]}),_.length>0&&(0,n.jsxs)(n.Fragment,{children:[K.length>0&&(0,n.jsx)("div",{className:"secline","aria-hidden":!0}),(0,n.jsxs)("div",{className:"sec",children:[(0,n.jsx)("h2",{children:(0,n.jsx)(g.T,{k:"sec.sites",en:p.UI.radar.sites})}),(0,n.jsxs)("span",{className:"meta",children:[(0,n.jsx)(u.V,{n:_.length})," \xb7 ",(0,n.jsx)(g.T,{k:"radar.sitesMeta",en:p.UI.radar.sitesMeta})]}),(0,n.jsxs)("div",{className:"tools",children:[(0,n.jsx)(c.aA,{view:eh,onChange:e=>F.setView("urls",e)}),(0,n.jsx)(c.cc,{value:ep("sites"),onChange:e=>F.setCollapsed("sites",e)}),(0,n.jsx)("a",{className:"seeall",href:"/sites",children:el?(0,n.jsxs)(n.Fragment,{children:[er("more.seeAllSites","")," (",(0,n.jsx)(u.V,{n:_.length}),") ","←"]}):p.UI.radar.seeAllSites(_.length)})]})]}),!ep("sites")&&(0,n.jsxs)(n.Fragment,{children:["cards"===eh?(0,n.jsx)("div",{className:"grid",ref:eu,children:ef.map(e=>(0,n.jsx)(c.ct,{u:e,tone:ec(e.entry.id),cockpit:F,incident:(0,c.G2)(B,e.entry.id),open:A===e.entry.id,onToggle:()=>ei(e.entry.id),onIgnoreRequest:ee},e.entry.id))}):(0,n.jsx)("div",{className:"irows",ref:eu,children:ef.map(e=>(0,n.jsx)(c.kc,{u:e,tone:ec(e.entry.id),cockpit:F,incident:(0,c.G2)(B,e.entry.id),open:A===e.entry.id,onToggle:()=>ei(e.entry.id),onIgnoreRequest:ee},e.entry.id))}),eU.length>0&&(0,n.jsx)(n.Fragment,{children:(0,n.jsx)("div",{className:"cleanline",children:eU.every(e=>"clean"===ec(e.entry.id))?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"okw",children:"✓"})," ",el?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(u.V,{n:eU.length})," ",er("more.sitesUp","")]}):p.UI.radar.moreSitesUp(eU.length)]}):el?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(u.V,{n:eU.length})," ",er("more.sites","")]}):(0,n.jsx)(n.Fragment,{children:p.UI.radar.moreSites(eU.length)})})})]})]}),(0,N.ZT)(q).length>0&&(0,n.jsx)(N.LZ,{cockpit:F})]}):(0,n.jsxs)("div",{className:"sweep-wrap",children:[(0,n.jsx)("div",{className:"sweep","aria-hidden":!0}),(0,n.jsx)("span",{children:(0,n.jsx)(v.hI,{children:er("common.scanning",p.UI.common.scanning)})})]}),(null===q||ed.length>0||Y>0||O.length>0)&&(0,n.jsxs)(n.Fragment,{children:[(K.length>0||_.length>0||z&&z.items.length>0)&&(0,n.jsx)("div",{className:"secline","aria-hidden":!0}),(0,n.jsxs)("div",{className:"sec",children:[(0,n.jsx)("h2",{children:(0,n.jsx)(g.T,{k:"sec.discoveries",en:p.UI.radar.discoveries})}),(0,n.jsx)("span",{className:"meta",children:null===q?(0,n.jsx)(v.hI,{children:er("common.loading",p.UI.common.loading)}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(u.V,{n:ed.length})," \xb7 ",(0,n.jsx)(g.T,{k:"radar.discoveriesMeta",en:p.UI.radar.discoveriesMeta}),ed.length>3?(0,n.jsxs)(n.Fragment,{children:[" \xb7 ",(0,n.jsx)(g.T,{k:"radar.discoveriesTop3",en:p.UI.radar.discoveriesTop3})]}):null]})}),(0,n.jsxs)("div",{className:"tools",children:[(0,n.jsx)(c.cc,{value:ep("discoveries"),onChange:e=>F.setCollapsed("discoveries",e),showLabel:p.UI.common.show,hideLabel:p.UI.common.hide,hideKey:"btn.hide"}),null!==q&&(0,n.jsx)("a",{className:"seeall",href:"/discoveries",children:el?(0,n.jsxs)(n.Fragment,{children:[er("more.seeAllDiscoveries","")," (",(0,n.jsx)(u.V,{n:ed.length}),") ","←"]}):p.UI.radar.seeAll(ed.length)})]})]}),!ep("discoveries")&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(x.hf,{done:F.insightsDeepTotal-Y,total:F.insightsDeepTotal,working:null===q}),(0,n.jsx)("div",{className:"grid three",children:ed.slice(0,3).map(e=>(0,n.jsx)(i.JF,{d:e,cockpit:F},e.id))}),O.length>0&&(0,n.jsx)("div",{className:"disc-more",children:(0,n.jsxs)("span",{className:"m",children:[O.length," muted, named on the Discoveries page"]})})]})]}),D&&(0,n.jsx)("div",{className:"confirm-overlay",role:"dialog","aria-modal":"true",children:(0,n.jsxs)("div",{className:"confirm",style:{maxInlineSize:560},children:[(0,n.jsxs)("p",{children:[(0,n.jsx)("strong",{children:(0,n.jsx)(u.B,{children:function(e){var a;let s=e.split(/[\\/]/).filter(Boolean);return null!=(a=s[s.length-1])?a:e}(D)})})," ",(0,n.jsx)(g.T,{k:"radar.movedTail",en:p.UI.radar.movedTail})]}),(0,n.jsx)(t.A,{watched:null!=(T=null==(s=F.cfg)?void 0:s.roots)?T:[],autoBrowsePath:function(e){let a=e.split(/[\\/]/).filter(Boolean);return a.length>1?a.slice(0,-1).join("\\"):e}(D),replaceRoot:D,onChanged:()=>{E(null),F.refresh(!0)}}),(0,n.jsx)("div",{className:"setup-actions",children:(0,n.jsx)("button",{className:"b q",onClick:()=>E(null),children:(0,n.jsx)(g.T,{k:"btn.cancel",en:p.UI.common.cancel})})})]})}),es]})}function S(e){var a,s;let{cockpit:l}=e,[i,d]=(0,r.useState)(null),c=(0,g.kj)();return(0,g.cO)(),(0,n.jsxs)("div",{className:"empty welcome",children:[(0,n.jsx)("p",{className:"invite",children:c("empty.invite",p.UI.radar.emptyInvite)}),(0,n.jsx)("p",{className:"wl",children:c("empty.line",p.UI.radar.emptyLine)}),(0,n.jsxs)("div",{className:"setup-actions",children:[(0,n.jsx)("button",{className:"btn ".concat("folder"===i?"":"primary"),"aria-pressed":"folder"===i,onClick:()=>d("folder"===i?null:"folder"),children:"folder"===i?c("btn.back",p.UI.radar.emptyBack):c("empty.pickFolder",p.UI.radar.emptyPickFolder)}),(0,n.jsx)("button",{className:"btn ".concat("site"===i?"":"primary"),"aria-pressed":"site"===i,onClick:()=>d("site"===i?null:"site"),children:"site"===i?c("btn.back",p.UI.radar.emptyBack):c("empty.pickSite",p.UI.radar.emptyPickSite)})]}),"folder"===i&&(0,n.jsx)(t.A,{watched:null!=(s=null==(a=l.cfg)?void 0:a.roots)?s:[],onChanged:()=>l.refresh(!0)}),"site"===i&&(0,n.jsx)(k.T,{cockpit:l}),(0,n.jsx)("p",{className:"someday",children:c("empty.someday",p.UI.radar.emptySomeday)})]})}function P(e){let{cockpit:a,collapsed:s}=e,r=(0,g.kj)(),l=(0,g.cO)();return 0===a.ignored.length?null:(0,n.jsxs)("div",{className:"ign2",children:[(0,n.jsxs)("div",{className:"ign2-row",children:[(0,n.jsxs)("span",{className:"n",...(0,w.uN)(l.ignore),children:[(0,n.jsx)(g.T,{k:"radar.ignoredLabel",en:p.UI.radar.ignoredLabel}),": ",(0,n.jsx)(u.V,{n:a.ignored.length})]}),s&&(0,n.jsx)("span",{className:"why",children:r("radar.ignoredStill",p.UI.radar.ignoredStill)}),(0,n.jsx)("button",{className:"b2 q ign2-toggle","aria-expanded":!s,onClick:()=>a.setCollapsed("ignored",!s),children:s?(0,n.jsx)(g.T,{k:"btn.show",en:p.UI.radar.ignoredShow}):(0,n.jsx)(g.T,{k:"btn.hide",en:p.UI.radar.ignoredHide})})]}),!s&&a.ignored.map(e=>(0,n.jsxs)("div",{className:"ign2-row item",children:[(0,n.jsxs)("span",{className:"item",children:[(0,n.jsx)(u.B,{children:e.label})," ",(0,n.jsx)("span",{className:"mono",children:"project"===e.kind?"project":"site"})]}),(0,n.jsx)("span",{className:"why",children:r("radar.ignoredStill",p.UI.radar.ignoredStill)}),(0,n.jsx)("button",{className:"b2 q",...(0,w.uN)(l.watch),onClick:()=>a.unignore(e.id),children:(0,n.jsx)(g.T,{k:"btn.watchAgain",en:p.UI.radar.watchAgain})})]},e.id))]})}function C(e){var a,s,t,i,d;let{it:c,cockpit:h,demo:k,onIgnoreRequest:N,onFind:v}=e,I=(0,r.useContext)(l.vC),f=(0,l.cB)(),[U,y]=(0,r.useState)(!1),[b,T]=(0,r.useState)(!1),S=(0,r.useRef)(null);(0,r.useEffect)(()=>{var e,a;U&&b&&(null==(e=S.current)||e.scrollIntoView({block:"nearest"}),null==(a=S.current)||a.focus(),T(!1))},[U,b]);let P=(0,g.kj)(),C=(0,g.cO)(),F=(0,j.pd)(c),A="losable"===F?P("tag.losable",p.UI.radar.tagLosable):"money"===F?P("tag.money",p.UI.radar.tagMoney):P("tag.hygiene",p.UI.radar.tagHygiene),M="losable"===F?C.tagLosable:"money"===F?C.tagMoney:C.tagHygiene,D=[];return!c.handled&&(c.resurfaceId&&D.push({label:P("act.stillIgnore",p.UI.radar.stillIgnore),title:C.ignore,effect:P("eff.stillIgnore",p.UI.radar.effStillIgnore),onClick:()=>h.stillIgnore(c.resurfaceId)}),c.ignore&&!c.resurfaceId&&D.push({label:P("act.ignore",p.UI.radar.ignore),title:C.ignore,effect:P("eff.ignore",p.UI.radar.effIgnore),onClick:()=>N(c.ignore.id,c.ignore.kind,c.ignore.label,c.ignore.atRisk,"project"===c.ignore.kind?P("confirm.project",p.UI.radar.confirmProject):P("confirm.site",p.UI.radar.confirmSite),"site"===c.kind?{down:!0}:void 0)}),c.laterId&&D.push({label:P("act.later",p.UI.radar.later),title:C.later,effect:P("eff.later",p.UI.radar.effLater),onClick:()=>h.later(c.laterId)}),c.findPath&&D.push({label:P("act.stopWatching",p.UI.radar.stopWatching),title:C.unwatch,effect:P("eff.stopWatching",p.UI.radar.effStopWatching),danger:!0,onClick:()=>{h.post({action:"removeRoot",path:c.findPath}).then(e=>{e.ok&&h.resolveRow(c.findPath)})}})),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{[m.J6]:c.id,className:"need".concat(U?" open":"").concat("red"===c.tone&&!c.handled?" bad":"").concat(c.handled?" handled":""),children:[(0,n.jsx)("span",{className:"tag ".concat(F),...(0,w.uN)(M),children:A}),(0,n.jsxs)("div",{className:"txt",children:[(0,n.jsx)("b",{children:c.whatP?(0,n.jsx)(g.P,{p:c.whatP}):c.what}),(0,n.jsx)("span",{children:c.whyP?(0,n.jsx)(g.P,{p:c.whyP}):c.why})]}),c.since&&!(0,o.nW)(c.since,f)&&(0,n.jsx)("span",{className:"age",...(0,w.uN)(C.age),children:function(e){let a=Math.floor(e/6e4);return a<60?"".concat(Math.max(1,a),"m"):a<1440?"".concat(Math.floor(a/60),"h"):"".concat(Math.floor(a/1440),"d")}(f-c.since)}),(0,n.jsxs)("div",{className:"acts",children:[!c.handled&&(c.steps.length>0||(null!=(s=null==(a=c.devSteps)?void 0:a.length)?s:0)>0)&&(0,n.jsx)("button",{className:"b2",...(0,w.uN)(C.fix),onClick:()=>{y(!0),T(!0)},children:(0,n.jsx)(g.T,{k:"btn.fix",en:p.UI.session.fix})}),!c.handled&&c.checkId&&(0,n.jsx)("button",{className:"b2",...(0,w.uN)(C.check),onClick:()=>h.ack(c.checkId),children:P("act.check",p.UI.radar.check)}),!c.handled&&c.resurfaceId&&(0,n.jsx)("button",{className:"b2",...(0,w.uN)(C.watch),onClick:()=>h.unignore(c.resurfaceId),children:(0,n.jsx)(g.T,{k:"btn.watchAgain",en:p.UI.radar.watchAgain})}),!c.handled&&c.findPath&&(0,n.jsx)("button",{className:"b2",onClick:()=>v(c.findPath),children:P("act.findIt",p.UI.radar.findIt)}),(0,n.jsx)("button",{className:"b2 q",...(0,w.uN)(C.details),onClick:()=>y(!U),"aria-expanded":U,children:U?(0,n.jsx)(g.T,{k:"btn.hide",en:p.UI.common.hide}):(0,n.jsx)(g.T,{k:"btn.details",en:p.UI.common.details})}),(0,n.jsx)(x.ob,{actions:D})]}),c.handled&&(0,n.jsx)("span",{className:"ok-line handled-note",children:c.handledNoteP?(0,n.jsx)(g.P,{p:c.handledNoteP}):null!=(t=c.handledNote)?t:P("act.handled",p.UI.radar.handled)})]}),U&&(0,n.jsxs)("div",{className:"need-draw",children:[(0,n.jsxs)("div",{className:"need-detail rec",ref:S,tabIndex:-1,children:[(0,n.jsx)("span",{className:"k",children:P("fix.what",p.UI.session.fixHeadingWhat)}),(0,n.jsx)("span",{children:c.whyP?(0,n.jsx)(g.P,{p:c.whyP}):c.why}),(0,n.jsx)("span",{className:"k",children:P("fix.steps",p.UI.session.fixHeadingSteps)}),(null!=(i=c.stepsP)?i:c.steps.map(e=>({k:"",en:e}))).map((e,a)=>(0,n.jsx)("span",{children:(0,n.jsx)(g.P,{p:e})},a))]}),I&&c.devSteps&&c.devSteps.length>0&&(0,n.jsxs)("div",{className:"need-detail cmds",children:[(0,n.jsx)("span",{className:"k",children:P("fix.commands",p.UI.session.fixHeadingCommands)}),c.devSteps.map(e=>(0,n.jsx)(u.B,{mono:!0,children:e},e)),(0,n.jsx)(m.M0,{it:c})]}),c.openPath&&!k&&(0,n.jsxs)("div",{className:"draw-line",children:[(0,n.jsx)("span",{className:"k",children:P("radar.folder",p.UI.radar.folder)}),(0,n.jsx)(u.B,{mono:!0,children:c.openPath}),(0,n.jsx)(m.r8,{path:c.openPath})]}),(0,n.jsxs)("div",{className:"need-detail",children:[(0,n.jsx)("span",{className:"k",children:P("radar.whatISaw",p.UI.radar.whatISaw)}),(null!=(d=c.evidenceP)?d:c.evidence.map(e=>({k:"",en:e}))).map((e,a)=>(0,n.jsx)("span",{className:"mono",children:(0,n.jsx)(g.P,{p:e})},a))]})]})]})}}},e=>{e.O(0,[3192,8050,7897,5623,4097,8441,1255,7358],()=>e(e.s=8216)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7081],{2149:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>N});var a=r(5155),s=r(2115),n=r(7406),l=r(639),o=r(5163),i=r(8261),c=r(436),d=r(8706);function p(e,t,r){return{fact:e.en,factP:e,why:t.en,whyP:t,detail:r.en,detailP:r}}function u(e){var t;let r=[];if(e.oldestTodo&&r.push({cat:c.UI.report.catTimeCapsule,catKey:"report.catTimeCapsule",...p((0,d.ph)("wk.todoFact",'Your oldest note to yourself is still open, from {0}: "{1}"',e.oldestTodo.from,e.oldestTodo.quote),(0,d.pl)("wk.todoWhy",c.UI.report.wTodoWhy),(0,d.pl)("tip.todosTip",c.UI.report.todosTip))}),e.reclaimableBytes>5e7&&r.push({cat:c.UI.report.catHousekeeping,catKey:"report.catHousekeeping",...p((0,d.ph)("wk.spaceFact","{0} of downloaded code libraries sit in projects you have not touched in months",(t=e.reclaimableBytes)>=1e9?"".concat((t/1e9).toFixed(1)," GB"):"".concat(Math.round(t/1e6)," MB")),(0,d.pl)("wk.spaceWhy",c.UI.report.wSpaceWhy),(0,d.pl)("tip.reclaimableTip",c.UI.report.reclaimableTip))}),e.busiest&&r.push({cat:c.UI.report.catHistory,catKey:"report.catHistory",...p((0,d.ph)("wk.busiestFact","{0} is your busiest project, {1} commits",e.busiest.name,e.busiest.commits.toLocaleString()),(0,d.pl)("wk.busiestWhy",c.UI.report.wBusiestWhy),(0,d.pl)("tip.busiestTip",c.UI.report.busiestTip))}),e.anniversaries.length>0){let t=e.anniversaries[0];r.push({cat:c.UI.report.catMilestone,catKey:"report.catMilestone",...p((0,d.ph)("wk.birthdayFact","{0} turns {1} on {2}",t.name,t.years,t.when),(0,d.pl)("wk.birthdayWhy",c.UI.report.wBirthdayWhy),(0,d.pl)("tip.birthdayTip",c.UI.report.birthdayTip))})}return r}var h=r(7470),f=r(9178),m=r(4576),x=r(5310),U=r(3034),g=r(1551),j=r(9378),v=r(5964);function I(e){return"SAFETY"===e.state?{big:e.safety,label:c.UI.report.vSafety(e.safety),labelKey:"report.vSafety",tone:"warn"}:{big:e.needing,label:c.UI.report.vNeeding(e.needing),labelKey:"report.vNeeding",tone:null===e.state?"none":e.needing>0?"warn":"ok"}}var y=r(9129),b=r(5834),k=r(797);function N(){var e,t;let r=(0,l.x)(),{delta:d}=(0,y.K)(r),[p,j]=(0,s.useState)(null),[N,A]=(0,s.useState)(!1),[E,D]=(0,s.useState)(!1);(0,s.useEffect)(()=>{fetch("/api/report",{cache:"no-store"}).then(e=>e.ok?e.json():null).then(e=>e&&"object"==typeof e&&"number"==typeof e.projects&&e.languages&&"object"==typeof e.languages?j(e):A(!0)).catch(()=>A(!0))},[]);let F=(0,g.$c)(null==(e=r.cfg)?void 0:e.lang),M=(e,t)=>(0,g.tr)(F,e,t),R="ar"===F,K=(0,x.qN)(F),O=function(e){var t,r,a,s,n,l,i,d,p,u;let h=e.projects.filter(e=>!e.looksDownloaded),f=h.filter(e=>e.uncommitted>0),m=h.filter(e=>{var t;return(null!=(t=e.ahead)?t:0)>0}),x=e.incidents.filter(e=>!e.endedTs).length,U=(null!=(n=null==(t=e.expiry)?void 0:t.items)?n:[]).filter(e=>"number"==typeof e.daysLeft).sort((e,t)=>{var r,a;return(null!=(r=e.daysLeft)?r:0)-(null!=(a=t.daysLeft)?a:0)})[0];return{needing:null!=(l=null==(r=e.attention)?void 0:r.open)?l:0,safety:null!=(i=null==(a=e.attention)?void 0:a.safety)?i:0,state:null!=(d=null==(s=e.attention)?void 0:s.state)?d:null,cleanBacked:h.filter(t=>{let r;return"clean"===(r=t.path.toLowerCase(),(0,o.YV)(e.attention,r))&&t.hasRemote}).length,sitesUp:e.urls.filter(e=>{var t;return null==(t=e.current)?void 0:t.ok}).length,sitesTotal:e.urls.length,unsavedProjects:f.length,unsavedChanges:f.reduce((e,t)=>e+t.uncommitted,0),unpushedCommits:m.reduce((e,t)=>{var r;return e+(null!=(r=t.ahead)?r:0)},0),unpushedProjects:m.length,notBackedUp:h.filter(e=>e.isGit&&e.remoteKnown&&!e.hasRemote).length,sitesQuiet:0===x,nextDate:U?{name:U.name,text:c.UI.report.dateIn(null!=(p=c.UI.ahead.kind[U.kind])?p:U.kind,U.daysLeft),judgment:null!=(u=U.judgment)?u:null}:null}}(r),W=(0,i.X2)(r.attention,r.projects),V=(null==p?void 0:p.languages)?Object.entries(p.languages).sort((e,t)=>t[1]-e[1]):[],q=V.reduce((e,t)=>{let[,r]=t;return e+r},0);return(0,a.jsxs)(n.Ay,{active:"/report",cockpit:r,children:[(0,a.jsxs)("div",{className:"pagebar",children:[(0,a.jsx)("h1",{children:(0,a.jsx)(x.T,{k:"room.report",en:c.UI.report.title})}),(0,a.jsx)("span",{className:"purpose",...(0,k.uN)(K.estate),children:(0,a.jsx)(x.T,{k:"report.purpose",en:c.UI.report.purpose})}),p&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("button",{className:"scan",style:{marginInlineStart:"auto"},onClick:()=>{!function(e,t,r,a){let s=document.createElement("canvas");s.width=2400,s.height=1260;let n=s.getContext("2d");if(!n)return;n.scale(2,2),n.fillStyle=T.void,n.fillRect(0,0,1200,630);let l=n.createRadialGradient(983.9999999999999,-80,60,983.9999999999999,-80,700);l.addColorStop(0,"rgba(110,168,255,.10)"),l.addColorStop(1,"rgba(110,168,255,0)"),n.fillStyle=l,n.fillRect(0,0,1200,630);let o=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:400;return"".concat(t," ").concat(e,"px Inter, system-ui, sans-serif")},d=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:400;return"".concat(t," ").concat(e,'px "IBM Plex Mono", Consolas, monospace')};n.strokeStyle="rgba(148,163,214,.25)",n.lineWidth=4,n.beginPath(),n.arc(80,74,15,0,2*Math.PI),n.stroke(),n.strokeStyle=T.accent,n.lineCap="round",n.beginPath(),n.arc(80,74,15,-Math.PI/2,5*Math.PI/6),n.stroke(),n.fillStyle=T.accent,n.beginPath(),n.arc(80,74,4.5,0,2*Math.PI),n.fill(),n.fillStyle=T.text,n.font=o(28,800),n.textBaseline="middle",n.textAlign="left",n.fillText(c.UI.report.heading,108,75),n.textAlign="right",n.font=d(15),n.fillStyle=T.faint,n.fillText((0,h.OL)(e.generatedAt),1136,75),n.textBaseline="alphabetic",r&&(n.fillStyle=T.dim,n.font=o(15),n.textAlign="left",n.fillText(L(n,r,1072),64,108));let p=1048/3,u=I(t);if([[String(u.big),u.label,"warn"===u.tone?T.warn:"ok"===u.tone?T.ok:T.dim],[String(t.cleanBacked),c.UI.report.vClean,T.ok],[0===t.sitesTotal?"-":"".concat(t.sitesUp,"/").concat(t.sitesTotal),c.UI.report.vSites,0===t.sitesTotal?T.dim:t.sitesUp===t.sitesTotal?T.ok:T.warn]].forEach((e,t)=>{let[r,a,s]=e,l=64+t*(p+12);n.fillStyle=T.panel,P(n,l,126,p,96,14),n.fill(),n.strokeStyle=T.line,n.lineWidth=1,P(n,l,126,p,96,14),n.stroke(),n.fillStyle=s,n.font=o(40,700),n.textAlign="left",n.fillText(r,l+20,184),n.fillStyle=T.dim,n.font=o(15),n.fillText(a,l+20,208)}),a){let e=(0,i.sx)(a);n.fillStyle="clean"===e.tone?T.ok:T.warn,n.font=o(17,700),n.textAlign="left",n.fillText(L(n,e.headline.en,1072),64,243)}n.fillStyle=T.faint,n.font=d(13,500),n.fillText(c.UI.report.rightNow.toUpperCase(),64,260);let f=[];f.push([c.UI.report.rUnsaved,t.unsavedProjects>0?c.UI.report.rUnsavedVal(t.unsavedProjects,t.unsavedChanges):c.UI.report.rNone,t.unsavedProjects>0?T.warn:T.ok]),t.unpushedCommits>0&&f.push([c.UI.report.rUnpushed,c.UI.report.rUnpushedVal(t.unpushedCommits,t.unpushedProjects),T.warn]),f.push([t.notBackedUp>0?c.UI.report.rNoBackup:c.UI.report.rEverythingElse,t.notBackedUp>0?c.UI.report.rNoBackupVal(t.notBackedUp):c.UI.report.rBackedUp,t.notBackedUp>0?T.warn:T.ok]),t.sitesTotal>0&&f.push([c.UI.report.rSites,t.sitesUp===t.sitesTotal?t.sitesQuiet?c.UI.report.rSitesAllUp:c.UI.report.rSitesUpNow:c.UI.report.rSitesDown(t.sitesTotal-t.sitesUp),t.sitesUp===t.sitesTotal?T.ok:T.warn]),t.nextDate&&f.push([c.UI.report.rNext,"".concat(t.nextDate.name," - ").concat(t.nextDate.text),T.dim]);let x=292;for(let[e,t,r]of f.slice(0,5))n.fillStyle=T.dim,n.font=o(17),n.textAlign="left",n.fillText(e,64,x),n.fillStyle=r,n.font=o(17,600),n.textAlign="right",n.fillText(C(t,46),534,x),n.strokeStyle=T.line,n.lineWidth=1,n.beginPath(),n.moveTo(64,x+12),n.lineTo(534,x+12),n.stroke(),x+=36;n.textAlign="left",n.fillStyle=T.faint,n.font=d(13,500),n.fillText(c.UI.report.inNumbers.toUpperCase(),640,260);let U=Object.entries(e.languages).sort((e,t)=>t[1]-e[1]),g=U.reduce((e,t)=>{let[,r]=t;return e+r},0);if(g>0){let e=640,t=[T.accent,"#8FB8FF","#4A7ACB","#3B5A8A"];U.slice(0,4).forEach((r,a)=>{let[,s]=r,l=s/g*496;n.fillStyle=t[a],n.fillRect(e,276,l,10),e+=l}),n.fillStyle=T.faint,n.fillRect(e,276,Math.max(0,1136-e),10)}let j=[[e.lines.toLocaleString(),c.UI.report.fLines],[String(e.projects),c.UI.report.fProjects]];U.length>0&&j.push([String(U.length),c.UI.report.fLanguages(U[0][0])]),null!=e.commits&&j.push([e.commits.toLocaleString(),c.UI.report.fCommits]),j.slice(0,4).forEach((e,t)=>{let[r,a]=e,s=640+t%2*248,l=312+84*Math.floor(t/2);n.fillStyle=T.inset,P(n,s,l,236,68,12),n.fill(),n.strokeStyle=T.line,n.lineWidth=1,P(n,s,l,236,68,12),n.stroke(),n.fillStyle=T.text,n.font=o(24,700),n.textAlign="left",n.fillText(r,s+16,l+32),n.fillStyle=T.faint,n.font=o(14),n.fillText(C(a,30),s+16,l+54)}),e.oldestTodo&&(n.fillStyle=T.dim,n.font="italic 400 17px Inter, system-ui, sans-serif",n.textAlign="left",n.fillText(L(n,'"'.concat(e.oldestTodo.quote,'" - ').concat(c.UI.report.wTodoFrom(e.oldestTodo.from)),1072),64,512)),n.font=d(13),n.textAlign="left";let v=(0,m.dv)(n,64,604,T.text,T.accent);n.fillStyle=T.faint,n.fillText(" ".concat(c.UI.shell.footBy," ").concat(m.rM," \xb7 ").concat(c.UI.report.imageFoot),v,604);let y=document.createElement("a");y.download="your-estate-".concat((0,h.rq)(e.generatedAt),".png"),y.href=s.toDataURL("image/png"),y.click()}(p,O,B(d,F),W)},children:M("report.download",c.UI.report.download)}),(0,a.jsx)("button",{className:"btn",onClick:()=>{!function(e,t,r,a){var s;let n=function(e){var t;let{data:r,now:a,seal:s,date:n,since:l,radius:o}=e,i=[];i.push("# ".concat(c.UI.report.heading)),i.push("".concat(c.UI.report.asOf," ").concat(n)),i.push(""),l&&(i.push(l),i.push("")),o&&(i.push(o),i.push(""));let d=I(a);i.push("- ".concat(d.big," ").concat(d.label)),i.push("- ".concat(a.cleanBacked," ").concat(c.UI.report.vClean)),i.push("- ".concat(0===a.sitesTotal?"-":"".concat(a.sitesUp,"/").concat(a.sitesTotal)," ").concat(c.UI.report.vSites)),i.push(""),i.push("## ".concat(c.UI.report.rightNow)),i.push(""),i.push("- ".concat(c.UI.report.rUnsaved,": ").concat(a.unsavedProjects>0?c.UI.report.rUnsavedVal(a.unsavedProjects,a.unsavedChanges):c.UI.report.rNone)),a.unpushedCommits>0&&i.push("- ".concat(c.UI.report.rUnpushed,": ").concat(c.UI.report.rUnpushedVal(a.unpushedCommits,a.unpushedProjects))),i.push("- ".concat(a.notBackedUp>0?c.UI.report.rNoBackup:c.UI.report.rEverythingElse,": ").concat(a.notBackedUp>0?c.UI.report.rNoBackupVal(a.notBackedUp):c.UI.report.rBackedUp)),a.sitesTotal>0&&i.push("- ".concat(c.UI.report.rSites,": ").concat(a.sitesUp===a.sitesTotal?a.sitesQuiet?c.UI.report.rSitesAllUp:c.UI.report.rSitesUpNow:c.UI.report.rSitesDown(a.sitesTotal-a.sitesUp))),a.nextDate&&i.push("- ".concat(c.UI.report.rNext,": ").concat(a.nextDate.name," - ").concat(a.nextDate.text)),i.push(""),i.push("## ".concat(c.UI.report.inNumbers)),i.push(""),i.push("- ".concat(r.lines.toLocaleString()," ").concat(c.UI.report.fLines));let p=null!=(t=r.excludedCopies)?t:0;i.push("- ".concat(r.projects," ").concat(c.UI.report.fProjects).concat(p>0?" (".concat(c.UI.report.fProjectsExcluded(p),")"):""));let u=Object.entries(r.languages).sort((e,t)=>t[1]-e[1]);u.length>0&&i.push("- ".concat(u.length," ").concat(c.UI.report.fLanguages(u[0][0]))),null!=r.commits&&i.push("- ".concat(r.commits.toLocaleString()," ").concat(c.UI.report.fCommits)),i.push("");let h=[];if(r.oldestTodo&&h.push('- "'.concat(r.oldestTodo.quote,'" - ').concat(c.UI.report.wTodoFrom(r.oldestTodo.from))),r.busiest&&h.push("- ".concat(c.UI.report.wBusiestFact(r.busiest.name,r.busiest.commits))),h.length>0){for(let e of(i.push("## ".concat(c.UI.report.worthKnowing)),i.push(""),h))i.push(e);i.push("")}return i.push("---"),i.push(""),s.known?(i.push("".concat(m.qt," ").concat(s.id).concat(s.version?" (".concat(s.version,")"):"")),s.proves&&i.push(s.proves)):s.note&&i.push(s.note),i.push(""),i.push("".concat(m.qt," ").concat(c.UI.shell.footBy," ").concat(m.rM," \xb7 ").concat(c.UI.report.imageFoot)),(0,v.dK)(i.join("\n"))}({data:e,now:{needing:t.needing,safety:t.safety,state:t.state,cleanBacked:t.cleanBacked,sitesUp:t.sitesUp,sitesTotal:t.sitesTotal,unsavedProjects:t.unsavedProjects,unsavedChanges:t.unsavedChanges,unpushedCommits:t.unpushedCommits,unpushedProjects:t.unpushedProjects,notBackedUp:t.notBackedUp,sitesQuiet:t.sitesQuiet,nextDate:t.nextDate?{name:t.nextDate.name,text:t.nextDate.text}:null},seal:e.build,date:(0,h.OL)(e.generatedAt),since:r,radius:a?(0,i.sx)(a).headline.en:null}),l=new Blob([n],{type:"text/markdown"}),o=URL.createObjectURL(l),d=document.createElement("a");s=(0,h.rq)(e.generatedAt),d.download="your-estate-".concat(s,".md"),d.href=o,d.click(),setTimeout(()=>URL.revokeObjectURL(o),2e3)}(p,O,B(d,F),W)},children:M("report.downloadText",c.UI.report.downloadText)}),(0,a.jsx)("button",{className:"btn",disabled:E,onClick:()=>{D(!0),fetch("/api/card",{cache:"no-store"}).then(e=>e.ok?e.json():null).then(e=>{(null==e?void 0:e.card)&&function(e,t){let r=document.createElement("canvas");r.width=2160,r.height=2700;let a=r.getContext("2d");if(!a)return;a.scale(2,2);let s=(e,r)=>(0,g.tr)(t,e,r);a.fillStyle=T.void,a.fillRect(0,0,1080,1350);let n=a.createRadialGradient(540,120,80,540,120,900);n.addColorStop(0,"rgba(77,127,255,.14)"),n.addColorStop(1,"rgba(77,127,255,0)"),a.fillStyle=n,a.fillRect(0,0,1080,1350);let l=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return"".concat(t?700:400," ").concat(e,"px Inter, system-ui, sans-serif")},o=e=>"400 ".concat(e,'px "IBM Plex Mono", Consolas, monospace');a.textBaseline="middle";let i=(0,h.OL)(e.generatedAt);a.font=o(20);let d=a.measureText(i).width;a.fillStyle=T.faint,a.textAlign="right",a.fillText(i,1e3,88),a.font=l(30,!0),a.fillStyle=T.text,a.textAlign="left",a.fillText(L(a,s("sec.reportHeading",c.UI.report.heading),920-d-24),80,88),a.textAlign="center",a.fillStyle=T.text,a.font=l(200,!0),a.fillText(e.lines.toLocaleString(),540,232),a.fillStyle=T.dim,a.font=l(30),a.fillText(s("card.heroLabel",c.UI.card.heroLabel).replace("{0}",String(e.projects)),540,366),a.fillStyle=T.faint,a.font=l(21),a.fillText(s("card.heroSub",c.UI.card.heroSub),540,412);let p=[[s("card.statLanguages",c.UI.card.statLanguages),String(e.languages)],...null===e.ageDays?[]:[[s("card.statAge",c.UI.card.statAge),(0,f.LS)(e.ageDays,"day")]],[s("card.statBranches",c.UI.card.statBranches),String(e.branches)],[s("card.statCommits",c.UI.card.statCommits),String(e.total)],[s("card.statReadProjects",c.UI.card.statReadProjects),String(e.readProjects)],...0!==e.busiestProject&&e.busiestProjectName?[[s("card.statBusiestProject",c.UI.card.statBusiestProject).replace("{0}",(0,f.LS)(e.busiestProject,"commit")),e.busiestProjectName]]:[]],u=e.projects>0;u||(a.fillStyle=T.dim,a.font=l(30),a.fillText(s("card.emptyEstate",c.UI.card.emptyEstate),540,512));let x=920/3;u&&p.forEach((e,t)=>{let[r,s]=e,n=Math.floor(t/3),o=80+920/3*(t%3+.5),i=512+156*n,c=(e=>{for(let t=58;t>=26;t-=4)if(a.font=l(t,!0),a.measureText(e).width<=x-16)return{font:l(t,!0),text:e};a.font=l(26,!0);let t=e;for(;t.length>1&&a.measureText(t+"…").width>x-16;)t=t.slice(0,-1);return{font:l(26,!0),text:t+"…"}})(s);a.fillStyle=T.text,a.font=c.font,a.fillText(c.text,o,i),a.fillStyle=T.faint,a.font=l(20),a.fillText(r,o,i+54)});if(u){a.fillStyle=T.faint,a.font=l(20),a.fillText(s("card.gridHead",c.UI.card.gridHead),540,784);let t=Math.round(309.5),r=824,n=Math.max(1,e.busiestDay);for(let s=0;s<12;s++)for(let l=0;l<7;l++){let o=7*s+l,i=e.days[o],c=t+39*s,d=r+39*l,p=i?i.commits:0;if(0===p)a.fillStyle="rgba(148,163,214,.10)";else{let e=Math.min(1,p/n);a.fillStyle="rgba(77,127,255,".concat((.28+.72*e).toFixed(3),")")}P(a,c,d,32,32,6),a.fill()}}u&&e.capped&&(a.fillStyle=T.faint,a.font=l(18),a.fillText(s("card.capped",c.UI.card.capped).replace("{0}",String(e.readProjects)),540,1174)),a.fillStyle=T.dim,a.font=o(18),a.fillText(e.seal.known&&e.seal.id?s("card.seal",c.UI.card.seal).replace("{0}",e.seal.id):s("card.sealNoBuild",c.UI.card.sealNoBuild),540,1218),a.font=l(20,!0);let U=s("card.foot",c.UI.card.foot),j=a.measureText(U).width;a.textAlign="left";let v=Math.round((1080-j)/2),I=(0,m.dv)(a,v,1280,T.text,T.accent);a.fillStyle=T.faint,a.font=l(20),a.fillText(" ".concat(c.UI.shell.footBy," ").concat(m.rM),I,1280);let y=document.createElement("a");y.download="af360-card-".concat((0,h.rq)(Date.now()),".png"),y.href=r.toDataURL("image/png"),y.click()}(e.card,F)}).catch(()=>{}).finally(()=>D(!1))},children:M("card.button",c.UI.card.button)})]})]}),(null==p?void 0:p.demo)&&(0,a.jsxs)("p",{className:"banner",children:[M("banner.reportLead",c.UI.report.bannerLead)," ",(0,a.jsx)("a",{className:"link",href:"/radar",children:M("banner.radarLink",c.UI.report.bannerLink)})," ",M("banner.reportTail",c.UI.report.bannerTail)]}),N?(0,a.jsx)("p",{className:"error-line",children:M("report.failed",c.UI.report.failed)}):p?0===p.projects?(0,a.jsxs)("div",{className:"empty",children:[(0,a.jsx)("p",{className:"invite",children:M("report.emptyInvite",c.UI.report.emptyInvite)}),(0,a.jsx)("p",{children:M("report.emptyLine",c.UI.report.emptyLine)}),(0,a.jsx)("a",{className:"btn primary",href:"/radar",children:M("btn.goRadar",c.UI.report.goRadar)})]}):(0,a.jsxs)("div",{className:"er",children:[(0,a.jsxs)("div",{className:"er-head",children:[(0,a.jsx)("h1",{children:(0,a.jsx)(x.T,{k:"sec.reportHeading",en:c.UI.report.heading})}),(0,a.jsxs)("span",{className:"when",children:[M("report.asOf",c.UI.report.asOf)," ",(0,a.jsx)(U.En,{children:(0,a.jsx)(n.fV,{ts:p.generatedAt,skewForm:"core"})})," - ",(0,a.jsx)(U.En,{children:new Date(p.generatedAt).toLocaleDateString([],{month:"long",day:"numeric"})})]})]}),(0,a.jsx)("div",{className:"er-sub",children:M("report.sub",c.UI.report.sub)}),(0,a.jsxs)("div",{className:"verdict",children:[(0,a.jsxs)("div",{className:"vcard ".concat(I(O).tone),children:[(0,a.jsx)("div",{className:"big",children:I(O).big}),(0,a.jsx)("div",{className:"lbl",children:M(I(O).labelKey,I(O).label)})]}),(0,a.jsxs)("div",{className:"vcard ok",children:[(0,a.jsx)("div",{className:"big",children:O.cleanBacked}),(0,a.jsx)("div",{className:"lbl",children:M("report.vClean",c.UI.report.vClean)})]}),(0,a.jsxs)("div",{className:"vcard ".concat(0===O.sitesTotal?"info":O.sitesUp===O.sitesTotal?"ok":"warn"),children:[(0,a.jsx)("div",{className:"big",children:0===O.sitesTotal?"-":"".concat(O.sitesUp,"/").concat(O.sitesTotal)}),(0,a.jsx)("div",{className:"lbl",children:M("report.vSites",c.UI.report.vSites)})]})]}),(0,a.jsxs)("div",{className:"er-block",children:[(0,a.jsx)("h4",{children:(0,a.jsx)(x.T,{k:"sec.rightNow",en:c.UI.report.rightNow})}),(0,a.jsxs)("div",{className:"er-row",children:[(0,a.jsx)("span",{className:"k",children:M("report.rUnsaved",c.UI.report.rUnsaved)}),(0,a.jsx)("span",{className:"v",style:{color:O.unsavedProjects>0?"var(--warn)":"var(--ok)"},children:O.unsavedProjects>0?c.UI.report.rUnsavedVal(O.unsavedProjects,O.unsavedChanges):M("report.rNone",c.UI.report.rNone)})]}),O.unpushedCommits>0&&(0,a.jsxs)("div",{className:"er-row",children:[(0,a.jsx)("span",{className:"k",children:M("report.rUnpushed",c.UI.report.rUnpushed)}),(0,a.jsx)("span",{className:"v",style:{color:"var(--warn)"},children:c.UI.report.rUnpushedVal(O.unpushedCommits,O.unpushedProjects)})]}),(0,a.jsxs)("div",{className:"er-row",children:[(0,a.jsx)("span",{className:"k",children:O.notBackedUp>0?M("report.rNoBackup",c.UI.report.rNoBackup):M("report.rEverythingElse",c.UI.report.rEverythingElse)}),(0,a.jsx)("span",{className:"v",style:{color:O.notBackedUp>0?"var(--warn)":"var(--ok)"},children:O.notBackedUp>0?c.UI.report.rNoBackupVal(O.notBackedUp):M("report.rBackedUp",c.UI.report.rBackedUp)})]}),O.sitesTotal>0&&(0,a.jsxs)("div",{className:"er-row",children:[(0,a.jsx)("span",{className:"k",children:M("report.rSites",c.UI.report.rSites)}),(0,a.jsx)("span",{className:"v",style:{color:O.sitesUp===O.sitesTotal?"var(--ok)":"var(--warn)"},children:O.sitesUp===O.sitesTotal?O.sitesQuiet?M("report.rSitesAllUp",c.UI.report.rSitesAllUp):M("report.rSitesUpNow",c.UI.report.rSitesUpNow):R?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(U.V,{n:O.sitesTotal-O.sitesUp})," ",M("report.rSitesDownTail","")]}):c.UI.report.rSitesDown(O.sitesTotal-O.sitesUp)})]}),O.nextDate&&(0,a.jsxs)("div",{className:"er-row wrap",children:[(0,a.jsx)("span",{className:"k",children:M("report.rNext",c.UI.report.rNext)}),(0,a.jsxs)("span",{className:"v mono",children:[O.nextDate.name," - ",O.nextDate.text]}),O.nextDate.judgment&&(0,a.jsx)("span",{className:"er-why",children:O.nextDate.judgment})]})]}),(0,a.jsxs)("div",{className:"er-block",children:[(0,a.jsx)("h4",{children:(0,a.jsx)(x.T,{k:"sec.inNumbers",en:c.UI.report.inNumbers})}),V.length>0&&q>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:"langbar",role:"img","aria-label":M("report.langAria",c.UI.report.langAria),children:[V.slice(0,4).map((e,t)=>{let[r,s]=e;return(0,a.jsx)("span",{...(0,k.uN)("".concat(r," \xb7 ").concat(s.toLocaleString()," ").concat(M("report.linesWord",c.UI.report.linesWord))),style:{inlineSize:"".concat(s/q*100,"%"),background:S[t]}},r)}),V.length>4&&(0,a.jsx)("span",{...(0,k.uN)(M("report.langRest",c.UI.report.langRest)),style:{inlineSize:"".concat(V.slice(4).reduce((e,t)=>{let[,r]=t;return e+r},0)/q*100,"%"),background:"var(--faint)"}})]}),(0,a.jsx)("div",{className:"langkey",children:V.slice(0,4).map((e,t)=>{let[r]=e;return(0,a.jsxs)("span",{children:[(0,a.jsx)("i",{style:{background:S[t]}}),r]},r)})})]}),(0,a.jsxs)("div",{className:"facts",children:[(0,a.jsxs)("div",{className:"fact",children:[(0,a.jsx)("div",{className:"n",children:p.lines.toLocaleString()}),(0,a.jsx)("div",{className:"l",children:M("report.fLines",c.UI.report.fLines)})]}),(0,a.jsxs)("div",{className:"fact",children:[(0,a.jsx)("div",{className:"n",children:p.projects}),(0,a.jsx)("div",{className:"l",children:M("report.fProjects",c.UI.report.fProjects)}),(null!=(t=p.excludedCopies)?t:0)>0&&(0,a.jsx)("div",{className:"l excl",children:R?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(U.V,{n:p.excludedCopies})," ",M("report.fProjectsExcluded","")]}):c.UI.report.fProjectsExcluded(p.excludedCopies)})]}),V.length>0&&(0,a.jsxs)("div",{className:"fact",children:[(0,a.jsx)("div",{className:"n",children:V.length}),(0,a.jsx)("div",{className:"l",children:R?(0,a.jsxs)(a.Fragment,{children:[M("report.fLanguagesTail","")," ",(0,a.jsx)(U.B,{children:V[0][0]})]}):c.UI.report.fLanguages(V[0][0])})]}),null!=p.commits&&(0,a.jsxs)("div",{className:"fact",children:[(0,a.jsx)("div",{className:"n",children:p.commits.toLocaleString()}),(0,a.jsx)("div",{className:"l",children:M("report.fCommits",c.UI.report.fCommits)})]})]})]}),u(p).length>0&&(0,a.jsxs)("div",{className:"er-block",children:[(0,a.jsx)("h4",{children:(0,a.jsx)(x.T,{k:"sec.worthKnowing",en:c.UI.report.worthKnowing})}),(0,a.jsx)("p",{className:"er-subline",children:M("report.worthKnowingSub",c.UI.report.worthKnowingSub)}),(0,a.jsx)("div",{className:"wk",children:u(p).map(e=>(0,a.jsx)(w,{row:e},e.cat+e.fact))})]})]}):(0,a.jsxs)("div",{className:"sweep-wrap",children:[(0,a.jsx)("div",{className:"sweep","aria-hidden":!0}),(0,a.jsx)("span",{children:(0,a.jsx)(b.hI,{children:M("report.counting",c.UI.report.counting)})})]})]})}function w(e){let{row:t}=e,[r,n]=(0,s.useState)(!1),l=(0,x.kj)();return(0,x.cO)(),(0,a.jsxs)("div",{className:"wkrow".concat(r?" open":""),children:[(0,a.jsx)("span",{className:"cat mono",children:l(t.catKey,t.cat)}),(0,a.jsxs)("div",{className:"fact",children:[t.factP?(0,a.jsx)(x.P,{p:t.factP}):t.fact,t.why&&(0,a.jsxs)("span",{className:"why",children:[" - ",t.whyP?(0,a.jsx)(x.P,{p:t.whyP}):t.why]})]}),(0,a.jsx)("button",{className:"b2 q wk-details","aria-expanded":r,onClick:()=>n(!r),children:r?l("btn.hide",c.UI.common.hide):l("report.detailsLabel",c.UI.report.detailsLabel)}),r&&(0,a.jsx)("div",{className:"wkdepth",children:t.detailP?(0,a.jsx)(x.P,{p:t.detailP}):t.detail})]})}let S=["var(--accent)","var(--info)","color-mix(in srgb, var(--accent) 55%, var(--panel))","color-mix(in srgb, var(--info) 40%, var(--panel))"],T={void:"#0A0D14",panel:"#0F1420",inset:"#0E1526",line:"rgba(148,163,214,.18)",text:"#E7ECF4",dim:"#9AA6BC",faint:"#5C6880",accent:"#4D7FFF",ok:"#3ECF8E",warn:"#E8B23D"};function B(e,t){if(!e)return null;let r=null===e.since?"":(0,h.OL)(e.since);return(0,j.lz)(e,(e,r)=>(0,g.tr)(t,e,r),r)}function P(e,t,r,a,s,n){e.beginPath(),e.moveTo(t+n,r),e.arcTo(t+a,r,t+a,r+s,n),e.arcTo(t+a,r+s,t,r+s,n),e.arcTo(t,r+s,t,r,n),e.arcTo(t,r,t+a,r,n),e.closePath()}function C(e,t){return e.length>t?e.slice(0,t-1)+"…":e}function L(e,t,r){if(e.measureText(t).width<=r)return t;let a=t.split(" "),s="";for(let t of a){if(e.measureText("".concat(s).concat(s?" ":"").concat(t,"…")).width>r)break;s+=(s?" ":"")+t}return(s||t.slice(0,8))+"…"}},9576:(e,t,r)=>{Promise.resolve().then(r.bind(r,2149))}},e=>{e.O(0,[3192,8050,8441,1255,7358],()=>e(e.s=9576)),_N_E=e.O()}]);
|
package/dist/.next/static/chunks/app/settings/{page-a38c457b7c57567b.js → page-582279bf3fe509d4.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4662],{1823:(e,s,t)=>{Promise.resolve().then(t.bind(t,2802))},2613:(e,s,t)=>{"use strict";t.d(s,{fn:()=>u,hf:()=>h,ob:()=>o,tU:()=>m});var n=t(5155),a=t(2115),i=t(7650),l=t(436),c=t(5310),r=t(3034),d=t(797);function o(e){let{actions:s,label:t}=e,[r,o]=(0,a.useState)(!1),[h,u]=(0,a.useState)(null),m=(0,a.useRef)(null),g=(0,a.useRef)(null),p=(0,a.useId)(),b=(0,c.kj)(),j=(0,c.cO)(),x=(0,a.useCallback)(()=>{var e,s,t;let n=null==(e=m.current)?void 0:e.firstElementChild;if(!n)return;let a=n.getBoundingClientRect(),i=null!=(t=null==(s=g.current)?void 0:s.offsetHeight)?t:0,l=window.innerHeight-a.bottom,c=i>0&&l<i+8&&a.top>l;u({top:c?a.top-i-4:a.bottom+4,end:Math.max(4,window.innerWidth-a.right),flip:c})},[]);return((0,a.useLayoutEffect)(()=>{r&&x()},[r,x]),(0,a.useEffect)(()=>{if(!r)return;let e=e=>{var s,t;let n=e.target;(null==(s=m.current)?void 0:s.contains(n))||(null==(t=g.current)?void 0:t.contains(n))||o(!1)},s=e=>{"Escape"===e.key&&o(!1)},t=()=>x();return document.addEventListener("mousedown",e),document.addEventListener("keydown",s),window.addEventListener("scroll",t,!0),window.addEventListener("resize",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",s),window.removeEventListener("scroll",t,!0),window.removeEventListener("resize",t)}},[r,x]),0===s.length)?null:(0,n.jsxs)("div",{className:"ovf",ref:m,children:[(0,n.jsxs)("button",{className:"ovf-btn",type:"button","aria-haspopup":"menu","aria-expanded":r,"aria-controls":p,...(0,d.uN)(j.moreActions),onClick:()=>o(e=>!e),children:[(0,n.jsx)(c.T,{k:"btn.more",en:null!=t?t:l.UI.radar.moreActions})," ",(0,n.jsx)("span",{"aria-hidden":!0,children:"▾"})]}),r&&"undefined"!=typeof document&&(0,i.createPortal)((0,n.jsx)("div",{className:"ovf-menu",id:p,role:"menu",ref:g,"aria-label":b("act.moreAria",l.UI.radar.moreActionsAria),style:h?{insetBlockStart:h.top,insetInlineEnd:h.end}:{visibility:"hidden"},children:s.map(e=>(0,n.jsxs)("button",{role:"menuitem",type:"button",...(0,d.uN)(e.title),className:e.danger?"danger":void 0,onClick:()=>{o(!1),e.onClick()},children:[e.label,e.effect&&(0,n.jsx)("span",{children:e.effect})]},e.label))}),document.body)]})}function h(e){let{done:s,total:t,working:a}=e,i=(0,c.kj)();(0,c.cO)();let d="ar"===(0,c.uU)();return t>0&&s<t?(0,n.jsxs)("div",{className:"streamline",role:"status","aria-live":"polite",children:[(0,n.jsx)("i",{"aria-hidden":!0}),d?(0,n.jsxs)(n.Fragment,{children:[i("stream.countingLead","")," ",(0,n.jsx)(r.V,{n:s})," ",i("stream.countingMid","")," ",(0,n.jsx)(r.V,{n:t})," ",i("stream.countingTail","")]}):l.UI.stream.counting(s,t)]}):a?(0,n.jsxs)("div",{className:"streamline",role:"status","aria-live":"polite",children:[(0,n.jsx)("i",{"aria-hidden":!0}),i("stream.starting",l.UI.stream.starting)]}):null}function u(e){let{view:s,onChange:t}=e,a=(0,c.kj)();return(0,c.cO)(),(0,n.jsxs)("div",{className:"viewseg",role:"group","aria-label":a("radar.viewAria",l.UI.radar.viewAria),children:[(0,n.jsx)("button",{type:"button",className:"cards"===s?"on":"","aria-pressed":"cards"===s,onClick:()=>t("cards"),children:(0,n.jsx)(c.T,{k:"btn.grid",en:l.UI.radar.viewGrid})}),(0,n.jsx)("button",{type:"button",className:"rows"===s?"on":"","aria-pressed":"rows"===s,onClick:()=>t("rows"),children:(0,n.jsx)(c.T,{k:"btn.rows",en:l.UI.radar.viewRows})})]})}function m(e){let{tabs:s,active:t,onChange:a,label:i,vertical:l}=e;return(0,n.jsx)("div",{className:"tabs".concat(l?" tabs-v":""),role:"tablist","aria-orientation":l?"vertical":void 0,"aria-label":i,children:s.map(e=>(0,n.jsxs)("button",{type:"button",role:"tab",id:"tab-".concat(e.id),className:e.id===t?"on":"","aria-selected":e.id===t,"aria-controls":"panel-".concat(e.id),onClick:()=>a(e.id),children:[e.label,void 0!==e.count&&(0,n.jsx)("span",{className:"tabn",children:e.count})]},e.id))})}},2802:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>v});var n=t(5155),a=t(2115),i=t(7064),l=t(4097),c=t(639),r=t(9712),d=t(2613),o=t(7e3),h=t(436),u=t(5310),m=t(1551),g=t(3034),p=t(3364),b=t(8706),j=t(797);let x=[1,6,24];function v(){var e,s,t;let v=(0,c.x)(),w=(0,m.$c)(null==(e=v.cfg)?void 0:e.lang),y=(e,s)=>(0,m.tr)(w,e,s),f=(0,u.qN)(w),{cfg:k}=v,[N,I]=(0,a.useState)("watching"),[U,S]=(0,a.useState)(!1),[L,T]=(0,a.useState)(null),[C,A]=(0,a.useState)(!1),[H,E]=(0,a.useState)(!1),[D,P]=(0,a.useState)("3"),[R,O]=(0,a.useState)(!1),[W,B]=(0,a.useState)(!1),[F,V]=(0,a.useState)(null),[_,q]=(0,a.useState)(null),[M,z]=(0,a.useState)(null),G=null!=(s=null==k?void 0:k.scanIntervalHours)?s:24,Y=H||!x.includes(G)?"custom":String(G),Z=async e=>{if("custom"===e){E(!0),z(null),P(String(G));return}E(!1),z(null),S(!0),await v.post({action:"setScanInterval",hours:Number(e)}),S(!1)},K=async()=>{let e=Number(D);if(""===D.trim()||!Number.isFinite(e)||e<1||e>24)return void z(y("settings.customBad",h.UI.settings.customBad));S(!0),z(null);let s=await v.post({action:"setScanInterval",hours:e});if(S(!1),!s.ok){var t;z(null!=(t=s.message)?t:h.UI.common.somethingWrong);return}E(!1)},$=v.watching,J=async e=>{S(!0),V(null);let s=await v.post({action:"addRoot",path:e});if(S(!1),!s.ok){var t;V(null!=(t=s.message)?t:h.UI.common.somethingWrong);return}B(!1),v.refresh(!0)},[Q,X]=(0,a.useState)([]),ee=async e=>{S(!0),V(null);let s=await v.post({action:"removeRoot",path:e});if(S(!1),!s.ok){var t;V(null!=(t=s.message)?t:h.UI.common.somethingWrong);return}v.resolveRow(e),X(s=>s.includes(e)?s:[...s,e])},es=async e=>{let s=await v.post({action:"addRoot",path:e});return s.ok&&(v.unresolveRow(e),X(s=>s.filter(s=>s!==e))),s},et=null!=(t=null==k?void 0:k.rules)?t:{exclude:[],muted:[]},en=async e=>{var s;S(!0),q(null);let t=await v.post({action:"addExclude",path:e});S(!1),t.ok?v.refresh(!0):q(null!=(s=t.message)?s:h.UI.common.somethingWrong)},ea=async e=>{S(!0),q(null);let s=await v.post({action:"removeExclude",path:e});if(S(!1),!s.ok){var t;q(null!=(t=s.message)?t:h.UI.common.somethingWrong);return}v.refresh(!0)},ei=async(e,s)=>{T(e),q(null),await v.post({action:s?"unmuteDetector":"muteDetector",id:e}),T(null),v.refresh(!1)},el=(null==k?void 0:k.updateCheck)!==!1,ec=async()=>{A(!0),await v.post({action:"setUpdateCheck",on:!el}),A(!1)},[er,ed]=(0,a.useState)(!1),eo=(null==k?void 0:k.domainLookup)===!0,eh=async()=>{ed(!0),await v.post({action:"setDomainLookup",on:!eo}),ed(!1)},eu=(null==k?void 0:k.standingWatch)===!0,[em,eg]=(0,a.useState)(!1),ep=async()=>{eg(!0),await v.post({action:"setStandingWatch",on:!eu}),eg(!1)},eb=v.startup,ej=null==eb?void 0:eb.state,ex="Enabled"===ej||"EnabledByPolicy"===ej,ev="DisabledByUser"===ej,ew="DisabledByPolicy"===ej,ey="EnabledByPolicy"===ej,ef=!!(null==eb?void 0:eb.available),[ek,eN]=(0,a.useState)(!1),eI=async()=>{eN(!0),await v.post({action:"setStartup",on:!ex}),eN(!1)},eU=(null==k?void 0:k.lang)==="ar"?"ar":"en",eS=async e=>{S(!0),await v.post({action:"setLang",lang:"ar"===e?"ar":"en"}),await v.refresh(!1),S(!1)},eL=(null==k?void 0:k.views.projects)==="rows"&&(null==k?void 0:k.views.urls)==="rows"?"rows":"cards",eT=async e=>{S(!0),await v.post({action:"setView",section:"projects",view:"rows"===e?"rows":null}),await v.post({action:"setView",section:"urls",view:"rows"===e?"rows":null}),S(!1)};return(0,n.jsxs)(i.Ay,{active:"/settings",cockpit:v,children:[(0,n.jsxs)("div",{className:"pagebar",children:[(0,n.jsx)("h1",{children:(0,n.jsx)(u.T,{k:"settings.title",en:h.UI.settings.title})}),(0,n.jsx)("span",{className:"purpose",children:(0,n.jsx)(u.T,{k:"settings.purpose",en:h.UI.settings.purpose})})]}),(0,n.jsxs)("div",{className:"settings-shell",children:[(0,n.jsx)(d.tU,{vertical:!0,label:y("settings.title",h.UI.settings.title),active:N,onChange:I,tabs:[{id:"watching",label:(0,n.jsx)(u.T,{k:"settings.secWatching",en:h.UI.settings.secWatching})},{id:"looking",label:(0,n.jsx)(u.T,{k:"settings.secScan",en:h.UI.settings.secLooking})},{id:"appearance",label:(0,n.jsx)(u.T,{k:"settings.secLook",en:h.UI.settings.secAppearance})},{id:"rules",label:(0,n.jsx)(u.T,{k:"settings.secRules",en:h.UI.settings.secRules})},{id:"data",label:(0,n.jsx)(u.T,{k:"settings.secData",en:h.UI.settings.secData})},{id:"how",label:(0,n.jsx)(u.T,{k:"settings.secHow",en:h.UI.settings.secHow})}]}),(0,n.jsxs)("div",{className:"settings-panel",children:["looking"===N&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"sec",children:(0,n.jsx)("h2",{children:(0,n.jsx)(u.T,{k:"settings.secScan",en:h.UI.settings.secLooking})})}),(0,n.jsxs)("div",{className:"set",children:[(0,n.jsxs)("div",{className:"lbl",children:[(0,n.jsx)("b",{children:y("settings.cadenceLabel",h.UI.settings.cadenceLabel)}),(0,n.jsx)("span",{children:y("settings.cadenceHelp",h.UI.settings.cadenceHelp)})]}),(0,n.jsx)("div",{className:"ctl",children:(0,n.jsxs)("select",{className:"in",value:Y,disabled:U,onChange:e=>Z(e.target.value),"aria-label":y("settings.cadenceAria",h.UI.settings.cadenceAria),children:[(0,n.jsx)("option",{value:"1",children:y("settings.cadenceHourly",h.UI.settings.cadenceHourly)}),(0,n.jsx)("option",{value:"6",children:y("settings.cadence6h",h.UI.settings.cadence6h)}),(0,n.jsx)("option",{value:"24",children:y("settings.cadenceDaily",h.UI.settings.cadenceDaily)}),(0,n.jsx)("option",{value:"custom",children:y("settings.cadenceCustom",h.UI.settings.cadenceCustom)})]})})]}),H&&(0,n.jsxs)("div",{className:"set",children:[(0,n.jsxs)("div",{className:"lbl",children:[(0,n.jsx)("b",{children:y("settings.customLabel",h.UI.settings.customLabel)}),(0,n.jsx)("span",{children:y("settings.customHelp",h.UI.settings.customHelp)}),M&&(0,n.jsx)("span",{className:"error-line",children:M})]}),(0,n.jsxs)("div",{className:"ctl",children:[(0,n.jsx)("input",{className:"in",type:"number",min:1,max:24,style:{inlineSize:70},value:D,onChange:e=>{P(e.target.value),z(null)},"aria-label":y("settings.hoursAria",h.UI.settings.hoursAria)}),(0,n.jsx)("button",{className:"b",disabled:U,onClick:K,children:(0,n.jsx)(u.T,{k:"btn.save",en:h.UI.common.save})})]})]})]}),"appearance"===N&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"sec",children:(0,n.jsx)("h2",{children:(0,n.jsx)(u.T,{k:"settings.secLook",en:h.UI.settings.secAppearance})})}),(0,n.jsxs)("div",{className:"set",children:[(0,n.jsxs)("div",{className:"lbl",children:[(0,n.jsx)("b",{children:y("settings.viewLabel",h.UI.settings.viewLabel)}),(0,n.jsx)("span",{children:y("settings.viewHelp",h.UI.settings.viewHelp)})]}),(0,n.jsx)("div",{className:"ctl",children:(0,n.jsxs)("select",{className:"in",value:eL,disabled:U,onChange:e=>eT(e.target.value),"aria-label":y("settings.viewAria",h.UI.settings.viewAria),children:[(0,n.jsx)("option",{value:"cards",children:y("btn.grid",h.UI.settings.viewCards)}),(0,n.jsx)("option",{value:"rows",children:y("btn.rows",h.UI.settings.viewRows)})]})})]}),(0,n.jsxs)("div",{className:"set",children:[(0,n.jsxs)("div",{className:"lbl",children:[(0,n.jsx)("b",{children:(0,n.jsx)(u.T,{k:"settings.lang",en:h.UI.settings.langLabel})}),(0,n.jsx)("span",{dir:"auto",children:y("settings.langHelp",h.UI.settings.langHelp)})]}),(0,n.jsx)("div",{className:"ctl",children:(0,n.jsxs)("select",{className:"in",value:eU,disabled:U,dir:"auto",onChange:e=>eS(e.target.value),"aria-label":y("settings.langAria",h.UI.settings.langAria),children:[(0,n.jsx)("option",{value:"en",children:y("settings.langEn",h.UI.settings.langEn)}),(0,n.jsx)("option",{value:"ar",children:y("settings.langAr",h.UI.settings.langAr)})]})})]})]}),"watching"===N&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"sec",children:(0,n.jsx)("h2",{children:(0,n.jsx)(u.T,{k:"settings.secWatching",en:h.UI.settings.secWatching})})}),(0,n.jsxs)("div",{className:"set",children:[(0,n.jsxs)("div",{className:"lbl",children:[(0,n.jsx)("b",{children:y("settings.watchLabel",h.UI.settings.watchLabel)}),(0,n.jsx)("span",{children:y("settings.watchHelp",h.UI.settings.watchHelp)})]}),(0,n.jsx)("div",{className:"ctl",children:(0,n.jsxs)("button",{className:"swt".concat(eu?" on":""),role:"switch","aria-checked":eu,"aria-label":y("settings.watchAria",h.UI.settings.watchAria),disabled:em,onClick:ep,children:[(0,n.jsx)("i",{"aria-hidden":!0}),(0,n.jsx)("span",{children:eu?(0,n.jsx)(u.T,{k:"settings.on",en:h.UI.settings.on}):(0,n.jsx)(u.T,{k:"settings.off",en:h.UI.settings.off})})]})})]}),ef&&(0,n.jsxs)("div",{className:"set",children:[(0,n.jsxs)("div",{className:"lbl",children:[(0,n.jsx)("b",{children:y("settings.startupLabel",h.UI.settings.startupLabel)}),(0,n.jsx)("span",{children:ew?y("settings.startupPolicyOff",h.UI.settings.startupPolicyOff):ey?y("settings.startupPolicyOn",h.UI.settings.startupPolicyOn):ev?y("settings.startupBlocked",h.UI.settings.startupBlocked):y("settings.startupHelp",h.UI.settings.startupHelp)})]}),(0,n.jsx)("div",{className:"ctl",children:!ev&&!(ew||ey)&&(0,n.jsxs)("button",{className:"swt".concat(ex?" on":""),role:"switch","aria-checked":ex,"aria-label":y("settings.startupAria",h.UI.settings.startupAria),disabled:ek,onClick:eI,children:[(0,n.jsx)("i",{"aria-hidden":!0}),(0,n.jsx)("span",{children:ex?(0,n.jsx)(u.T,{k:"settings.on",en:h.UI.settings.on}):(0,n.jsx)(u.T,{k:"settings.off",en:h.UI.settings.off})})]})})]}),(0,n.jsx)("div",{className:"set",style:{alignItems:"flex-start"},children:(0,n.jsxs)("div",{className:"lbl",style:{flex:1},children:[(0,n.jsx)("b",{children:y("settings.watchingHelp",h.UI.settings.watchingHelp)}),0===$.folders.length&&0===Q.length?(0,n.jsx)("span",{children:y("settings.watchingEmpty",h.UI.settings.watchingEmpty)}):(0,n.jsxs)("div",{className:"rule-list",children:[$.folders.map(e=>(0,n.jsxs)("div",{className:"rule-row",children:[(0,n.jsx)("span",{className:"path",children:(0,n.jsx)(g.B,{children:(0,o.oV)(e.path,44)})}),(0,n.jsxs)("span",{className:"rule-why",children:[(0,n.jsx)(g.V,{n:e.projects})," ",1===e.projects?y("settings.watchingProject",h.UI.settings.watchingProject):y("settings.watchingProjects",h.UI.settings.watchingProjects)]}),(0,n.jsx)("button",{className:"b2 q",disabled:U,onClick:()=>ee(e.path),children:y("settings.stopWatching",h.UI.settings.stopWatching)})]},e.path)),Q.map(e=>(0,n.jsx)(p.j,{className:"rule-row gone",what:(0,b.ph)("settings.watchStopped",h.UI.settings.watchStopped,(0,o.oV)(e,44)),onUndo:()=>es(e)},e)),$.unclaimed>0&&(0,n.jsx)("div",{className:"rule-row",children:(0,n.jsxs)("span",{className:"rule-why",children:[(0,n.jsx)(g.V,{n:$.unclaimed})," ",1===$.unclaimed?y("settings.watchingProject",h.UI.settings.watchingProject):y("settings.watchingProjects",h.UI.settings.watchingProjects)," ",y("settings.watchingUnclaimed",h.UI.settings.watchingUnclaimed)]})})]}),W?(0,n.jsxs)("div",{style:{marginBlockStart:8},children:[(0,n.jsx)(l.A,{watched:[],onChanged:()=>{},pick:{label:y("settings.watchingPick",h.UI.settings.watchingPick),onPick:J,already:$.folders.map(e=>e.path),alreadyLabel:y("settings.watchingAlready",h.UI.settings.watchingAlready)}}),(0,n.jsx)("div",{className:"setup-actions",style:{justifyContent:"flex-start",marginBlockStart:6},children:(0,n.jsx)("button",{className:"b2 q",onClick:()=>B(!1),children:(0,n.jsx)(u.T,{k:"btn.done",en:h.UI.common.done})})})]}):(0,n.jsx)("div",{style:{marginBlockStart:8},children:(0,n.jsx)("button",{className:"b",onClick:()=>B(!0),children:y("settings.watchingAdd",h.UI.settings.watchingAdd)})}),F&&(0,n.jsx)("span",{className:"error-line",children:F})]})})]}),"rules"===N&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"sec",children:[(0,n.jsx)("h2",{children:(0,n.jsx)(u.T,{k:"settings.secRules",en:h.UI.settings.secRules})}),(0,n.jsx)("span",{className:"meta",children:y("settings.rulesMeta",h.UI.settings.rulesMeta)})]}),(0,n.jsx)("div",{className:"set",style:{alignItems:"flex-start"},children:(0,n.jsxs)("div",{className:"lbl",style:{flex:1},children:[(0,n.jsx)("b",{children:y("settings.excludeLabel",h.UI.settings.excludeLabel)}),(0,n.jsx)("span",{children:y("settings.excludeHelp",h.UI.settings.excludeHelp)}),et.exclude.length>0&&(0,n.jsx)("div",{className:"rule-list",children:et.exclude.map(e=>(0,n.jsxs)("div",{className:"rule-row",children:[(0,n.jsx)("span",{className:"path",children:(0,o.oV)(e,52)}),(0,n.jsx)("button",{className:"b2 q",disabled:U,onClick:()=>ea(e),children:(0,n.jsx)(u.T,{k:"btn.remove",en:h.UI.common.remove})})]},e))}),R?(0,n.jsxs)("div",{style:{marginBlockStart:8},children:[(0,n.jsx)(l.A,{watched:[],onChanged:()=>{},pick:{label:y("settings.excludePick",h.UI.settings.excludePick),onPick:en,already:et.exclude,alreadyLabel:y("settings.alreadyExcluded",h.UI.settings.alreadyExcluded)}}),(0,n.jsx)("div",{className:"setup-actions",style:{justifyContent:"flex-start",marginBlockStart:6},children:(0,n.jsx)("button",{className:"b2 q",onClick:()=>O(!1),children:(0,n.jsx)(u.T,{k:"btn.done",en:h.UI.common.done})})})]}):(0,n.jsx)("div",{style:{marginBlockStart:8},children:(0,n.jsx)("button",{className:"b",...(0,j.uN)(f.chooseExclude),onClick:()=>O(!0),children:y("settings.chooseFolder",h.UI.settings.chooseFolder)})}),_&&(0,n.jsx)("span",{className:"error-line",children:_})]})})]}),"data"===N&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"sec",children:(0,n.jsx)("h2",{children:(0,n.jsx)(u.T,{k:"settings.secData",en:h.UI.settings.secData})})}),(0,n.jsxs)("div",{className:"set",children:[(0,n.jsxs)("div",{className:"lbl",children:[(0,n.jsx)("b",{children:h.UI.firstLight.termsName}),(0,n.jsx)("span",{children:y("settings.documentsHelp",h.UI.settings.documentsHelp)})]}),(0,n.jsx)("div",{className:"ctl",children:(0,n.jsx)("a",{className:"btn",href:"/legal/terms",children:y("settings.documentsOpen",h.UI.settings.documentsOpen)})})]}),(0,n.jsxs)("div",{className:"set",children:[(0,n.jsx)("div",{className:"lbl",children:(0,n.jsx)("b",{children:h.UI.firstLight.privacyName})}),(0,n.jsx)("div",{className:"ctl",children:(0,n.jsx)("a",{className:"btn",href:"/legal/privacy",children:y("settings.documentsOpen",h.UI.settings.documentsOpen)})})]}),(0,n.jsx)("div",{className:"set",children:(0,n.jsxs)("div",{className:"lbl",children:[(0,n.jsx)("b",{children:(0,n.jsx)(g.B,{mono:!0,children:h.UI.settings.dataLabel})}),(0,n.jsx)("span",{children:y("settings.dataHelp",h.UI.settings.dataHelp)})]})}),(0,n.jsxs)("div",{className:"set",children:[(0,n.jsxs)("div",{className:"lbl",children:[(0,n.jsx)("b",{children:y("settings.domainLabel",h.UI.settings.domainLabel)}),(0,n.jsx)("span",{children:y("settings.domainHelp",h.UI.settings.domainHelp)})]}),(0,n.jsx)("div",{className:"ctl",children:(0,n.jsxs)("button",{className:"swt".concat(eo?" on":""),role:"switch","aria-checked":eo,disabled:er,onClick:eh,children:[(0,n.jsx)("i",{"aria-hidden":!0}),(0,n.jsx)("span",{children:eo?(0,n.jsx)(u.T,{k:"settings.on",en:h.UI.settings.on}):(0,n.jsx)(u.T,{k:"settings.off",en:h.UI.settings.off})})]})})]}),(0,n.jsxs)("div",{className:"set",children:[(0,n.jsxs)("div",{className:"lbl",children:[(0,n.jsx)("b",{children:y("settings.updateLabel",h.UI.settings.updateLabel)}),(0,n.jsx)("span",{children:!0===v.packaged?y("settings.updatePackaged",h.UI.settings.updatePackaged):y("settings.updateHelp",h.UI.settings.updateHelp)})]}),!0===v.packaged?null:(0,n.jsx)("div",{className:"ctl",children:(0,n.jsxs)("button",{className:"swt".concat(el?" on":""),role:"switch","aria-checked":el,...(0,j.uN)(f.updateSwitch),disabled:C,onClick:ec,children:[(0,n.jsx)("i",{"aria-hidden":!0}),(0,n.jsx)("span",{children:el?(0,n.jsx)(u.T,{k:"settings.on",en:h.UI.settings.on}):(0,n.jsx)(u.T,{k:"settings.off",en:h.UI.settings.off})})]})})]})]}),"how"===N&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"sec",children:(0,n.jsx)("h2",{children:(0,n.jsx)(u.T,{k:"settings.secHow",en:h.UI.settings.secHow})})}),(0,n.jsx)("div",{className:"set",children:(0,n.jsx)("div",{className:"lbl",children:h.UI.settings.how.map((e,s)=>(0,n.jsx)("span",{children:y("settings.how".concat(s+1),e)},e))})}),(0,n.jsx)("div",{className:"set detectors",style:{alignItems:"flex-start"},children:(0,n.jsxs)("div",{className:"lbl",style:{flex:1},children:[(0,n.jsx)("b",{...(0,j.uN)(f.detectors),children:(0,n.jsx)(u.T,{k:"settings.secDetectors",en:h.UI.settings.muteLabel})}),(0,n.jsxs)("span",{children:[y("settings.muteHelp",h.UI.settings.muteHelp),et.muted.length>0?" ".concat(et.muted.length," muted."):""]}),["money","identity","time-capsule","safety","health","site"].map(e=>(0,n.jsxs)("div",{className:"rule-group",children:[(0,n.jsx)("span",{className:"rule-cat",children:(0,n.jsx)(u.T,{k:"cat.".concat(e),en:h.UI.settings.cat[e]})}),(0,n.jsx)("div",{className:"rule-rows",children:r.ZI.filter(s=>s.cat===e).map(e=>{let s=et.muted.includes(e.id);return(0,n.jsxs)("div",{className:"rule-row",...(0,j.uN)(e.blurb),children:[(0,n.jsx)("span",{className:"rule-name",children:e.name}),(0,n.jsxs)("button",{className:"swt".concat(s?"":" on"),role:"switch","aria-checked":!s,...(0,j.uN)(f.muteSwitch),disabled:L===e.id,onClick:()=>ei(e.id,s),children:[(0,n.jsx)("i",{"aria-hidden":!0}),(0,n.jsx)("span",{children:s?(0,n.jsx)(u.T,{k:"settings.muted",en:h.UI.settings.muted}):(0,n.jsx)(u.T,{k:"settings.running",en:h.UI.settings.running})})]})]},e.id)})})]},e))]})})]})]})]})]})}},3364:(e,s,t)=>{"use strict";t.d(s,{j:()=>c});var n=t(5155),a=t(2115),i=t(436),l=t(5310);function c(e){let{what:s,onUndo:t,className:c="tl gone"}=e,r=(0,l.kj)(),[d,o]=(0,a.useState)(!1),[h,u]=(0,a.useState)(null);return(0,n.jsxs)("div",{className:c,role:"status",children:[(0,n.jsx)("b",{children:(0,n.jsx)(l.P,{p:s})}),h&&(0,n.jsx)("span",{className:"error-line",children:h}),(0,n.jsx)("button",{className:"b2 q",disabled:d,onClick:async()=>{var e;o(!0),u(null);let s=await t();o(!1),s.ok||u(null!=(e=s.message)?e:r("common.somethingWrong",i.UI.common.somethingWrong))},children:(0,n.jsx)(l.T,{k:"common.undo",en:i.UI.common.undo})})]})}},9712:(e,s,t)=>{"use strict";t.d(s,{Sc:()=>a,ZI:()=>n});let n=[{id:"paid-sdk",cat:"money",name:"Paid services in dormant projects",blurb:"Projects you haven't opened in a month or more that still reference paid services"},{id:"cloud-config-stale",cat:"money",name:"Deploy configs with no recent work",blurb:"Deploy files (Vercel, Railway, Docker) in projects that stopped moving"},{id:"identity",cat:"identity",name:"Commit identity mismatches",blurb:"Projects committing as a different email than your global identity"},{id:"ssh-keys",cat:"identity",name:"SSH key inventory",blurb:"The keys living in your .ssh folder and how old they are"},{id:"unpushed",cat:"time-capsule",name:"Unpushed commits",blurb:"Commits that exist only on this machine"},{id:"no-remote",cat:"time-capsule",name:"Projects with no remote",blurb:"Projects whose only home is this disk"},{id:"no-upstream",cat:"time-capsule",name:"Branches that push nowhere",blurb:"Local branches with no upstream, so their commits stay on this machine"},{id:"no-git-folder",cat:"time-capsule",name:"Folders with no git at all",blurb:"Watched folders holding work that has no history and no copy elsewhere"},{id:"readme-stub",cat:"time-capsule",name:"README still a placeholder",blurb:"READMEs that still say TODO, with age"},{id:"todo-census",cat:"time-capsule",name:"TODO census",blurb:"TODOs across the estate, eldest quoted"},{id:"abandoned-branches",cat:"time-capsule",name:"Abandoned branches",blurb:"Branches untouched for six months or more"},{id:"anniversary",cat:"time-capsule",name:"Project anniversaries",blurb:"First-commit birthdays coming up"},{id:"inventory-burst",cat:"time-capsule",name:"Large deletions and change bursts",blurb:"Watched folders that lost a lot of files, or had a lot of them change, since the last look"},{id:"file-gone",cat:"time-capsule",name:"Files that disappeared",blurb:"Files that were there last time and are not now, with the command to bring back the ones git still holds"},{id:"agent-effects",cat:"time-capsule",name:"Changes while an agent was connected",blurb:"Files that changed or went missing in a window that overlapped an agent's questions - af360 cannot tell whose edits they were"},{id:"sync-folder",cat:"safety",name:"Repos inside sync folders",blurb:"Git repos living inside OneDrive, Dropbox or Google Drive"},{id:"history-secrets",cat:"safety",name:"Key-shaped strings in git history",blurb:"Access-key-shaped strings in the history of publicly-remoted repos"},{id:"gitignore-gaps",cat:"safety",name:".gitignore gaps",blurb:"Repos tracking node_modules, .env or build output"},{id:"dev-server-exposed",cat:"safety",name:"Dev server open to the network",blurb:"Dev scripts binding 0.0.0.0 instead of localhost"},{id:"install-scripts",cat:"safety",name:"Dependencies with install scripts",blurb:"Dependencies that run their own code at install time, named"},{id:"dep-uncommitted",cat:"safety",name:"Installs git has not recorded",blurb:"Dependency lists that changed on disk and have not been committed"},{id:"unbacked-ignored",cat:"safety",name:"Ignored files in a project with no remote",blurb:"Environment files, databases and upload folders git ignores, in projects with nowhere to push"},{id:"node-modules",cat:"health",name:"node_modules weight",blurb:"What your node_modules folders weigh and what dormancy would give back"},{id:"build-artifacts",cat:"health",name:"Build-artifact graveyards",blurb:"Old .next, dist and build folders with sizes"},{id:"runtime-eol",cat:"health",name:"Runtime end of life",blurb:"Your Node.js version against its published support dates"},{id:"disk-weight",cat:"health",name:"Tool caches",blurb:"What the caches other tools leave behind are weighing, not counting node_modules or build folders"},{id:"runtime-census",cat:"health",name:"Runtime census",blurb:"Projects asking for a Node version this machine is not running"},{id:"repo-front-door",cat:"health",name:"README and licence",blurb:"Repositories with a remote that carry neither"},{id:"dep-versions",cat:"health",name:"Same dependency, many versions",blurb:"One dependency installed at several versions across the estate, with sizes"},{id:"dep-arrivals",cat:"health",name:"Dependency arrivals",blurb:"What joined your dependency lists, and the date the project recorded it"},{id:"estate-stats",cat:"health",name:"Estate line count",blurb:"Lines of code and language map - the pride stat"},{id:"duplicate-downloads",cat:"health",name:"Downloads sharing a project's name",blurb:"Downloaded folders whose name matches a project you already have, with sizes"},{id:"deploy-sites",cat:"site",name:"Addresses your projects deploy to",blurb:"Hostnames named by deploy configs in your own repos, offered for watching"},{id:"og-preview",cat:"site",name:"Social share preview",blurb:"The card WhatsApp and LinkedIn render when your link is shared"},{id:"security-headers",cat:"site",name:"Security headers",blurb:"Protective headers your site does or doesn't send"},{id:"mixed-content",cat:"site",name:"Mixed content",blurb:"Secure pages loading pieces over plain http"},{id:"redirect-chain",cat:"site",name:"Redirect chain and www",blurb:"How many hops a visit takes, and whether www agrees with the bare domain"},{id:"robots-blocking",cat:"site",name:"robots.txt blocking all",blurb:"A robots.txt turning every search engine away"},{id:"sitemap-missing",cat:"site",name:"Sitemap missing",blurb:"No sitemap for search engines to read"},{id:"dns-watch",cat:"site",name:"DNS snapshot and changes",blurb:"Your domain's DNS records, and any change since last look"}],a=e=>{var s;return null==(s=n.find(s=>s.id===e))?void 0:s.blurb}}},e=>{e.O(0,[3192,1681,4097,8441,1255,7358],()=>e(e.s=1823)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4662],{1823:(e,s,t)=>{Promise.resolve().then(t.bind(t,2802))},2613:(e,s,t)=>{"use strict";t.d(s,{fn:()=>u,hf:()=>h,ob:()=>o,tU:()=>m});var n=t(5155),a=t(2115),i=t(7650),l=t(436),c=t(5310),r=t(3034),d=t(797);function o(e){let{actions:s,label:t}=e,[r,o]=(0,a.useState)(!1),[h,u]=(0,a.useState)(null),m=(0,a.useRef)(null),g=(0,a.useRef)(null),p=(0,a.useId)(),b=(0,c.kj)(),j=(0,c.cO)(),x=(0,a.useCallback)(()=>{var e,s,t;let n=null==(e=m.current)?void 0:e.firstElementChild;if(!n)return;let a=n.getBoundingClientRect(),i=null!=(t=null==(s=g.current)?void 0:s.offsetHeight)?t:0,l=window.innerHeight-a.bottom,c=i>0&&l<i+8&&a.top>l;u({top:c?a.top-i-4:a.bottom+4,end:Math.max(4,window.innerWidth-a.right),flip:c})},[]);return((0,a.useLayoutEffect)(()=>{r&&x()},[r,x]),(0,a.useEffect)(()=>{if(!r)return;let e=e=>{var s,t;let n=e.target;(null==(s=m.current)?void 0:s.contains(n))||(null==(t=g.current)?void 0:t.contains(n))||o(!1)},s=e=>{"Escape"===e.key&&o(!1)},t=()=>x();return document.addEventListener("mousedown",e),document.addEventListener("keydown",s),window.addEventListener("scroll",t,!0),window.addEventListener("resize",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",s),window.removeEventListener("scroll",t,!0),window.removeEventListener("resize",t)}},[r,x]),0===s.length)?null:(0,n.jsxs)("div",{className:"ovf",ref:m,children:[(0,n.jsxs)("button",{className:"ovf-btn",type:"button","aria-haspopup":"menu","aria-expanded":r,"aria-controls":p,...(0,d.uN)(j.moreActions),onClick:()=>o(e=>!e),children:[(0,n.jsx)(c.T,{k:"btn.more",en:null!=t?t:l.UI.radar.moreActions})," ",(0,n.jsx)("span",{"aria-hidden":!0,children:"▾"})]}),r&&"undefined"!=typeof document&&(0,i.createPortal)((0,n.jsx)("div",{className:"ovf-menu",id:p,role:"menu",ref:g,"aria-label":b("act.moreAria",l.UI.radar.moreActionsAria),style:h?{insetBlockStart:h.top,insetInlineEnd:h.end}:{visibility:"hidden"},children:s.map(e=>(0,n.jsxs)("button",{role:"menuitem",type:"button",...(0,d.uN)(e.title),className:e.danger?"danger":void 0,onClick:()=>{o(!1),e.onClick()},children:[e.label,e.effect&&(0,n.jsx)("span",{children:e.effect})]},e.label))}),document.body)]})}function h(e){let{done:s,total:t,working:a}=e,i=(0,c.kj)();(0,c.cO)();let d="ar"===(0,c.uU)();return t>0&&s<t?(0,n.jsxs)("div",{className:"streamline",role:"status","aria-live":"polite",children:[(0,n.jsx)("i",{"aria-hidden":!0}),d?(0,n.jsxs)(n.Fragment,{children:[i("stream.countingLead","")," ",(0,n.jsx)(r.V,{n:s})," ",i("stream.countingMid","")," ",(0,n.jsx)(r.V,{n:t})," ",i("stream.countingTail","")]}):l.UI.stream.counting(s,t)]}):a?(0,n.jsxs)("div",{className:"streamline",role:"status","aria-live":"polite",children:[(0,n.jsx)("i",{"aria-hidden":!0}),i("stream.starting",l.UI.stream.starting)]}):null}function u(e){let{view:s,onChange:t}=e,a=(0,c.kj)();return(0,c.cO)(),(0,n.jsxs)("div",{className:"viewseg",role:"group","aria-label":a("radar.viewAria",l.UI.radar.viewAria),children:[(0,n.jsx)("button",{type:"button",className:"cards"===s?"on":"","aria-pressed":"cards"===s,onClick:()=>t("cards"),children:(0,n.jsx)(c.T,{k:"btn.grid",en:l.UI.radar.viewGrid})}),(0,n.jsx)("button",{type:"button",className:"rows"===s?"on":"","aria-pressed":"rows"===s,onClick:()=>t("rows"),children:(0,n.jsx)(c.T,{k:"btn.rows",en:l.UI.radar.viewRows})})]})}function m(e){let{tabs:s,active:t,onChange:a,label:i,vertical:l}=e;return(0,n.jsx)("div",{className:"tabs".concat(l?" tabs-v":""),role:"tablist","aria-orientation":l?"vertical":void 0,"aria-label":i,children:s.map(e=>(0,n.jsxs)("button",{type:"button",role:"tab",id:"tab-".concat(e.id),className:e.id===t?"on":"","aria-selected":e.id===t,"aria-controls":"panel-".concat(e.id),onClick:()=>a(e.id),children:[e.label,void 0!==e.count&&(0,n.jsx)("span",{className:"tabn",children:e.count})]},e.id))})}},2802:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>v});var n=t(5155),a=t(2115),i=t(7406),l=t(4097),c=t(639),r=t(9712),d=t(2613),o=t(7e3),h=t(436),u=t(5310),m=t(1551),g=t(3034),p=t(3364),b=t(8706),j=t(797);let x=[1,6,24];function v(){var e,s,t;let v=(0,c.x)(),w=(0,m.$c)(null==(e=v.cfg)?void 0:e.lang),y=(e,s)=>(0,m.tr)(w,e,s),f=(0,u.qN)(w),{cfg:k}=v,[N,I]=(0,a.useState)("watching"),[U,S]=(0,a.useState)(!1),[L,T]=(0,a.useState)(null),[C,A]=(0,a.useState)(!1),[H,E]=(0,a.useState)(!1),[D,P]=(0,a.useState)("3"),[R,O]=(0,a.useState)(!1),[W,B]=(0,a.useState)(!1),[F,V]=(0,a.useState)(null),[_,q]=(0,a.useState)(null),[M,z]=(0,a.useState)(null),G=null!=(s=null==k?void 0:k.scanIntervalHours)?s:24,Y=H||!x.includes(G)?"custom":String(G),Z=async e=>{if("custom"===e){E(!0),z(null),P(String(G));return}E(!1),z(null),S(!0),await v.post({action:"setScanInterval",hours:Number(e)}),S(!1)},K=async()=>{let e=Number(D);if(""===D.trim()||!Number.isFinite(e)||e<1||e>24)return void z(y("settings.customBad",h.UI.settings.customBad));S(!0),z(null);let s=await v.post({action:"setScanInterval",hours:e});if(S(!1),!s.ok){var t;z(null!=(t=s.message)?t:h.UI.common.somethingWrong);return}E(!1)},$=v.watching,J=async e=>{S(!0),V(null);let s=await v.post({action:"addRoot",path:e});if(S(!1),!s.ok){var t;V(null!=(t=s.message)?t:h.UI.common.somethingWrong);return}B(!1),v.refresh(!0)},[Q,X]=(0,a.useState)([]),ee=async e=>{S(!0),V(null);let s=await v.post({action:"removeRoot",path:e});if(S(!1),!s.ok){var t;V(null!=(t=s.message)?t:h.UI.common.somethingWrong);return}v.resolveRow(e),X(s=>s.includes(e)?s:[...s,e])},es=async e=>{let s=await v.post({action:"addRoot",path:e});return s.ok&&(v.unresolveRow(e),X(s=>s.filter(s=>s!==e))),s},et=null!=(t=null==k?void 0:k.rules)?t:{exclude:[],muted:[]},en=async e=>{var s;S(!0),q(null);let t=await v.post({action:"addExclude",path:e});S(!1),t.ok?v.refresh(!0):q(null!=(s=t.message)?s:h.UI.common.somethingWrong)},ea=async e=>{S(!0),q(null);let s=await v.post({action:"removeExclude",path:e});if(S(!1),!s.ok){var t;q(null!=(t=s.message)?t:h.UI.common.somethingWrong);return}v.refresh(!0)},ei=async(e,s)=>{T(e),q(null),await v.post({action:s?"unmuteDetector":"muteDetector",id:e}),T(null),v.refresh(!1)},el=(null==k?void 0:k.updateCheck)!==!1,ec=async()=>{A(!0),await v.post({action:"setUpdateCheck",on:!el}),A(!1)},[er,ed]=(0,a.useState)(!1),eo=(null==k?void 0:k.domainLookup)===!0,eh=async()=>{ed(!0),await v.post({action:"setDomainLookup",on:!eo}),ed(!1)},eu=(null==k?void 0:k.standingWatch)===!0,[em,eg]=(0,a.useState)(!1),ep=async()=>{eg(!0),await v.post({action:"setStandingWatch",on:!eu}),eg(!1)},eb=v.startup,ej=null==eb?void 0:eb.state,ex="Enabled"===ej||"EnabledByPolicy"===ej,ev="DisabledByUser"===ej,ew="DisabledByPolicy"===ej,ey="EnabledByPolicy"===ej,ef=!!(null==eb?void 0:eb.available),[ek,eN]=(0,a.useState)(!1),eI=async()=>{eN(!0),await v.post({action:"setStartup",on:!ex}),eN(!1)},eU=(null==k?void 0:k.lang)==="ar"?"ar":"en",eS=async e=>{S(!0),await v.post({action:"setLang",lang:"ar"===e?"ar":"en"}),await v.refresh(!1),S(!1)},eL=(null==k?void 0:k.views.projects)==="rows"&&(null==k?void 0:k.views.urls)==="rows"?"rows":"cards",eT=async e=>{S(!0),await v.post({action:"setView",section:"projects",view:"rows"===e?"rows":null}),await v.post({action:"setView",section:"urls",view:"rows"===e?"rows":null}),S(!1)};return(0,n.jsxs)(i.Ay,{active:"/settings",cockpit:v,children:[(0,n.jsxs)("div",{className:"pagebar",children:[(0,n.jsx)("h1",{children:(0,n.jsx)(u.T,{k:"settings.title",en:h.UI.settings.title})}),(0,n.jsx)("span",{className:"purpose",children:(0,n.jsx)(u.T,{k:"settings.purpose",en:h.UI.settings.purpose})})]}),(0,n.jsxs)("div",{className:"settings-shell",children:[(0,n.jsx)(d.tU,{vertical:!0,label:y("settings.title",h.UI.settings.title),active:N,onChange:I,tabs:[{id:"watching",label:(0,n.jsx)(u.T,{k:"settings.secWatching",en:h.UI.settings.secWatching})},{id:"looking",label:(0,n.jsx)(u.T,{k:"settings.secScan",en:h.UI.settings.secLooking})},{id:"appearance",label:(0,n.jsx)(u.T,{k:"settings.secLook",en:h.UI.settings.secAppearance})},{id:"rules",label:(0,n.jsx)(u.T,{k:"settings.secRules",en:h.UI.settings.secRules})},{id:"data",label:(0,n.jsx)(u.T,{k:"settings.secData",en:h.UI.settings.secData})},{id:"how",label:(0,n.jsx)(u.T,{k:"settings.secHow",en:h.UI.settings.secHow})}]}),(0,n.jsxs)("div",{className:"settings-panel",children:["looking"===N&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"sec",children:(0,n.jsx)("h2",{children:(0,n.jsx)(u.T,{k:"settings.secScan",en:h.UI.settings.secLooking})})}),(0,n.jsxs)("div",{className:"set",children:[(0,n.jsxs)("div",{className:"lbl",children:[(0,n.jsx)("b",{children:y("settings.cadenceLabel",h.UI.settings.cadenceLabel)}),(0,n.jsx)("span",{children:y("settings.cadenceHelp",h.UI.settings.cadenceHelp)})]}),(0,n.jsx)("div",{className:"ctl",children:(0,n.jsxs)("select",{className:"in",value:Y,disabled:U,onChange:e=>Z(e.target.value),"aria-label":y("settings.cadenceAria",h.UI.settings.cadenceAria),children:[(0,n.jsx)("option",{value:"1",children:y("settings.cadenceHourly",h.UI.settings.cadenceHourly)}),(0,n.jsx)("option",{value:"6",children:y("settings.cadence6h",h.UI.settings.cadence6h)}),(0,n.jsx)("option",{value:"24",children:y("settings.cadenceDaily",h.UI.settings.cadenceDaily)}),(0,n.jsx)("option",{value:"custom",children:y("settings.cadenceCustom",h.UI.settings.cadenceCustom)})]})})]}),H&&(0,n.jsxs)("div",{className:"set",children:[(0,n.jsxs)("div",{className:"lbl",children:[(0,n.jsx)("b",{children:y("settings.customLabel",h.UI.settings.customLabel)}),(0,n.jsx)("span",{children:y("settings.customHelp",h.UI.settings.customHelp)}),M&&(0,n.jsx)("span",{className:"error-line",children:M})]}),(0,n.jsxs)("div",{className:"ctl",children:[(0,n.jsx)("input",{className:"in",type:"number",min:1,max:24,style:{inlineSize:70},value:D,onChange:e=>{P(e.target.value),z(null)},"aria-label":y("settings.hoursAria",h.UI.settings.hoursAria)}),(0,n.jsx)("button",{className:"b",disabled:U,onClick:K,children:(0,n.jsx)(u.T,{k:"btn.save",en:h.UI.common.save})})]})]})]}),"appearance"===N&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"sec",children:(0,n.jsx)("h2",{children:(0,n.jsx)(u.T,{k:"settings.secLook",en:h.UI.settings.secAppearance})})}),(0,n.jsxs)("div",{className:"set",children:[(0,n.jsxs)("div",{className:"lbl",children:[(0,n.jsx)("b",{children:y("settings.viewLabel",h.UI.settings.viewLabel)}),(0,n.jsx)("span",{children:y("settings.viewHelp",h.UI.settings.viewHelp)})]}),(0,n.jsx)("div",{className:"ctl",children:(0,n.jsxs)("select",{className:"in",value:eL,disabled:U,onChange:e=>eT(e.target.value),"aria-label":y("settings.viewAria",h.UI.settings.viewAria),children:[(0,n.jsx)("option",{value:"cards",children:y("btn.grid",h.UI.settings.viewCards)}),(0,n.jsx)("option",{value:"rows",children:y("btn.rows",h.UI.settings.viewRows)})]})})]}),(0,n.jsxs)("div",{className:"set",children:[(0,n.jsxs)("div",{className:"lbl",children:[(0,n.jsx)("b",{children:(0,n.jsx)(u.T,{k:"settings.lang",en:h.UI.settings.langLabel})}),(0,n.jsx)("span",{dir:"auto",children:y("settings.langHelp",h.UI.settings.langHelp)})]}),(0,n.jsx)("div",{className:"ctl",children:(0,n.jsxs)("select",{className:"in",value:eU,disabled:U,dir:"auto",onChange:e=>eS(e.target.value),"aria-label":y("settings.langAria",h.UI.settings.langAria),children:[(0,n.jsx)("option",{value:"en",children:y("settings.langEn",h.UI.settings.langEn)}),(0,n.jsx)("option",{value:"ar",children:y("settings.langAr",h.UI.settings.langAr)})]})})]})]}),"watching"===N&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"sec",children:(0,n.jsx)("h2",{children:(0,n.jsx)(u.T,{k:"settings.secWatching",en:h.UI.settings.secWatching})})}),(0,n.jsxs)("div",{className:"set",children:[(0,n.jsxs)("div",{className:"lbl",children:[(0,n.jsx)("b",{children:y("settings.watchLabel",h.UI.settings.watchLabel)}),(0,n.jsx)("span",{children:y("settings.watchHelp",h.UI.settings.watchHelp)})]}),(0,n.jsx)("div",{className:"ctl",children:(0,n.jsxs)("button",{className:"swt".concat(eu?" on":""),role:"switch","aria-checked":eu,"aria-label":y("settings.watchAria",h.UI.settings.watchAria),disabled:em,onClick:ep,children:[(0,n.jsx)("i",{"aria-hidden":!0}),(0,n.jsx)("span",{children:eu?(0,n.jsx)(u.T,{k:"settings.on",en:h.UI.settings.on}):(0,n.jsx)(u.T,{k:"settings.off",en:h.UI.settings.off})})]})})]}),ef&&(0,n.jsxs)("div",{className:"set",children:[(0,n.jsxs)("div",{className:"lbl",children:[(0,n.jsx)("b",{children:y("settings.startupLabel",h.UI.settings.startupLabel)}),(0,n.jsx)("span",{children:ew?y("settings.startupPolicyOff",h.UI.settings.startupPolicyOff):ey?y("settings.startupPolicyOn",h.UI.settings.startupPolicyOn):ev?y("settings.startupBlocked",h.UI.settings.startupBlocked):y("settings.startupHelp",h.UI.settings.startupHelp)})]}),(0,n.jsx)("div",{className:"ctl",children:!ev&&!(ew||ey)&&(0,n.jsxs)("button",{className:"swt".concat(ex?" on":""),role:"switch","aria-checked":ex,"aria-label":y("settings.startupAria",h.UI.settings.startupAria),disabled:ek,onClick:eI,children:[(0,n.jsx)("i",{"aria-hidden":!0}),(0,n.jsx)("span",{children:ex?(0,n.jsx)(u.T,{k:"settings.on",en:h.UI.settings.on}):(0,n.jsx)(u.T,{k:"settings.off",en:h.UI.settings.off})})]})})]}),(0,n.jsx)("div",{className:"set",style:{alignItems:"flex-start"},children:(0,n.jsxs)("div",{className:"lbl",style:{flex:1},children:[(0,n.jsx)("b",{children:y("settings.watchingHelp",h.UI.settings.watchingHelp)}),0===$.folders.length&&0===Q.length?(0,n.jsx)("span",{children:y("settings.watchingEmpty",h.UI.settings.watchingEmpty)}):(0,n.jsxs)("div",{className:"rule-list",children:[$.folders.map(e=>(0,n.jsxs)("div",{className:"rule-row",children:[(0,n.jsx)("span",{className:"path",children:(0,n.jsx)(g.B,{children:(0,o.oV)(e.path,44)})}),(0,n.jsxs)("span",{className:"rule-why",children:[(0,n.jsx)(g.V,{n:e.projects})," ",1===e.projects?y("settings.watchingProject",h.UI.settings.watchingProject):y("settings.watchingProjects",h.UI.settings.watchingProjects)]}),(0,n.jsx)("button",{className:"b2 q",disabled:U,onClick:()=>ee(e.path),children:y("settings.stopWatching",h.UI.settings.stopWatching)})]},e.path)),Q.map(e=>(0,n.jsx)(p.j,{className:"rule-row gone",what:(0,b.ph)("settings.watchStopped",h.UI.settings.watchStopped,(0,o.oV)(e,44)),onUndo:()=>es(e)},e)),$.unclaimed>0&&(0,n.jsx)("div",{className:"rule-row",children:(0,n.jsxs)("span",{className:"rule-why",children:[(0,n.jsx)(g.V,{n:$.unclaimed})," ",1===$.unclaimed?y("settings.watchingProject",h.UI.settings.watchingProject):y("settings.watchingProjects",h.UI.settings.watchingProjects)," ",y("settings.watchingUnclaimed",h.UI.settings.watchingUnclaimed)]})})]}),W?(0,n.jsxs)("div",{style:{marginBlockStart:8},children:[(0,n.jsx)(l.A,{watched:[],onChanged:()=>{},pick:{label:y("settings.watchingPick",h.UI.settings.watchingPick),onPick:J,already:$.folders.map(e=>e.path),alreadyLabel:y("settings.watchingAlready",h.UI.settings.watchingAlready)}}),(0,n.jsx)("div",{className:"setup-actions",style:{justifyContent:"flex-start",marginBlockStart:6},children:(0,n.jsx)("button",{className:"b2 q",onClick:()=>B(!1),children:(0,n.jsx)(u.T,{k:"btn.done",en:h.UI.common.done})})})]}):(0,n.jsx)("div",{style:{marginBlockStart:8},children:(0,n.jsx)("button",{className:"b",onClick:()=>B(!0),children:y("settings.watchingAdd",h.UI.settings.watchingAdd)})}),F&&(0,n.jsx)("span",{className:"error-line",children:F})]})})]}),"rules"===N&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"sec",children:[(0,n.jsx)("h2",{children:(0,n.jsx)(u.T,{k:"settings.secRules",en:h.UI.settings.secRules})}),(0,n.jsx)("span",{className:"meta",children:y("settings.rulesMeta",h.UI.settings.rulesMeta)})]}),(0,n.jsx)("div",{className:"set",style:{alignItems:"flex-start"},children:(0,n.jsxs)("div",{className:"lbl",style:{flex:1},children:[(0,n.jsx)("b",{children:y("settings.excludeLabel",h.UI.settings.excludeLabel)}),(0,n.jsx)("span",{children:y("settings.excludeHelp",h.UI.settings.excludeHelp)}),et.exclude.length>0&&(0,n.jsx)("div",{className:"rule-list",children:et.exclude.map(e=>(0,n.jsxs)("div",{className:"rule-row",children:[(0,n.jsx)("span",{className:"path",children:(0,o.oV)(e,52)}),(0,n.jsx)("button",{className:"b2 q",disabled:U,onClick:()=>ea(e),children:(0,n.jsx)(u.T,{k:"btn.remove",en:h.UI.common.remove})})]},e))}),R?(0,n.jsxs)("div",{style:{marginBlockStart:8},children:[(0,n.jsx)(l.A,{watched:[],onChanged:()=>{},pick:{label:y("settings.excludePick",h.UI.settings.excludePick),onPick:en,already:et.exclude,alreadyLabel:y("settings.alreadyExcluded",h.UI.settings.alreadyExcluded)}}),(0,n.jsx)("div",{className:"setup-actions",style:{justifyContent:"flex-start",marginBlockStart:6},children:(0,n.jsx)("button",{className:"b2 q",onClick:()=>O(!1),children:(0,n.jsx)(u.T,{k:"btn.done",en:h.UI.common.done})})})]}):(0,n.jsx)("div",{style:{marginBlockStart:8},children:(0,n.jsx)("button",{className:"b",...(0,j.uN)(f.chooseExclude),onClick:()=>O(!0),children:y("settings.chooseFolder",h.UI.settings.chooseFolder)})}),_&&(0,n.jsx)("span",{className:"error-line",children:_})]})})]}),"data"===N&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"sec",children:(0,n.jsx)("h2",{children:(0,n.jsx)(u.T,{k:"settings.secData",en:h.UI.settings.secData})})}),(0,n.jsxs)("div",{className:"set",children:[(0,n.jsxs)("div",{className:"lbl",children:[(0,n.jsx)("b",{children:h.UI.firstLight.termsName}),(0,n.jsx)("span",{children:y("settings.documentsHelp",h.UI.settings.documentsHelp)})]}),(0,n.jsx)("div",{className:"ctl",children:(0,n.jsx)("a",{className:"btn",href:"/legal/terms",children:y("settings.documentsOpen",h.UI.settings.documentsOpen)})})]}),(0,n.jsxs)("div",{className:"set",children:[(0,n.jsx)("div",{className:"lbl",children:(0,n.jsx)("b",{children:h.UI.firstLight.privacyName})}),(0,n.jsx)("div",{className:"ctl",children:(0,n.jsx)("a",{className:"btn",href:"/legal/privacy",children:y("settings.documentsOpen",h.UI.settings.documentsOpen)})})]}),(0,n.jsx)("div",{className:"set",children:(0,n.jsxs)("div",{className:"lbl",children:[(0,n.jsx)("b",{children:(0,n.jsx)(g.B,{mono:!0,children:h.UI.settings.dataLabel})}),(0,n.jsx)("span",{children:y("settings.dataHelp",h.UI.settings.dataHelp)})]})}),(0,n.jsxs)("div",{className:"set",children:[(0,n.jsxs)("div",{className:"lbl",children:[(0,n.jsx)("b",{children:y("settings.domainLabel",h.UI.settings.domainLabel)}),(0,n.jsx)("span",{children:y("settings.domainHelp",h.UI.settings.domainHelp)})]}),(0,n.jsx)("div",{className:"ctl",children:(0,n.jsxs)("button",{className:"swt".concat(eo?" on":""),role:"switch","aria-checked":eo,disabled:er,onClick:eh,children:[(0,n.jsx)("i",{"aria-hidden":!0}),(0,n.jsx)("span",{children:eo?(0,n.jsx)(u.T,{k:"settings.on",en:h.UI.settings.on}):(0,n.jsx)(u.T,{k:"settings.off",en:h.UI.settings.off})})]})})]}),(0,n.jsxs)("div",{className:"set",children:[(0,n.jsxs)("div",{className:"lbl",children:[(0,n.jsx)("b",{children:y("settings.updateLabel",h.UI.settings.updateLabel)}),(0,n.jsx)("span",{children:!0===v.packaged?y("settings.updatePackaged",h.UI.settings.updatePackaged):y("settings.updateHelp",h.UI.settings.updateHelp)})]}),!0===v.packaged?null:(0,n.jsx)("div",{className:"ctl",children:(0,n.jsxs)("button",{className:"swt".concat(el?" on":""),role:"switch","aria-checked":el,...(0,j.uN)(f.updateSwitch),disabled:C,onClick:ec,children:[(0,n.jsx)("i",{"aria-hidden":!0}),(0,n.jsx)("span",{children:el?(0,n.jsx)(u.T,{k:"settings.on",en:h.UI.settings.on}):(0,n.jsx)(u.T,{k:"settings.off",en:h.UI.settings.off})})]})})]})]}),"how"===N&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"sec",children:(0,n.jsx)("h2",{children:(0,n.jsx)(u.T,{k:"settings.secHow",en:h.UI.settings.secHow})})}),(0,n.jsx)("div",{className:"set",children:(0,n.jsx)("div",{className:"lbl",children:h.UI.settings.how.map((e,s)=>(0,n.jsx)("span",{children:y("settings.how".concat(s+1),e)},e))})}),(0,n.jsx)("div",{className:"set detectors",style:{alignItems:"flex-start"},children:(0,n.jsxs)("div",{className:"lbl",style:{flex:1},children:[(0,n.jsx)("b",{...(0,j.uN)(f.detectors),children:(0,n.jsx)(u.T,{k:"settings.secDetectors",en:h.UI.settings.muteLabel})}),(0,n.jsxs)("span",{children:[y("settings.muteHelp",h.UI.settings.muteHelp),et.muted.length>0?" ".concat(et.muted.length," muted."):""]}),["money","identity","time-capsule","safety","health","site"].map(e=>(0,n.jsxs)("div",{className:"rule-group",children:[(0,n.jsx)("span",{className:"rule-cat",children:(0,n.jsx)(u.T,{k:"cat.".concat(e),en:h.UI.settings.cat[e]})}),(0,n.jsx)("div",{className:"rule-rows",children:r.ZI.filter(s=>s.cat===e).map(e=>{let s=et.muted.includes(e.id);return(0,n.jsxs)("div",{className:"rule-row",...(0,j.uN)(e.blurb),children:[(0,n.jsx)("span",{className:"rule-name",children:e.name}),(0,n.jsxs)("button",{className:"swt".concat(s?"":" on"),role:"switch","aria-checked":!s,...(0,j.uN)(f.muteSwitch),disabled:L===e.id,onClick:()=>ei(e.id,s),children:[(0,n.jsx)("i",{"aria-hidden":!0}),(0,n.jsx)("span",{children:s?(0,n.jsx)(u.T,{k:"settings.muted",en:h.UI.settings.muted}):(0,n.jsx)(u.T,{k:"settings.running",en:h.UI.settings.running})})]})]},e.id)})})]},e))]})})]})]})]})]})}},3364:(e,s,t)=>{"use strict";t.d(s,{j:()=>c});var n=t(5155),a=t(2115),i=t(436),l=t(5310);function c(e){let{what:s,onUndo:t,className:c="tl gone"}=e,r=(0,l.kj)(),[d,o]=(0,a.useState)(!1),[h,u]=(0,a.useState)(null);return(0,n.jsxs)("div",{className:c,role:"status",children:[(0,n.jsx)("b",{children:(0,n.jsx)(l.P,{p:s})}),h&&(0,n.jsx)("span",{className:"error-line",children:h}),(0,n.jsx)("button",{className:"b2 q",disabled:d,onClick:async()=>{var e;o(!0),u(null);let s=await t();o(!1),s.ok||u(null!=(e=s.message)?e:r("common.somethingWrong",i.UI.common.somethingWrong))},children:(0,n.jsx)(l.T,{k:"common.undo",en:i.UI.common.undo})})]})}},9712:(e,s,t)=>{"use strict";t.d(s,{Sc:()=>a,ZI:()=>n});let n=[{id:"paid-sdk",cat:"money",name:"Paid services in dormant projects",blurb:"Projects you haven't opened in a month or more that still reference paid services"},{id:"cloud-config-stale",cat:"money",name:"Deploy configs with no recent work",blurb:"Deploy files (Vercel, Railway, Docker) in projects that stopped moving"},{id:"identity",cat:"identity",name:"Commit identity mismatches",blurb:"Projects committing as a different email than your global identity"},{id:"ssh-keys",cat:"identity",name:"SSH key inventory",blurb:"The keys living in your .ssh folder and how old they are"},{id:"unpushed",cat:"time-capsule",name:"Unpushed commits",blurb:"Commits that exist only on this machine"},{id:"no-remote",cat:"time-capsule",name:"Projects with no remote",blurb:"Projects whose only home is this disk"},{id:"no-upstream",cat:"time-capsule",name:"Branches that push nowhere",blurb:"Local branches with no upstream, so their commits stay on this machine"},{id:"no-git-folder",cat:"time-capsule",name:"Folders with no git at all",blurb:"Watched folders holding work that has no history and no copy elsewhere"},{id:"readme-stub",cat:"time-capsule",name:"README still a placeholder",blurb:"READMEs that still say TODO, with age"},{id:"todo-census",cat:"time-capsule",name:"TODO census",blurb:"TODOs across the estate, eldest quoted"},{id:"abandoned-branches",cat:"time-capsule",name:"Abandoned branches",blurb:"Branches untouched for six months or more"},{id:"anniversary",cat:"time-capsule",name:"Project anniversaries",blurb:"First-commit birthdays coming up"},{id:"inventory-burst",cat:"time-capsule",name:"Large deletions and change bursts",blurb:"Watched folders that lost a lot of files, or had a lot of them change, since the last look"},{id:"file-gone",cat:"time-capsule",name:"Files that disappeared",blurb:"Files that were there last time and are not now, with the command to bring back the ones git still holds"},{id:"agent-effects",cat:"time-capsule",name:"Changes while an agent was connected",blurb:"Files that changed or went missing in a window that overlapped an agent's questions - af360 cannot tell whose edits they were"},{id:"sync-folder",cat:"safety",name:"Repos inside sync folders",blurb:"Git repos living inside OneDrive, Dropbox or Google Drive"},{id:"history-secrets",cat:"safety",name:"Key-shaped strings in git history",blurb:"Access-key-shaped strings in the history of publicly-remoted repos"},{id:"gitignore-gaps",cat:"safety",name:".gitignore gaps",blurb:"Repos tracking node_modules, .env or build output"},{id:"dev-server-exposed",cat:"safety",name:"Dev server open to the network",blurb:"Dev scripts binding 0.0.0.0 instead of localhost"},{id:"install-scripts",cat:"safety",name:"Dependencies with install scripts",blurb:"Dependencies that run their own code at install time, named"},{id:"dep-uncommitted",cat:"safety",name:"Installs git has not recorded",blurb:"Dependency lists that changed on disk and have not been committed"},{id:"unbacked-ignored",cat:"safety",name:"Ignored files in a project with no remote",blurb:"Environment files, databases and upload folders git ignores, in projects with nowhere to push"},{id:"node-modules",cat:"health",name:"node_modules weight",blurb:"What your node_modules folders weigh and what dormancy would give back"},{id:"build-artifacts",cat:"health",name:"Build-artifact graveyards",blurb:"Old .next, dist and build folders with sizes"},{id:"runtime-eol",cat:"health",name:"Runtime end of life",blurb:"Your Node.js version against its published support dates"},{id:"disk-weight",cat:"health",name:"Tool caches",blurb:"What the caches other tools leave behind are weighing, not counting node_modules or build folders"},{id:"runtime-census",cat:"health",name:"Runtime census",blurb:"Projects asking for a Node version this machine is not running"},{id:"repo-front-door",cat:"health",name:"README and licence",blurb:"Repositories with a remote that carry neither"},{id:"dep-versions",cat:"health",name:"Same dependency, many versions",blurb:"One dependency installed at several versions across the estate, with sizes"},{id:"dep-arrivals",cat:"health",name:"Dependency arrivals",blurb:"What joined your dependency lists, and the date the project recorded it"},{id:"estate-stats",cat:"health",name:"Estate line count",blurb:"Lines of code and language map - the pride stat"},{id:"duplicate-downloads",cat:"health",name:"Downloads sharing a project's name",blurb:"Downloaded folders whose name matches a project you already have, with sizes"},{id:"deploy-sites",cat:"site",name:"Addresses your projects deploy to",blurb:"Hostnames named by deploy configs in your own repos, offered for watching"},{id:"og-preview",cat:"site",name:"Social share preview",blurb:"The card WhatsApp and LinkedIn render when your link is shared"},{id:"security-headers",cat:"site",name:"Security headers",blurb:"Protective headers your site does or doesn't send"},{id:"mixed-content",cat:"site",name:"Mixed content",blurb:"Secure pages loading pieces over plain http"},{id:"redirect-chain",cat:"site",name:"Redirect chain and www",blurb:"How many hops a visit takes, and whether www agrees with the bare domain"},{id:"robots-blocking",cat:"site",name:"robots.txt blocking all",blurb:"A robots.txt turning every search engine away"},{id:"sitemap-missing",cat:"site",name:"Sitemap missing",blurb:"No sitemap for search engines to read"},{id:"dns-watch",cat:"site",name:"DNS snapshot and changes",blurb:"Your domain's DNS records, and any change since last look"}],a=e=>{var s;return null==(s=n.find(s=>s.id===e))?void 0:s.blurb}}},e=>{e.O(0,[3192,8050,4097,8441,1255,7358],()=>e(e.s=1823)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9437],{1804:(e,s,t)=>{Promise.resolve().then(t.bind(t,4421))},4421:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>y});var i=t(5155),n=t(2115),a=t(7406),r=t(639),l=t(7897),c=t(5163),d=t(436),o=t(5310),u=t(8106),p=t(3034),m=t(6400),h=t(5834),v=t(1551);function j(e){let{s,cockpit:t}=e,[a,r]=(0,n.useState)(!1),l=(0,o.kj)(),c=s.current,u=!!c&&!c.ok,m=u&&"number"==typeof(null==c?void 0:c.status);return(0,i.jsxs)("div",{className:"irow svcrow".concat(u?" bad":""),children:[(0,i.jsxs)("div",{className:"irow-line",children:[(0,i.jsxs)("button",{className:"irow-main",onClick:()=>r(!a),"aria-expanded":a,children:[(0,i.jsx)("span",{className:"dot ".concat(c?u?"r":"g":"u"),"aria-hidden":!0}),(0,i.jsx)("span",{className:"irow-name",children:s.entry.label}),(0,i.jsx)("span",{className:"irow-truth".concat(u?" bad":""),children:!c||s.checking?(0,i.jsx)(h.hI,{children:l("svc.asking",d.UI.sites.svcAsking)}):u?m?(0,i.jsxs)(i.Fragment,{children:[l("svc.errorReply",d.UI.sites.svcErrorReply)," ",(0,i.jsx)(p.V,{n:c.status})]}):l("svc.noAnswer",d.UI.sites.svcNoAnswer):l("svc.answered",d.UI.sites.svcAnswered)}),(0,i.jsx)("span",{className:"irow-path",dir:"ltr",children:s.entry.endpoint})]}),(0,i.jsx)("span",{className:"qk",children:(0,i.jsx)("button",{className:"b2 q danger",onClick:()=>void t.post({action:"removeService",id:s.entry.id}).then(()=>t.readServices()),children:(0,i.jsx)(o.T,{k:"svc.remove",en:d.UI.sites.removeService})})})]}),a&&(0,i.jsxs)("div",{className:"irow-detail",children:[(0,i.jsx)("p",{children:"status"===s.entry.endpointKind?l("svc.viaStatus",d.UI.sites.svcViaStatus):l("svc.viaHome",d.UI.sites.svcViaHome)}),(0,i.jsx)("p",{className:"svc-bound",children:l("svc.notTheWorld",d.UI.sites.svcNotTheWorld)})]})]})}function x(e){var s,t;let{cockpit:n}=e;(0,o.kj)();let a=function(e,s){let t=new Map((null!=s?s:[]).map(e=>[e.entry.id,e]));return e.map(e=>{let s=t.get(e.id);return s?{...s,entry:e}:{entry:e,current:null,since:null}})}(null!=(t=null==(s=n.cfg)?void 0:s.services)?t:[],n.services);return 0===a.length?null:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:"sec",children:[(0,i.jsx)("h2",{children:(0,i.jsx)(o.T,{k:"sites.groupServices",en:d.UI.sites.groupServices})}),(0,i.jsxs)("span",{className:"meta",children:[(0,i.jsx)(p.V,{n:a.length})," \xb7 ",(0,i.jsx)(o.T,{k:"sites.servicesPurpose",en:d.UI.sites.servicesPurpose})]})]}),(0,i.jsx)("div",{className:"irows",children:a.map(e=>(0,i.jsx)(j,{s:e,cockpit:n},e.entry.id))})]})}function g(e){var s,t;let{presets:a,cockpit:r}=e,l=(0,o.kj)(),[c,u]=(0,n.useState)(null),[p,m]=(0,n.useState)(null),h=new Set((null!=(t=null==(s=r.cfg)?void 0:s.services)?t:[]).map(e=>e.service)),v=a.filter(e=>!h.has(e.service));if(0===a.length)return(0,i.jsx)("p",{className:"svc-bound",children:l("svc.noPresets",d.UI.sites.servicesNoPresets)});async function j(e){var s;u(e),m(null);let t=await r.post({action:"addService",service:e});t.ok?await r.readServices():m(null!=(s=t.message)?s:null),u(null)}return(0,i.jsxs)(i.Fragment,{children:[0===h.size&&(0,i.jsx)("p",{className:"svc-bound",children:l("svc.noneAdded",d.UI.sites.servicesNoneAdded)}),v.length>0&&(0,i.jsxs)("p",{className:"svc-add",children:[(0,i.jsx)("span",{className:"k",children:l("svc.add",d.UI.sites.addService)})," ",v.map(e=>(0,i.jsx)("button",{className:"b2 q",disabled:null!==c,onClick:()=>void j(e.service),children:e.label},e.service))]}),p&&(0,i.jsx)("span",{className:"error-line",children:p})]})}function N(e){let{name:s,count:t,onRemove:a}=e,r=(0,o.kj)(),[l,c]=(0,n.useState)(!1);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:"sec",children:[(0,i.jsx)("h2",{children:s}),(0,i.jsxs)("span",{className:"meta",children:[(0,i.jsx)(p.V,{n:t})," ",1===t?r("sites.unitSite",d.UI.sites.unitSite):r("sites.unitSites",d.UI.sites.unitSites)]}),a&&(0,i.jsx)("div",{className:"tools",children:(0,i.jsx)("button",{className:"b".concat(l?" on":""),onClick:()=>c(!l),"aria-expanded":l,children:r("sites.removeGroup",d.UI.sites.removeGroup)})})]}),l&&a&&(0,i.jsxs)("p",{className:"ok-line",children:[r("sites.removeGroupNote",d.UI.sites.removeGroupNote)," ",(0,i.jsx)("button",{className:"b2 danger",onClick:()=>{c(!1),a()},children:r("sites.removeGroup",d.UI.sites.removeGroup)})]})]})}function k(e){let{cockpit:s,onAdded:t}=e,[a,r]=(0,n.useState)(""),[l,c]=(0,n.useState)(null),u=(0,o.kj)();return(0,i.jsxs)("form",{className:"setup",onSubmit:async e=>{var i;if(e.preventDefault(),!a.trim())return;let n=await s.post({action:"addGroup",name:a.trim()});n.ok?(r(""),c(null),null==t||t()):c(null!=(i=n.message)?i:u("common.somethingWrong",d.UI.common.somethingWrong))},children:[(0,i.jsxs)("div",{className:"addrow",children:[(0,i.jsx)("input",{className:"in",type:"text",value:a,autoFocus:!0,"aria-label":u("sites.groupNameAria",d.UI.sites.groupNameAria),placeholder:u("sites.groupNamePlaceholder",d.UI.sites.groupNamePlaceholder),onChange:e=>r(e.target.value)}),(0,i.jsx)("button",{className:"btn primary",type:"submit",disabled:!a.trim(),children:u("sites.createGroup",d.UI.sites.createGroup)})]}),l&&(0,i.jsx)("p",{className:"error-line",children:l})]})}function b(e){let{cockpit:s,siteId:t,groups:n,current:a}=e,r=(0,o.kj)();return 0===n.length?null:(0,i.jsxs)("select",{className:"in gsel",value:null!=a?a:"","aria-label":r("sites.fileIn",d.UI.sites.fileIn),onChange:e=>void s.post({action:"setSiteGroup",id:t,group:e.target.value||null}),children:[(0,i.jsx)("option",{value:"",children:r("sites.groupYours",d.UI.sites.groupYours)}),n.map(e=>(0,i.jsx)("option",{value:e.id,children:e.name},e.id))]})}let I=[{service:"github",label:"GitHub",endpoint:"https://www.githubstatus.com/api/v2/status.json",endpointKind:"status"},{service:"cloudflare",label:"Cloudflare",endpoint:"https://www.cloudflarestatus.com/api/v2/status.json",endpointKind:"status"},{service:"vercel",label:"Vercel",endpoint:"https://www.vercel-status.com/api/v2/status.json",endpointKind:"status"},{service:"netlify",label:"Netlify",endpoint:"https://www.netlifystatus.com/api/v2/status.json",endpointKind:"status"},{service:"npm",label:"npm",endpoint:"https://status.npmjs.org/api/v2/status.json",endpointKind:"status"},{service:"railway",label:"Railway",endpoint:"https://railway.com/",endpointKind:"home"}];function y(){var e,s,t,j;let y=(0,r.x)(),[w,U]=(0,n.useState)(null),[f,S]=(0,n.useState)(!1),[A,G]=(0,n.useState)(!1),{urls:C,health:T,incidents:P,attention:V}=y,{requestIgnore:R,overlays:F}=(0,l.Wj)(y),K=null!=(t=y.views.urls)?t:"cards",W=e=>(0,c.YV)(V,e),_=e=>"red"===e?2:+("amber"===e),q=[...C].sort((e,s)=>_(W(s.entry.id))-_(W(e.entry.id))),M=q.filter(e=>{var s;return null==(s=e.current)?void 0:s.ok}).length,Y=e=>U(s=>s===e?null:e),E=(0,v.$c)(null==(e=y.cfg)?void 0:e.lang),H=(e,s)=>(0,v.tr)(E,e,s),L="ar"===E,B=null!=(j=null==(s=y.cfg)?void 0:s.siteGroups)?j:[],D=e=>B.some(s=>s.id===e.entry.group)?e.entry.group:void 0,O=e=>{let s=(e,s)=>(0,i.jsx)(b,{cockpit:y,siteId:e,groups:B,current:s});return"cards"===K?(0,i.jsx)("div",{className:"grid",children:e.map(e=>(0,i.jsx)(l.ct,{u:e,tone:W(e.entry.id),cockpit:y,incident:(0,l.G2)(P,e.entry.id),open:w===e.entry.id,onToggle:()=>Y(e.entry.id),onIgnoreRequest:R,extra:s(e.entry.id,D(e))},e.entry.id))}):(0,i.jsx)("div",{className:"irows",children:e.map(e=>(0,i.jsx)(l.kc,{u:e,tone:W(e.entry.id),cockpit:y,incident:(0,l.G2)(P,e.entry.id),open:w===e.entry.id,onToggle:()=>Y(e.entry.id),onIgnoreRequest:R,extra:s(e.entry.id,D(e))},e.entry.id))})};return(0,i.jsxs)(a.Ay,{active:"/sites",cockpit:y,children:[(0,i.jsxs)("div",{className:"pagebar",children:[(0,i.jsx)("h1",{children:(0,i.jsx)(o.T,{k:"room.sites",en:d.UI.sites.title})}),(0,i.jsx)("span",{className:"purpose",children:(0,i.jsx)(o.T,{k:"sites.purpose",en:d.UI.sites.purpose})})]}),T?0===C.length?(0,i.jsxs)("div",{className:"empty",children:[(0,i.jsx)("p",{className:"invite",children:H("sites.emptyInvite",d.UI.sites.emptyInvite)}),(0,i.jsx)("p",{children:H("sites.emptyLine",d.UI.sites.emptyLine)}),(0,i.jsxs)("div",{className:"setup-actions",children:[(0,i.jsx)("button",{className:"btn ".concat(f?"":"primary"),"aria-pressed":f,onClick:()=>S(!f),children:f?H("btn.back",d.UI.radar.emptyBack):H("empty.pickSite",d.UI.radar.emptyPickSite)}),(0,i.jsx)("a",{className:"btn",href:"/radar",children:H("btn.goRadar",d.UI.sites.goRadar)})]}),f&&(0,i.jsx)(u.T,{cockpit:y,onAdded:()=>S(!1)})]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:"sec",children:[(0,i.jsx)("h2",{children:(0,i.jsx)(o.T,{k:"sec.sites",en:d.UI.radar.sites})}),(0,i.jsxs)("span",{className:"meta",children:[L?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(p.V,{n:M})," ",H("sites.answeringMid","")," ",(0,i.jsx)(p.V,{n:C.length})," ",H("sites.answeringTail","")]}):d.UI.sites.answering(M,C.length)," \xb7 ",(0,i.jsx)(o.T,{k:"radar.sitesMeta",en:d.UI.radar.sitesMeta})]}),(0,i.jsxs)("div",{className:"tools",children:[(0,i.jsx)("button",{className:"b ".concat(f?"on":""),"aria-pressed":f,"aria-expanded":f,onClick:()=>S(!f),children:f?H("btn.back",d.UI.radar.emptyBack):H("empty.pickSite",d.UI.radar.emptyPickSite)}),(0,i.jsx)("button",{className:"b","aria-pressed":A,"aria-expanded":A,onClick:()=>G(!A),children:(0,i.jsx)(o.T,{k:"sites.newGroup",en:d.UI.sites.newGroup})}),(0,i.jsx)(l.aA,{view:K,onChange:e=>y.setView("urls",e)})]})]}),f&&(0,i.jsx)(u.T,{cockpit:y,onAdded:()=>S(!1)}),A&&(0,i.jsx)(k,{cockpit:y,onAdded:()=>G(!1)}),B.length>0&&(0,i.jsx)(N,{name:H("sites.groupYours",d.UI.sites.groupYours),count:q.filter(e=>!D(e)).length}),O(q.filter(e=>!D(e)))]}):(0,i.jsxs)("div",{className:"sweep-wrap",children:[(0,i.jsx)("div",{className:"sweep","aria-hidden":!0}),(0,i.jsx)("span",{children:(0,i.jsx)(h.hI,{children:H("sites.checking",d.UI.sites.checking)})})]}),B.map(e=>{let s=q.filter(s=>D(s)===e.id);return(0,i.jsxs)("div",{children:[(0,i.jsx)(N,{name:e.name,count:s.length,onRemove:()=>void y.post({action:"removeGroup",id:e.id})}),O(s)]},e.id)}),(0,i.jsx)(x,{cockpit:y}),(0,i.jsx)(g,{presets:I,cockpit:y}),(0,i.jsx)(m.LZ,{cockpit:y}),F]})}},8106:(e,s,t)=>{"use strict";t.d(s,{T:()=>l});var i=t(5155),n=t(2115),a=t(436),r=t(5310);function l(e){let{cockpit:s,onAdded:t}=e,[l,c]=(0,n.useState)(""),[d,o]=(0,n.useState)(""),[u,p]=(0,n.useState)(!1),[m,h]=(0,n.useState)(null),v=(0,r.kj)(),j=async e=>{var i;if(e.preventDefault(),!l.trim())return;p(!0),h(null);let n=await s.post({action:"addUrl",url:l.trim(),label:d.trim()||void 0});p(!1),n.ok?(c(""),o(""),h({ok:!0,text:v("site.added",a.UI.radar.siteAdded)}),s.readHealth(),null==t||t()):h({ok:!1,text:null!=(i=n.message)?i:v("common.somethingWrong",a.UI.common.somethingWrong)})};return(0,i.jsxs)("form",{className:"setup",onSubmit:j,children:[(0,i.jsxs)("div",{className:"addrow",children:[(0,i.jsx)("input",{className:"in",type:"text",inputMode:"url",dir:"ltr",value:l,"aria-label":v("site.addrAria",a.UI.radar.siteAddrAria),placeholder:a.UI.radar.sitePlaceholder,onChange:e=>c(e.target.value)}),(0,i.jsx)("input",{className:"in",type:"text",value:d,"aria-label":v("site.nameAria",a.UI.radar.siteNameAria),placeholder:v("site.namePlaceholder",a.UI.radar.siteNamePlaceholder),onChange:e=>o(e.target.value)}),(0,i.jsx)("button",{className:"btn primary",type:"submit",disabled:u||!l.trim(),children:u?v("site.adding",a.UI.radar.siteAdding):v("site.add",a.UI.radar.siteAdd)})]}),m&&(0,i.jsx)("p",{className:m.ok?"ok-line":"error-line",children:m.text})]})}}},e=>{e.O(0,[3192,8050,7897,8441,1255,7358],()=>e(e.s=1804)),_N_E=e.O()}]);
|