1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2195],{14471:(e,t,r)=>{"use strict";r.d(t,{p:()=>f});var a=r(37876),n=r(48230),l=r.n(n),i=r(89023),o=r(44372),s=r(34906),c=r(18050),d=r(42298),u=r(15565),m=r(32411);let p={"no-data":{icon:i.A,titleKey:"emptyState.noDataTitle",descriptionKey:"emptyState.noDataDesc",tint:"text-primary bg-primary/10"},"no-results":{icon:o.A,titleKey:"emptyState.noResultsTitle",descriptionKey:"emptyState.noResultsDesc",tint:"text-accent bg-accent/10"},"no-permission":{icon:s.A,titleKey:"emptyState.noPermissionTitle",descriptionKey:"emptyState.noPermissionDesc",tint:"text-amber-600 bg-amber-500/10"},error:{icon:c.A,titleKey:"emptyState.errorTitle",descriptionKey:"emptyState.errorDesc",tint:"text-red-600 bg-red-500/10"}};function f(e){let{variant:t="no-data",title:r,description:n,icon:i,action:o,hrefAction:s,compact:c,className:f}=e,{t:x}=(0,m.Bd)(),h=p[t],y=null!=i?i:h.icon;return(0,a.jsxs)("div",{className:(0,u.cn)("flex flex-col items-center justify-center rounded-3xl border border-dashed border-border/60 bg-muted/30 text-center",c?"px-5 py-10":"px-6 py-14",f),children:[(0,a.jsx)("div",{className:(0,u.cn)("mb-5 flex items-center justify-center rounded-2xl",c?"h-12 w-12":"h-16 w-16",h.tint),children:(0,a.jsx)(y,{className:c?"h-6 w-6":"h-8 w-8",strokeWidth:1.75})}),(0,a.jsx)("h3",{className:(0,u.cn)("font-semibold text-foreground",c?"text-base":"text-lg"),children:null!=r?r:x(h.titleKey)}),(0,a.jsx)("p",{className:"mt-1.5 max-w-sm text-sm text-muted-foreground",children:null!=n?n:x(h.descriptionKey)}),o&&(0,a.jsx)(d.$,{onClick:o.onClick,className:"mt-6 rounded-xl",children:o.label}),!o&&s&&(0,a.jsx)(d.$,{asChild:!0,className:"mt-6 rounded-xl",children:(0,a.jsx)(l(),{href:s.href,children:s.label})})]})}},15687:(e,t,r)=>{"use strict";r.d(t,{Y:()=>x});var a=r(14232),n=r(29395),l=r(69801);async function i(e){let t={};try{t=await e.json()}catch(r){return{ok:!1,body:t,error:"HTTP ".concat(e.status)}}if(!e.ok||!1===t.success){let r="string"==typeof t.error?t.error:"HTTP ".concat(e.status);return{ok:!1,body:t,error:r}}return{ok:!0,body:t,error:null}}async function o(e){try{let t=await (0,l.hJ)("/api/crm/health-checks",{appTenantId:null!=e?e:void 0}),r=await i(t);if(!r.ok)return{data:[],error:r.error};return{data:Array.isArray(r.body.data)?r.body.data:[],error:null}}catch(e){return{data:[],error:e instanceof Error?e.message:"Failed to load health checks"}}}async function s(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:30,t=arguments.length>1?arguments[1]:void 0;try{var r;let a=await (0,l.hJ)("/api/crm/health-checks?view=availability&days=".concat(e),{appTenantId:null!=t?t:void 0}),n=await i(a);if(!n.ok)return{data:null,error:n.error};return{data:null!=(r=n.body.data)?r:null,error:null}}catch(e){return{data:null,error:e instanceof Error?e.message:"Failed to load availability"}}}async function c(e,t){try{var r;let a=await (0,l.hJ)("/api/crm/health-checks",{method:"POST",body:JSON.stringify(e),appTenantId:null!=t?t:void 0}),n=await i(a);if(!n.ok)return{data:null,error:n.error};return{data:null!=(r=n.body.data)?r:null,error:null}}catch(e){return{data:null,error:e instanceof Error?e.message:"Failed to record health check"}}}async function d(e){try{let t=await (0,l.hJ)("/api/crm/health-checks?view=incidents",{appTenantId:null!=e?e:void 0}),r=await i(t);if(!r.ok)return{data:[],error:r.error};return{data:Array.isArray(r.body.data)?r.body.data:[],error:null}}catch(e){return{data:[],error:e instanceof Error?e.message:"Failed to load incidents"}}}async function u(e,t){try{var r;let a=await (0,l.hJ)("/api/crm/health-checks",{method:"POST",body:JSON.stringify({kind:"incident",...e}),appTenantId:null!=t?t:void 0}),n=await i(a);if(!n.ok)return{data:null,error:n.error};return{data:null!=(r=n.body.data)?r:null,error:null}}catch(e){return{data:null,error:e instanceof Error?e.message:"Failed to create incident"}}}async function m(e,t){try{var r;let a=await (0,l.hJ)("/api/crm/health-checks",{method:"PATCH",body:JSON.stringify(e),appTenantId:null!=t?t:void 0}),n=await i(a);if(!n.ok)return{data:null,error:n.error};return{data:null!=(r=n.body.data)?r:null,error:null}}catch(e){return{data:null,error:e instanceof Error?e.message:"Failed to update incident"}}
1}async function p(e){try{let t=await (0,l.hJ)("/api/crm/metric-snapshots",{appTenantId:null!=e?e:void 0}),r=await i(t);if(!r.ok)return{data:[],error:r.error};return{data:Array.isArray(r.body.data)?r.body.data:[],error:null}}catch(e){return{data:[],error:e instanceof Error?e.message:"Failed to load metric snapshots"}}}async function f(e,t){try{var r;let a=await (0,l.hJ)("/api/crm/metric-snapshots",{method:"POST",body:JSON.stringify(e),appTenantId:null!=t?t:void 0}),n=await i(a);if(!n.ok)return{data:null,error:n.error};return{data:null!=(r=n.body.data)?r:null,error:null}}catch(e){return{data:null,error:e instanceof Error?e.message:"Failed to record metric snapshot"}}}function x(){let{effectiveTenant:e}=(0,n.M)(),[t,r]=(0,a.useState)([]),[l,i]=(0,a.useState)(null),[x,h]=(0,a.useState)([]),[y,b]=(0,a.useState)([]),[g,v]=(0,a.useState)(!0),[j,w]=(0,a.useState)(null),k=(0,a.useCallback)(async()=>{v(!0),w(null);let[t,a,n,l]=await Promise.all([o(null==e?void 0:e.id),s(30,null==e?void 0:e.id),d(null==e?void 0:e.id),p(null==e?void 0:e.id)]);r(t.data),i(a.data),h(n.data),b(l.data),w(t.error||a.error||n.error||l.error),v(!1)},[null==e?void 0:e.id]);(0,a.useEffect)(()=>{k()},[k]);let T=(0,a.useCallback)(async t=>{let r=await c(t,null==e?void 0:e.id);if(r.error||!r.data){var a;return w(null!=(a=r.error)?a:"Record failed"),!1}return await k(),!0},[null==e?void 0:e.id,k]),S=(0,a.useCallback)(async t=>{let r=await u(t,null==e?void 0:e.id);if(r.error||!r.data){var a;return w(null!=(a=r.error)?a:"Create failed"),!1}return await k(),!0},[null==e?void 0:e.id,k]),N=(0,a.useCallback)(async t=>{let r=await m(t,null==e?void 0:e.id);if(r.error||!r.data){var a;return w(null!=(a=r.error)?a:"Update failed"),!1}return await k(),!0},[null==e?void 0:e.id,k]),A=(0,a.useCallback)(async t=>{let r=await f(t,null==e?void 0:e.id);if(r.error||!r.data){var a;return w(null!=(a=r.error)?a:"Snapshot failed"),!1}return await k(),!0},[null==e?void 0:e.id,k]);return{checks:t,availability:l,incidents:x,snapshots:y,loading:g,error:j,reload:k,recordCheck:T,createIncident:S,updateIncident:N,recordSnapshot:A}}},15750:(e,t,r)=>{"use strict";r.d(t,{i:()=>s});var a=r(14232),n=r(29395),l=r(69801);async function i(e,t,r){try{let a=await (0,l.hJ)("/api/modules/".concat(e,"/domains/").concat(t),{appTenantId:null!=r?r:void 0,signal:"undefined"!=typeof AbortSignal&&"timeout"in AbortSignal?AbortSignal.timeout(12e3):void 0});if(a.ok){let e=await a.json();if(e.success&&e.data)return{data:e.data,source:"aws"}}}catch(e){}return{data:{module:e,domain:t},source:"aws"}}var o=r(47912);function s(e,t){let{effectiveTenant:r}=(0,n.M)(),[l,s]=(0,a.useState)(null),[c,d]=(0,a.useState)(!0),[u,m]=(0,a.useState)("aws");return(0,a.useEffect)(()=>{let a=!1;return d(!0),(0,o.w)(i(e,t,null==r?void 0:r.id),12e3,()=>({data:{module:e,domain:t},source:"aws"})).then(e=>{let{data:t,source:r}=e;a||(s(t),m(r))}).finally(()=>{a||d(!1)}),()=>{a=!0}},[e,t,null==r?void 0:r.id]),{data:l,loading:c,source:u}}},17796:(e,t,r)=>{"use strict";r.d(t,{f:()=>o});var a=r(37876),n=r(50629),l=r(14471),i=r(32411);function o(e){let{loading:t,error:r,empty:o,emptyTitle:s,emptyDescription:c,emptyIcon:d,emptyAction:u,emptyHrefAction:m,onRetry:p,compact:f,children:x}=e,{t:h}=(0,i.Bd)();return t?(0,a.jsxs)("div",{className:"flex flex-col items-center justify-center gap-3 rounded-3xl border border-dashed border-border/60 bg-muted/20 ".concat(f?"px-5 py-10":"px-6 py-14"),children:[(0,a.jsx)(n.A,{className:"h-5 w-5 animate-spin text-muted-foreground"}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:h("crmState.loading")})]}):r?(0,a.jsx)(l.p,{variant:"error",title:h("crmState.errorTitle"),description:r,compact:f,action:p?{label:h("crmState.retry"),onClick:p}:void 0}):o?(0,a.jsx)(l.p,{variant:"no-data",title:null!=s?s:h("crmState.emptyTitle"),description:null!=c?c:h("crmState.emptyDescription"),icon:d,action:u,hrefAction:m,compact:f}):(0,a.jsx)(a.Fragment,{children:x})}},22586:(e,t,r)=>{"use strict";r.d(t,{VF:()=>s,sG:()=>c});var a=r(37876),n=r(14232),l=r(76423),i=r(15565);let o=(0,n.createContext)(!1);function s(e){let{active:t,children:r}=e;return(0,a.jsx)(o.Provider,{value:t,children:r})}function c(e){let{className:t,source:r="aws"}=e;return(0,n.useContext)(o)||"mock"===r?null:(0,a.jsx)(l.E,{variant:"outline",className:(0,i.cn)("text-[10px] font-semibold uppercase tracking-wide","border-emerald-500/40 bg-emerald-500/10 text-emerald-700 dark:text-emerald-300",t),children:"Live data"})}},44372:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});let a=(0,r(18443).A)("SearchX",[["path",{d:"m13.5 8.5-5 5",key:"1cs55j"}],["path",{d:"m8.5 8.5 5 5",key:"a8mexj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]])},47912:(e,t,r)=>{"use strict";function a(e,t,r){return new Promise(a=>{let n=!1,l=setTimeout(()=>{n||(n=!0,a(r()))},t);e.then(e=>{n||(n=!0,clearTimeout(l),a(e))},()=>{n||(n=!0,clearTimeout(l),a(r()))})})}r.d(t,{w:()=>a})},59550:(e,t,r)=>{"use strict";r.d(t,{k:()=>d});var a=r(37876),n=r(77328),l=r.n(n);function i(e){return e.replace(/\/$/,"")}function o(){return i("https://cmoalto.cmogroup.io")}r(65364);let s=o();!function(){let e="https://cmoalto.cmogroup.io";e?i(e):o()}();let c=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/",t=e.startsWith("/")?e:"/".concat(e);return"".concat(s).concat(t)}("/brand/og-image.png");function d(e){let{title:t="CMO ALTO",description:r="CMO ALTO â Global ERP SaaS for enterprise operations, finance, HR, CRM, and more.",image:n=c,url:i=s}=e;return(0,a.jsxs)(l(),{children:[(0,a.jsx)("title",{children:t}),(0,a.jsx)("meta",{name:"description",content:r}),(0,a.jsx)("link",{rel:"icon",href:"/favicon.ico"}),(0,a.jsx)("meta",{property:"og:title",content:t}),(0,a.jsx)("meta",{property:"og:description",content:r}),n&&(0,a.jsx)("meta",{property:"og:image",content:n}),i&&(0,a.jsx)("meta",{property:"og:url",content:i}),(0,a.jsx)("meta",{property:"og:type",content:"website"}),(0,a.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,a.jsx)("meta",{name:"twitter:title",content:t}),(0,a.jsx)("meta",{name:"twitter:description",content:r}),n&&(0,a.jsx)("meta",{name:"twitter:image",content:n})]})}},64453:(e,t,r)=>{"use strict";r.d(t,{OP:()=>i,SS:()=>c,sf:()=>l,yA:()=>d});var a=r(31241);let n={};function l(){for(let e of Object.keys(n))delete n[e]}function i(e){l(),e&&function e(t,r){for(let[a,l]of(r&&(n[r]=t),Object.entries(t))){let t=r?"".concat(r,".").concat(a):a;null===l||"object"!=typeof l||Array.isArray(l)?n[t]=l:e(l,t)}}(e,"")}function o(e){return Object.prototype.hasOwnProperty.call(n,e)}function s(e){if(Array.isArray(e))return[];if(null==e)return e;if("string"==typeof e)return"â";if("number"==typeof e)return 0;if("boolean"==typeof e)return!1;if("object"==typeof e){let t={};for(let[r,a]of Object.entries(e))t[r]=s(a);return t}return e}function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return new Proxy((0,a.t4)()?[]:t,{get(t,r){let a=o(e)?n[e]:t,l=Array.isArray(a)?a:t,i=Reflect.get(l,r);return"function"==typeof i?i.bind(l):i}})}function d(e,t){return new Proxy(t,{get(t,r){if(o(e)){let l=n[e];return l&&"object"==typeof l&&r in l?Reflect.get(l,r):(0,a.t4)()?s(Reflect.get(t,r)):Reflect.get(t,r)}return(0,a.t4)()?s(Reflect.get(t,r)):Reflect.get(t,r)}})}},77328:(e,t,r)=>{e.exports=r(29269)},87256:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>f});var a=r(37876),n=r(32411),l=r(15750),i=r(99108),o=r(44204),s=r(59550),c=r(15687);function d(){let{t:e}=(0,n.Bd)(),{snapshots:t,loading:r,error:l}=(0,c.Y)();return(0,a.jsxs)("div",{className:"rounded-3xl border border-border bg-card p-6",children:[(0,a.jsx)("h1",{className:"text-2xl font-bold",children:e("crmTrust.networkTitle")}),(0,a.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:e("crmTrust.networkSubtitle")}),l?(0,a.jsx)("p",{className:"mt-2 text-sm text-rose-600",children:l}):null,r||l?null:(0,a.jsxs)("p",{className:"mt-3 text-sm tabular-nums",children:[t.length," ",e("crmTrust.ownMetrics")]})]})}var u=r(14232),m=r(17796);function p(){let{t:e}=(0,n.Bd)(),{snapshots:t,loading:r,error:l,reload:i,recordSnapshot:o}=(0,c.Y)(),[s,d]=(0,u.useState)("win_rate"),[p,f]=(0,u.useState)("Win rate"),[x,h]=(0,u.useState)(""),[y,b]=(0,u.useState)("%"),[g,v]=(0,u.useState)(!1),j=async()=>{s.trim()&&p.trim()&&""!==x&&(v(!0),await o({metricKey:s.trim(),metricLabel:p.trim(),metricValue:Number(x),unit:y.trim()}),v(!1),h(""))};return(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:e("crmTrust.ownMetricsDesc")}),(0,a.jsxs)("div",{className:"rounded-2xl border border-border bg-card p-4 space-y-3",children:[(0,a.jsxs)("div",{className:"grid gap-2 sm:grid-cols-2 lg:grid-cols-4",children:[(0,a.jsx)("input",{className:"rounded-xl border border-border px-3 py-2 text-sm",value:s,onChange:e=>d(e.target.value),placeholder:e("crmTrust.metricKey")}),(0,a.jsx)("input",{className:"rounded-xl border border-border px-3 py-2 text-sm",value:p,onChange:e=>f(e.target.value),placeholder:e("crmTrust.metricLabel")}),(0,a.jsx)("input",{className:"rounded-xl border border-border px-3 py-2 text-sm",value:x,onChange:e=>h(e.target.value),placeholder:e("crmTrust.metricValue")}),(0,a.jsx)("input",{className:"rounded-xl border border-border px-3 py-2 text-sm",value:y,onChange:e=>b(e.target.value),placeholder:e("crmTrust.unit")})]}),(0,a.jsx)("button",{disabled:g||""===x,onClick:()=>void j(),className:"rounded-xl bg-primary px-4 py-2 text-sm font-semibold text-primary-foreground disabled:opacity-50",children:e("crmTrust.recordSnapshot")})]}),(0,a.jsx)(m.f,{loading:r,error:l,empty:0===t.length,emptyTitle:e("crmTrust.noEvidenceTitle"),emptyDescription:e("crmTrust.noEvidenceDesc"),onRetry:i,children:(0,a.jsx)("ul",{className:"space-y-2",children:t.map(e=>{var t;let r=(t=Number.isFinite(e.metricValue)?e.metricValue:0)>=67?{bar:"bg-emerald-500",chip:"bg-emerald-500/10 text-emerald-700"}:t>=45?{bar:"bg-blue-500",chip:"bg-blue-500/10 text-blue-700"}
1:{bar:"bg-amber-500",chip:"bg-amber-500/10 text-amber-700"};return(0,a.jsx)("li",{className:"rounded-xl border border-border bg-card p-4",children:(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm font-semibold",children:e.metricLabel}),(0,a.jsxs)("p",{className:"text-[11px] text-muted-foreground",children:[e.metricKey," \xb7 ",e.recordedAt?new Date(e.recordedAt).toLocaleString():"â"]})]}),(0,a.jsxs)("span",{className:"rounded-lg px-2 py-0.5 text-sm font-bold tabular-nums ".concat(r.chip),children:[e.metricValue,e.unit?" ".concat(e.unit):""]})]})},e.id)})})})]})}function f(){let{t:e}=(0,n.Bd)(),{data:t,loading:r,source:c}=(0,l.i)("CRM","intelligence");return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(s.k,{title:e("crmTrust.networkTitle"),description:e("crmTrust.networkSeo")}),(0,a.jsx)(o.e,{title:e("crmTrust.networkTitle"),subtitle:e("crmTrust.networkSubtitle"),children:(0,a.jsx)(i.H,{loading:r,source:c,data:t,children:(0,a.jsxs)("div",{className:"space-y-6 animate-fade-up",children:[(0,a.jsx)(d,{}),(0,a.jsx)(p,{})]})})})]})}},88546:(e,t,r)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/crm/network-insights",function(){return r(87256)}])},99108:(e,t,r)=>{"use strict";r.d(t,{H:()=>d});var a=r(37876),n=r(14232),l=r(22586),i=r(64453);let o=(0,n.createContext)(null);function s(e){let{data:t,children:r}=e;return(0,a.jsx)(o.Provider,{value:t,children:r})}var c=r(32411);function d(e){let{loading:t,source:r,data:o=null,children:d}=e,{t:u}=(0,c.Bd)(),[m,p]=(0,n.useState)(!1);(0,n.useEffect)(()=>{if(!t)return void p(!1);p(!1);let e=window.setTimeout(()=>p(!0),15e3);return()=>window.clearTimeout(e)},[t]);let f=t&&!m;!f&&o&&(0,i.OP)(o),(0,n.useEffect)(()=>()=>(0,i.sf)(),[]);let x=!f&&"aws"===r;return(0,a.jsxs)("div",{className:"space-y-6 animate-fade-up",children:[x&&(0,a.jsx)("div",{className:"flex justify-end",children:(0,a.jsx)(l.sG,{source:r})}),f?(0,a.jsx)("p",{className:"text-sm text-muted-foreground text-center py-12",children:u("common.loadingAurora")}):(0,a.jsx)(l.VF,{active:x,children:(0,a.jsx)(s,{data:o,children:d})})]})}}},e=>{e.O(0,[636,6593,8792],()=>e(e.s=88546)),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.