@aquera/data-visualizer-sdk 0.0.48 → 0.0.49
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/{chunk-KVSXOLEO.js → chunk-3VVGQCYP.js} +1 -1
- package/{chunk-5GNS3MPM.js → chunk-7GDOIRX7.js} +1 -1
- package/{chunk-IAZSKGAG.js → chunk-O7LDXAFX.js} +1 -1
- package/{chunk-OBJJSZII.js → chunk-OUJU3NNJ.js} +1 -1
- package/{chunk-4P72HN3K.js → chunk-PDCFJMLO.js} +345 -345
- package/chunk-PTXXCUF3.js +11 -0
- package/{chunk-7KJ7TKHS.js → chunk-UPG624WF.js} +10 -10
- package/main.js +1 -1
- package/package.json +1 -1
- package/chunk-DA2IMRUE.js +0 -11
package/chunk-DA2IMRUE.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import{$a as ye,A as Bt,Aa as hn,Ab as at,B as Gt,Ba as pn,Bb as Wn,Ca as qe,Da as fe,Ea as un,Fa as mn,G as Ut,H as Ht,Ha as ee,I as jt,Ia as bn,J as Kt,Ja as $e,Ka as _n,L as B,La as fn,M as Zt,N as Qt,O as Fe,P as Jt,Q as Yt,R as Xt,S as it,T as en,Ta as Ve,U as Ne,Ua as yn,V as Le,Va as Cn,X as tn,Z as nn,Za as Be,_a as vn,a as lt,ab as Ge,b as ct,c as Ae,da as an,db as Ue,e as At,eb as xn,fb as wn,g as Wt,ga as ze,gb as Dn,ha as on,hb as G,i as me,ia as rn,ib as Pn,j as be,jb as Mn,kb as Sn,l as V,lb as On,m as Y,mb as kn,n as Rt,nb as En,o as Ft,oa as sn,ob as Tn,pa as dn,q as Nt,qa as ln,qb as Ce,ra as cn,rb as He,s as Lt,sa as gn,t as zt,u as qt,v as _e,vb as In,w as $t,x as Vt,yb as je,z as X,zb as An}from"./chunk-4P72HN3K.js";import{c as nt,d as We,f as Oe,g as Re}from"./chunk-XUJBDACP.js";import{$ as Te,Ab as m,B as ht,Bb as wt,Cb as Dt,Db as Pt,Eb as Me,Fb as O,Jb as f,Ka as Ye,Kb as Mt,Lb as c,Na as ft,O as $,Oa as l,Ob as Ie,Pb as Q,Qb as J,R as pt,S as ut,T as u,Tb as St,Ub as Xe,Vb as et,W as mt,Wa as yt,Xb as h,Y as C,Yb as q,Z as v,Zb as z,_ as De,_b as Se,ab as Pe,ca as de,d as he,ea as I,eb as Ct,ec as Ot,fa as bt,fb as j,fc as kt,gc as tt,hb as vt,ia as _t,ic as Et,ja as g,jc as Tt,kb as ne,ma as S,p as T,pc as It,qb as N,qc as w,ra as pe,rb as b,sb as _,tb as ue,tc as ae,ub as xt,uc as k,vb as K,wb as Z,xb as x,y as gt,yb as r,zb as d}from"./chunk-NLJHXQFB.js";import{a as D,b as E,d as ge}from"./chunk-ZW5NV4UO.js";var ot="__dvDashboardsBusHub__";function Rn(){return typeof window>"u"?new he:(window[ot]||(window[ot]=new he),window[ot])}var oe=class a{changes$=Rn().asObservable();notifyChanged(){Rn().next()}static \u0275fac=function(t){return new(t||a)};static \u0275prov=$({token:a,factory:a.\u0275fac,providedIn:"root"})};var te=["create","view","update","delete"],Bn=[{id:"dashboard",name:"Dashboard",actions:te,extras:[{key:"publish",label:"Publish"}]},{id:"report",name:"Reports",actions:te,extras:[{key:"run",label:"Run"},{key:"export",label:"Export"}]},{id:"askAquera",name:"Ask Aquera",actions:te,extras:[{key:"query",label:"Query"}]},{id:"story",name:"Stories",actions:te,extras:[{key:"publish",label:"Publish"},{key:"export",label:"Export"}]},{id:"dataset",name:"Dataset",actions:te,extras:[]},{id:"connection",name:"Connection",actions:te,extras:[{key:"test",label:"Test"}]},{id:"integration",name:"Pipelines",actions:te,extras:[{key:"run",label:"Run"}]},{id:"alertNotification",name:"Alerts & Notifications",actions:te,extras:[{key:"configureChannels",label:"Configure Channels"}]},{id:"auditLog",name:"Audit Log",actions:["view"],extras:[{key:"export",label:"Export"}]},{id:"user",name:"User Management",actions:te,extras:[]},{id:"role",name:"Role Management",actions:te,extras:[]},{id:"agentAccess",name:"Agent & MCP Access",actions:te,extras:[]}],rt="owner.transferOwnership";function Gn(){let a=[];for(let e of Bn){for(let t of e.actions)a.push(`${e.id}.${t}`);for(let t of e.extras)a.push(`${e.id}.${t.key}`)}return a.push(rt),a}var Un=new Set(Gn()),Hn={reports:"report",stories:"story",ask_aquera:"askAquera",audit_log:"auditLog",user_management:"user",role_management:"role",pipelines:"integration",alerts_notifications:"alertNotification",agent_mcp_access:"agentAccess"},jn={edit:"update",configurechannels:"configureChannels"},Kn={pipeline:["connection","dataset","integration"],transform:["dataset"]},Zn=["create","view","update","delete"];function Qn(a){if(typeof a!="string")return null;let e=a.indexOf(".");if(e===-1)return null;let t=a.slice(0,e),n=a.slice(e+1),i=Hn[t]??t,o=jn[n.toLowerCase()]??n,s=`${i}.${o}`;return Un.has(s)?s:null}function Jn(a){for(let[e,t]of Object.entries(Kn))for(let n of Zn)t.some(i=>a.has(`${i}.${n}`))&&a.add(`${e}.${n}`);return a}function Fn(a){let e=new Set;if(!Array.isArray(a))return e;for(let t of a){let n=Qn(t);n&&e.add(n)}return Jn(e)}var re=class a{http=u(Y);tokenStore=u(B);injectedBaseUrl=u(Le,{optional:!0})??"";get baseUrl(){return Qt()||this.injectedBaseUrl}permissions=g(new Set);roleSystemKey=g(null);roleName=g(null);loaded=g(!1);isOwner=w(()=>this.roleSystemKey()==="owner");inflight=null;inflightTenant=null;revalidatedForTenant=null;lastTenant=null;constructor(){S(()=>{let e=this.tokenStore.tenantId();if(!e){this.lastTenant&&(this.lastTenant=null,this.clear(),this.purgeCache());return}this.lastTenant&&this.lastTenant!==e&&this.clear(),this.lastTenant=e,this.hydrateFromCache(e),this.load(e)})}has(e){let t=e==="user.invite"?"user.create":e;return this.permissions().has(t)}ensureLoaded(){let e=this.tokenStore.tenantId();return!e||this.loaded()&&this.revalidatedForTenant===e?Promise.resolve():this.load(e)}load(e){return this.revalidatedForTenant===e&&this.loaded()?Promise.resolve():this.inflight&&this.inflightTenant===e?this.inflight:(this.inflightTenant=e,this.inflight=this.fetch(e).finally(()=>{this.inflight=null,this.inflightTenant=null}),this.inflight)}reload(){this.revalidatedForTenant=null;let e=this.tokenStore.tenantId();return e?this.load(e):Promise.resolve()}canonicalTenantId(e){let t=/^ten_(.+)$/i.exec(e.trim());return t?`ten_${t[1].toUpperCase()}`:e}async fetchViaConsole(e){let t=X.CONSOLE_API_URL,n=X.CONSOLE_WFI_PRODUCT_ID,i=X.CONSOLE_WFI_PRODUCT_NAME??"workforce_intelligence";if(!t)throw new Error("CONSOLE_API_URL is not configured for this environment");let o=this.canonicalTenantId(e),[s,p]=await Promise.all([it("customer_console_list_user_product_permissions",{productName:i,tenantId:o},t),it("customer_console_get_user_product_roles",{tenantId:o},t)]),y=Fn(s?.permissionKeys),A=p?.products??[],F=M=>String(M).toLowerCase().replace(/&/g,"").replace(/[^a-z0-9]+/g,"_").replace(/^_|_$/g,""),W=A.find(M=>n?M.productId===n:F(M.productName)===i)?.roles?.[0]?.roleName??null;return W==="owner"&&y.add(rt),{permissions:[...y],systemKey:W,roleName:W}}async fetch(e){let t=Fe();if(!t){this.clear();return}try{let n,i,o;if(X.SSO_ENABLED)({permissions:n,systemKey:i,roleName:o}=await this.fetchViaConsole(e));else{let s=`${this.baseUrl}/api/customers/${e}/products/${t}/workforce/access-control/me/permissions`,p=await T(this.http.get(s));n=p?.data?.permissions??[],i=p?.data?.role?.systemKey??null,o=p?.data?.role?.name??null}this.permissions.set(new Set(n)),this.roleSystemKey.set(i),this.roleName.set(o),this.loaded.set(!0),this.revalidatedForTenant=e,this.writeCache(e,{permissions:n,systemKey:i,roleName:o})}catch{this.dropCache(e),this.clear()}}clear(){this.permissions.set(new Set),this.roleSystemKey.set(null),this.roleName.set(null),this.loaded.set(!1),this.revalidatedForTenant=null}cacheKey(e){let t=Kt(this.tokenStore.idToken()??this.tokenStore.accessToken());return t?`wfi.perms.${t}.${e}`:null}hydrateFromCache(e){if(this.loaded())return;let t=this.cacheKey(e);if(t)try{let n=sessionStorage.getItem(t);if(!n)return;let i=JSON.parse(n);if(!Array.isArray(i?.permissions))return;this.permissions.set(new Set(i.permissions)),this.roleSystemKey.set(i.systemKey??null),this.roleName.set(i.roleName??null),this.loaded.set(!0)}catch{}}writeCache(e,t){let n=this.cacheKey(e);if(n)try{sessionStorage.setItem(n,JSON.stringify(t))}catch{}}dropCache(e){let t=this.cacheKey(e);if(t)try{sessionStorage.removeItem(t)}catch{}}purgeCache(){try{let e=[];for(let t=0;t<sessionStorage.length;t++){let n=sessionStorage.key(t);n?.startsWith("wfi.perms.")&&e.push(n)}for(let t of e)sessionStorage.removeItem(t)}catch{}}static \u0275fac=function(t){return new(t||a)};static \u0275prov=$({token:a,factory:a.\u0275fac,providedIn:"root"})};var ce=class a{templateRef=u(yt);viewContainer=u(Pe);perms=u(re);viewRef=null;key="";constructor(){this.perms.ensureLoaded(),S(()=>{this.perms.permissions(),this.render()})}set hasPermission(e){this.key=e,this.render()}render(){let e=!!this.key&&this.perms.has(this.key);e&&!this.viewRef?this.viewRef=this.viewContainer.createEmbeddedView(this.templateRef):!e&&this.viewRef&&(this.viewContainer.clear(),this.viewRef=null)}ngOnDestroy(){this.viewContainer.clear(),this.viewRef=null}static \u0275fac=function(t){return new(t||a)};static \u0275dir=vt({type:a,selectors:[["","hasPermission",""]],inputs:{hasPermission:"hasPermission"}})};function Yn(){return{enabled:!0,ask:!0,changeChartType:!0,manageFilters:!0,customizeColors:!0,chartData:!0,setAlert:!0,forecast:!0,addToStory:!0,exportPng:!0,exportCsv:!0,print:!0,tweak:!0,edit:!0,delete:!0}}function Xn(){return{mcpGateway:X.MCP_GATEWAY_ENABLED??!1,create:!0,categoryFilter:!0,delete:!0,askAquera:!0,builder:!0,widgetMenu:Yn()}}function st(){return{baseUrl:X.baseUrl??"",mcpUrl:X.MCP_URL??null,tokenizedOrigins:[X.baseUrl].filter(a=>!!a),headers:{},customerId:null,productId:null,productName:null,authMode:"inherit",authToken:null,getToken:null,resolvedToken:null,onUnauthorized:null,ssoEnabled:X.SSO_ENABLED??!1,features:Xn(),ui:{theme:"light",density:"comfortable",header:!0,canvasBackgroundColor:null,locale:"en",autoHeight:!1},hrefs:{askAquera:"/ask-aquera",builder:"/manage-dashboards"},initialDashboardId:null,initialDatasource:null,initialCreateDashboard:!1,initialTool:null}}var Nn=zt("manageDashboards",st),ie=new pt("MANAGE_DASHBOARDS_CONFIG",{factory:()=>ei}),Ln=g(0),ei=w(()=>(Ln(),Nn.read()));function zn(){let a=qt(Nn,st());return{config:a.config,set:e=>{let t=a.set(e);return Ln.update(n=>n+1),t}}}function qn(a){let e=st(),t=E(D(D({},e),_e(a)),{features:E(D(D({},e.features),_e(a.features??{})),{widgetMenu:D(D({},e.features.widgetMenu),_e(a.features?.widgetMenu??{}))}),ui:D(D({},e.ui),_e(a.ui??{})),hrefs:D(D({},e.hrefs),_e(a.hrefs??{})),headers:D(D({},e.headers),a.headers??{})});return a.tokenizedOrigins||(t.tokenizedOrigins=[t.baseUrl,t.mcpUrl].filter(n=>!!n)),t}var L=class a{config=u(ie);get baseUrl(){return this.config().baseUrl}get MCP_URL(){return this.config().mcpUrl??""}get MCP_GATEWAY_ENABLED(){return this.config().features.mcpGateway}get SSO_ENABLED(){return this.config().ssoEnabled}getCustomerId(){return this.config().customerId??Ht("_TenantID")??""}getProductId(){return this.config().productId??""}static \u0275fac=function(t){return new(t||a)};static \u0275prov=$({token:a,factory:a.\u0275fac})};var $n=50;var U=class a{manageDashboardsConfig=u(ie);requests$=new he;requests=this.requests$.asObservable();listState$=new he;listState=this.listState$.asObservable();reportListState(e){this.listState$.next(e)}dashboardId=g(null);datasource=g(null);search=g("");page=g(1);pageSize=g(50);category=g(null);applyListView(e){if(Number.isInteger(e.page)&&e.page>=1&&this.page.set(e.page),Number.isInteger(e.pageSize)&&e.pageSize>=1&&this.pageSize.set(e.pageSize),e.category!==void 0){let t=An.some(n=>n.id===e.category);this.category.set(t?e.category:null)}}createDashboardRequest=g(0);initialTool=g(null);openTool(e){this.initialTool.set(e)}openDashboard(e){let t=this.manageDashboardsConfig();if(!t.features.builder){this.requests$.next({to:`${t.hrefs.builder}/${e}`});return}this.dashboardId.set(e)}exitToList(){this.dashboardId.set(null)}requestCreateDashboard(){this.createDashboardRequest.update(e=>e+1)}selectDatasource(e){this.datasource.set(e)}toAskAquera(){this.requests$.next({to:this.manageDashboardsConfig().hrefs.askAquera})}toAskAqueraDashboard(e,t){this.requests$.next({to:`${this.manageDashboardsConfig().hrefs.askAquera}/dashboard/${e}`,queryParams:t})}static \u0275fac=function(t){return new(t||a)};static \u0275prov=$({token:a,factory:a.\u0275fac})};var ve=class a{deleteClick=new I;static \u0275fac=function(t){return new(t||a)};static \u0275cmp=j({type:a,selectors:[["dash-card-delete-action"]],outputs:{deleteClick:"deleteClick"},decls:2,vars:0,consts:[["role","button","tabindex","0","aria-label","Delete dashboard",1,"dash-card__action",3,"mousedown","click"],["name","ng-trash-01","method","stroke","size","14","color","#d92d20"]],template:function(t,n){t&1&&(wt(0,"span",0),Mt("mousedown",function(o){return o.stopPropagation()})("click",function(o){return o.stopPropagation(),n.deleteClick.emit(o)}),Pt(1,"nile-glyph",1),Dt())},styles:["[_nghost-%COMP%]{display:contents}.dash-card__action-wrap[_ngcontent-%COMP%]{display:contents}"]})};var ti=(a,e)=>e.id;function ni(a,e){if(a&1){let t=O();r(0,"div",1)(1,"span",11),h(2,"Category"),d(),r(3,"shared-category-filter-row",12),f("selectionChange",function(i){C(t);let o=c();return v(o.onCategoryChange(i))}),d()()}if(a&2){let t=c();l(3),x("selected",t.selectedCategory())}}function ii(a,e){if(a&1&&m(0,"nile-skeleton-loader",16),a&2){let t=e.$implicit;N("height",t)}}function ai(a,e){if(a&1&&(r(0,"div",13)(1,"div",14)(2,"div",15),K(3,ii,1,1,"nile-skeleton-loader",16,ue),d()(),r(5,"div",17)(6,"div",18),m(7,"nile-skeleton-loader",19),d(),r(8,"div",20),m(9,"nile-skeleton-loader",21),d()()()),a&2){let t=c(2);l(3),Z(t.skeletonBarHeights)}}function oi(a,e){if(a&1&&(r(0,"div",3),K(1,ai,10,0,"div",13,ue),d()),a&2){let t=c();l(),Z(t.skeletonSlots)}}function ri(a,e){if(a&1){let t=O();r(0,"nile-button",71),f("click",function(){C(t);let i=c(3);return v(i.openCreate())}),m(1,"nile-glyph",72),h(2," Create dashboard "),d()}}function si(a,e){a&1&&ne(0,ri,3,0,"nile-button",70),a&2&&x("hasPermission","dashboard.create")}function di(a,e){if(a&1&&(r(0,"div",4)(1,"div",22),De(),r(2,"svg",23)(3,"defs")(4,"linearGradient",24),m(5,"stop",25)(6,"stop",26),d()(),m(7,"rect",27)(8,"line",28)(9,"line",29)(10,"circle",30)(11,"circle",31)(12,"circle",32)(13,"circle",33)(14,"circle",34)(15,"circle",35)(16,"path",36),r(17,"circle",37),m(18,"animate",38),d(),r(19,"circle",39),m(20,"animate",40),d(),m(21,"rect",41)(22,"rect",42)(23,"rect",43)(24,"rect",44)(25,"rect",45)(26,"rect",46)(27,"rect",47)(28,"rect",48)(29,"rect",49)(30,"rect",50),r(31,"rect",51),m(32,"animate",52)(33,"animate",53),d(),r(34,"rect",54),m(35,"animate",55)(36,"animate",56),d(),r(37,"rect",57),m(38,"animate",58)(39,"animate",59),d(),r(40,"rect",60),m(41,"animate",61)(42,"animate",62),d(),r(43,"path",63),m(44,"animate",64),d(),r(45,"circle",65),m(46,"animate",66),d()()(),Te(),r(47,"h2",67),h(48,"Build your first dashboard"),d(),r(49,"p",68),h(50," Dashboards bring your data to life with charts, KPIs, and tables. Create one to start exploring. "),d(),b(51,si,1,1,"nile-button",69),d()),a&2){let t=c();l(51),_(t.features().create?51:-1)}}function li(a,e){a&1&&(r(0,"div",5)(1,"h2",67),h(2,"No dashboards match your search"),d(),r(3,"p",68),h(4,"Try a different name or clear the search to see all dashboards."),d()())}function ci(a,e){if(a&1&&(r(0,"span",77),m(1,"nile-glyph",86),h(2),d()),a&2){let t=c().$implicit;l(2),Se(" ",t.widgetCount," widget",t.widgetCount===1?"":"s"," ")}}function gi(a,e){if(a&1&&(r(0,"span",87),h(1),d()),a&2){let t=e.$implicit,n=c(4);l(),q(n.dashboardCategoryLabel(t))}}function hi(a,e){if(a&1&&(r(0,"nile-tooltip",88)(1,"span",89),h(2),d()()),a&2){let t=c(2).$implicit,n=c(2);x("content",n.hiddenCategoryLabels(t)),l(),N("aria-label",n.hiddenCategoryAriaLabel(t)),l(),z("+",n.hiddenCategoryCount(t))}}function pi(a,e){if(a&1&&(r(0,"span",78),K(1,gi,2,1,"span",87,xt),b(3,hi,3,3,"nile-tooltip",88),d()),a&2){let t=c().$implicit,n=c(2);l(),Z(n.visibleCategories(t)),l(2),_(n.hiddenCategoryCount(t)>0?3:-1)}}function ui(a,e){if(a&1&&(r(0,"div",79),m(1,"db-dash-card-chart",90),d()),a&2){let t=c().$implicit;l(),x("config",t.firstWidget.config)}}function mi(a,e){a&1&&(r(0,"div",80)(1,"div",91),m(2,"span",92)(3,"span",93)(4,"span",94)(5,"span",95)(6,"span",96),d()())}function bi(a,e){if(a&1){let t=O();r(0,"span",97),f("mousedown",function(i){return i.stopPropagation()})("click",function(i){C(t);let o=c().$implicit,s=c(2);return v(s.onCardEditClick(i,o))}),m(1,"nile-glyph",98),d()}}function _i(a,e){if(a&1){let t=O();r(0,"dash-card-delete-action",100),f("deleteClick",function(i){C(t);let o=c(2).$implicit,s=c(2);return v(s.onCardDeleteClick(i,o.id))}),d()}}function fi(a,e){a&1&&ne(0,_i,1,0,"dash-card-delete-action",99),a&2&&x("hasPermission","dashboard.delete")}function yi(a,e){if(a&1&&(r(0,"span",84),h(1),d()),a&2){let t=c().$implicit,n=c(2);l(),z("Updated ",n.computeRelativeTime(t.updatedAt))}}function Ci(a,e){a&1&&(r(0,"span",85)(1,"nile-badge",101),h(2,"Auto-generated"),d()())}function vi(a,e){if(a&1&&(r(0,"span",85)(1,"nile-badge"),h(2),d()()),a&2){let t=c().$implicit;l(),N("variant",t.status==="published"?"blue":"warning"),l(),z(" ",t.status==="published"?"Published":"Draft"," ")}}function xi(a,e){if(a&1){let t=O();r(0,"div",76),f("click",function(){let i=C(t).$implicit,o=c(2);return v(o.onCardClick(i.id))})("keydown.enter",function(){let i=C(t).$implicit,o=c(2);return v(o.onCardClick(i.id))}),r(1,"div",14),b(2,ci,3,2,"span",77),b(3,pi,4,1,"span",78),b(4,ui,2,1,"div",79)(5,mi,7,0,"div",80),d(),r(6,"div",17)(7,"div",18)(8,"span",81),h(9),d(),r(10,"span",82),ne(11,bi,2,0,"span",83),b(12,fi,1,1,"dash-card-delete-action"),d()(),r(13,"div",20),b(14,yi,2,1,"span",84),b(15,Ci,3,0,"span",85)(16,vi,3,2,"span",85),d()()()}if(a&2){let t=e.$implicit,n=c(2);l(2),_(t.widgetCount!==void 0?2:-1),l(),_(n.visibleCategories(t).length?3:-1),l(),_(t.firstWidget?4:5),l(4),x("title",t.name),l(),q(t.name),l(2),x("hasPermission","dashboard.update"),l(),_(n.features().delete?12:-1),l(2),_(t.updatedAt?14:-1),l(),_(t.isAutoGenerated?15:t.status?16:-1)}}function wi(a,e){if(a&1){let t=O();r(0,"div",73),K(1,xi,17,9,"div",74,ti),d(),r(3,"nile-pagination",75),f("nile-change",function(i){C(t);let o=c();return v(o.onPageChange(i))}),d()}if(a&2){let t=c();l(),Z(t.dashboards()),l(2),N("totalitems",t.totalCount())("currentpage",t.currentPage())("pagesize",t.pageSize())}}function Di(a,e){if(a&1&&(h(0," Delete "),r(1,"strong"),h(2),d(),h(3,"? This action cannot be undone. ")),a&2){let t=c();l(2),q(t.pendingDeleteName())}}function Pi(a,e){a&1&&h(0," Delete this dashboard? This action cannot be undone. ")}var Ke=class a{manageDashboardsConfig=u(ie);environment=u(L);http=u(Y);nav=u(U);tokenStore=u(B);publishRepo=u(G);dashboardsBus=u(oe);routeProgress=u($e);destroyRef=u(de);hostEl=u(pe);dashboards=g([]);features(){return this.manageDashboardsConfig().features}search=this.nav.search;selectedCategory=this.nav.category;dashboardCategoryLabel=at;static MAX_VISIBLE_CATEGORIES=2;visibleCategories(e){return(e.category??[]).slice(0,a.MAX_VISIBLE_CATEGORIES)}hiddenCategoryCount(e){return Math.max(0,(e.category?.length??0)-a.MAX_VISIBLE_CATEGORIES)}hiddenCategoryLabels(e){return(e.category??[]).slice(a.MAX_VISIBLE_CATEGORIES).map(t=>at(t)).filter(t=>!!t).join(", ")}hiddenCategoryAriaLabel(e){let t=this.hiddenCategoryLabels(e),n=this.hiddenCategoryCount(e);return t?`${n} more categor${n===1?"y":"ies"}: ${t}`:`${n} more categor${n===1?"y":"ies"}`}onCategoryChange(e){this.selectedCategory.set(e),this.currentPage.set(1)}pageSize=this.nav.pageSize;currentPage=this.nav.page;totalCount=g(0);reloadRequest=g(0);searchDebounceHandle;watchSearch(){let e=!0;S(()=>{if(this.nav.search(),e){e=!1;return}clearTimeout(this.searchDebounceHandle),this.searchDebounceHandle=setTimeout(()=>{this.currentPage.set(1),this.reloadRequest.update(t=>t+1)},300)})}watchListView(){S(()=>{this.currentPage(),this.pageSize(),this.selectedCategory(),this.reloadRequest(),It(()=>{this.loadDashboards()})})}onPageChange(e){let t=e.detail;t&&(typeof t.pageSize=="number"&&t.pageSize!==this.pageSize()?(this.pageSize.set(t.pageSize),this.currentPage.set(1)):typeof t.page=="number"&&t.page!==this.currentPage()&&this.currentPage.set(t.page))}isLoading=g(!0);skeletonSlots=Array.from({length:8});skeletonBarHeights=[42,70,95,57,79];pendingDeleteId=g(null);isDeleting=g(!1);pendingDeleteName=w(()=>{let e=this.pendingDeleteId();return e?this.dashboards().find(t=>t.id===e)?.name??"":""});constructor(){this.watchSearch(),this.watchListView(),this.watchListState(),this.destroyRef.onDestroy(Ne(()=>this.repaintPreviews()))}repaintPreviews(){let e=this.hostEl.nativeElement;this.dashboards.update(t=>t.map(n=>n.previewWidget?E(D({},n),{firstWidget:Ce(n.previewWidget,e)}):n))}watchListState(){S(()=>{this.nav.reportListState({total:this.totalCount(),shown:this.dashboards().length,loading:this.isLoading(),search:this.nav.search(),category:this.selectedCategory(),page:this.currentPage(),pageSize:this.pageSize()})})}get customerId(){return this.tokenStore.tenantId()??""}get productId(){return Fe()}async loadDashboards(){let e=this.customerId;if(e){this.isLoading.set(!0);try{let t=(this.currentPage()-1)*this.pageSize(),n=new URLSearchParams({limit:String(this.pageSize()),offset:String(t)}),i=this.search().trim();i&&n.set("search",i);let o=this.selectedCategory();o&&n.set("category",o);let s=await this.routeProgress.track(T(this.http.get(`${this.environment.baseUrl}/api/customers/${e}/products/${this.productId}/workforce/dashboards?${n.toString()}`))),p=s?.data??s??[],y=s?.pagination?.total??p.length;if(this.totalCount.set(y),p.length===0&&this.currentPage()>1&&t>=y){this.currentPage.set(Math.max(1,Math.ceil(y/this.pageSize())));return}await Ge(p.map(P=>P.previewWidget).filter(P=>!!P));let A=new Map(this.dashboards().map(P=>[P.id,P])),F=p.map(P=>{let W=A.get(P.id),M=Ce(P.previewWidget??void 0,this.hostEl.nativeElement),R=Mi(W?.firstWidget,M)?W?.firstWidget:M;return{id:P.id,name:P.name,updatedAt:P.updatedAt??W?.updatedAt,widgetCount:P.widgetCount,firstWidget:R,previewWidget:P.previewWidget,status:P.version??P.status??W?.status,isAutoGenerated:P.isAutoGenerated??W?.isAutoGenerated,category:P.category??W?.category}});this.dashboards.set(F)}catch(t){console.error("[all-dashboards-page] load failed",t)}finally{this.isLoading.set(!1)}}}computeRelativeTime(e){if(!e)return"";let t=new Date(e).getTime();if(!t)return"";let n=Date.now()-t,i=Math.round(n/6e4);if(i<1)return"just now";if(i<60)return`${i} min${i===1?"":"s"} ago`;let o=Math.round(i/60);if(o<24)return`${o} hour${o===1?"":"s"} ago`;let s=Math.round(o/24);if(s<30)return`${s} day${s===1?"":"s"} ago`;let p=Math.round(s/30);if(p<12)return`${p} month${p===1?"":"s"} ago`;let y=Math.round(p/12);return`${y} year${y===1?"":"s"} ago`}onCardClick(e){this.pendingDeleteId()||this.nav.openDashboard(e)}onCardEditClick(e,t){e.stopPropagation(),this.nav.openDashboard(t.id)}onCardDeleteClick(e,t){e.stopPropagation(),this.pendingDeleteId.set(t)}cancelDelete(){this.isDeleting()||this.pendingDeleteId.set(null)}async confirmDelete(){let e=this.pendingDeleteId();if(e){this.isDeleting.set(!0);try{await this.publishRepo.deleteDashboard(e),this.dashboardsBus.notifyChanged(),await this.loadDashboards()}catch(t){console.error("[all-dashboards-page] delete failed",t)}finally{this.isDeleting.set(!1),this.pendingDeleteId.set(null)}}}openCreate(){this.nav.toAskAquera()}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=j({type:a,selectors:[["db-all-dashboards-page"]],decls:16,vars:7,consts:[[1,"all-dashboards-page","nile-theme-nxtgen"],[1,"all-dashboards-page__category-bar"],[1,"all-dashboards-page__body"],["aria-hidden","true",1,"all-dash-grid"],[1,"dash-empty-state"],[1,"dash-empty-state","dash-empty-state--search"],["label","Delete Dashboard",3,"nile-request-close","open"],[1,"layout-warning-text"],["slot","footer",1,"layout-popup-footer"],["variant","tertiary","size","small",3,"click"],["variant","primary","size","small",3,"click"],[1,"all-dashboards-page__category-label"],[3,"selectionChange","selected"],[1,"dash-card","dash-card--skeleton"],[1,"dash-card__preview"],[1,"dash-skeleton__bars"],["variant","rectangular","width","40",1,"dash-skeleton__bar"],[1,"dash-card__body"],[1,"dash-card__title-row"],["variant","text","width","70%","height","14"],[1,"dash-card__meta"],["variant","text","width","40%","height","12"],[1,"dash-empty-state__graphic"],["viewBox","0 0 380 140","aria-hidden","true","preserveAspectRatio","xMidYMid meet"],["id","dashFlowPage","x1","78","y1","70","x2","170","y2","70","gradientUnits","userSpaceOnUse"],["offset","0%","stop-color","#BFD7E9","stop-opacity","0.4"],["offset","100%","stop-color","#005EA6","stop-opacity","0.9"],["x","20","y","36","width","58","height","68","rx","6","fill","#fff","stroke","#C7CED4"],["x1","20","y1","50","x2","78","y2","50","stroke","#E6E9EB"],["x1","49","y1","36","x2","49","y2","104","stroke","#E6E9EB"],["cx","34","cy","62","r","2","fill","#80AED3"],["cx","64","cy","62","r","2","fill","#80AED3"],["cx","34","cy","76","r","2","fill","#80AED3"],["cx","64","cy","76","r","2","fill","#80AED3"],["cx","34","cy","90","r","2","fill","#80AED3"],["cx","64","cy","90","r","2","fill","#80AED3"],["d","M 78 70 L 170 70","fill","none","stroke","url(#dashFlowPage)","stroke-width","3","stroke-linecap","round","stroke-dasharray","4 4"],["cx","100","cy","70","r","3","fill","#005EA6"],["attributeName","cx","from","78","to","170","dur","2s","repeatCount","indefinite"],["cx","120","cy","70","r","3","fill","#80AED3","opacity","0.7"],["attributeName","cx","from","78","to","170","dur","2s","begin","0.6s","repeatCount","indefinite"],["x","170","y","22","width","190","height","96","rx","8","fill","#fff","stroke","#80AED3","stroke-width","1.5"],["x","180","y","32","width","48","height","22","rx","4","fill","#E6EFF6"],["x","184","y","38","width","22","height","3","rx","1.5","fill","#80AED3"],["x","184","y","44","width","14","height","5","rx","1.5","fill","#005EA6"],["x","234","y","32","width","48","height","22","rx","4","fill","#E6EFF6"],["x","238","y","38","width","22","height","3","rx","1.5","fill","#80AED3"],["x","238","y","44","width","14","height","5","rx","1.5","fill","#005EA6"],["x","288","y","32","width","62","height","22","rx","4","fill","#E6EFF6"],["x","292","y","38","width","22","height","3","rx","1.5","fill","#80AED3"],["x","292","y","44","width","14","height","5","rx","1.5","fill","#005EA6"],["x","180","y","86","width","6","height","22","rx","1","fill","#005EA6","opacity","0.7"],["attributeName","height","values","22;14;22","dur","1.8s","repeatCount","indefinite"],["attributeName","y","values","86;94;86","dur","1.8s","repeatCount","indefinite"],["x","192","y","80","width","6","height","28","rx","1","fill","#005EA6"],["attributeName","height","values","28;20;28","dur","1.8s","begin","0.2s","repeatCount","indefinite"],["attributeName","y","values","80;88;80","dur","1.8s","begin","0.2s","repeatCount","indefinite"],["x","204","y","76","width","6","height","32","rx","1","fill","#005EA6","opacity","0.85"],["attributeName","height","values","32;24;32","dur","1.8s","begin","0.4s","repeatCount","indefinite"],["attributeName","y","values","76;84;76","dur","1.8s","begin","0.4s","repeatCount","indefinite"],["x","216","y","84","width","6","height","24","rx","1","fill","#005EA6","opacity","0.6"],["attributeName","height","values","24;16;24","dur","1.8s","begin","0.6s","repeatCount","indefinite"],["attributeName","y","values","84;92;84","dur","1.8s","begin","0.6s","repeatCount","indefinite"],["d","M 250 102 L 268 92 L 286 96 L 304 84 L 322 88 L 340 76","fill","none","stroke","#005EA6","stroke-width","1.5","stroke-linecap","round","stroke-linejoin","round"],["attributeName","stroke-dasharray","values","0 200;200 200","dur","2.4s","repeatCount","indefinite"],["cx","340","cy","76","r","3","fill","#005EA6"],["attributeName","opacity","values","0;1;1;0","dur","2.4s","repeatCount","indefinite"],[1,"dash-empty-state__title"],[1,"dash-empty-state__desc"],["variant","primary","size","medium"],["variant","primary","size","medium",3,"click",4,"hasPermission"],["variant","primary","size","medium",3,"click"],["slot","prefix","name","ng-plus","method","stroke","size","14","color","#fff"],[1,"all-dash-grid"],["role","button","tabindex","0",1,"dash-card"],["variant","fluid","pagesizeoptions","[25,50,100]",1,"all-dashboards-page__pagination",3,"nile-change"],["role","button","tabindex","0",1,"dash-card",3,"click","keydown.enter"],[1,"dash-card__chip"],[1,"dash-card__cats"],["aria-hidden","true",1,"dash-card__widget"],["aria-hidden","true",1,"dash-card__empty"],[1,"dash-card__name",3,"title"],[1,"dash-card__actions"],["class","dash-card__action","role","button","tabindex","0","aria-label","Edit dashboard",3,"mousedown","click",4,"hasPermission"],[1,"dash-card__meta-item"],[1,"dash-card__status"],["name","ng-grid-01","size","10","method","stroke"],[1,"dash-card__cat"],["placement","bottom","hoist","",3,"content"],[1,"dash-card__cat","dash-card__cat--more"],[3,"config"],[1,"dash-card__empty-bars"],[2,"height","38%"],[2,"height","64%"],[2,"height","86%"],[2,"height","52%"],[2,"height","72%"],["role","button","tabindex","0","aria-label","Edit dashboard",1,"dash-card__action",3,"mousedown","click"],["name","ng-edit-02","method","stroke","size","14","color","var(--ng-colors-border-brand)"],[3,"deleteClick",4,"hasPermission"],[3,"deleteClick"],["variant","purple"]],template:function(t,n){t&1&&(r(0,"div",0),b(1,ni,4,1,"div",1),r(2,"div",2),b(3,oi,3,0,"div",3)(4,di,52,1,"div",4)(5,li,5,0,"div",5)(6,wi,4,3),d(),r(7,"nile-dialog",6),f("nile-request-close",function(o){return o.stopPropagation(),n.cancelDelete()}),r(8,"p",7),b(9,Di,4,1)(10,Pi,1,0),d(),r(11,"div",8)(12,"nile-button",9),f("click",function(){return n.cancelDelete()}),h(13," Cancel "),d(),r(14,"nile-button",10),f("click",function(){return n.confirmDelete()}),h(15),d()()()()),t&2&&(l(),_(n.features().categoryFilter?1:-1),l(2),_(n.isLoading()&&n.dashboards().length===0?3:n.dashboards().length===0&&!n.search().trim()?4:n.dashboards().length===0&&n.search().trim()?5:6),l(4),x("open",!!n.pendingDeleteId()),l(2),_(n.pendingDeleteName()?9:10),l(3),N("disabled",n.isDeleting()?"":null),l(2),N("disabled",n.isDeleting()?"":null),l(),z(" ",n.isDeleting()?"Deleting\u2026":"Delete"," "))},dependencies:[me,He,ce,ve,Wn],styles:['@charset "UTF-8";[_nghost-%COMP%]{display:block;height:100%}.all-dashboards-page[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;background:var(--ng-colors-bg-secondary);font-family:var(--ng-font-family-display)}.all-dashboards-page__category-bar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;padding:0 28px 14px}.all-dashboards-page__category-label[_ngcontent-%COMP%]{font-size:12px;font-weight:500;color:var(--ng-colors-text-tertiary-600)}.all-dashboards-page__body[_ngcontent-%COMP%]{flex:1;min-height:0;overflow:auto}.all-dashboards-page__loader[_ngcontent-%COMP%]{flex:1;display:flex;align-items:center;justify-content:center;padding:48px 0}.dash-card--skeleton[_ngcontent-%COMP%]{cursor:default}.dash-card--skeleton[_ngcontent-%COMP%]:hover{top:0;box-shadow:none;border-color:var(--ng-colors-border-secondary)}.dash-card--skeleton[_ngcontent-%COMP%] .dash-card__preview[_ngcontent-%COMP%]{background:var(--ng-colors-bg-primary)}.dash-card--skeleton[_ngcontent-%COMP%] .dash-card__preview[_ngcontent-%COMP%]:after{display:none}.dash-skeleton__chip[_ngcontent-%COMP%]{position:absolute;top:10px;right:10px;z-index:2}.dash-skeleton__bars[_ngcontent-%COMP%]{position:absolute;inset:auto 8px 8px;display:flex;align-items:flex-end;justify-content:center;gap:4px}.dash-skeleton__bar[_ngcontent-%COMP%]{flex:0 0 auto;width:40px}.dash-empty-state[_ngcontent-%COMP%]{margin:24px;padding:56px 32px;display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--ng-colors-bg-primary);border:1px solid var(--ng-colors-border-secondary);border-radius:12px}.dash-empty-state__graphic[_ngcontent-%COMP%]{width:380px;max-width:100%;height:140px;margin-bottom:24px;display:block}.dash-empty-state__graphic[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{display:block;width:100%;height:100%}.dash-empty-state__title[_ngcontent-%COMP%]{margin:0 0 8px;font-size:20px;font-weight:600;color:var(--ng-colors-text-primary-900);letter-spacing:-.01em}.dash-empty-state__desc[_ngcontent-%COMP%]{margin:0 0 20px;max-width:480px;font-size:14px;line-height:1.5;color:var(--ng-colors-text-tertiary-600)}.all-dash-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;padding:0 28px 40px}.all-dashboards-page__pagination[_ngcontent-%COMP%]{display:block;padding:0 28px 24px}.dash-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;text-align:left;background:var(--ng-colors-bg-primary);border:1px solid var(--ng-colors-border-secondary);border-radius:12px;padding:0;font:inherit;color:inherit;cursor:pointer;overflow:hidden;position:relative;top:0;transition:border-color .15s,box-shadow .15s,top .15s}.dash-card[_ngcontent-%COMP%]:hover{border-color:var(--ng-colors-border-tertiary);box-shadow:0 4px 12px -2px #0a0d120f,0 2px 4px -1px #0a0d120a;top:-1px}.dash-card[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--ng-colors-border-brand);outline-offset:2px}.dash-card__preview[_ngcontent-%COMP%]{position:relative;height:140px;background:var(--ng-colors-bg-primary);border-bottom:1px solid var(--ng-colors-border-secondary);overflow:hidden}.dash-card__preview[_ngcontent-%COMP%]:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(90deg,var(--ng-colors-bg-primary) 0%,rgba(255,255,255,0) 18%,rgba(255,255,255,0) 82%,var(--ng-colors-bg-primary) 100%),linear-gradient(0deg,var(--ng-colors-bg-primary) 0%,rgba(255,255,255,0) 28%)}.dash-card__widget[_ngcontent-%COMP%]{position:absolute;inset:0;pointer-events:none;transform:scale(1.2);transform-origin:center}.dash-card__widget[_ngcontent-%COMP%] > db-dash-card-chart[_ngcontent-%COMP%]{display:block;width:100%;height:100%}.dash-card__empty[_ngcontent-%COMP%]{position:absolute;inset:14px;display:flex;align-items:flex-end;justify-content:center;pointer-events:none}.dash-card__empty-bars[_ngcontent-%COMP%]{display:flex;align-items:flex-end;gap:8px;width:78%;height:80%}.dash-card__empty-bars[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{flex:1;background:linear-gradient(180deg,var(--ng-colors-border-secondary) 0%,var(--ng-colors-bg-tertiary) 100%);border-radius:3px 3px 0 0;min-height:8px}.dash-card__chip[_ngcontent-%COMP%]{position:absolute;top:10px;right:10px;z-index:2;display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;background:color-mix(in srgb,var(--ng-colors-bg-primary) 85%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--ng-colors-border-secondary);border-radius:999px;font-size:11px;font-weight:500;color:var(--ng-colors-text-tertiary-600)}.dash-card__cats[_ngcontent-%COMP%]{position:absolute;top:10px;left:10px;z-index:2;display:inline-flex;align-items:center;gap:4px;max-width:calc(100% - 20px)}.dash-card__cat[_ngcontent-%COMP%]{display:inline-flex;align-items:center;height:22px;max-width:96px;opacity:0;transition:opacity .15s;padding:0 8px;background:color-mix(in srgb,var(--ng-colors-bg-primary) 85%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--ng-colors-border-secondary);border-radius:999px;font-size:11px;font-weight:500;color:var(--ng-colors-text-tertiary-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-card[_ngcontent-%COMP%]:hover .dash-card__cat[_ngcontent-%COMP%], .dash-card[_ngcontent-%COMP%]:focus-within .dash-card__cat[_ngcontent-%COMP%]{opacity:1}.dash-card__cat--more[_ngcontent-%COMP%]{max-width:none;padding:0 6px;color:var(--ng-colors-text-secondary-700);cursor:default}.dash-card__status[_ngcontent-%COMP%]{flex-shrink:0;margin-left:auto;display:inline-flex;align-items:center;font-size:10px;line-height:1}.dash-card__status[_ngcontent-%COMP%] nile-badge[_ngcontent-%COMP%]::part(base){display:inline-flex;align-items:center;padding:2px 8px;height:auto;min-height:0}.dash-card__status[_ngcontent-%COMP%] nile-badge[_ngcontent-%COMP%]::part(content){font-size:12px}.dash-card__body[_ngcontent-%COMP%]{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px}.dash-card__title-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;min-width:0}.dash-card__name[_ngcontent-%COMP%]{flex:1;min-width:0;font-size:14px;font-weight:600;color:var(--ng-colors-text-primary-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-card__actions[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;opacity:0;transition:opacity .15s;flex-shrink:0}.dash-card[_ngcontent-%COMP%]:hover .dash-card__actions[_ngcontent-%COMP%], .dash-card[_ngcontent-%COMP%]:focus-within .dash-card__actions[_ngcontent-%COMP%]{opacity:1}.dash-card__action[_ngcontent-%COMP%]{cursor:pointer;padding:4px;border-radius:6px;line-height:0}.dash-card__action[_ngcontent-%COMP%]:hover{background:var(--ng-colors-bg-secondary)}.dash-card__rename[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;min-width:0}.dash-card__rename-input[_ngcontent-%COMP%]{flex:1;min-width:0;height:28px;padding:0 8px;font:inherit;font-size:13px;font-weight:600;color:var(--ng-colors-text-primary-900);background:var(--ng-colors-bg-primary);border:1px solid var(--ng-colors-border-secondary);border-radius:6px;outline:none}.dash-card__rename-input[_ngcontent-%COMP%]:focus{border-color:var(--ng-colors-border-brand);box-shadow:0 0 0 3px var(--ng-colors-bg-brand-primary)}.dash-card__rename-input[_ngcontent-%COMP%]:disabled{opacity:.6;cursor:not-allowed}.dash-card__meta[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ng-colors-text-tertiary-600);min-height:16px}.dash-card__meta-item[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.dash-card--editing[_ngcontent-%COMP%]{cursor:default}.dash-card--editing[_ngcontent-%COMP%]:hover{top:0;box-shadow:none}.create-dash-fields[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px;padding:8px 0}.create-dash-footer[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;gap:8px}.layout-warning-text[_ngcontent-%COMP%]{font-size:14px;color:var(--ng-colors-text-secondary-700);line-height:1.5}.layout-popup-footer[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;gap:8px}']})};function Mi(a,e){if(a===e)return!0;if(!a||!e)return!1;try{return JSON.stringify(a.config)===JSON.stringify(e.config)}catch{return!1}}var se=class a{environment=u(L);http=u(Y);tokenStore=u(B);lastSentCustomerId=null;lastSentProductId=null;get customerId(){return this.tokenStore.tenantId()??""}mcpGatewayUrl(){return`${this.environment.baseUrl}/dviz-mcp`}async callMcpTool(e,t={}){let n=this.customerId,i=this.environment.getProductId(),o={};n!==this.lastSentCustomerId&&(o.customerId=n),i!==this.lastSentProductId&&(o.productId=i);let s;try{s=await T(this.http.post(this.mcpGatewayUrl(),{jsonrpc:"2.0",id:Date.now(),method:"tools/call",params:{name:e,arguments:t}},{headers:{Accept:"application/json, text/event-stream"},params:o})),this.lastSentCustomerId=n,this.lastSentProductId=i}catch(y){throw y instanceof V?new Error(y.error?.error?.message||y.error?.message||y.message):y}if(s.error)throw new Error(s.error.message);let p=s.result;if(p?.isError)throw new Error(p.structuredContent?.error?.message??p.content?.[0]?.text??`${e} failed`);return p?.structuredContent??{}}sessionHeader(e){return e?{headers:new be({"x-session-id":e})}:{}}async fetchGridPage(e,t,n,i,o,s,p,y){let A=`${this.environment.baseUrl}/api/customers/${this.customerId}/products/${this.environment.getProductId()}/workforce/data-grid/${e}?pageIndex=${t}&pageSize=${n}`,F=(i??[]).filter(P=>P&&P.value!=null&&String(P.value).trim()!=="");return F.length&&(A+=`&filters=${encodeURIComponent(JSON.stringify(F))}`),o&&Object.keys(o).length&&(A+=`&dashboardFilters=${encodeURIComponent(JSON.stringify(o))}`),p&&p.length&&(A+=`&resolvedFilters=${encodeURIComponent(JSON.stringify(p))}`),s&&(A+=`&dashboardId=${encodeURIComponent(s)}`),y&&(A+=`&conversationId=${encodeURIComponent(y)}`),T(this.http.get(A))}async getSuggestedPrompts(e){let t;try{t=await T(this.http.get(`${this.environment.baseUrl}/api/customers/${this.customerId}/products/${this.environment.getProductId()}/datasources/${e}/suggested-prompts`))}catch(n){throw n instanceof V?new Error(n.error?.error||n.message):n}if(t.widgetSuggestions||t.dashboardSuggestions)return[...t.widgetSuggestions??[],...t.dashboardSuggestions??[]];if(t.data)return t.data;throw new Error("Failed to fetch suggested prompts")}async filterSuggest(e,t,n,i){let o=n.filter(y=>!!y.id).map(y=>{let A={widgetId:y.id};return y.queryMeta&&(A.queryMeta=y.queryMeta),y.dataSourceId&&(A.dataSourceId=y.dataSourceId),A}),s;try{s=await T(this.http.post(`${this.environment.baseUrl}/api/customers/${this.customerId}/products/${this.environment.getProductId()}/workforce/dashboards/${e}/filter/suggest?status=${i??"draft"}`,{query:t,refreshCache:!1,widgets:o}))}catch(y){throw y instanceof V?new Error(y.error?.error||y.message):y}if(s?.success===!1)throw new Error(s.error||"Request failed");let p=s?.data??s??{};return{nextToken:p.nextToken,completions:Array.isArray(p.completions)?p.completions:[],suggestions:Array.isArray(p.suggestions)?p.suggestions:[]}}async applyFilters(e,t,n,i,o,s){let p=await new Promise((P,W)=>{let M=this.http.post(`${this.environment.baseUrl}/api/customers/${this.customerId}/products/${this.environment.getProductId()}/workforce/dashboards/${n}/filter/apply?status=${i??"draft"}`,xn(e,t,s)).subscribe({next:R=>P(R),error:R=>{R instanceof V?W(new Error(R.error?.error||R.message)):W(R)}});if(o){if(o.aborted){M.unsubscribe();let R=new Error("Aborted");R.name="AbortError",W(R);return}o.addEventListener("abort",()=>{M.unsubscribe();let R=new Error("Aborted");R.name="AbortError",W(R)},{once:!0})}});if(p?.success===!1)throw new Error(p.error||"Request failed");let y=p?.data??p,A=Array.isArray(y)?y:y?.widgets;if(!Array.isArray(A))throw new Error("Invalid response from apply-filters API");let F=!Array.isArray(y)&&Array.isArray(y?.resolvedFilters)?y.resolvedFilters:[];return await Promise.all(A.map(P=>ye(P.config))),{widgets:A,resolvedFilters:F}}async generate(e,t,n,i,o){let s={prompt:e};t&&(s.dataSourceId=t),i&&(s.dashboardId=i);let p=await new Promise((F,P)=>{let W=this.http.post(`${this.environment.baseUrl}/api/customers/${this.customerId}/products/${this.environment.getProductId()}/workforce/widget/generate`,s,this.sessionHeader(n)).subscribe({next:M=>F(M),error:M=>{M instanceof V?P(new Error(M.error?.error||M.message)):P(M)}});if(o){if(o.aborted){W.unsubscribe();let M=new Error("Aborted");M.name="AbortError",P(M);return}o.addEventListener("abort",()=>{W.unsubscribe();let M=new Error("Aborted");M.name="AbortError",P(M)},{once:!0})}});if(p?.success===!1)throw new Error(p.error||"Request failed");let y=p?.data??p;if(y?.dashboardTitle&&Array.isArray(y?.widgets)){let F=y;return await Promise.all(F.widgets.map(P=>ye(P.config))),F}if(!y?.config)throw new Error("Invalid response from generate API");let A=y;return await ye(A.config),A}async getWidgetSession(e){let t;try{t=await T(this.http.get(`${this.environment.baseUrl}/api/customers/${this.customerId}/products/${this.environment.getProductId()}/workforce/widget/sessions/${e}`))}catch(n){throw n instanceof V?new Error(n.error?.error||n.message):n}if(t?.success===!1||!t?.data)throw new Error(t?.error||"Failed to fetch session");return await Promise.all(t.data.messages.map(n=>n.widgetConfig?ye(n.widgetConfig.config):Promise.resolve())),t.data}async getWidgetSessions(){let e;try{e=await T(this.http.get(`${this.environment.baseUrl}/api/customers/${this.customerId}/products/${this.environment.getProductId()}/workforce/widget/sessions`))}catch(t){throw t instanceof V?new Error(t.error?.error||t.message):t}if(e?.success===!1)throw new Error(e.error||"Failed to fetch widget sessions");return e?.data??[]}async tweakWidget(e){let t="widgetId"in e?{widgetId:e.widgetId,prompt:e.prompt}:{widgetConfig:Si(e.widget,e.dataSourceId),prompt:e.prompt},n;if(this.environment.MCP_GATEWAY_ENABLED)n=(await this.callMcpTool("modifyWidget",t))?.chart;else{let i;try{i=await T(this.http.post(`${this.environment.baseUrl}/api/customers/${this.customerId}/products/${this.environment.getProductId()}/workforce/widget/modify`,t))}catch(s){throw s instanceof V?new Error(s.error?.error||s.message):s}if(i?.success===!1)throw new Error(i.error||"Tweak failed");n=i?.chart??i?.data??i}if(!n?.config)throw new Error("Invalid response from tweak API");return await ye(n.config),n}async previewWidgetDetailPanelDefinition(e){return(await T(this.http.post(`${this.environment.baseUrl}/api/customers/${this.customerId}/products/${this.environment.getProductId()}/workforce/widget-templates/preview-detail-panel`,{detailPanel:e}))).data}static \u0275fac=function(t){return new(t||a)};static \u0275prov=$({token:a,factory:a.\u0275fac})};function Si(a,e){return{title:a.title,widgetType:a.widgetType,layout:a.layout,dataSourceId:e??a.dataSourceId,config:a.config,drilldownBy:a.drilldownBy}}var le=class a{constructor(e){this.http=e}http;environment=u(L);tokenStore=u(B);CACHE_KEY="dv_datasources_cache";get customerId(){return this.tokenStore.tenantId()??""}getCached(){try{let e=sessionStorage.getItem(this.CACHE_KEY);return e?JSON.parse(e):[]}catch{return[]}}saveCache(e){try{sessionStorage.setItem(this.CACHE_KEY,JSON.stringify(e))}catch{}}mcpGatewayUrl(){return`${this.environment.baseUrl}/dviz-mcp`}async callMcpTool(e,t={}){let n={customerId:this.customerId,productId:this.environment.getProductId()},i;try{i=await T(this.http.post(this.mcpGatewayUrl(),{jsonrpc:"2.0",id:Date.now(),method:"tools/call",params:{name:e,arguments:t}},{headers:{Accept:"application/json, text/event-stream"},params:n}))}catch(s){throw s instanceof V?new Error(s.error?.error?.message||s.error?.message||s.message):s}if(i.error)throw new Error(i.error.message);let o=i.result;if(o?.isError)throw new Error(o.structuredContent?.error?.message??o.content?.[0]?.text??`${e} failed`);return o?.structuredContent??{}}async updateDatasourceDatasets(e,t){let n=new be({"X-Customer-ID":this.customerId}),i=e.adapterType??(e.mssqlConnectionId?"mssql":"opensearch"),o={name:e.name,description:e.description??"",adapterType:i,indexName:e.indexName??t[0]?.tableName??"",timestampField:e.timestampField??"timestamp",datasets:t};i==="mssql"?o.mssqlConnectionId=e.mssqlConnectionId:o.connectionId=e.connectionId??e.opensearchConnectionId,await T(this.http.put(`${this.environment.baseUrl}/api/customers/${this.customerId}/products/${this.environment.getProductId()}/datasources/${e.id}`,o,{headers:n}))}async listDatasources(){let e;if(this.environment.MCP_GATEWAY_ENABLED)e=(await this.callMcpTool("listDatasources",{}))?.datasources??[];else{let n=new be({"X-Customer-ID":this.customerId});e=(await T(this.http.get(`${this.environment.baseUrl}/api/customers/${this.customerId}/products/${this.environment.getProductId()}/datasources`,{headers:n})))?.data??[]}return e.map(n=>({id:n.id,name:n.name??"",host:n.host,port:n.port,database:n.database,username:n.username,description:n.description,createdAt:n.createdAt??new Date().toISOString(),adapterType:n.adapterType,mssqlConnectionId:n.mssqlConnectionId,opensearchConnectionId:n.opensearchConnectionId,connectionId:n.connectionId,indexName:n.indexName,timestampField:n.timestampField,datasets:(n.datasets??[]).map(i=>({tableName:i.tableName,columnsSelected:(i.columnsSelected??[]).map(o=>({name:o.name,dataType:o.dataType,isPrimaryKey:o.isPrimaryKey??!1}))}))}))}async listConnections(){let e;if(this.environment.MCP_GATEWAY_ENABLED)e=(await this.callMcpTool("listConnections",{}))?.connections??[];else{let t=new be({"X-Customer-ID":this.customerId});e=(await T(this.http.get(`${this.environment.baseUrl}/api/customers/${this.customerId}/products/${this.environment.getProductId()}/connections`,{headers:t})))?.data??[]}return e.map(t=>({id:t.id,name:t.name??""}))}static \u0275fac=function(t){return new(t||a)(ut(Y))};static \u0275prov=$({token:a,factory:a.\u0275fac})};var xe=class a{environment=u(L);tokenStore=u(B);http=u(Y);url(){let e=this.tokenStore.tenantId()??"",t=this.environment.getProductId(),n=`${this.environment.baseUrl}/api/customers/${e}/products/${t}/workforce/auto-dashboard/index-selection`;return Bt(n,e,null,t)}async get(){let e=this.url();try{let t=await T(this.http.get(e));return t?.enabled||console.debug("[lifecycle-index] hidden \u2014",t?.reason??"backend returned enabled:false",e),t}catch(t){return console.warn("[lifecycle-index] lookup failed \u2014 menu row hidden.",e,t instanceof V?`HTTP ${t.status} ${t.statusText}`:t),{enabled:!1,reason:"unavailable"}}}async set(e){try{return await T(this.http.put(this.url(),{index:e}))}catch(t){throw new Error(this.message(t,"Could not change the lifecycle index."))}}async reset(){try{return await T(this.http.delete(this.url()))}catch(e){throw new Error(this.message(e,"Could not restore automatic detection."))}}message(e,t){return e instanceof V&&(e.error?.error||e.error?.message||e.message)||t}static \u0275fac=function(t){return new(t||a)};static \u0275prov=$({token:a,factory:a.\u0275fac})};var Oi=["aiExecutiveSummary"],ki=["pipelineHost"],Ei=["erDiagram"],Ti=["osViewer"],Ii=["sliderGrid"],Ai=["reportHost"],Wi=()=>[],Ri=()=>[1,2,3,4],dt=(a,e)=>e.id,Fi=(a,e)=>t=>t.tableName,Ni=(a,e)=>e.index;function Li(a,e){a&1&&(r(0,"div",9),Me(1,null,2),d())}function zi(a,e){if(a&1){let t=O();r(0,"div",10)(1,"div",41)(2,"span",42),h(3,"Report"),d(),r(4,"button",43),f("click",function(){C(t);let i=c();return v(i.closeTool())}),m(5,"nile-glyph",44),d()(),r(6,"div",45),Me(7,null,3),d()()}}function qi(a,e){a&1&&(r(0,"div",47),h(1,"Create a pipeline to start moving your data."),d())}function $i(a,e){a&1&&(r(0,"nile-badge",54),h(1,"Active"),d())}function Vi(a,e){if(a&1){let t=O();r(0,"nile-card",50),f("click",function(){let i=C(t).$implicit,o=c(3);return o.onPipelineRowClick(i.id),v(o.closeTool())}),r(1,"div",51)(2,"div",52),m(3,"nile-glyph",53),d(),b(4,$i,2,0,"nile-badge",54),d(),r(5,"span",55),h(6),d()()}if(a&2){let t=e.$implicit,n=c(3);l(4),_(t.id===n.selectedConnectionId()?4:-1),l(),x("title",t.name),l(),q(t.name)}}function Bi(a,e){if(a&1&&(r(0,"div",48),K(1,Vi,7,3,"nile-card",49,dt),d()),a&2){let t=c(2);l(),Z(t.connections())}}function Gi(a,e){if(a&1){let t=O();r(0,"div",11)(1,"div",41)(2,"span",42),h(3,"All pipelines"),d(),r(4,"button",43),f("click",function(){C(t);let i=c();return v(i.closeTool())}),m(5,"nile-glyph",44),d()(),r(6,"div",46),b(7,qi,2,0,"div",47)(8,Bi,3,0,"div",48),d()()}if(a&2){let t=c();l(7),_(t.connections().length===0?7:8)}}function Ui(a,e){a&1&&m(0,"span",61)}function Hi(a,e){if(a&1){let t=O();r(0,"div",56),m(1,"app-er-diagram",57,4),r(3,"div",58)(4,"nile-button",59),f("click",function(){C(t);let i=c(2);return v(i.closeTool())}),h(5,"Cancel"),d(),r(6,"nile-button",60),f("click",function(){C(t);let i=c(2);return v(i.updateDatasource())}),b(7,Ui,1,0,"span",61),h(8," Update "),d()()()}if(a&2){let t,n=c(2);l(),x("connectionId",n.selectedConnection().mssqlConnectionId)("tables",((t=n.selectedConnection().datasets)==null?null:t.map(Ot(6,Fi,e)))??tt(7,Wi))("preselectedColumns",n.datasetColumnsByTable()),l(5),N("loading",n.isUpdatingDatasource()?"":null)("disabled",n.isUpdatingDatasource()?"":null),l(),_(n.isUpdatingDatasource()?7:-1)}}function ji(a,e){a&1&&m(0,"span",61)}function Ki(a,e){if(a&1){let t=O();r(0,"div",56),m(1,"app-os-schema-viewer",62,5),r(3,"div",58)(4,"nile-button",59),f("click",function(){C(t);let i=c(2);return v(i.closeTool())}),h(5,"Cancel"),d(),r(6,"nile-button",60),f("click",function(){C(t);let i=c(2);return v(i.updateDatasource())}),b(7,ji,1,0,"span",61),h(8," Update "),d()()()}if(a&2){let t=c(2);l(),x("connectionId",t.osSchemaConnectionId())("indexNames",t.osSchemaIndexNames())("preselectedFields",t.datasetColumnsByTable()),l(5),N("loading",t.isUpdatingDatasource()?"":null)("disabled",t.isUpdatingDatasource()?"":null),l(),_(t.isUpdatingDatasource()?7:-1)}}function Zi(a,e){if(a&1){let t=O();r(0,"div",12)(1,"div",41)(2,"span",42),h(3),d(),r(4,"button",43),f("click",function(){C(t);let i=c();return v(i.closeTool())}),m(5,"nile-glyph",44),d()(),r(6,"div",45),b(7,Hi,9,8,"div",56),b(8,Ki,9,6,"div",56),d()()}if(a&2){let t,n,i=c();l(3),q(((t=i.selectedConnection())==null?null:t.name)??"Schema"),l(4),_(i.isMssqlSchema()&&((n=i.selectedConnection())!=null&&n.mssqlConnectionId)?7:-1),l(),_(i.isOpenSearchSchema()&&i.osSchemaConnectionId()&&i.osSchemaIndexNames().length>0?8:-1)}}function Qi(a,e){if(a&1){let t=O();r(0,"nile-button",65),f("click",function(){C(t);let i=c(2);return v(i.onCreateDashboardClick())}),m(1,"nile-glyph",66),h(2," Create dashboard "),d()}}function Ji(a,e){if(a&1){let t=O();r(0,"nile-button",115),f("click",function(){C(t);let i=c(3);return v(i.onCreateDashboardClick())}),m(1,"nile-glyph",66),h(2," Create dashboard "),d()}}function Yi(a,e){a&1&&(r(0,"div",64)(1,"div",67),De(),r(2,"svg",68)(3,"defs")(4,"linearGradient",69),m(5,"stop",70)(6,"stop",71),d()(),m(7,"rect",72)(8,"line",73)(9,"line",74)(10,"circle",75)(11,"circle",76)(12,"circle",77)(13,"circle",78)(14,"circle",79)(15,"circle",80)(16,"path",81),r(17,"circle",82),m(18,"animate",83),d(),r(19,"circle",84),m(20,"animate",85),d(),m(21,"rect",86)(22,"rect",87)(23,"rect",88)(24,"rect",89)(25,"rect",90)(26,"rect",91)(27,"rect",92)(28,"rect",93)(29,"rect",94)(30,"rect",95),r(31,"rect",96),m(32,"animate",97)(33,"animate",98),d(),r(34,"rect",99),m(35,"animate",100)(36,"animate",101),d(),r(37,"rect",102),m(38,"animate",103)(39,"animate",104),d(),r(40,"rect",105),m(41,"animate",106)(42,"animate",107),d(),r(43,"path",108),m(44,"animate",109),d(),r(45,"circle",110),m(46,"animate",111),d()()(),Te(),r(47,"h2",112),h(48,"Build your first dashboard"),d(),r(49,"p",113),h(50," Dashboards bring your data to life with charts, KPIs, and tables. Create one to start exploring. "),d(),ne(51,Ji,3,0,"nile-button",114),d()),a&2&&(l(51),x("hasPermission","dashboard.create"))}function Xi(a,e){if(a&1&&(r(0,"span",119),m(1,"nile-glyph",131),h(2),d()),a&2){let t=c().$implicit;l(2),Se(" ",t.widgetCount," widget",t.widgetCount===1?"":"s"," ")}}function ea(a,e){if(a&1&&(r(0,"span",120)(1,"nile-badge"),h(2),d()()),a&2){let t=c().$implicit;l(),N("variant",t.status==="published"?"success":"warning"),l(),z(" ",t.status==="published"?"Published":"Draft"," ")}}function ta(a,e){if(a&1&&(r(0,"div",121),m(1,"db-dash-card-chart",132),d()),a&2){let t=c().$implicit;l(),x("config",t.firstWidget.config)}}function na(a,e){a&1&&(r(0,"div",122)(1,"div",133),m(2,"span",134)(3,"span",135)(4,"span",136)(5,"span",137)(6,"span",138),d()())}function ia(a,e){if(a&1){let t=O();r(0,"span",139),f("mousedown",function(i){return i.stopPropagation()})("click",function(i){C(t);let o=c().$implicit,s=c(3);return v(s.onDashboardRowEditClick(i,o))}),m(1,"nile-glyph",140),d()}}function aa(a,e){if(a&1){let t=O();r(0,"dash-card-delete-action",141),f("deleteClick",function(i){C(t);let o=c().$implicit,s=c(3);return v(s.onDashboardRowDeleteClick(i,o.id))}),d()}}function oa(a,e){a&1&&m(0,"span",142)}function ra(a,e){if(a&1&&(r(0,"span",130),h(1),d(),b(2,oa,1,0,"span",142)),a&2){let t=c().$implicit;l(),q(t.firstWidget==null?null:t.firstWidget.title),l(),_(t.updatedAt?2:-1)}}function sa(a,e){if(a&1&&(r(0,"span",130),h(1),d()),a&2){let t=c().$implicit,n=c(3);l(),z("Updated ",n.computeRelativeTime(t.updatedAt))}}function da(a,e){if(a&1){let t=O();r(0,"button",117),f("click",function(){let i=C(t).$implicit,o=c(3);return v(o.onDashboardRowClick(i.id))}),r(1,"div",118),b(2,Xi,3,2,"span",119),b(3,ea,3,2,"span",120),b(4,ta,2,1,"div",121)(5,na,7,0,"div",122),d(),r(6,"div",123)(7,"div",124)(8,"span",125),h(9),d(),r(10,"span",126),ne(11,ia,2,0,"span",127)(12,aa,1,0,"dash-card-delete-action",128),d()(),r(13,"div",129),b(14,ra,3,2),b(15,sa,2,1,"span",130),d()()()}if(a&2){let t=e.$implicit;l(2),_(t.widgetCount!==void 0?2:-1),l(),_(t.status?3:-1),l(),_(t.firstWidget?4:5),l(4),x("title",t.name),l(),q(t.name),l(2),x("hasPermission","dashboard.update"),l(),x("hasPermission","dashboard.delete"),l(2),_(t.firstWidget!=null&&t.firstWidget.title?14:-1),l(),_(t.updatedAt?15:-1)}}function la(a,e){if(a&1&&(r(0,"div",48),K(1,da,16,9,"button",116,dt),d()),a&2){let t=c(2);l(),Z(t.dashboardsList())}}function ca(a,e){if(a&1&&(r(0,"div",13)(1,"div",41)(2,"span",42),h(3,"Dashboards"),d(),ne(4,Qi,3,0,"nile-button",63),d(),r(5,"div",46),b(6,Yi,52,1,"div",64)(7,la,3,0,"div",48),d()()),a&2){let t=c();l(4),x("hasPermission","dashboard.create"),l(2),_(t.dashboardsList().length===0?6:7)}}function ga(a,e){a&1&&(r(0,"span",14),De(),r(1,"svg",143),m(2,"rect",144)(3,"rect",145)(4,"rect",146)(5,"rect",147),d()())}function ha(a,e){if(a&1){let t=O();r(0,"nile-button",150),f("click",function(){C(t);let i=c(2);return v(i.openInAskAquera())}),m(1,"nile-glyph",151),h(2," Open in Ask Aquera "),d()}}function pa(a,e){if(a&1){let t=O();r(0,"div",15),b(1,ha,3,0,"nile-button",148),r(2,"shared-builder-toolbar",149),f("action",function(i){C(t);let o=c();return v(o.onMenuAction(i))}),d()()}if(a&2){let t=c();l(),_(t.loadedDashboardId()&&t.features().askAquera?1:-1),l(),x("canToggleFilter",!0)("hasFilter",t.hasFilter())("canToggleTimeFilter",!0)("hasTimeFilter",t.hasTimeFilter())("canForecast",!0)("anyForecastOn",t.anyForecastOn())("editMode",t.sliderView()!=="preview")("busy",t.isRearranging()||t.isPublishing())("exporting",t.isExporting())("canUpdate",t.canUpdate())("canDelete",t.canDelete())("canPublish",t.canPublish())("canChangeIndex",t.canChangeIndex())("showAskAquera",!1)}}function ua(a,e){if(a&1){let t=O();r(0,"div",152),f("mousedown",function(i){return i.stopPropagation()})("click",function(i){return i.stopPropagation()}),r(1,"input",153,6),f("input",function(){C(t);let i=St(2),o=c();return v(o.onRenameInputChange(i.value))})("keydown",function(i){C(t);let o=c();return v(o.onRenameInputKeydown(i))}),d(),r(3,"button",154),f("click",function(){C(t);let i=c();return v(i.commitRenameDashboard())}),m(4,"nile-glyph",155),d(),r(5,"button",156),f("click",function(){C(t);let i=c();return v(i.cancelRenameDashboard())}),m(6,"nile-glyph",157),d()()}if(a&2){let t=c();l(),x("value",t.renamingValue())("disabled",t.isRenamingDashboard()),l(2),x("disabled",t.isRenamingDashboard()),l(2),x("disabled",t.isRenamingDashboard())}}function ma(a,e){a&1&&m(0,"nile-skeleton-loader",158)}function ba(a,e){if(a&1&&(r(0,"span",159),h(1),d()),a&2){let t=c(2);l(),q(t.dashboardName()||"Untitled Dashboard")}}function _a(a,e){if(a&1){let t=O();r(0,"button",161),f("click",function(){C(t);let i=c(2);return v(i.startEditDashboardName())}),m(1,"nile-glyph",140),d()}}function fa(a,e){if(a&1&&(r(0,"div",22),b(1,ma,1,0,"nile-skeleton-loader",158)(2,ba,2,1,"span",159),b(3,_a,2,0,"button",160),d()),a&2){let t=c();l(),_(t.dashboardLoading()?1:2),l(2),_(t.loadedDashboardId()?3:-1)}}function ya(a,e){a&1&&(r(0,"nile-card",163)(1,"div",164),m(2,"nile-skeleton-loader",165),d(),r(3,"div",166),m(4,"nile-skeleton-loader",167)(5,"nile-skeleton-loader",168),d()())}function Ca(a,e){a&1&&(r(0,"div",162),K(1,ya,6,0,"nile-card",163,ue),d()),a&2&&(l(),Z(tt(0,Ri)))}function va(a,e){a&1&&(r(0,"div",47),h(1,"Create charts, save widgets, and build your library."),d())}function xa(a,e){a&1&&(r(0,"nile-badge",54),h(1,"Added"),d())}function wa(a,e){if(a&1){let t=O();r(0,"nile-button",173),f("click",function(){C(t);let i=c().$implicit,o=c(3);return v(o.onGlobalWidgetAddClick(i.id))}),h(1," + Add to Dashboard "),d()}}function Da(a,e){if(a&1){let t=O();r(0,"nile-card",163)(1,"div",164),m(2,"shared-nile-chart-widget",169),d(),r(3,"div",166),b(4,xa,2,0,"nile-badge",54)(5,wa,2,0,"nile-button",170),r(6,"span",171),f("click",function(){let i=C(t).$implicit,o=c(3);return v(o.onGlobalWidgetRemoveClick(i.id))})("keydown.enter",function(){let i=C(t).$implicit,o=c(3);return v(o.onGlobalWidgetRemoveClick(i.id))})("keydown.space",function(){let i=C(t).$implicit,o=c(3);return v(o.onGlobalWidgetRemoveClick(i.id))}),m(7,"nile-glyph",172),d()()()}if(a&2){let t=e.$implicit,n=c(3);l(2),x("config",t.config)("drilldownBy",t.drilldownBy),l(2),_(n.addedGlobalWidgetIds().has(t.id)?4:5)}}function Pa(a,e){if(a&1&&(r(0,"div",162),K(1,Da,8,3,"nile-card",163,dt),d()),a&2){let t=c(2);l(),Z(t.globalWidgets())}}function Ma(a,e){if(a&1){let t=O();r(0,"div",23)(1,"div",41)(2,"span",42),h(3,"Widget library"),d(),r(4,"button",43),f("click",function(){C(t);let i=c();return v(i.closeTool())}),m(5,"nile-glyph",44),d()(),r(6,"div",46),b(7,Ca,3,1,"div",162)(8,va,2,0,"div",47)(9,Pa,3,0,"div",162),d()()}if(a&2){let t=c();l(7),_(t.globalWidgetsLoading()?7:t.globalWidgets().length===0?8:9)}}function Sa(a,e){a&1&&h(0),a&2&&z(" ",e," ")}function Oa(a,e){a&1&&m(0,"nile-skeleton-loader",176)}function ka(a,e){if(a&1&&m(0,"nile-skeleton-loader",183),a&2){let t=e.$implicit;Xe("left",t.x/12*100,"%")("top",t.y*72,"px")("width","calc("+t.w/12*100+"% - 12px)")("height",t.h*72-12,"px")}}function Ea(a,e){if(a&1&&(r(0,"div",181),K(1,ka,1,8,"nile-skeleton-loader",182,ue),d()),a&2){let t=c(3);Xe("height",t.widgetDetailPanelSkeletonHeight(),"px"),l(),Z(t.widgetDetailPanelSkeletonSlots())}}function Ta(a,e){a&1&&(r(0,"div",180)(1,"div",184),m(2,"nile-skeleton-loader",185)(3,"nile-skeleton-loader",185)(4,"nile-skeleton-loader",185),d(),m(5,"nile-skeleton-loader",186),d())}function Ia(a,e){if(a&1&&b(0,Ea,3,2,"div",179)(1,Ta,6,0,"div",180),a&2){let t=c(2);_(t.widgetDetailPanelSkeletonSlots().length?0:1)}}function Aa(a,e){if(a&1&&m(0,"shared-dashboard-grid",178),a&2){let t=c(2);x("widgets",t.widgetDetailPanelWidgets())("editMode",!1)("selectable",!1)("showWidgetMenu",t.widgetMenu().enabled)("canAsk",t.widgetMenu().ask)("canChangeChartType",t.widgetMenu().changeChartType)("canManageFilters",t.widgetMenu().manageFilters)("canCustomizeColors",t.widgetMenu().customizeColors)("canViewChartData",t.widgetMenu().chartData)("canSetAlert",t.widgetMenu().setAlert)("canAddToStory",t.widgetMenu().addToStory)("canForecast",t.widgetMenu().forecast)("canExportPng",t.widgetMenu().exportPng)("canExportCsv",t.widgetMenu().exportCsv)("canPrint",t.widgetMenu().print)("canvasBackgroundColor",t.canvasBackgroundColor())}}function Wa(a,e){if(a&1){let t=O();r(0,"div",29)(1,"div",174)(2,"nile-breadcrumb",175),f("nile-click",function(){C(t);let i=c();return v(i.closeWidgetDetailPanel())}),r(3,"nile-breadcrumb-item"),h(4),d(),r(5,"nile-breadcrumb-item"),b(6,Sa,1,1)(7,Oa,1,0,"nile-skeleton-loader",176),d()()(),r(8,"div",177),b(9,Ia,2,1)(10,Aa,1,16,"shared-dashboard-grid",178),d()()}if(a&2){let t,n=c();l(4),z(" ",n.dashboardName()," "),l(2),_((t=n.widgetDetailPanelTitle())?6:7,t),l(3),_(n.widgetDetailPanelLoading()?9:10)}}function Ra(a,e){if(a&1&&(r(0,"p",32),h(1),d()),a&2){let t=c();l(),q(t.indexError())}}function Fa(a,e){a&1&&(r(0,"p",33),h(1,"Loading integrations\u2026"),d())}function Na(a,e){if(a&1&&(r(0,"p",33),h(1),d()),a&2){let t,n=c();l(),z(" ",((t=n.indexSelection())==null?null:t.reason)||"No HR integration could be identified for this tenant."," ")}}function La(a,e){a&1&&(r(0,"em",194),h(1,"in use"),d())}function za(a,e){if(a&1){let t=O();r(0,"span",189)(1,"img",191),f("error",function(i){C(t);let o=c(3);return v(o.onLogoError(i))}),d(),r(2,"span",192),h(3),d(),m(4,"nile-glyph",193),r(5,"img",191),f("error",function(i){C(t);let o=c(3);return v(o.onLogoError(i))}),d(),r(6,"span",192),h(7),d(),b(8,La,2,0,"em",194),d()}if(a&2){let t=c().$implicit,n=c(2);l(),x("src",t.source==null?null:t.source.iconUrl,Ye),l(2),q((t.source==null?null:t.source.name)||(t.source==null?null:t.source.slug)||"\u2014"),l(2),x("src",t.target==null?null:t.target.iconUrl,Ye),l(2),q((t.target==null?null:t.target.name)||(t.target==null?null:t.target.slug)||"\u2014"),l(),_(t.index===n.currentIndex()?8:-1)}}function qa(a,e){a&1&&(r(0,"em",194),h(1,"in use"),d())}function $a(a,e){if(a&1&&(r(0,"span",196),h(1),d()),a&2){let t=c(2).$implicit;l(),q(t.index)}}function Va(a,e){if(a&1&&(r(0,"span",195),h(1),b(2,qa,2,0,"em",194),d(),b(3,$a,2,1,"span",196)),a&2){let t=c().$implicit,n=c(2);l(),z(" ",t.appName||t.index," "),l(),_(t.index===n.currentIndex()?2:-1),l(),_(t.appName?-1:3)}}function Ba(a,e){if(a&1){let t=O();r(0,"button",188),f("click",function(){let i=C(t).$implicit,o=c(2);return v(o.applyIndexSelection(i.index))}),b(1,za,9,5,"span",189)(2,Va,4,3),r(3,"span",190),h(4),d()()}if(a&2){let t=e.$implicit,n=c(2);et("lifecycle-index-option--current",t.index===n.currentIndex()),N("disabled",n.indexBusy()?"":null),l(),_(t.source!=null&&t.source.slug||t.target!=null&&t.target.slug?1:2),l(2),N("title",t.phases.length?t.phases.join(", "):null),l(),Se(" ",t.people," people \xB7 ",t.events," events ")}}function Ga(a,e){if(a&1&&(r(0,"div",34),K(1,Ba,5,7,"button",187,Ni),d()),a&2){let t=c();l(),Z(t.indexCandidates())}}function Ua(a,e){if(a&1){let t=O();r(0,"nile-button",37),f("click",function(){C(t);let i=c();return v(i.resetIndexSelection())}),h(1," Use automatic detection "),d()}if(a&2){let t=c();N("disabled",t.indexBusy()?"":null)}}function Ha(a,e){if(a&1&&(h(0," Delete "),r(1,"strong"),h(2),d(),h(3,"? This action cannot be undone. ")),a&2){let t=c();l(2),q(t.pendingDeleteDashboardName())}}function ja(a,e){a&1&&h(0," Delete this dashboard? This action cannot be undone. ")}var Ee=class a{aiExecutiveSummaryEl;pipelineHost;erDiagramRef;osViewerRef;sliderGridRef;reportHost;alertDrawerOpen=g(!1);alertWidget=g(null);onSetAlert(e){this.alertWidget.set(e),this.alertDrawerOpen.set(!0)}onAlertClosed(){this.alertDrawerOpen.set(!1)}isDashboardPublished=w(()=>this.dashboardsList().find(e=>e.id===this.loadedDashboardId())?.status==="published");canSetAlert=w(()=>this.isDashboardPublished());pipelineRemoteRef=null;pipelineLoading=g(!1);reportRemoteRef=null;reportLoading=g(!1);addWidget=new I;saveWidgetToLibrary=new I;publishNewDashboard=new I;addWidgetsToDashboard=new I;connectionChange=new I;editDashboardWidget=new I;switchDashboard=new I;exitDashboard=new I;createDashboardClick=new I;addGlobalWidgetToDashboard=new I;removeGlobalWidgetFromLibrary=new I;loadGlobalWidgets=new I;loadDashboardsList=new I;toolClosed=new I;executiveSummaryClick=new I;exportPdfClick=new I;exportPngClick=new I;publishClick=new I;dashboardDeleted=new I;dashboardRenamed=new I;createPipelineClick=new I;removeWidget=new I;datasourceId=k("");connections=k([]);connectionsLoading=k(!1);selectedConnectionId=k("");loadedDashboardId=k(null);dashboardLoading=k(!1);loadedWidgetIds=k(new Set);dashboardName=k("");dashboardsList=k([]);globalWidgets=k([]);globalWidgetsLoading=k(!1);addedGlobalWidgetIds=k(new Set);initialTool=k(null);dashboardSummaryHtml=k("");dashboardSummaryLoading=k(!1);isDeleting=g(!1);showLayoutPopup=g(!1);sliderView=g("none");sliderFullscreen=g(!1);activeTool=g("none");dashboardsExpanded=g(!1);dashboardsShownCount=g(5);dashboardsPageSize=5;pipelinesExpanded=g(!1);pipelinesShownCount=g(5);pipelinesPageSize=5;toolSearchTerm=g("");dashboardMenuOpen=g(!1);showExecutiveSummary=g(!1);showCreatePipelineFlyer=g(!1);newPipelineName=g("");tweakingWidgetId=g(null);pendingDashboardWidgets=g({widgets:[]});addingGlobalWidgetIds=g(new Set);isUpdatingDatasource=g(!1);selectedConnection=w(()=>this.connections().find(e=>e.id===this.selectedConnectionId())??this.connections()[0]??null);isMssqlSchema=w(()=>{let e=this.selectedConnection();return e?e.adapterType==="mssql"||!e.adapterType&&!!e.mssqlConnectionId:!1});isOpenSearchSchema=w(()=>{let e=this.selectedConnection();return e?e.adapterType==="opensearch"||!e.adapterType&&!!e.opensearchConnectionId:!1});osSchemaConnectionId=w(()=>{let e=this.selectedConnection();return e?.opensearchConnectionId??e?.connectionId??""});osSchemaIndexNames=w(()=>{let e=this.selectedConnection();if(!e)return[];let t=(e.datasets??[]).map(n=>n.tableName).filter(Boolean);return t.length>0?t:e.indexName?[e.indexName]:[]});datasetColumnsByTable=w(()=>{let e=this.selectedConnection()?.datasets??[],t={};return e.forEach(n=>{t[n.tableName]=n.columnsSelected.map(i=>i.name)}),t});selectedConnectionName=w(()=>{let e=this.selectedConnectionId(),t=this.connections().find(n=>n.id===e);return t?.connectionName??t?.name??""});manageDashboardsConfig=u(ie);environment=u(L);openAiService=u(se);dashboardState=u(ze);publishRepo=u(G);forecastService=u(rn);destroyRef=u(de);datasourcesService=u(le);nav=u(U);perms=u(re);timeFilterPref=u(Pn);lifecycleIndex=u(xe);indexSelection=g(null);canChangeIndex=w(()=>this.indexSelection()?.enabled===!0);indexDialogOpen=g(!1);indexBusy=g(!1);indexError=g(null);indexCandidates=w(()=>this.indexSelection()?.candidates??[]);currentIndex=w(()=>this.indexSelection()?.current?.index??null);nothingToPublish=bn(this.dashboardState.nothingToPublish$,{initialValue:!1});canPublish=w(()=>!this.nothingToPublish());hasTimeFilter=this.timeFilterPref.enabled(this.loadedDashboardId);autoGenerated=g(!1);canUpdate=w(()=>(this.perms.permissions(),this.perms.has("dashboard.update")));canDelete=w(()=>(this.perms.permissions(),this.perms.has("dashboard.delete")));isWorkforceIntelligence=Jt;isHrDataLake=Yt;dashboardWidgets=g(this.dashboardState.snapshot.widgets);sliderWidgets=w(()=>this.dashboardWidgets().map(e=>({id:e.id,title:e.title,widgetType:e.widgetType,layout:e.layout,config:e.config,drilldownBy:e.drilldownBy,queryMeta:e.queryMeta,dataSourceId:e.dataSourceId,edited:e.edited})));hasWidgets=w(()=>this.dashboardWidgets().length>0);alertSource=g(null);widgetDetailPanelOpen=g(!1);widgetDetailPanelLoading=g(!1);widgetDetailPanelTitle=g(null);widgetDetailPanelRaw=g([]);widgetDetailPanelSkeletonSlots=g([]);widgetDetailPanelSkeletonHeight=w(()=>{let e=this.widgetDetailPanelSkeletonSlots();return e.length?Math.max(...e.map(t=>(t.y+t.h)*72)):0});widgetDetailPanelWidgets=w(()=>{let e=this.widgetDetailPanelRaw().map((t,n)=>({id:`detail-panel-${n}`,title:t.title,componentName:t.componentName,widgetType:t.widgetType??"chart",config:t.config,queryMeta:t.queryMeta,drilldownBy:[],layout:t.layout}));return e.every(t=>t.layout)?e:an(e)});constructor(){this.perms.ensureLoaded(),this.destroyRef.onDestroy(()=>this.clearPipelineMountTimeout()),this.dashboardState.state$.pipe(ee(this.destroyRef)).subscribe(t=>{this.dashboardWidgets.set(t.widgets),this.autoGenerated.set(t.isAutoGenerated===!0),this.alertSource.set({connectionId:t.connectionId,isPipeline:t.isPipeline,adapterType:t.adapterType}),this.refreshIndexSelection(),this.sliderView()==="none"&&this.loadedDashboardId()&&this.sliderView.set("edit")}),S(()=>{this.dashboardWidgets(),this.loadedDashboardId(),queueMicrotask(()=>this.primeFilterWidgets())}),S(()=>{let t=this.loadedDashboardId(),n=ln(this.dashboardWidgets());!t||n===this.probedFingerprint||(this.probedFingerprint=n,this.loadForecastability(t))}),S(()=>{let t=this.dashboardWidgets(),n=this.loadedDashboardId();if(!n||t.length===0||this.initialFilterAppliedFor.has(n))return;let i=this.collectInitialFilters(t);i&&(this.initialFilterAppliedFor.add(n),this.applyInitialFilters(i))}),S(()=>{let t=this.dashboardSummaryLoading();queueMicrotask(()=>{let n=this.aiExecutiveSummaryEl?.nativeElement;n&&(n.loading=t)})}),S(()=>{let t=this.dashboardSummaryHtml(),n=this.dashboardName();queueMicrotask(()=>{let i=this.aiExecutiveSummaryEl?.nativeElement;i&&(i.config={summary:t,buttonLabel:"Executive Summary",buttonVariant:"secondary",drawerLabel:n?`${n} Summary`:"Dashboard Summary",typingSpeed:5,closeOnEscape:!0},i.open&&t&&i.startTyping?.())})});let e;S(()=>{let t=this.loadedDashboardId();e!==void 0&&e!==t&&(this.primedFilterWidgets.clear(),this.filterCatalogCache.clear(),this.activeDashboardFilters.set(null),this.activeResolvedFilters.set(null),this.applySummary.set(null)),t&&this.sliderView()==="none"&&this.sliderView.set("edit"),e=t})}ngAfterViewInit(){let e=this.aiExecutiveSummaryEl?.nativeElement;e&&(e.loading=this.dashboardSummaryLoading(),e.config={summary:this.dashboardSummaryHtml(),buttonLabel:"Executive Summary",buttonVariant:"secondary",drawerLabel:this.dashboardName()?`${this.dashboardName()} Summary`:"Dashboard Summary",typingSpeed:5,closeOnEscape:!0})}_lastInitialTool=null;_initialToolEffect=S(()=>{let e=this.initialTool();if(!e){this._lastInitialTool=null;return}e!==this._lastInitialTool&&(this._lastInitialTool=e,queueMicrotask(()=>this.openTool(e)))});onConnectionSelect(e){let t=this.selectedConnectionId()===e?"":e;this.connectionChange.emit(t)}onPipelineRowClick(e){this.connectionChange.emit(e),this.openTool("schema")}onViewSchema(){this.openTool("schema")}async updateDatasource(){let e=this.selectedConnection();if(!e)return;let t=this.erDiagramRef??this.osViewerRef;if(!t)return;let n=t.entities().map(i=>({tableName:i.schema?`${i.schema}.${i.tableName}`:i.tableName,referencedBy:i.referencedBy,columnsSelected:i.columns.filter(o=>i.selectedColumns.has(o.name))})).filter(i=>i.columnsSelected.length>0);if(n.length){this.isUpdatingDatasource.set(!0);try{await this.datasourcesService.updateDatasourceDatasets(e,n),this.closeTool()}catch(i){console.error("Failed to update datasource:",i)}finally{this.isUpdatingDatasource.set(!1)}}}toggleSliderView(e){let t=this.sliderView()===e?"none":e;this.sliderView.set(t),t==="none"&&this.sliderFullscreen()&&this.toggleSliderFullscreen()}closeSlider(){this.sliderView.set("none"),this.sliderFullscreen()&&this.toggleSliderFullscreen()}toggleSliderFullscreen(){!this.sliderFullscreen()?(this.sliderView()==="none"&&this.sliderView.set("preview"),this.sliderFullscreen.set(!0)):this.sliderFullscreen.set(!1),requestAnimationFrame(()=>window.dispatchEvent(new Event("resize")))}features(){return this.manageDashboardsConfig().features}widgetMenu(){return this.manageDashboardsConfig().features.widgetMenu}canvasBackgroundColor(){return this.manageDashboardsConfig().ui.canvasBackgroundColor}autoHeight(){return this.manageDashboardsConfig().ui.autoHeight}openInAskAquera(e){if(!this.features().askAquera)return;this.dashboardMenuOpen.set(!1);let t=this.loadedDashboardId();t&&this.nav.toAskAqueraDashboard(t,e?.summary?{summary:1}:void 0)}selectDashboardMenuItem(e){switch(this.dashboardMenuOpen.set(!1),e){case"preview":this.toggleSliderView("preview");break;case"edit":this.toggleSliderView("edit");break;case"globalWidgets":this.openTool("widgetLibrary");break;case"executiveSummary":this.runExecutiveSummary();break;case"exportPdf":this.emitExportAfterRender("pdf");break;case"exportPng":this.emitExportAfterRender("png");break;case"publish":this.publishClick.emit();break;case"rearrange":this.rearrangeDashboard();break;case"delete":this.requestDeleteDashboard(this.loadedDashboardId());break;case"askAquera":this.openInAskAquera();break}}forecastable=g({});forecastingWidgetId=g(null);forecastBusy=new Set;hasFilter=w(()=>this.sliderWidgets().some(e=>this.isFilterWidget(e)));anyForecastOn=w(()=>this.sliderWidgets().some(e=>!!e?.config?.forecast?.enabled));probedFingerprint="";async loadForecastability(e){if(!e)return;let t=this.dashboardWidgets(),n=t?.length?await this.forecastService.probeWidgets(t):await this.forecastService.probe(e);this.loadedDashboardId()===e&&this.forecastable.set(n)}async onForecast(e){let t=this.loadedDashboardId(),n=String(e.widget.id);if(!(!t||this.forecastBusy.has(n))){this.forecastBusy.add(n),this.forecastingWidgetId.set(n);try{let i=e.enable?await this.forecastService.addToWidget(t,n,e.settings??{}):await this.forecastService.removeFromWidget(t,n);if(e.enable&&i?.guardrails&&i.guardrails.passed===!1)return;i?.widget&&this.replaceForecastWidget(i.widget),fe({variant:"success",title:e.enable?"Forecast added":"Forecast removed",content:e.enable?"The projection is shown with its confidence range.":"The chart is back to its measured history."})}catch{}finally{this.forecastBusy.delete(n),this.forecastingWidgetId.set(null)}}}forecastingAll=g(!1);async onForecastDashboard(e){let t=this.loadedDashboardId();if(!(!t||this.forecastingAll())){this.forecastingAll.set(!0);try{let n=await this.forecastService.toggleDashboard(t,e);for(let s of n.widgets??[])this.replaceForecastWidget(s);let i=n.applied?.length??0,o=n.skipped?.length??0;i&&fe({variant:"success",title:`${e?"Forecast added to":"Forecast removed from"} ${i} widget${i===1?"":"s"}`,content:o?`${o} skipped \u2014 ${n.skipped[0]?.message??"not forecastable"}`:"Projections are shown with their confidence range."}),this.loadForecastability(t)}catch{}finally{this.forecastingAll.set(!1)}}}replaceForecastWidget(e){this.dashboardWidgets.update(t=>t.map(n=>String(n.id)===String(e.id)?E(D({},n),{config:e.config??n.config,nileConfig:e.config?.chart??n.nileConfig}):n))}onMenuAction(e){switch(e){case"preview":this.toggleSliderView("preview");break;case"edit":this.toggleSliderView("edit");break;case"widgetLibrary":this.selectDashboardMenuItem("globalWidgets");break;case"executiveSummary":this.selectDashboardMenuItem("executiveSummary");break;case"exportPdf":this.selectDashboardMenuItem("exportPdf");break;case"exportPng":this.selectDashboardMenuItem("exportPng");break;case"rearrange":this.selectDashboardMenuItem("rearrange");break;case"publish":this.selectDashboardMenuItem("publish");break;case"delete":this.selectDashboardMenuItem("delete");break;case"forecastAll":this.onForecastDashboard(!this.anyForecastOn());break;case"toggleFilter":this.dashboardState.toggleFilterWidget();break;case"toggleTimeFilter":this.timeFilterPref.toggle(this.loadedDashboardId());break;case"changeIndex":this.openIndexPicker();break;case"askAquera":this.openInAskAquera();break;case"promptGallery":break}}async refreshIndexSelection(){this.indexSelection.set(await this.lifecycleIndex.get())}async openIndexPicker(){this.indexError.set(null),this.indexBusy.set(!0),this.indexDialogOpen.set(!0);try{this.indexSelection.set(await this.lifecycleIndex.get())}finally{this.indexBusy.set(!1)}}onLogoError(e){let t=e.target;if(!t||t.dataset.fallbackApplied)return;t.dataset.fallbackApplied="1";let n=t.getAttribute("src")??"",i=n.includes("/logos/")?n.slice(0,n.lastIndexOf("/logos/")):"";t.src=i?`${i}/logos/default.png`:""}async applyIndexSelection(e){if(!e||e===this.currentIndex()){this.indexDialogOpen.set(!1);return}this.indexBusy.set(!0),this.indexError.set(null);try{let t=await this.lifecycleIndex.set(e);if(t.rebuildError){this.indexError.set(`Saved, but the dashboard could not be rebuilt: ${t.rebuildError}`);return}this.indexDialogOpen.set(!1),fe({variant:"success",title:"Source index changed",content:`Joiner, mover and leaver figures now come from ${t.saved?.appName??e}.`}),this.reloadAfterIndexChange()}catch(t){this.indexError.set(t instanceof Error?t.message:"Could not change the lifecycle index.")}finally{this.indexBusy.set(!1)}}async resetIndexSelection(){this.indexBusy.set(!0),this.indexError.set(null);try{let e=await this.lifecycleIndex.reset();if(e.rebuildError){this.indexError.set(`Cleared, but the dashboard could not be rebuilt: ${e.rebuildError}`);return}this.indexDialogOpen.set(!1),fe({variant:"success",title:"Automatic detection restored",content:"The lifecycle integration will be detected from your integration graph again."}),this.reloadAfterIndexChange()}catch(e){this.indexError.set(e instanceof Error?e.message:"Could not restore automatic detection.")}finally{this.indexBusy.set(!1)}}reloadAfterIndexChange(){this.refreshIndexSelection();let e=this.loadedDashboardId();e&&this.switchDashboard.emit(e)}isRearranging=g(!1);isPublishing=k(!1);isExporting=k(!1);rearrangeOptions=[];rearrangeIndex=0;rearrangeKey=null;widgetSetKey(e){return e.map(t=>t.id).sort().join("|")}applyRearrangeOption(e,t,n){this.dashboardState.updateWidgetLayouts(e.layouts);let i=n>1?` (${t+1} of ${n}: ${e.label})`:"",o=n>1?" Rearrange again for the next option.":"";this.pushSystemMessage("success",`Dashboard rearranged${i} \u2014 publish to save this layout.${o}`)}async rearrangeDashboard(){if(this.isRearranging())return;let e=this.loadedDashboardId(),t=this.dashboardState.snapshot.widgets;if(t.length===0){this.pushSystemMessage("info","No widgets to rearrange.");return}let n=this.widgetSetKey(t);if(n===this.rearrangeKey&&this.rearrangeOptions.length>1){this.rearrangeIndex=(this.rearrangeIndex+1)%this.rearrangeOptions.length,this.applyRearrangeOption(this.rearrangeOptions[this.rearrangeIndex],this.rearrangeIndex,this.rearrangeOptions.length);return}this.isRearranging.set(!0);try{let{layouts:i,options:o}=await this.publishRepo.rearrangeDashboard(t,e);if(i.length===0&&o.length===0){this.pushSystemMessage("info","No widgets to rearrange.");return}this.rearrangeOptions=o,this.rearrangeIndex=0,this.rearrangeKey=n,o.length>0?this.applyRearrangeOption(o[0],0,o.length):(this.dashboardState.updateWidgetLayouts(i),this.pushSystemMessage("success","Dashboard rearranged \u2014 publish to save this layout."))}catch(i){this.rearrangeOptions=[],this.rearrangeKey=null;let o=i instanceof Error?i.message:"Failed to rearrange \u2014 please retry";this.pushSystemMessage("error",`Rearrange failed: ${o}`)}finally{this.isRearranging.set(!1)}}renamingDashboardId=g(null);renamingValue=g("");isRenamingDashboard=g(!1);pendingDeleteDashboardId=g(null);isDeletingDashboard=g(!1);pendingDeleteDashboardName=w(()=>{let e=this.pendingDeleteDashboardId();return e?this.dashboardsList().find(t=>t.id===e)?.name??"":""});requestDeleteDashboard(e){if(!e){this.pushSystemMessage("error","No dashboard is currently loaded.");return}this.pendingDeleteDashboardId.set(e)}cancelDeleteDashboard(){this.isDeletingDashboard()||this.pendingDeleteDashboardId.set(null)}async confirmDeleteDashboard(){let e=this.pendingDeleteDashboardId();if(e){this.isDeletingDashboard.set(!0);try{await this.deleteDashboardById(e)}finally{this.isDeletingDashboard.set(!1),this.pendingDeleteDashboardId.set(null)}}}onDashboardRowEditClick(e,t){e.stopPropagation(),this.onDashboardRowClick(t.id)}startEditDashboardName(){let e=this.loadedDashboardId();e&&(this.renamingDashboardId.set(e),this.renamingValue.set(this.dashboardName()??""),requestAnimationFrame(()=>{let t=document.querySelector(".chat-header__rename-input");t?.focus(),t?.select()}))}isEditingDashboardName(){let e=this.loadedDashboardId();return!!e&&this.renamingDashboardId()===e}onDashboardRowDeleteClick(e,t){e.stopPropagation(),this.requestDeleteDashboard(t)}onRenameInputChange(e){this.renamingValue.set(e)}cancelRenameDashboard(){this.renamingDashboardId.set(null),this.renamingValue.set("")}async commitRenameDashboard(){let e=this.renamingDashboardId(),t=this.renamingValue().trim();if(!e||!t){this.cancelRenameDashboard();return}this.isRenamingDashboard.set(!0);try{await this.publishRepo.renameDashboard(e,t),this.pushSystemMessage("success","Dashboard renamed."),this.dashboardRenamed.emit({id:e,name:t}),this.cancelRenameDashboard()}catch(n){fe({variant:"warning",title:"Rename failed",content:mn(n instanceof Error?n.message:"","Couldn't rename the dashboard. Please try again.")})}finally{this.isRenamingDashboard.set(!1)}}onRenameInputKeydown(e){e.key==="Enter"?(e.preventDefault(),this.commitRenameDashboard()):e.key==="Escape"&&(e.preventDefault(),this.cancelRenameDashboard())}async deleteDashboardById(e){if(!e){this.pushSystemMessage("error","No dashboard is currently loaded.");return}try{await this.publishRepo.deleteDashboard(e),this.pushSystemMessage("success","Dashboard deleted."),this.dashboardDeleted.emit(e)}catch(t){let n=t instanceof Error?t.message:"Failed to delete dashboard.";this.pushSystemMessage("error",`Delete failed: ${n}`)}}closeExecutiveSummary(){this.showExecutiveSummary.set(!1)}emitExportAfterRender(e){let t=this.sliderView()==="none";t&&this.sliderView.set("preview");let n=()=>{e==="pdf"?this.exportPdfClick.emit():this.exportPngClick.emit()};t?setTimeout(n,300):requestAnimationFrame(()=>requestAnimationFrame(n))}openTool(e){if(this.activeTool()===e){this.closeTool();return}this.activeTool()==="report"&&e!=="report"&&this.disposeReportRemote(),this.toolSearchTerm.set(""),this.activeTool.set(e),this.dashboardsExpanded.set(!1),this.pipelinesExpanded.set(!1),e==="widgetLibrary"&&this.loadGlobalWidgets.emit(),e==="allDashboards"&&this.loadDashboardsList.emit(),e==="report"&&setTimeout(()=>{this.mountReportRemote()},0)}closeTool(){let e=this.activeTool();e==="report"&&this.disposeReportRemote(),this.activeTool.set("none"),this.toolSearchTerm.set(""),e!=="none"&&this.toolClosed.emit()}visibleDashboards=w(()=>this.dashboardsList().slice(0,this.dashboardsShownCount()));canLoadMoreDashboards=w(()=>this.dashboardsShownCount()<this.dashboardsList().length);remainingDashboardsCount=w(()=>Math.max(0,this.dashboardsList().length-this.dashboardsShownCount()));loadMoreDashboards(){this.dashboardsShownCount.set(this.dashboardsList().length)}toggleDashboardsInline(){let e=!this.dashboardsExpanded();this.dashboardsExpanded.set(e),e&&(this.pipelinesExpanded.set(!1),this.closeTool(),this.dashboardsShownCount.set(this.dashboardsPageSize),this.loadDashboardsList.emit())}visiblePipelines=w(()=>this.connections().slice(0,this.pipelinesShownCount()));canLoadMorePipelines=w(()=>this.pipelinesShownCount()<this.connections().length);remainingPipelinesCount=w(()=>Math.max(0,this.connections().length-this.pipelinesShownCount()));loadMorePipelines(){this.pipelinesShownCount.set(this.connections().length)}togglePipelinesInline(){let e=!this.pipelinesExpanded();this.pipelinesExpanded.set(e),e&&(this.dashboardsExpanded.set(!1),this.closeTool(),this.pipelinesShownCount.set(this.pipelinesPageSize))}pipelineMountTimeout=null;onCreatePipelineClick(){this.newPipelineName.set(""),this.showCreatePipelineFlyer.set(!0),this.createPipelineClick.emit(),this.clearPipelineMountTimeout(),this.pipelineMountTimeout=setTimeout(()=>{this.pipelineMountTimeout=null,this.mountPipelineRemote()},0)}closeCreatePipelineFlyer(){this.showCreatePipelineFlyer.set(!1),this.newPipelineName.set(""),this.clearPipelineMountTimeout(),this.disposePipelineRemote()}clearPipelineMountTimeout(){this.pipelineMountTimeout!==null&&(clearTimeout(this.pipelineMountTimeout),this.pipelineMountTimeout=null)}async mountPipelineRemote(){if(!(!this.pipelineHost||this.pipelineRemoteRef)){this.pipelineLoading.set(!0);try{let{init:e,loadRemote:t}=await import("./chunk-L4MRZUKM.js"),n=window.__mfRemotes__?.auth;n&&e({name:"dashboards",remotes:[{name:"auth",entry:n}]});let o=(await t("auth/DataConnector"))?.DataConnectorComponent;if(!o)return;this.pipelineHost.clear(),this.pipelineRemoteRef=this.pipelineHost.createComponent(o);let s=this.pipelineRemoteRef.instance;s.createMode=!0,s.showAddDialog=!0,s.pipelineCreated?.pipe(ee(this.destroyRef)).subscribe(({id:p})=>{this.connectionChange.emit(p),this.loadDashboardsList.emit(),this.closeCreatePipelineFlyer()}),s.cancelled?.pipe(ee(this.destroyRef)).subscribe(()=>this.closeCreatePipelineFlyer()),this.pipelineRemoteRef.changeDetectorRef.detectChanges()}catch(e){console.error("Failed to load pipeline create remote:",e),this.closeCreatePipelineFlyer()}finally{this.pipelineLoading.set(!1)}}}disposePipelineRemote(){this.pipelineRemoteRef?.destroy(),this.pipelineRemoteRef=null,this.pipelineHost?.clear()}async mountReportRemote(){if(!(!this.reportHost||this.reportRemoteRef)){this.reportLoading.set(!0);try{let{init:e,loadRemote:t}=await import("./chunk-L4MRZUKM.js"),n=window.__mfRemotes__?.report;n&&e({name:"dashboards",remotes:[{name:"report",entry:n}]});let o=(await t("report/ReportPage"))?.ReportPageComponent;if(!o)return;this.reportHost.clear(),this.reportRemoteRef=this.reportHost.createComponent(o),this.reportRemoteRef.changeDetectorRef.detectChanges()}catch(e){console.error("Failed to load report remote:",e)}finally{this.reportLoading.set(!1)}}}disposeReportRemote(){this.reportRemoteRef?.destroy(),this.reportRemoteRef=null,this.reportHost?.clear()}onToolSearch(e){this.toolSearchTerm.set(e)}onDashboardRowClick(e){this.renamingDashboardId()||this.pendingDeleteDashboardId()||(this.closeTool(),this.sliderView.set("edit"),e!==this.loadedDashboardId()&&this.switchDashboard.emit(e))}onCreateDashboardClick(){this.createDashboardClick.emit()}onGlobalWidgetAddClick(e){this.addGlobalWidgetToDashboard.emit(e),this.closeTool()}onGlobalWidgetRemoveClick(e){this.removeGlobalWidgetFromLibrary.emit(e)}filteredDashboardsList=w(()=>{let e=this.toolSearchTerm().toLowerCase().trim(),t=this.dashboardsList();return e?t.filter(n=>n.name.toLowerCase().includes(e)):t});toolDrawerLabel=w(()=>this.activeTool()==="widgetLibrary"?"Widget library":"");computeRelativeTime(e){if(e==null||e==="")return"";let t=typeof e=="number"?e:Date.parse(e);if(!Number.isFinite(t))return"";let n=Date.now()-t,i=Math.floor(n/6e4);if(i<1)return"just now";if(i<60)return`${i} min ago`;let o=Math.floor(i/60);if(o<24)return`${o} hour${o>1?"s":""} ago`;let s=Math.floor(o/24);if(s<30)return`${s} day${s>1?"s":""} ago`;let p=Math.floor(s/30);return`${p} month${p>1?"s":""} ago`}onSliderRemoveWidget(e){this.removeWidget.emit(e)}onSliderUpdateLayout(e){this.dashboardState.updateWidgetLayout(e.id,e.layout)}onLayoutUndoRedoKeydown(e){if(this.sliderView()!=="edit")return;let t=e.metaKey||e.ctrlKey,n=e.key.toLowerCase(),i=t&&n==="z"&&!e.shiftKey,o=t&&(n==="y"||n==="z"&&e.shiftKey);if(!i&&!o)return;let s=e.target;if(!(s&&(s.isContentEditable||/^(input|textarea|select)$/i.test(s.tagName))))if(o){if(!this.dashboardState.canRedoLayout)return;e.preventDefault(),this.dashboardState.redoLayout()}else{if(!this.dashboardState.canUndoLayout)return;e.preventDefault(),this.dashboardState.undoLayout()}}onDashboardShortcutKeydown(e){if(this.sliderView()!=="edit"||e.defaultPrevented||e.isComposing||!e.shiftKey||e.metaKey||e.ctrlKey||e.altKey)return;let t=e.key.toLowerCase();if(!(t!=="r"&&t!=="p")&&!this.isTypingTarget(e.target))if(t==="r"){if(!this.canUpdate()||this.isRearranging())return;e.preventDefault(),this.rearrangeDashboard()}else{if(!this.canUpdate()||!this.canPublish()||this.isPublishing())return;e.preventDefault(),this.publishClick.emit()}}isTypingTarget(e){let t=e;if(!t||typeof t.tagName!="string")return!1;if(t.isContentEditable)return!0;let n=t.tagName.toLowerCase();return/^(input|textarea|select|option)$/.test(n)||n.startsWith("nile-")}applyingFilters=g(!1);activeDashboardFilters=g(null);activeResolvedFilters=g(null);currentTimeRange=g(null);applySummary=g(null);isFilterWidget(e){return e?.config?.chart?.type==="filter"}filterSuggestTimers=new Map;filterSuggestSeq=new Map;filterCatalogCache=new Map;primedFilterWidgets=new Set;initialFilterAppliedFor=new Set;collectInitialFilters(e){let t={};for(let n of e){let i=n.config?.chart;if(i?.type==="filter")for(let o of i.controls??[]){if(!o.id)continue;let s=o.value;s!=null&&(typeof s=="string"&&s.trim()===""||(t[o.id]=s))}}return Object.keys(t).length>0?t:null}async applyInitialFilters(e){let t=this.dashboardState.snapshot.widgets.filter(s=>!this.isFilterWidget(s));if(t.length===0)return;let n=this.loadedDashboardId();if(!n)return;this.applyFiltersAbort?.abort();let i=new AbortController;this.applyFiltersAbort=i;let o=++this.applyFiltersSeq;this.applyingFilters.set(!0);try{let{widgets:s,resolvedFilters:p}=await this.openAiService.applyFilters(t,e,n,"draft",i.signal,{timeRange:this.currentTimeRange()??void 0});if(o!==this.applyFiltersSeq)return;this.dashboardState.applyFilterView(s),this.activeDashboardFilters.set(e),this.activeResolvedFilters.set(p),this.applySummary.set(Ue(s,this.buildActiveFilters(e)))}catch(s){if(s?.name==="AbortError"||o!==this.applyFiltersSeq)return;let p=s instanceof Error?s.message:"Failed to apply filters.";this.pushSystemMessage("error",`Apply filters failed: ${p}`)}finally{o===this.applyFiltersSeq&&this.applyingFilters.set(!1)}}async onTimeRangeApply(e){if(this.currentTimeRange.set(e),!e&&this.isEmptyFilters(this.activeDashboardFilters())){await this.reloadDashboardForFilterClear();return}let t=this.dashboardState.snapshot.widgets.filter(s=>!this.isFilterWidget(s));if(t.length===0)return;let n=this.loadedDashboardId();if(!n)return;this.applyFiltersAbort?.abort();let i=new AbortController;this.applyFiltersAbort=i;let o=++this.applyFiltersSeq;this.applyingFilters.set(!0);try{let s=this.activeDashboardFilters()??{},{widgets:p,resolvedFilters:y}=await this.openAiService.applyFilters(t,s,n,"draft",i.signal,{resolvedFilters:this.activeResolvedFilters()??[],timeRange:e??void 0});if(o!==this.applyFiltersSeq)return;this.dashboardState.applyFilterView(p),this.activeResolvedFilters.set(y),this.applySummary.set(Ue(p,this.buildActiveFilters(s)))}catch(s){if(s?.name==="AbortError"||o!==this.applyFiltersSeq)return;let p=s instanceof Error?s.message:"Failed to apply time range.";this.pushSystemMessage("error",`Apply time range failed: ${p}`)}finally{o===this.applyFiltersSeq&&this.applyingFilters.set(!1)}}onSliderFilterChange(e){if(!e.widgetId||!e.controlId||e.query!=="")return;let t=this.loadedDashboardId();if(!t)return;let n=this.dashboardWidgets(),{widgetId:i,controlId:o}=e;(async()=>{try{let s=await this.openAiService.filterSuggest(t,"",n,"draft");this.applyFilterSuggestions(i,o,s)}catch(s){console.warn("[sug] editor filterSuggest failed",s)}})()}primeFilterWidgets(){let e=this.loadedDashboardId();if(!e)return;let t=this.dashboardWidgets();for(let n of t){if(this.primedFilterWidgets.has(n.id))continue;let i=n.config?.chart;if(i?.type!=="filter")continue;let o=i.controls?.find(p=>p.variant==="prompt"||p.variant==="expression"||p.variant==="hybrid")??i.controls?.find(p=>p.id);if(!o?.id)continue;this.primedFilterWidgets.add(n.id);let s=o.id;(async()=>{try{let p=await this.openAiService.filterSuggest(e,"",t,"draft");this.applyFilterSuggestions(n.id,s,p)}catch(p){this.primedFilterWidgets.delete(n.id),console.warn("Filter suggest prime failed:",p)}})()}}applyFilterSuggestions(e,t,n){let i=Array.isArray(n.suggestions)?[...n.suggestions]:[];if(!i.length){n.nextToken&&i.push({id:n.nextToken.value,label:n.nextToken.label,type:"attribute"});for(let o of n.completions)i.push({label:o,type:"suggestion"})}i.length!==0&&(this.filterCatalogCache.set(e,i),this.sliderGridRef?.patchFilterSuggestions(e,t,i))}buildActiveFilters(e){return yn(e,t=>this.filterFieldLabel(t))}filterFieldLabel(e){for(let t of this.filterCatalogCache.values()){let n=t.find(i=>i.type==="attribute"&&i.id===e);if(n)return n.label}return e}applyFiltersSeq=0;applyFiltersAbort;async onSliderFilterSubmit(e){if(this.isEmptyFilters(e.filters)){await this.reloadDashboardForFilterClear();return}let t=this.dashboardState.snapshot.widgets.filter(s=>!this.isFilterWidget(s));if(t.length===0)return;let n=this.loadedDashboardId();if(!n)return;this.applyFiltersAbort?.abort();let i=new AbortController;this.applyFiltersAbort=i;let o=++this.applyFiltersSeq;this.applyingFilters.set(!0);try{let{widgets:s,resolvedFilters:p}=await this.openAiService.applyFilters(t,e.filters,n,"draft",i.signal,{mode:e.mode,prompt:e.prompt,timeRange:this.currentTimeRange()??void 0});if(o!==this.applyFiltersSeq)return;this.dashboardState.applyFilterView(s),this.activeDashboardFilters.set(e.filters),this.activeResolvedFilters.set(p),this.applySummary.set(Ue(s,this.buildActiveFilters(e.filters)))}catch(s){if(s?.name==="AbortError"||o!==this.applyFiltersSeq)return;let p=s instanceof Error?s.message:"Failed to apply filters.";this.pushSystemMessage("error",`Apply filters failed: ${p}`)}finally{o===this.applyFiltersSeq&&this.applyingFilters.set(!1)}}isEmptyFilters(e){if(!e)return!0;for(let t of Object.values(e))if(t!=null&&!(typeof t=="string"&&t.trim()==="")&&!(typeof t=="object"&&Object.keys(t).length===0))return!1;return!0}async reloadDashboardForFilterClear(){let e=this.loadedDashboardId();if(!e)return;this.applyFiltersAbort?.abort();let t=++this.applyFiltersSeq;this.applyingFilters.set(!0),this.activeDashboardFilters.set(null),this.activeResolvedFilters.set(null),this.applySummary.set(null);try{let n=await this.publishRepo.fetchDashboard(e);if(t!==this.applyFiltersSeq)return;this.dashboardState.replaceDashboard(n),this.forecastable.set(n.forecastable??{})}catch(n){if(t!==this.applyFiltersSeq)return;let i=n instanceof Error?n.message:"Failed to reload dashboard.";this.pushSystemMessage("error",`Reload dashboard failed: ${i}`)}finally{t===this.applyFiltersSeq&&this.applyingFilters.set(!1)}}onSliderEditWidget(e){this.editDashboardWidget.emit(e)}onSliderWidgetClicked(e){this.openWidgetDetailPanelForWidget(e)}async openWidgetDetailPanelForWidget(e){if(this.widgetDetailPanelLoading())return;let t=e.config?._meta?.detailPanel;if(t){this.widgetDetailPanelTitle.set(t.title??null),this.widgetDetailPanelSkeletonSlots.set((t.widgets??[]).map(n=>n.layout).filter(n=>!!n)),this.widgetDetailPanelLoading.set(!0),this.widgetDetailPanelOpen.set(!0);try{let n=await this.openAiService.previewWidgetDetailPanelDefinition(t);if(!n.widgets.length){this.widgetDetailPanelOpen.set(!1);return}this.widgetDetailPanelTitle.set(n.title),this.widgetDetailPanelRaw.set(n.widgets)}catch{this.widgetDetailPanelOpen.set(!1)}finally{this.widgetDetailPanelLoading.set(!1)}}}closeWidgetDetailPanel(){this.widgetDetailPanelOpen.set(!1),this.widgetDetailPanelRaw.set([]),this.widgetDetailPanelTitle.set(null),this.widgetDetailPanelSkeletonSlots.set([])}onSliderDslWidgetUpdated(e){this.dashboardState.updateWidget(e.id,{config:e.config,queryMeta:e.queryMeta})}onSliderWidgetChartTypeChanged(e){this.dashboardState.updateWidget(e.id,{componentName:e.componentName,config:e.config})}onSliderWidgetFiltersChanged(e){this.dashboardState.updateWidget(e.id,{config:e.config})}onSliderWidgetColorChanged(e){this.dashboardState.updateWidget(e.id,{config:e.config})}async onSliderTweakWidget(e){this.tweakingWidgetId.set(e.widgetId);try{let t=this.loadedWidgetIds().has(e.widgetId),n=this.dashboardState.snapshot.widgets.find(s=>s.id===e.widgetId),i=await this.openAiService.tweakWidget(t||!n?{widgetId:e.widgetId,prompt:e.prompt}:{widget:n,dataSourceId:this.datasourceId(),prompt:e.prompt}),o={config:i.config};i.title!==void 0&&(o.title=i.title),i.widgetType!==void 0&&(o.widgetType=i.widgetType),i.componentName!==void 0&&(o.componentName=i.componentName),i.summary!==void 0&&(o.summary=i.summary),i.layout&&(o.layout=i.layout),i.drilldownBy&&(o.drilldownBy=i.drilldownBy),this.dashboardState.updateWidget(e.widgetId,o)}catch(t){console.error("Tweak failed:",t)}finally{this.tweakingWidgetId.set(null)}}async runExecutiveSummary(){let e=this.loadedDashboardId();if(!e){this.pushSystemMessage("error","Save the dashboard before generating a summary.");return}this.showExecutiveSummary.set(!0);let t=this.aiExecutiveSummaryEl?.nativeElement;t&&(t.loading=!0,t.show?.());try{let n=await this.publishRepo.fetchDashboardSummary(e,!1),i=this.aiExecutiveSummaryEl?.nativeElement;i&&(i.config=E(D({},i.config??{}),{summary:n}),i.loading=!1,i.open&&i.startTyping?.())}catch(n){let i=n instanceof Error?n.message:"Failed to generate summary.",o=this.aiExecutiveSummaryEl?.nativeElement;o&&(o.config=E(D({},o.config??{}),{summary:un(`**Couldn't generate an executive summary.** ${i}`)}),o.loading=!1,o.open&&o.startTyping?.()),this.pushSystemMessage("error",`Executive summary failed: ${i}`)}}pushSystemMessage(e,t){e==="success"&&this.showToast("success","Done",t)}emitAddWidget(e){let i=e,{id:t}=i,n=ge(i,["id"]);this.addWidget.emit(n),this.pushSystemMessage("success","Widget added to your dashboard.")}isAddingToGlobal(e){return this.addingGlobalWidgetIds().has(e)}addToGlobalWidgets(e){this.addingGlobalWidgetIds().has(e.id)||(this.addingGlobalWidgetIds.update(t=>new Set(t).add(e.id)),this.saveWidgetToLibrary.emit(e.id))}finishSaveToLibrary(e,t,n){this.addingGlobalWidgetIds.update(i=>{let o=new Set(i);return o.delete(e),o}),this.pushSystemMessage(t,n)}findChatWidget(e){return null}onAddToThisDashboard(e,t){this.pendingDashboardWidgets.set({title:t,widgets:e}),this.showLayoutPopup.set(!0)}confirmAddToDashboard(){this.addWidgetsToDashboard.emit(this.pendingDashboardWidgets()),this.showLayoutPopup.set(!1),this.pendingDashboardWidgets.set({widgets:[]})}showToast(e,t,n){let i=document.createElement("nile-toast");i.variant=e,i.title=t,i.content=n,i.duration=5e3,i.closable=!0,i.toast(),qe()}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=j({type:a,selectors:[["db-dashboard-editor"]],viewQuery:function(t,n){if(t&1&&Ie(Oi,5)(ki,5,Pe)(Ei,5)(Ti,5)(Ii,5)(Ai,5,Pe),t&2){let i;Q(i=J())&&(n.aiExecutiveSummaryEl=i.first),Q(i=J())&&(n.pipelineHost=i.first),Q(i=J())&&(n.erDiagramRef=i.first),Q(i=J())&&(n.osViewerRef=i.first),Q(i=J())&&(n.sliderGridRef=i.first),Q(i=J())&&(n.reportHost=i.first)}},hostBindings:function(t,n){t&1&&f("keydown",function(o){return n.onDashboardShortcutKeydown(o)},ft)},inputs:{datasourceId:[1,"datasourceId"],connections:[1,"connections"],connectionsLoading:[1,"connectionsLoading"],selectedConnectionId:[1,"selectedConnectionId"],loadedDashboardId:[1,"loadedDashboardId"],dashboardLoading:[1,"dashboardLoading"],loadedWidgetIds:[1,"loadedWidgetIds"],dashboardName:[1,"dashboardName"],dashboardsList:[1,"dashboardsList"],globalWidgets:[1,"globalWidgets"],globalWidgetsLoading:[1,"globalWidgetsLoading"],addedGlobalWidgetIds:[1,"addedGlobalWidgetIds"],initialTool:[1,"initialTool"],dashboardSummaryHtml:[1,"dashboardSummaryHtml"],dashboardSummaryLoading:[1,"dashboardSummaryLoading"],isPublishing:[1,"isPublishing"],isExporting:[1,"isExporting"]},outputs:{addWidget:"addWidget",saveWidgetToLibrary:"saveWidgetToLibrary",publishNewDashboard:"publishNewDashboard",addWidgetsToDashboard:"addWidgetsToDashboard",connectionChange:"connectionChange",editDashboardWidget:"editDashboardWidget",switchDashboard:"switchDashboard",exitDashboard:"exitDashboard",createDashboardClick:"createDashboardClick",addGlobalWidgetToDashboard:"addGlobalWidgetToDashboard",removeGlobalWidgetFromLibrary:"removeGlobalWidgetFromLibrary",loadGlobalWidgets:"loadGlobalWidgets",loadDashboardsList:"loadDashboardsList",toolClosed:"toolClosed",executiveSummaryClick:"executiveSummaryClick",exportPdfClick:"exportPdfClick",exportPngClick:"exportPngClick",publishClick:"publishClick",dashboardDeleted:"dashboardDeleted",dashboardRenamed:"dashboardRenamed",createPipelineClick:"createPipelineClick",removeWidget:"removeWidget"},features:[kt([dn(),Be(()=>{let e=u(B),t=u(L);return je(()=>`${t.baseUrl}/api/customers/${e.tenantId()??""}/products/${t.getProductId()}/workforce`)})])],decls:53,vars:59,consts:[["sliderGrid",""],["aiExecutiveSummary",""],["pipelineHost",""],["reportHost",""],["erDiagram",""],["osViewer",""],["headerRenameInput",""],[1,"qna-panel"],[1,"panel-right-side"],[1,"pipeline-flyer"],[1,"contained-panel","home-panel"],[1,"contained-panel","all-pipelines-panel"],[1,"contained-panel","schema-panel"],[1,"contained-panel","all-dashboards-panel"],["aria-label","Rearranging dashboard",1,"rearrange-indicator"],[1,"dashboard-toolbar"],[1,"chat-layout"],[1,"chat-header"],["content","Back to dashboards","placement","bottom"],["circle","","variant","ghost","size","small","aria-label","Back to dashboards",3,"click"],["name","ng-arrow-left","method","stroke","size","18"],[1,"chat-header__rename"],[1,"chat-header__title-group"],[1,"contained-panel","widget-library-panel"],[1,"dashboard-slider"],[1,"dashboard-slider__body"],[3,"forecast","remove","editWidget","updateLayout","tweakWidget","dslWidgetUpdated","widgetChartTypeChanged","widgetFiltersChanged","widgetColorChanged","filterSubmit","filterChange","setAlert","widgetClick","timeRangeApply","widgets","editMode","canvasBackgroundColor","autoHeight","dashboardId","tweakingWidgetId","loading","widgetsLoading","dashboardFilters","resolvedFilters","applySummary","showWidgetMenu","canAsk","canChangeChartType","canManageFilters","canCustomizeColors","canViewChartData","canSetAlert","canAddToStory","canForecast","canExportPng","canExportCsv","canPrint","canTweak","canEdit","canDelete","forecastable","forecastingWidgetId","detailPanel","detailRootLabel","timeFilterEnabled"],[3,"closed","saved","open","widget","dashboardId","source"],[1,"ai-executive-summary"],[1,"aq-detail-overlay"],["label","Change source Index",3,"nile-request-close","open"],[1,"lifecycle-index-intro"],[1,"layout-warning-text",2,"color","var(--nile-color-text-error, #E02424)"],[1,"layout-warning-text"],[1,"lifecycle-index-list"],["slot","footer",1,"layout-popup-footer"],["variant","tertiary","size","small"],["variant","tertiary","size","small",3,"click"],["label","Delete Dashboard",3,"nile-request-close","open"],["variant","primary","size","small",3,"click"],["label","Add to Dashboard",3,"nile-request-close","open"],[1,"contained-panel__header"],[1,"contained-panel__title"],["type","button","aria-label","Close",1,"contained-panel__close",3,"click"],["name","close","size","16"],[1,"contained-panel__body","contained-panel__body--flush"],[1,"contained-panel__body"],[1,"tool-empty"],[1,"all-dash-grid"],["tabindex","0","role","button",1,"all-dash-card"],["tabindex","0","role","button",1,"all-dash-card",3,"click"],[1,"all-dash-card__head"],[1,"all-dash-card__icon"],["name","ng-dataflow-04","size","18","method","stroke"],["variant","success"],[1,"all-dash-card__name",3,"title"],[1,"schema-panel__body"],[3,"connectionId","tables","preselectedColumns"],[1,"schema-panel__footer"],["variant","tertiary",3,"click"],["variant","primary",3,"click"],["slot","prefix",1,"btn-spinner","btn-spinner--light"],[3,"connectionId","indexNames","preselectedFields"],["variant","primary","size","small","class","contained-panel__primary-action",3,"click",4,"hasPermission"],[1,"dash-empty-state"],["variant","primary","size","small",1,"contained-panel__primary-action",3,"click"],["slot","prefix","name","ng-plus","method","stroke","size","14","color","#fff"],[1,"dash-empty-state__graphic"],["viewBox","0 0 380 140","aria-hidden","true","preserveAspectRatio","xMidYMid meet"],["id","dashFlowAllDash","x1","78","y1","70","x2","170","y2","70","gradientUnits","userSpaceOnUse"],["offset","0%","stop-color","#BFD7E9","stop-opacity","0.4"],["offset","100%","stop-color","#005EA6","stop-opacity","0.9"],["x","20","y","36","width","58","height","68","rx","6","fill","#fff","stroke","#C7CED4"],["x1","20","y1","50","x2","78","y2","50","stroke","#E6E9EB"],["x1","49","y1","36","x2","49","y2","104","stroke","#E6E9EB"],["cx","34","cy","62","r","2","fill","#80AED3"],["cx","64","cy","62","r","2","fill","#80AED3"],["cx","34","cy","76","r","2","fill","#80AED3"],["cx","64","cy","76","r","2","fill","#80AED3"],["cx","34","cy","90","r","2","fill","#80AED3"],["cx","64","cy","90","r","2","fill","#80AED3"],["d","M 78 70 L 170 70","fill","none","stroke","url(#dashFlowAllDash)","stroke-width","3","stroke-linecap","round","stroke-dasharray","4 4"],["cx","100","cy","70","r","3","fill","#005EA6"],["attributeName","cx","from","78","to","170","dur","2s","repeatCount","indefinite"],["cx","120","cy","70","r","3","fill","#80AED3","opacity","0.7"],["attributeName","cx","from","78","to","170","dur","2s","begin","0.6s","repeatCount","indefinite"],["x","170","y","22","width","190","height","96","rx","8","fill","#fff","stroke","#80AED3","stroke-width","1.5"],["x","180","y","32","width","48","height","22","rx","4","fill","#E6EFF6"],["x","184","y","38","width","22","height","3","rx","1.5","fill","#80AED3"],["x","184","y","44","width","14","height","5","rx","1.5","fill","#005EA6"],["x","234","y","32","width","48","height","22","rx","4","fill","#E6EFF6"],["x","238","y","38","width","22","height","3","rx","1.5","fill","#80AED3"],["x","238","y","44","width","14","height","5","rx","1.5","fill","#005EA6"],["x","288","y","32","width","62","height","22","rx","4","fill","#E6EFF6"],["x","292","y","38","width","22","height","3","rx","1.5","fill","#80AED3"],["x","292","y","44","width","14","height","5","rx","1.5","fill","#005EA6"],["x","180","y","86","width","6","height","22","rx","1","fill","#005EA6","opacity","0.7"],["attributeName","height","values","22;14;22","dur","1.8s","repeatCount","indefinite"],["attributeName","y","values","86;94;86","dur","1.8s","repeatCount","indefinite"],["x","192","y","80","width","6","height","28","rx","1","fill","#005EA6"],["attributeName","height","values","28;20;28","dur","1.8s","begin","0.2s","repeatCount","indefinite"],["attributeName","y","values","80;88;80","dur","1.8s","begin","0.2s","repeatCount","indefinite"],["x","204","y","76","width","6","height","32","rx","1","fill","#005EA6","opacity","0.85"],["attributeName","height","values","32;24;32","dur","1.8s","begin","0.4s","repeatCount","indefinite"],["attributeName","y","values","76;84;76","dur","1.8s","begin","0.4s","repeatCount","indefinite"],["x","216","y","84","width","6","height","24","rx","1","fill","#005EA6","opacity","0.6"],["attributeName","height","values","24;16;24","dur","1.8s","begin","0.6s","repeatCount","indefinite"],["attributeName","y","values","84;92;84","dur","1.8s","begin","0.6s","repeatCount","indefinite"],["d","M 250 102 L 268 92 L 286 96 L 304 84 L 322 88 L 340 76","fill","none","stroke","#005EA6","stroke-width","1.5","stroke-linecap","round","stroke-linejoin","round"],["attributeName","stroke-dasharray","values","0 200;200 200","dur","2.4s","repeatCount","indefinite"],["cx","340","cy","76","r","3","fill","#005EA6"],["attributeName","opacity","values","0;1;1;0","dur","2.4s","repeatCount","indefinite"],[1,"dash-empty-state__title"],[1,"dash-empty-state__desc"],["variant","primary","size","medium",3,"click",4,"hasPermission"],["variant","primary","size","medium",3,"click"],["type","button",1,"dash-card"],["type","button",1,"dash-card",3,"click"],[1,"dash-card__preview"],[1,"dash-card__chip"],[1,"dash-card__status"],["aria-hidden","true",1,"dash-card__widget"],["aria-hidden","true",1,"dash-card__empty"],[1,"dash-card__body"],[1,"dash-card__title-row"],[1,"dash-card__name",3,"title"],[1,"dash-card__actions"],["class","dash-card__action","role","button","tabindex","0","aria-label","Edit dashboard",3,"mousedown","click",4,"hasPermission"],[3,"deleteClick",4,"hasPermission"],[1,"dash-card__meta"],[1,"dash-card__meta-item"],["name","ng-grid-01","size","10","method","stroke"],[3,"config"],[1,"dash-card__empty-bars"],[2,"height","38%"],[2,"height","64%"],[2,"height","86%"],[2,"height","52%"],[2,"height","72%"],["role","button","tabindex","0","aria-label","Edit dashboard",1,"dash-card__action",3,"mousedown","click"],["name","ng-edit-02","method","stroke","size","14","color","var(--ng-colors-border-brand)"],[3,"deleteClick"],[1,"dash-card__meta-dot"],["viewBox","0 0 24 24","aria-hidden","true",1,"rearrange-svg"],["x","3","y","3","width","7","height","7","rx","1.5",1,"r","r-1"],["x","3","y","3","width","7","height","7","rx","1.5",1,"r","r-2"],["x","3","y","3","width","7","height","7","rx","1.5",1,"r","r-3","r-fill"],["x","3","y","3","width","7","height","7","rx","1.5",1,"r","r-4"],["variant","secondary","size","small"],[3,"action","canToggleFilter","hasFilter","canToggleTimeFilter","hasTimeFilter","canForecast","anyForecastOn","editMode","busy","exporting","canUpdate","canDelete","canPublish","canChangeIndex","showAskAquera"],["variant","secondary","size","small",3,"click"],["slot","prefix","name","ng-stars-02","method","stroke","size","14"],[1,"chat-header__rename",3,"mousedown","click"],["type","text",1,"chat-header__rename-input",3,"input","keydown","value","disabled"],["type","button","aria-label","Save dashboard name",1,"chat-header__rename-action",3,"click","disabled"],["name","ng-check","method","stroke","size","16","color","var(--ng-colors-border-brand)"],["type","button","aria-label","Cancel rename",1,"chat-header__rename-action",3,"click","disabled"],["name","ng-x-close","method","stroke","size","16"],[2,"width","180px","height","16px","border-radius","4px"],[1,"chat-header-title"],["type","button","aria-label","Rename dashboard",1,"chat-header__edit-btn"],["type","button","aria-label","Rename dashboard",1,"chat-header__edit-btn",3,"click"],[1,"widget-lib-grid"],[1,"widget-lib-card"],[1,"widget-lib-card__preview"],[2,"width","100%","height","100%","border-radius","8px"],[1,"widget-lib-card__footer"],[2,"width","60%","height","16px","border-radius","4px"],[2,"width","30%","height","28px","border-radius","6px"],[3,"config","drilldownBy"],["variant","primary","size","small",1,"add-dashboard"],["role","button","tabindex","0","aria-label","Delete widget from library",1,"widget-lib-card__delete",3,"click","keydown.enter","keydown.space"],["name","ng-trash-01","method","stroke","size","14","color","var(--ng-colors-fg-error-primary)"],["variant","primary","size","small",1,"add-dashboard",3,"click"],[1,"aq-detail-overlay__crumbs"],[3,"nile-click"],["variant","text","width","160","height","16"],[1,"aq-detail-overlay__body"],[3,"widgets","editMode","selectable","showWidgetMenu","canAsk","canChangeChartType","canManageFilters","canCustomizeColors","canViewChartData","canSetAlert","canAddToStory","canForecast","canExportPng","canExportCsv","canPrint","canvasBackgroundColor"],[1,"aq-detail-skeleton-grid",3,"height"],[1,"aq-detail-skeleton"],[1,"aq-detail-skeleton-grid"],["variant","rectangular","border-radius","12px",1,"aq-detail-skeleton-slot",3,"left","top","width","height"],["variant","rectangular","border-radius","12px",1,"aq-detail-skeleton-slot"],[1,"aq-detail-skeleton__row"],["variant","rectangular","width","100%","height","96","border-radius","12px"],["variant","rectangular","width","100%","height","280","border-radius","12px"],["type","button",1,"lifecycle-index-option",3,"lifecycle-index-option--current"],["type","button",1,"lifecycle-index-option",3,"click"],[1,"lifecycle-index-option__flow"],[1,"lifecycle-index-option__meta"],["alt","","loading","lazy",1,"lifecycle-index-option__logo",3,"error","src"],[1,"lifecycle-index-option__app"],["name","ng-arrow-right","method","stroke","size","13",1,"lifecycle-index-option__arrow"],[1,"lifecycle-index-option__current"],[1,"lifecycle-index-option__name"],[1,"lifecycle-index-option__index"]],template:function(t,n){if(t&1){let i=O();r(0,"div",7)(1,"div",8),b(2,Li,3,0,"div",9),b(3,zi,9,0,"div",10),b(4,Gi,9,1,"div",11),b(5,Zi,9,3,"div",12),b(6,ca,8,2,"div",13),b(7,ga,6,0,"span",14),b(8,pa,3,15,"div",15),r(9,"div",16)(10,"div",17)(11,"nile-tooltip",18)(12,"nile-button",19),f("click",function(){return n.exitDashboard.emit()}),m(13,"nile-glyph",20),d()(),b(14,ua,7,4,"div",21)(15,fa,4,2,"div",22),d(),b(16,Ma,10,1,"div",23),r(17,"div",24)(18,"div",25)(19,"shared-dashboard-grid",26,0),f("forecast",function(s){return n.onForecast(s)})("remove",function(s){return n.onSliderRemoveWidget(s)})("editWidget",function(s){return n.onSliderEditWidget(s)})("updateLayout",function(s){return n.onSliderUpdateLayout(s)})("tweakWidget",function(s){return n.onSliderTweakWidget(s)})("dslWidgetUpdated",function(s){return n.onSliderDslWidgetUpdated(s)})("widgetChartTypeChanged",function(s){return n.onSliderWidgetChartTypeChanged(s)})("widgetFiltersChanged",function(s){return n.onSliderWidgetFiltersChanged(s)})("widgetColorChanged",function(s){return n.onSliderWidgetColorChanged(s)})("filterSubmit",function(s){return n.onSliderFilterSubmit(s)})("filterChange",function(s){return n.onSliderFilterChange(s)})("setAlert",function(s){return n.onSetAlert(s)})("widgetClick",function(s){return n.onSliderWidgetClicked(s)})("timeRangeApply",function(s){return n.onTimeRangeApply(s)}),d(),r(21,"app-alert-drawer",27),f("closed",function(){return n.onAlertClosed()})("saved",function(){return n.onAlertClosed()}),d()()()()()(),m(22,"nile-executive-summary",28,1),b(24,Wa,11,3,"div",29),r(25,"nile-dialog",30),f("nile-request-close",function(s){return C(i),s.stopPropagation(),v(n.indexDialogOpen.set(!1))}),r(26,"p",31),h(27," These figures come from one HR integration. Change it if the wrong one was picked \u2014 the dashboard rebuilds in place. "),d(),b(28,Ra,2,1,"p",32),b(29,Fa,2,0,"p",33)(30,Na,2,1,"p",33)(31,Ga,3,0,"div",34),r(32,"div",35),b(33,Ua,2,1,"nile-button",36),r(34,"nile-button",37),f("click",function(){return n.indexDialogOpen.set(!1)}),h(35),d()()(),r(36,"nile-dialog",38),f("nile-request-close",function(s){return C(i),s.stopPropagation(),v(n.cancelDeleteDashboard())}),r(37,"p",33),b(38,Ha,4,1)(39,ja,1,0),d(),r(40,"div",35)(41,"nile-button",37),f("click",function(){return n.cancelDeleteDashboard()}),h(42," Cancel "),d(),r(43,"nile-button",39),f("click",function(){return n.confirmDeleteDashboard()}),h(44),d()()(),r(45,"nile-dialog",40),f("nile-request-close",function(s){return C(i),s.stopPropagation(),v(n.showLayoutPopup.set(!1))}),r(46,"p",33),h(47,"Adding to this dashboard may cause layout change."),d(),r(48,"div",35)(49,"nile-button",37),f("click",function(){return n.showLayoutPopup.set(!1)}),h(50," Cancel "),d(),r(51,"nile-button",39),f("click",function(){return n.confirmAddToDashboard()}),h(52," OK "),d()()()}if(t&2){let i;l(2),_(n.showCreatePipelineFlyer()?2:-1),l(),_(n.activeTool()==="report"?3:-1),l(),_(n.activeTool()==="allPipelines"?4:-1),l(),_(n.activeTool()==="schema"?5:-1),l(),_(n.activeTool()==="allDashboards"?6:-1),l(),_(n.isRearranging()?7:-1),l(),_(n.activeTool()!=="schema"&&!n.dashboardLoading()?8:-1),l(6),_(n.isEditingDashboardName()?14:15),l(2),_(n.activeTool()==="widgetLibrary"?16:-1),l(),et("dashboard-slider--fullscreen",n.sliderFullscreen()),l(2),x("widgets",n.sliderWidgets())("editMode",n.sliderView()!=="preview")("canvasBackgroundColor",n.canvasBackgroundColor())("autoHeight",n.autoHeight())("dashboardId",n.loadedDashboardId())("tweakingWidgetId",n.tweakingWidgetId())("loading",n.dashboardLoading())("widgetsLoading",n.isRearranging()||n.isPublishing()||n.applyingFilters()||n.forecastingAll())("dashboardFilters",n.activeDashboardFilters())("resolvedFilters",n.activeResolvedFilters())("applySummary",n.applySummary())("showWidgetMenu",n.widgetMenu().enabled)("canAsk",n.widgetMenu().ask)("canChangeChartType",n.widgetMenu().changeChartType)("canManageFilters",n.widgetMenu().manageFilters)("canCustomizeColors",n.widgetMenu().customizeColors)("canViewChartData",n.widgetMenu().chartData)("canSetAlert",n.canSetAlert()&&n.widgetMenu().setAlert)("canAddToStory",n.widgetMenu().addToStory)("canForecast",n.widgetMenu().forecast)("canExportPng",n.widgetMenu().exportPng)("canExportCsv",n.widgetMenu().exportCsv)("canPrint",n.widgetMenu().print)("canTweak",n.widgetMenu().tweak)("canEdit",n.widgetMenu().edit)("canDelete",n.widgetMenu().delete)("forecastable",n.forecastable())("forecastingWidgetId",n.forecastingWidgetId())("detailPanel",!0)("detailRootLabel",n.dashboardName()||"Dashboard")("timeFilterEnabled",!!n.loadedDashboardId()&&n.hasTimeFilter()),l(2),x("open",n.alertDrawerOpen())("widget",n.alertWidget())("dashboardId",n.loadedDashboardId())("source",n.alertSource()),l(3),_(n.widgetDetailPanelOpen()?24:-1),l(),x("open",n.indexDialogOpen()),l(3),_(n.indexError()?28:-1),l(),_(n.indexBusy()&&!n.indexCandidates().length?29:n.indexCandidates().length?31:30),l(4),_(((i=n.indexSelection())==null||i.current==null?null:i.current.source)==="override"?33:-1),l(),N("disabled",n.indexBusy()?"":null),l(),z(" ",n.indexBusy()?"Working\u2026":"Close"," "),l(),x("open",!!n.pendingDeleteDashboardId()),l(2),_(n.pendingDeleteDashboardName()?38:39),l(3),N("disabled",n.isDeletingDashboard()?"":null),l(2),N("disabled",n.isDeletingDashboard()?"":null),l(),z(" ",n.isDeletingDashboard()?"Deleting\u2026":"Delete"," "),l(),x("open",n.showLayoutPopup())}},dependencies:[me,Ve,In,Cn,vn,_n,fn,He,ce,wn,ve],styles:['@charset "UTF-8";[_nghost-%COMP%]{position:relative;display:block;height:100%}.qna-panel[_ngcontent-%COMP%]{display:flex;height:100%;background:var(--ng-colors-bg-secondary);font-family:var(--ng-font-family-body)}.qna-panel[_ngcontent-%COMP%] .loading-all-chat[_ngcontent-%COMP%]{height:100%;width:100%;display:flex;align-items:center;justify-content:center}@keyframes _ngcontent-%COMP%_sidebar-brand-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.panel-right-side[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;min-height:0;background:var(--ng-colors-bg-primary);position:relative}.panel-right-side[_ngcontent-%COMP%] > .dashboard-toolbar[_ngcontent-%COMP%]{position:absolute;top:0;right:12px;height:56px;z-index:var(--z-floating);display:flex;align-items:center;gap:6px}.panel-right-side[_ngcontent-%COMP%] > .dashboard-toolbar[_ngcontent-%COMP%] > .dashboard-menu[_ngcontent-%COMP%]{position:static;display:flex;align-items:center}.panel-right-side[_ngcontent-%COMP%] > .rearrange-indicator[_ngcontent-%COMP%]{position:absolute;top:16px;right:88px;z-index:var(--z-floating);display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;pointer-events:none}.panel-right-side[_ngcontent-%COMP%] .rearrange-svg[_ngcontent-%COMP%]{width:20px;height:20px;display:block;color:var(--ng-colors-text-primary-900)}.panel-right-side[_ngcontent-%COMP%] .rearrange-svg[_ngcontent-%COMP%] .r[_ngcontent-%COMP%]{fill:none;stroke:currentColor;stroke-width:1.5;animation:_ngcontent-%COMP%_rearrange-orbit 4s ease-in-out infinite}.panel-right-side[_ngcontent-%COMP%] .rearrange-svg[_ngcontent-%COMP%] .r-fill[_ngcontent-%COMP%]{fill:currentColor}.panel-right-side[_ngcontent-%COMP%] .rearrange-svg[_ngcontent-%COMP%] .r-1[_ngcontent-%COMP%]{animation-delay:0s}.panel-right-side[_ngcontent-%COMP%] .rearrange-svg[_ngcontent-%COMP%] .r-2[_ngcontent-%COMP%]{animation-delay:-1s}.panel-right-side[_ngcontent-%COMP%] .rearrange-svg[_ngcontent-%COMP%] .r-3[_ngcontent-%COMP%]{animation-delay:-2s}.panel-right-side[_ngcontent-%COMP%] .rearrange-svg[_ngcontent-%COMP%] .r-4[_ngcontent-%COMP%]{animation-delay:-3s}@keyframes _ngcontent-%COMP%_rearrange-orbit{0%,15%{transform:translate(0)}25%,40%{transform:translate(11px)}50%,65%{transform:translate(11px,11px)}75%,90%{transform:translateY(11px)}to{transform:translate(0)}}.panel-right-side[_ngcontent-%COMP%] > .close-panel-icon[_ngcontent-%COMP%]{position:absolute;top:20px;right:16px;z-index:var(--z-floating);cursor:pointer;color:var(--ng-colors-text-tertiary-600);transition:color .15s}.panel-right-side[_ngcontent-%COMP%] > .close-panel-icon[_ngcontent-%COMP%]:hover{color:var(--ng-colors-text-primary-900)}.panel-right-side[_ngcontent-%COMP%] > .pipeline-flyer[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:var(--z-floating);background:transparent}.panel-right-side[_ngcontent-%COMP%] > .pipeline-flyer[_ngcontent-%COMP%] .pipeline-flyer__loading[_ngcontent-%COMP%]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#fffc}.panel-right-side[_ngcontent-%COMP%] .chat-header[_ngcontent-%COMP%]{height:56px;padding:0 16px;border-bottom:1px solid var(--ng-colors-border-secondary);flex-shrink:0;background:var(--ng-colors-bg-primary);display:flex;align-items:center;justify-content:flex-start;gap:8px;box-sizing:border-box}.panel-right-side[_ngcontent-%COMP%] .chat-header[_ngcontent-%COMP%]:hover .chat-header__edit-btn[_ngcontent-%COMP%], .panel-right-side[_ngcontent-%COMP%] .chat-header[_ngcontent-%COMP%] .chat-header__edit-btn[_ngcontent-%COMP%]:focus-visible{opacity:1;pointer-events:auto}.panel-right-side[_ngcontent-%COMP%] .chat-header[_ngcontent-%COMP%] .chat-header-title[_ngcontent-%COMP%]{font-size:13px;font-weight:600;color:var(--ng-colors-text-primary-900)}.panel-right-side[_ngcontent-%COMP%] .chat-header[_ngcontent-%COMP%] .chat-header__title-group[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;min-width:0}.panel-right-side[_ngcontent-%COMP%] .chat-header[_ngcontent-%COMP%] .chat-header__edit-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:0;padding:0;background:transparent;border-radius:6px;color:var(--ng-colors-text-tertiary-600);cursor:pointer;opacity:0;pointer-events:none;transition:background .15s,opacity .15s}.panel-right-side[_ngcontent-%COMP%] .chat-header[_ngcontent-%COMP%] .chat-header__edit-btn[_ngcontent-%COMP%]:hover{background:var(--ng-colors-bg-quaternary)}.panel-right-side[_ngcontent-%COMP%] .chat-header[_ngcontent-%COMP%] .chat-header__rename[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;flex:1 1 auto;max-width:calc(100% - 280px);min-width:0}.panel-right-side[_ngcontent-%COMP%] .chat-header[_ngcontent-%COMP%] .chat-header__rename-input[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0;height:32px;padding:0 10px;font-size:13px;font-weight:600;color:var(--ng-colors-text-primary-900);background:var(--ng-colors-bg-primary);border:1px solid var(--ng-colors-border-secondary);border-radius:6px;outline:none}.panel-right-side[_ngcontent-%COMP%] .chat-header[_ngcontent-%COMP%] .chat-header__rename-input[_ngcontent-%COMP%]:focus{border-color:var(--ng-colors-border-brand);box-shadow:0 0 0 3px #2970ff29}.panel-right-side[_ngcontent-%COMP%] .chat-header[_ngcontent-%COMP%] .chat-header__rename-action[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:0;padding:0;background:transparent;border-radius:6px;cursor:pointer;transition:background .15s}.panel-right-side[_ngcontent-%COMP%] .chat-header[_ngcontent-%COMP%] .chat-header__rename-action[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--ng-colors-bg-quaternary)}.panel-right-side[_ngcontent-%COMP%] .chat-header[_ngcontent-%COMP%] .chat-header__rename-action[_ngcontent-%COMP%]:disabled{cursor:not-allowed;opacity:.6}.panel-right-side[_ngcontent-%COMP%] .chat-header[_ngcontent-%COMP%] .close-panel-icon[_ngcontent-%COMP%]{cursor:pointer;color:var(--ng-colors-text-tertiary-600);transition:color .15s}.panel-right-side[_ngcontent-%COMP%] .chat-header[_ngcontent-%COMP%] .close-panel-icon[_ngcontent-%COMP%]:hover{color:var(--ng-colors-text-primary-900)}.panel-right-side[_ngcontent-%COMP%] .chat-header[_ngcontent-%COMP%] .chat-header__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;flex-shrink:0}.panel-right-side[_ngcontent-%COMP%] .dashboard-toolbar[_ngcontent-%COMP%] .dashboard-menu[_ngcontent-%COMP%]{flex-shrink:0}.panel-right-side[_ngcontent-%COMP%] .dashboard-menu__divider[_ngcontent-%COMP%]{height:1px;margin:4px 8px;background:var(--ng-colors-border-secondary)}.panel-right-side[_ngcontent-%COMP%] .dashboard-menu-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:4px;border:0;outline:0;background:transparent;color:var(--ng-colors-text-tertiary-600);cursor:pointer;transition:color .15s}.panel-right-side[_ngcontent-%COMP%] .dashboard-menu-btn[_ngcontent-%COMP%]:hover, .panel-right-side[_ngcontent-%COMP%] .dashboard-menu-btn[_ngcontent-%COMP%]:focus, .panel-right-side[_ngcontent-%COMP%] .dashboard-menu-btn[_ngcontent-%COMP%]:focus-visible, .panel-right-side[_ngcontent-%COMP%] .dashboard-menu-btn[_ngcontent-%COMP%]:active{background:transparent;outline:0;color:var(--ng-colors-text-primary-900)}.panel-right-side[_ngcontent-%COMP%] .chat-layout[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0;min-width:0;container-type:inline-size}.panel-right-side[_ngcontent-%COMP%] .dashboard-slider[_ngcontent-%COMP%]{flex:1 1 auto;display:flex;flex-direction:column;overflow:hidden;min-width:0;min-height:0;background:var(--ng-colors-bg-secondary);animation:_ngcontent-%COMP%_slider-in .25s ease-out}.panel-right-side[_ngcontent-%COMP%] .dashboard-slider__body[_ngcontent-%COMP%]{flex:1;min-height:0;min-width:0;overflow:auto;padding:0}.panel-right-side[_ngcontent-%COMP%] .dashboard-slider__body[_ngcontent-%COMP%] > shared-dashboard-grid[_ngcontent-%COMP%]{display:block;width:100%!important;min-width:100%!important}.panel-right-side[_ngcontent-%COMP%] .dashboard-slider__body[_ngcontent-%COMP%] .canvas-wrap{border-radius:0!important;padding:8!important}.panel-right-side[_ngcontent-%COMP%] .dashboard-slider__body[_ngcontent-%COMP%] gridster{border-radius:0!important}.panel-right-side[_ngcontent-%COMP%] .dashboard-slider.dashboard-slider--fullscreen[_ngcontent-%COMP%] .dashboard-slider__body[_ngcontent-%COMP%] > shared-dashboard-grid[_ngcontent-%COMP%]{width:100%!important;min-width:100%!important}@keyframes _ngcontent-%COMP%_slider-in{0%{transform:translate(24px);opacity:0}to{transform:translate(0);opacity:1}}.panel-right-side[_ngcontent-%COMP%] .loading-chat[_ngcontent-%COMP%]{flex:1;display:flex;align-items:center;justify-content:center}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%]{flex:1;overflow:auto;padding:20px 24px;display:flex;flex-direction:column-reverse}.panel-right-side[_ngcontent-%COMP%] .chat-message-container.recommend-window[_ngcontent-%COMP%]{justify-content:center;align-items:center;padding:32px 40px}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .user-row[_ngcontent-%COMP%]{display:flex;flex-direction:row-reverse;gap:8px;margin-bottom:20px}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .user[_ngcontent-%COMP%]{flex:0 1 auto;min-width:0}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .user[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{background:var(--ng-colors-bg-brand-primary);color:var(--ng-colors-text-primary-900);padding:9px 14px;border-radius:14px 14px 2px;font-size:14px;display:inline-block;max-width:100%;text-align:left}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .user-icon[_ngcontent-%COMP%]{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--ng-colors-bg-brand-primary);color:var(--ng-colors-border-brand);display:inline-flex;align-items:center;justify-content:center}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .assistant-row[_ngcontent-%COMP%]{display:flex;align-items:flex-start;margin-bottom:14px;min-width:0}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .assistant-icon[_ngcontent-%COMP%]{flex-shrink:0;width:28px;height:28px;color:var(--ng-colors-border-brand);display:inline-flex;align-items:center;justify-content:center}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .assistant[_ngcontent-%COMP%]{flex:1 1 auto;min-width:0;font-size:14px;line-height:1.65;color:var(--ng-colors-text-primary-900)}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .generating-loader[_ngcontent-%COMP%]{padding:10px 14px;height:40px;display:flex;gap:8px;align-items:center;background:var(--ng-colors-bg-secondary);border:1px solid var(--ng-colors-border-secondary);border-radius:8px;font-size:13px;color:var(--ng-colors-text-tertiary-600);width:fit-content}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .welcome-section[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:820px;text-align:center}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .welcome-section[_ngcontent-%COMP%] .welcome-icon-wrap[_ngcontent-%COMP%]{margin-bottom:4px}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .welcome-section[_ngcontent-%COMP%] .welcome-title[_ngcontent-%COMP%]{margin:0;font-size:22px;font-weight:700;color:var(--ng-colors-text-primary-900);letter-spacing:-.02em}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .welcome-section[_ngcontent-%COMP%] .welcome-subtitle[_ngcontent-%COMP%]{margin:0 0 4px;font-size:14px;color:var(--ng-colors-text-tertiary-600);max-width:440px;line-height:1.6}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .recommended[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;width:100%}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .recommended[_ngcontent-%COMP%] .recommended-box[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;border:1px solid var(--ng-colors-border-secondary);border-radius:14px;padding:12px 16px;cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .15s;background:var(--ng-colors-bg-primary);text-align:left}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .recommended[_ngcontent-%COMP%] .recommended-box[_ngcontent-%COMP%]:hover{border-color:var(--ng-colors-border-brand);box-shadow:0 6px 24px #2970ff1a;transform:translateY(-2px)}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .recommended[_ngcontent-%COMP%] .recommended-box[_ngcontent-%COMP%] .rec-title[_ngcontent-%COMP%]{font-size:13px;font-weight:600;color:var(--ng-colors-text-primary-900);text-transform:capitalize;line-height:1.4}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .recommended.recommended--copilot[_ngcontent-%COMP%]{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:680px}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .recommended.recommended--copilot[_ngcontent-%COMP%] .recommended-box[_ngcontent-%COMP%]{flex-direction:row;align-items:center;gap:10px;padding:12px 16px;border-radius:12px}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .recommended.recommended--copilot[_ngcontent-%COMP%] .recommended-box[_ngcontent-%COMP%] .rec-title[_ngcontent-%COMP%]{font-size:13px;font-weight:500;text-transform:none;color:var(--ng-colors-text-secondary-700);line-height:1.4;display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}@container (max-width: 440px){.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .recommended.recommended--copilot[_ngcontent-%COMP%]{display:none}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .browse-more[_ngcontent-%COMP%]{align-self:center}}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .browse-more[_ngcontent-%COMP%]{margin-top:4px;align-self:flex-end;display:inline-flex;align-items:center;gap:6px;padding:6px 4px;background:transparent;border:0;cursor:pointer;font-size:12px;font-weight:500;color:var(--ng-colors-text-tertiary-600);transition:color .15s}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .browse-more[_ngcontent-%COMP%]:hover{color:var(--ng-colors-border-brand)}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .preview-card[_ngcontent-%COMP%]{border:var(--nile-border-width-1, var(--ng-stroke-width-1)) solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));border-radius:var(--nile-radius-radius-3xl, var(--ng-radius-xl))}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .chart-preview[_ngcontent-%COMP%]{height:300px;overflow:hidden}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .chart-preview--filter[_ngcontent-%COMP%]{height:auto}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .chart-add-action[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:8px 20px 20px 0}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .dashboard-card[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--ng-colors-border-secondary);border-radius:10px;background:var(--ng-colors-bg-primary);cursor:pointer;transition:border-color .15s,box-shadow .15s;margin-bottom:10px}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .dashboard-card[_ngcontent-%COMP%]:hover, .panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .dashboard-card[_ngcontent-%COMP%]:focus{border-color:var(--ng-colors-border-brand);box-shadow:0 2px 12px #2970ff1a;outline:none}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .dashboard-card[_ngcontent-%COMP%] .dashboard-card-icon[_ngcontent-%COMP%]{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--ng-colors-bg-brand-primary);border-radius:8px;color:var(--ng-colors-border-brand)}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .dashboard-card[_ngcontent-%COMP%] .dashboard-card-info[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .dashboard-card[_ngcontent-%COMP%] .dashboard-card-info[_ngcontent-%COMP%] .dashboard-card-name[_ngcontent-%COMP%]{font-size:13px;font-weight:600;color:var(--ng-colors-text-primary-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .dashboard-card[_ngcontent-%COMP%] .dashboard-card-info[_ngcontent-%COMP%] .dashboard-card-meta[_ngcontent-%COMP%]{font-size:11px;color:var(--ng-colors-text-tertiary-600)}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .dashboard-card[_ngcontent-%COMP%] .dashboard-card-arrow[_ngcontent-%COMP%]{flex-shrink:0;color:var(--ng-colors-text-tertiary-600)}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .dashboard-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--ng-colors-text-primary-900);margin-bottom:4px}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .dashboard-description[_ngcontent-%COMP%]{font-size:12px;color:var(--ng-colors-text-tertiary-600);margin:0 0 10px}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .dashboard-preview[_ngcontent-%COMP%]{border-radius:8px;border:1px solid var(--ng-colors-border-secondary);margin-bottom:10px}.panel-right-side[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .dashboard-add-action[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;gap:12px}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%]{padding:14px 24px 18px;display:flex;justify-content:center;flex-shrink:0;background:var(--ng-colors-bg-primary)}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .chat-input-pill[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px;width:100%;max-width:760px;padding:14px 16px 12px;background:var(--ng-colors-bg-primary);border:1px solid var(--ng-colors-border-secondary);border-radius:24px;box-shadow:0 1px 2px #1018280a,0 8px 24px #1018280f;cursor:text;transition:border-color .15s,box-shadow .15s}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .chat-input-pill[_ngcontent-%COMP%]:focus-within{border-color:var(--ng-colors-border-brand);box-shadow:0 0 0 3px #2970ff1f}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .input-query[_ngcontent-%COMP%]{width:100%;min-width:0;border:0;outline:0;background:transparent;padding:6px 2px;font:inherit;font-size:15px;line-height:1.4;color:var(--ng-colors-text-primary-900);resize:none;overflow-y:auto;max-height:160px;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .input-query[_ngcontent-%COMP%]::placeholder{color:var(--ng-colors-text-tertiary-600)}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .pill-toolbar[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .pill-toolbar__left[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .pill-toolbar__right[_ngcontent-%COMP%]{display:flex;align-items:center;margin-left:auto}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .plus-dropdown[_ngcontent-%COMP%]{flex-shrink:0}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .plus-btn[_ngcontent-%COMP%]{flex-shrink:0;width:36px;height:36px;border-radius:50%;border:1px solid var(--ng-colors-border-secondary);background:var(--ng-colors-bg-primary);display:inline-flex;align-items:center;justify-content:center;color:var(--ng-colors-text-tertiary-600);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .plus-btn[_ngcontent-%COMP%]:hover{background:var(--ng-colors-bg-tertiary);color:var(--ng-colors-border-brand);border-color:var(--ng-colors-border-brand)}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .datasource-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:stretch;height:36px;border-radius:999px;border:1px solid var(--ng-colors-border-secondary);background:var(--ng-colors-bg-primary);color:var(--ng-colors-border-brand);font-size:13px;font-weight:500;overflow:hidden;max-width:280px;transition:border-color .15s}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .datasource-chip[_ngcontent-%COMP%]:hover{border-color:var(--ng-colors-border-brand)}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .datasource-chip__main[_ngcontent-%COMP%], .panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .datasource-chip__schema[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;transition:background .15s;min-width:0}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .datasource-chip__main[_ngcontent-%COMP%]:hover, .panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .datasource-chip__schema[_ngcontent-%COMP%]:hover{background:var(--ng-colors-bg-brand-primary)}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .datasource-chip__main[_ngcontent-%COMP%]{padding:0 10px 0 12px;max-width:180px}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .datasource-chip__main[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .datasource-chip__schema[_ngcontent-%COMP%]{padding:0 12px;color:var(--ng-colors-text-secondary-700)}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .datasource-chip__schema[_ngcontent-%COMP%] nile-glyph[_ngcontent-%COMP%]{color:var(--ng-colors-text-tertiary-600)}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .datasource-chip__sep[_ngcontent-%COMP%]{width:1px;background:var(--ng-colors-border-secondary)}@container (max-width: 440px){.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .datasource-chip__main[_ngcontent-%COMP%], .panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .datasource-chip__schema[_ngcontent-%COMP%]{padding-left:10px;padding-right:10px;gap:0}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .datasource-chip__main[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .datasource-chip__schema[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:none}}@container (min-width: 441px){.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .datasource-chip[_ngcontent-%COMP%] nile-lite-tooltip[_ngcontent-%COMP%]{pointer-events:none}}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .mic-icon[_ngcontent-%COMP%]{flex-shrink:0;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;color:var(--ng-colors-text-tertiary-600);transition:background .15s,color .15s}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .mic-icon[_ngcontent-%COMP%]:hover{background:var(--ng-colors-bg-tertiary);color:var(--ng-colors-border-brand)}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .mic-icon.mic-listening[_ngcontent-%COMP%]{color:var(--ng-colors-fg-error-primary);animation:_ngcontent-%COMP%_mic-pulse 1.2s ease-in-out infinite}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .send-icon[_ngcontent-%COMP%]{flex-shrink:0;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;transition:opacity .15s}.panel-right-side[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .send-icon.disabled[_ngcontent-%COMP%]{opacity:.2;pointer-events:none}.panel-right-side[_ngcontent-%COMP%] .input-query-container.input-query-container--welcome[_ngcontent-%COMP%]{border-top:0;background:transparent;padding:4px 0 12px;width:100%;max-width:680px}@keyframes _ngcontent-%COMP%_mic-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(1.3)}}.panel-right-side[_ngcontent-%COMP%] .kpi-preview[_ngcontent-%COMP%]{margin:8px 0;padding:16px;background:var(--ng-colors-bg-primary);border:1px solid var(--ng-colors-border-secondary);border-radius:10px}.panel-right-side[_ngcontent-%COMP%] .preview-header[_ngcontent-%COMP%]{padding:10px 16px;border-bottom:1px solid var(--ng-colors-border-secondary);flex-shrink:0;background:var(--ng-colors-bg-primary);display:flex;align-items:center;justify-content:space-between;position:relative;z-index:var(--z-floating)}.panel-right-side[_ngcontent-%COMP%] .preview-header[_ngcontent-%COMP%] .crumb-back[_ngcontent-%COMP%]{cursor:pointer}.panel-right-side[_ngcontent-%COMP%] .preview-header[_ngcontent-%COMP%] .crumb-back[_ngcontent-%COMP%] .preview-back[_ngcontent-%COMP%]{color:var(--ng-color-bluedark-700)}.panel-right-side[_ngcontent-%COMP%] .preview-header[_ngcontent-%COMP%] .close-panel-icon[_ngcontent-%COMP%]{cursor:pointer;color:var(--ng-colors-text-tertiary-600);transition:color .15s}.panel-right-side[_ngcontent-%COMP%] .preview-header[_ngcontent-%COMP%] .close-panel-icon[_ngcontent-%COMP%]:hover{color:var(--ng-colors-text-primary-900)}.panel-right-side[_ngcontent-%COMP%] .preview-scroll-area[_ngcontent-%COMP%]{flex:1;overflow:auto;padding:16px;position:relative;z-index:var(--z-floating);background:var(--ng-colors-bg-primary)}.panel-right-side[_ngcontent-%COMP%] .preview-action-bar[_ngcontent-%COMP%]{padding:12px 16px;border-top:1px solid var(--ng-colors-border-secondary);flex-shrink:0;display:flex;align-items:center;justify-content:flex-end;gap:12px;background:var(--ng-colors-bg-primary);position:relative;z-index:var(--z-floating)}.layout-warning-text[_ngcontent-%COMP%]{font-size:14px;color:var(--ng-colors-text-primary-900);margin:0}.layout-popup-footer[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;gap:8px}.contained-panel[_ngcontent-%COMP%]{position:absolute;top:0;right:0;bottom:0;display:flex;flex-direction:column;background:var(--ng-colors-bg-primary);border-left:1px solid var(--ng-colors-border-secondary);box-shadow:-8px 0 24px #10182814;z-index:var(--z-floating);animation:contained-slide .25s ease-out}.contained-panel__header[_ngcontent-%COMP%]{height:56px;padding:0 16px;border-bottom:1px solid var(--ng-colors-border-secondary);flex-shrink:0;background:var(--ng-colors-bg-primary);display:flex;align-items:center;justify-content:space-between;gap:8px;box-sizing:border-box}.contained-panel__close[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;padding:4px;border:0;outline:0;background:transparent;color:var(--ng-colors-text-tertiary-600);cursor:pointer;transition:color .15s;flex-shrink:0}.contained-panel__close[_ngcontent-%COMP%]:hover, .contained-panel__close[_ngcontent-%COMP%]:focus, .contained-panel__close[_ngcontent-%COMP%]:focus-visible, .contained-panel__close[_ngcontent-%COMP%]:active{outline:0;background:transparent;color:var(--ng-colors-text-primary-900)}.contained-panel__title[_ngcontent-%COMP%]{font-size:14px;font-weight:600;color:var(--ng-colors-text-primary-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contained-panel__body[_ngcontent-%COMP%]{flex:1;min-height:0;overflow:auto;padding:16px 20px 20px}.home-panel[_ngcontent-%COMP%], .all-dashboards-panel[_ngcontent-%COMP%], .all-pipelines-panel[_ngcontent-%COMP%], .schema-panel[_ngcontent-%COMP%]{width:100%;border-left:0;box-shadow:none}.schema-panel[_ngcontent-%COMP%] .contained-panel__body[_ngcontent-%COMP%]{display:flex;flex-direction:column;min-height:0;overflow:hidden}.schema-panel__body[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.schema-panel__footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;gap:var(--ng-spacing-2, 8px);padding:var(--ng-spacing-3, 12px) var(--ng-spacing-5, 20px);border-top:1px solid var(--ng-colors-border-secondary);background:var(--ng-colors-bg-primary);flex-shrink:0}.home-panel[_ngcontent-%COMP%] .contained-panel__body[_ngcontent-%COMP%]{overflow:visible;display:flex;flex-direction:column;position:relative}.home-panel[_ngcontent-%COMP%] .contained-panel__header[_ngcontent-%COMP%]{position:relative;z-index:1}.home-panel__loading[_ngcontent-%COMP%]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#fff9;z-index:2}.contained-panel__body--flush[_ngcontent-%COMP%]{padding:0}.all-dash-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;padding:22px 28px 40px}.dash-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;text-align:left;background:var(--ng-colors-bg-primary);border:1px solid var(--ng-colors-border-secondary);border-radius:12px;padding:0;font:inherit;color:inherit;cursor:pointer;overflow:hidden;transition:border-color .15s,box-shadow .15s,transform .15s}.dash-card[_ngcontent-%COMP%]:hover{border-color:var(--ng-colors-border-tertiary);box-shadow:0 4px 12px -2px #0a0d120f,0 2px 4px -1px #0a0d120a;transform:translateY(-1px)}.dash-card[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--ng-colors-border-brand);outline-offset:2px}.dash-card__preview[_ngcontent-%COMP%]{position:relative;height:140px;background:var(--ng-colors-bg-primary);border-bottom:1px solid var(--ng-colors-border-secondary);overflow:hidden}.dash-card__preview[_ngcontent-%COMP%]:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(90deg,#fff,#fff0 18% 82%,#fff),linear-gradient(0deg,#fff,#fff0 28%)}.dash-card__widget[_ngcontent-%COMP%]{position:absolute;inset:0;pointer-events:none;transform:scale(1.2);transform-origin:center}.dash-card__widget[_ngcontent-%COMP%] > db-dash-card-chart[_ngcontent-%COMP%]{display:block;width:100%;height:100%}.dash-card__empty[_ngcontent-%COMP%]{position:absolute;inset:14px;display:flex;align-items:flex-end;justify-content:center;pointer-events:none}.dash-card__empty-bars[_ngcontent-%COMP%]{display:flex;align-items:flex-end;gap:8px;width:78%;height:80%}.dash-card__empty-bars[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{flex:1;background:linear-gradient(180deg,var(--ng-colors-border-secondary) 0%,var(--ng-colors-bg-tertiary) 100%);border-radius:3px 3px 0 0;min-height:8px}.dash-card__chip[_ngcontent-%COMP%]{position:absolute;top:10px;right:10px;z-index:2;display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;background:var(--ng-colors-bg-primary);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--ng-colors-border-secondary);border-radius:999px;font-size:11px;font-weight:500;color:var(--ng-colors-text-tertiary-600)}.dash-card__status[_ngcontent-%COMP%]{position:absolute;top:10px;left:10px;z-index:2;display:inline-flex;align-items:center}.dash-card__body[_ngcontent-%COMP%]{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px}.dash-card__title-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;min-width:0}.dash-card__name[_ngcontent-%COMP%]{flex:1;min-width:0;font-size:14px;font-weight:600;color:var(--ng-colors-text-primary-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-card__actions[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;opacity:0;transition:opacity .15s;flex-shrink:0}.dash-card[_ngcontent-%COMP%]:hover .dash-card__actions[_ngcontent-%COMP%], .dash-card[_ngcontent-%COMP%]:focus-within .dash-card__actions[_ngcontent-%COMP%]{opacity:1}.dash-card__action[_ngcontent-%COMP%]{cursor:pointer;padding:4px;border-radius:6px;line-height:0}.dash-card__action[_ngcontent-%COMP%]:hover{background:var(--ng-colors-bg-secondary)}.dash-card__rename[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;min-width:0}.dash-card__rename-input[_ngcontent-%COMP%]{flex:1;min-width:0;height:28px;padding:0 8px;font:inherit;font-size:13px;font-weight:600;color:var(--ng-colors-text-primary-900);background:var(--ng-colors-bg-primary);border:1px solid var(--ng-colors-border-secondary);border-radius:6px;outline:none}.dash-card__rename-input[_ngcontent-%COMP%]:focus{border-color:var(--ng-colors-border-brand);box-shadow:0 0 0 3px #2970ff26}.dash-card__rename-input[_ngcontent-%COMP%]:disabled{opacity:.6;cursor:not-allowed}.dash-card__meta[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ng-colors-text-tertiary-600);min-height:16px}.dash-card__meta-item[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.dash-card__meta-dot[_ngcontent-%COMP%]{width:3px;height:3px;border-radius:999px;background:currentColor;opacity:.5;flex-shrink:0}.dash-card--editing[_ngcontent-%COMP%]{cursor:default}.dash-card--editing[_ngcontent-%COMP%]:hover{transform:none;box-shadow:none}.dash-card--new[_ngcontent-%COMP%]{align-items:center;justify-content:center;gap:10px;min-height:220px;padding:28px 18px;text-align:center;background:var(--ng-colors-bg-primary);border:1px solid var(--ng-colors-border-secondary);color:var(--ng-colors-text-tertiary-600)}.dash-card--new[_ngcontent-%COMP%]:hover{border-color:var(--ng-colors-border-tertiary);box-shadow:0 4px 12px -2px #0a0d120f,0 2px 4px -1px #0a0d120a;transform:translateY(-1px)}.dash-card__new-icon[_ngcontent-%COMP%]{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--ng-colors-bg-brand-primary);color:var(--ng-colors-fg-brand-primary-600);transition:transform .15s,background .15s}.dash-card--new[_ngcontent-%COMP%]:hover .dash-card__new-icon[_ngcontent-%COMP%]{transform:scale(1.05);background:var(--ng-colors-bg-brand-secondary)}.dash-card__new-label[_ngcontent-%COMP%]{font-size:15px;font-weight:600;color:var(--ng-colors-text-primary-900)}.dash-card__new-hint[_ngcontent-%COMP%]{font-size:12px;color:var(--ng-colors-text-tertiary-600)}.dash-empty-state[_ngcontent-%COMP%]{margin:24px;padding:56px 32px;display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--ng-colors-bg-primary);border:1px solid var(--ng-colors-border-secondary);border-radius:12px}.dash-empty-state__graphic[_ngcontent-%COMP%]{width:380px;max-width:100%;height:140px;margin-bottom:24px;display:block}.dash-empty-state__graphic[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{display:block;width:100%;height:100%}.dash-empty-state__title[_ngcontent-%COMP%]{margin:0 0 8px;font-size:20px;font-weight:600;color:var(--ng-colors-text-primary-900);letter-spacing:-.01em}.dash-empty-state__desc[_ngcontent-%COMP%]{margin:0 0 20px;max-width:480px;font-size:14px;line-height:1.5;color:var(--ng-colors-text-tertiary-600)}.ai-executive-summary[_ngcontent-%COMP%]::part(trigger){display:none}.ai-executive-summary[_ngcontent-%COMP%]::part(header){height:56px;padding:0 20px;box-sizing:border-box;flex-direction:row-reverse;justify-content:flex-end;gap:8px}.ai-executive-summary[_ngcontent-%COMP%]::part(title){font-size:14px;font-weight:600}.ai-executive-summary[_ngcontent-%COMP%]::part(close){position:relative;color:transparent;margin-left:0;margin-right:4px}.ai-executive-summary[_ngcontent-%COMP%]::part(close):before{content:"\\2190";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--ng-colors-text-tertiary-600);font-size:22px;line-height:1;font-weight:400}.ai-executive-summary[_ngcontent-%COMP%]::part(close):hover:before{color:var(--ng-colors-text-primary-900)}.tool-empty[_ngcontent-%COMP%]{padding:40px 16px;text-align:center;font-size:13px;color:var(--ng-colors-text-tertiary-600)}.widget-library-panel[_ngcontent-%COMP%]{width:33.37vw;max-width:100%}.widget-lib-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr;gap:12px}.widget-lib-card[_ngcontent-%COMP%]{min-width:0;width:100%}.widget-lib-card[_ngcontent-%COMP%]::part(base){border-radius:12px;border:1px solid var(--ng-colors-border-secondary);width:100%;max-width:100%;box-sizing:border-box}.widget-lib-card[_ngcontent-%COMP%]::part(body__wrapper){padding:12px;gap:unset}.widget-lib-card__preview[_ngcontent-%COMP%]{width:100%;aspect-ratio:16/10;overflow:hidden;border-radius:8px;border:1px solid var(--ng-colors-border-secondary);background:var(--ng-colors-bg-primary);box-sizing:border-box}.widget-lib-card__preview[_ngcontent-%COMP%] shared-nile-chart-widget[_ngcontent-%COMP%]{display:block;width:100%;height:100%}.widget-lib-card__footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;gap:8px;border-top:1px solid var(--ng-colors-border-secondary);padding-top:12px;margin-top:10px}.widget-lib-card__title[_ngcontent-%COMP%]{font-size:13px;font-weight:600;color:var(--ng-colors-text-primary-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.widget-lib-card__delete[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;cursor:pointer;color:var(--ng-colors-fg-error-primary)}.widget-lib-card__delete[_ngcontent-%COMP%]:hover{background:var(--ng-colors-bg-error-secondary)}.widget-lib-card__delete[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--ng-colors-border-error);outline-offset:2px}.add-dashboard[_ngcontent-%COMP%]::part(base){height:30px}.aq-detail-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:50;display:flex;flex-direction:column;background:var(--ng-colors-bg-primary)}.aq-detail-overlay__crumbs[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;box-sizing:border-box;min-height:56px;padding:10px 20px;border-bottom:1px solid var(--ng-colors-border-secondary);flex-shrink:0}.aq-detail-overlay__crumbs[_ngcontent-%COMP%] nile-breadcrumb[_ngcontent-%COMP%]{display:inline-flex;align-items:center}.aq-detail-overlay__body[_ngcontent-%COMP%]{flex:1 1 auto;min-height:0;overflow:auto;padding:20px;background:var(--ng-colors-bg-secondary)}.aq-detail-skeleton[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:16px;max-width:1000px}.aq-detail-skeleton__row[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.aq-detail-skeleton-grid[_ngcontent-%COMP%]{position:relative;width:100%}.aq-detail-skeleton-slot[_ngcontent-%COMP%]{position:absolute}.lifecycle-index-intro[_ngcontent-%COMP%]{margin:0 0 12px;font-size:13px;line-height:1.45;color:var(--nile-color-text-secondary, #6b7280)}.lifecycle-index-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px;max-height:340px;overflow-y:auto}.lifecycle-index-option[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2px;width:100%;padding:10px 12px;text-align:left;cursor:pointer;background:var(--nile-color-background-primary, #fff);border:1px solid var(--nile-color-border-secondary, #e5e7eb);border-radius:6px}.lifecycle-index-option[_ngcontent-%COMP%]:hover:not([disabled]){border-color:var(--nile-color-border-brand, #3f83f8)}.lifecycle-index-option[disabled][_ngcontent-%COMP%]{cursor:default;opacity:.6}.lifecycle-index-option--current[_ngcontent-%COMP%]{border-color:var(--nile-color-border-brand, #3f83f8);background:var(--nile-color-background-brand-subtle, #f5f8ff)}.lifecycle-index-option__name[_ngcontent-%COMP%]{font-weight:600;font-size:13px;color:var(--nile-color-text-primary, #111827)}.lifecycle-index-option__name[_ngcontent-%COMP%] em[_ngcontent-%COMP%]{font-style:normal;font-weight:500;color:var(--nile-color-text-brand, #3f83f8)}.lifecycle-index-option__meta[_ngcontent-%COMP%]{font-size:12px;color:var(--nile-color-text-secondary, #6b7280)}.lifecycle-index-option__index[_ngcontent-%COMP%]{font-size:11px;font-family:var(--nile-font-mono, ui-monospace, monospace);color:var(--nile-color-text-tertiary, #9ca3af);word-break:break-all}.lifecycle-index-option__flow[_ngcontent-%COMP%]{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:13px;font-weight:600;color:var(--nile-color-text-primary, #111827)}.lifecycle-index-option__current[_ngcontent-%COMP%]{font-style:normal;font-weight:500;font-size:12px;color:var(--nile-color-text-brand, #3f83f8)}.lifecycle-index-option__logo[_ngcontent-%COMP%]{width:16px;height:16px;flex:0 0 16px;object-fit:contain;border-radius:2px}.lifecycle-index-option__app[_ngcontent-%COMP%]{font-weight:600;color:var(--nile-color-text-primary, #111827)}.lifecycle-index-option__arrow[_ngcontent-%COMP%]{color:var(--nile-color-text-tertiary, #9ca3af);flex:0 0 auto}'],data:{animation:[nt("slideWidth",[Re(":enter",[Oe({width:"0",overflow:"hidden"}),We("300ms ease-in",Oe({width:"*"}))]),Re(":leave",[We("300ms ease-in",Oe({width:"0",overflow:"hidden"}))])])]}})};var Ka=["executiveSummary"],Za=["canvasArea"],Qa=["nameInput"];function Ja(a,e){if(a&1&&(r(0,"nile-badge"),h(1),Et(2,"titlecase"),d()),a&2){let t=c();l(),z(" ",t.editingWidget.widgetType==="kpi"||t.editingWidget.config.chart.type==="kpi"?"KPI Card":Tt(2,1,t.editingWidget.config.chart.type)+" Chart"," ")}}var Ze=class a{aiPanelRef;executiveSummaryEl;canvasAreaRef;nameInputRef;isExporting=g(!1);showExportDropdown=g(!1);isEditingName=g(!1);isDashboardLoading=g(!1);isRefreshingData=g(!1);tweakingWidgetId=g(null);editingNameValue="";MAX_NAME_LENGTH=50;VALID_NAME_RE=/[a-zA-Z0-9]/;state$;dashboardName=g("");activeSummary=g("");showAddWidgetDialog=!1;showSaveDialog=g(!1);showGlobalWidgetsDialog=!1;editMode=!0;editingWidget=null;connections=g([]);connectionsLoading=g(!1);selectedConnectionId=g("");selectedDatasourceId=g("");connectionDropdownOpen=g(!1);globalWidgets=g([]);globalWidgetsLoading=g(!1);addedGlobalWidgetIds=g(new Set);globalToDashWidgetMap=new Map;isPublishing=g(!1);loadedDashboardId=null;loadedWidgetIds=g(new Set);removedWidgetIds=new Set;isSummaryLoading=g(!1);environment=u(L);dashboardState=u(ze);globalWidgetService=u(Mn);publishRepo=u(G);connectionsService=u(le);openAiService=u(se);dashboardId=k("");nav=u(U);ngZone=u(bt);destroyRef=u(de);dashboardsBus=u(oe);routeProgress=u($e);connectionsLoadPromise=null;hostEl=u(pe);constructor(){this.watchElementState(),this.destroyRef.onDestroy(Ne(()=>this.ngZone.run(()=>this.repaintDashboardPreviews()))),this.state$=this.dashboardState.state$,this.dashboardName.set(this.dashboardState.snapshot.name),this.state$.pipe(ee(this.destroyRef)).subscribe(e=>{this.dashboardName.set(e.name)}),this.dashboardState.mutations$.pipe(gt(()=>!!this.loadedDashboardId),ht(0),ee(this.destroyRef)).subscribe(e=>{let t=this.loadedDashboardId;!t||!this.dashboardState.isDirty||this.isPublishing()||this.publishRepo.saveDraft(t,e).catch(n=>{console.error("Failed to save dashboard draft:",n)})}),S(()=>{let e=this.isSummaryLoading();queueMicrotask(()=>{let t=this.executiveSummaryEl?.nativeElement;t&&(t.loading=e)})}),S(()=>{let e=this.activeSummary(),t=this.dashboardName();queueMicrotask(()=>{let n=this.executiveSummaryEl?.nativeElement;n&&(n.config={summary:e,buttonLabel:"Executive Summary",buttonVariant:"secondary",drawerLabel:t?`${t} Summary`:"Dashboard Summary",typingSpeed:5,closeOnEscape:!0},n.open&&e&&n.startTyping())})})}ngAfterViewInit(){let e=this.executiveSummaryEl?.nativeElement;e&&(e.loading=this.isSummaryLoading(),e.config={summary:"",buttonLabel:"Executive Summary",buttonVariant:"secondary",drawerLabel:this.dashboardName()?`${this.dashboardName()} Summary`:"Dashboard Summary",typingSpeed:5,closeOnEscape:!0})}ngOnInit(){this.dashboardState.resetDashboard()}watchElementState(){S(()=>{let e=this.dashboardId();e&&e!==this.loadedDashboardId?(this.isDashboardLoading.set(!0),this.loadDashboardFromApi(e)):!e&&this.loadedDashboardId&&(this.loadedDashboardId="",this.dashboardState.resetDashboard())}),S(()=>{let e=this.nav.datasource();e&&(this.connections().some(t=>t.id===e)?this.onConnectionChange(e):this.loadConnections().then(()=>{this.connections().some(t=>t.id===e)&&this.onConnectionChange(e)}))}),S(()=>{this.nav.createDashboardRequest()!==0&&this.onAiCreateDashboardClick()}),S(()=>{let e=this.nav.initialTool();e==="allPipelines"||e==="widgetLibrary"||e==="allDashboards"?(this.aiInitialTool.set(e),e==="allPipelines"&&this.loadConnections()):this.aiInitialTool.set(null)})}loadConnections(){return this.connectionsLoadPromise||(this.connectionsLoadPromise=this.fetchConnections().finally(()=>{this.connectionsLoadPromise=null})),this.connectionsLoadPromise}async fetchConnections(){try{let[e,t]=await Promise.all([this.connectionsService.listDatasources(),this.connectionsService.listConnections().catch(()=>[])]),n=new Map(t.map(o=>[o.id,o.name])),i=e.map(o=>{let s=o.mssqlConnectionId??o.opensearchConnectionId??o.connectionId;return E(D({},o),{connectionName:s&&n.get(s)||o.name})});this.ngZone.run(()=>{this.connections.set(i),!this.selectedConnectionId()&&i.length>0&&(this.selectedConnectionId.set(i[0].id),this.selectedDatasourceId.set(i[0].id))})}catch(e){console.error("Failed to load connections:",e)}}async loadDashboardFromApi(e){let t=this.loadedDashboardId;this.loadedDashboardId=e;try{let n=await this.routeProgress.track(this.publishRepo.fetchDashboard(e));return this.ngZone.run(()=>{this.dashboardState.replaceDashboard(n),this.dashboardName.set(n.name),this.loadedWidgetIds.set(new Set(n.widgets.map(i=>i.id))),this.isDashboardLoading.set(!1)}),n.canRefresh&&this.refreshLoadedDashboardData(e),!0}catch{return this.ngZone.run(()=>{this.loadedDashboardId=t,this.dashboardState.resetDashboard(),this.isDashboardLoading.set(!1)}),!1}}async refreshLoadedDashboardData(e){this.ngZone.run(()=>this.isRefreshingData.set(!0));try{let{widgets:t}=await this.publishRepo.refreshDashboard(e);this.loadedDashboardId===e&&!this.dashboardState.isDirty&&this.ngZone.run(()=>{this.dashboardState.replaceDashboard(E(D({},this.dashboardState.snapshot),{widgets:t})),this.loadedWidgetIds.set(new Set(t.map(n=>n.id)))})}catch(t){console.error("Failed to refresh dashboard data:",t)}finally{this.ngZone.run(()=>this.isRefreshingData.set(!1))}}onConnectionChange(e){this.selectedConnectionId.set(e),this.selectedDatasourceId.set(e),this.connectionDropdownOpen.set(!1),e&&!this.connections().some(t=>t.id===e)&&this.loadConnections()}goBack(){this.nav.exitToList()}startEditName(){this.editingNameValue=this.dashboardName(),this.isEditingName.set(!0),setTimeout(()=>{let e=this.nameInputRef?.nativeElement;if(!e)return;e.innerText=this.editingNameValue,e.focus();let t=document.createRange(),n=window.getSelection();t.selectNodeContents(e),t.collapse(!1),n?.removeAllRanges(),n?.addRange(t)},0)}onNameInput(e){let t=e.target;if(t.innerText.length>this.MAX_NAME_LENGTH){t.innerText=t.innerText.slice(0,this.MAX_NAME_LENGTH);let n=document.createRange(),i=window.getSelection();n.selectNodeContents(t),n.collapse(!1),i?.removeAllRanges(),i?.addRange(n)}this.editingNameValue=t.innerText}saveNameEdit(){if(!this.isEditingName())return;let e=(this.nameInputRef?.nativeElement?.innerText??this.editingNameValue).trim();if(!e){this.isEditingName.set(!1);return}if(!this.VALID_NAME_RE.test(e)){this.isEditingName.set(!1);return}this.dashboardState.setDashboardName(e),this.isEditingName.set(!1)}cancelNameEdit(){this.isEditingName.set(!1)}onAiAddWidget(e){if(this.isFilterWidgetConfig(e.config)){this.addFilterAtTop(e);return}let t=E(D({},e),{config:E(D({},e.config),{aq:E(D({},e.config?.aq),{ai:{enabled:!0}})})});this.dashboardState.addWidget(t)}isFilterWidgetConfig(e){return e?.chart?.type==="filter"}addFilterAtTop(e){let i=this.dashboardState.snapshot.widgets.map(s=>s.layout?{id:s.id,layout:E(D({},s.layout),{y:s.layout.y+2})}:null).filter(s=>s!==null);i.length>0&&this.dashboardState.updateWidgetLayouts(i);let o={x:0,y:0,w:12,h:2};this.dashboardState.addWidget(E(D({},e),{layout:o}),{placeExplicitly:!0})}removeWidget(e){this.dashboardState.removeWidget(e),this.loadedWidgetIds().has(e)&&this.removedWidgetIds.add(e)}openEditWidget(e){let t=this.dashboardState.snapshot.widgets.find(n=>n.id===e);this.editingWidget=t?D({},t):null}onUpdateWidget(e){let t={config:e.config};e.title&&(t.title=e.title),this.dashboardState.updateWidget(e.id,t),this.refreshEditingWidget(e.id)}onUpdateLayout(e){this.dashboardState.updateWidgetLayout(e.id,e.layout),this.refreshEditingWidget(e.id)}onApplyDrilldown(e){this.dashboardState.updateWidget(e.id,{drilldownBy:e.drilldownBy}),this.refreshEditingWidget(e.id)}onDrilldownLoadingChange(e){this.tweakingWidgetId.set(e.loading?e.id:null),this.aiPanelRef?.tweakingWidgetId.set(e.loading?e.id:null)}async onTweakWidget(e){this.tweakingWidgetId.set(e.widgetId);try{let t=this.loadedWidgetIds().has(e.widgetId),n=this.dashboardState.snapshot.widgets.find(s=>s.id===e.widgetId),i=await this.openAiService.tweakWidget(t||!n?{widgetId:e.widgetId,prompt:e.prompt}:{widget:n,dataSourceId:this.selectedDatasourceId(),prompt:e.prompt}),o={title:i.title,widgetType:i.widgetType,componentName:i.componentName,summary:i.summary,config:i.config};i.layout&&(o.layout=i.layout),i.drilldownBy&&(o.drilldownBy=i.drilldownBy),this.dashboardState.updateWidget(e.widgetId,o),this.refreshEditingWidget(e.widgetId),this.aiPanelRef?.pushSystemMessage("success","Widget tweaked with your changes.")}catch(t){let n=t instanceof Error?t.message:"Tweak failed.";this.aiPanelRef?.pushSystemMessage("error",`Tweak failed: ${n}`)}finally{this.tweakingWidgetId.set(null)}}aiSessionMap=new Map;http=u(Y);async onGridAiSend(e){if(!this.loadedDashboardId)return;let t=this.aiSessionMap.get(e.widgetId)??e.sessionId;this.aiSessionMap.set(e.widgetId,t);try{let n=this.environment.getCustomerId(),i=await T(this.http.post(`${this.environment.baseUrl}/api/customers/${n}/products/${this.environment.getProductId()}/workforce/dashboards/${this.loadedDashboardId}/widgets/${e.widgetId}/chat`,{message:e.message,sessionId:t})),o=i?.reply?.content;o&&(this.aiSessionMap.set(e.widgetId,i.sessionId??t),this.ngZone.run(()=>{e.chartEl?.addAiResponse?.(o)}))}catch(n){console.error("Chat request failed:",n),this.ngZone.run(()=>{e.chartEl?.addAiResponse?.("Sorry, I couldn't process your request. Please try again.")})}}refreshEditingWidget(e){let t=this.dashboardState.snapshot.widgets.find(n=>n.id===e);t&&(this.editingWidget=D({},t))}onModeToggle(e){let t=e;this.editMode=t.detail?.value==="edit"}saveDashboard(){let e=this.dashboardName().trim();if(e&&e!=="Untitled Dashboard"){this.publishDashboard(e);return}this.showSaveDialog.set(!0)}getCaptureTarget(){return kn(this.hostEl?.nativeElement,[".dashboard-slider__body gridster","shared-dashboard-grid gridster","gridster"])}async runExport(e){if(this.isExporting())return;let t=this.getCaptureTarget();if(!t){console.warn("[builder] Export skipped: no dashboard grid found to capture.");return}this.showExportDropdown.set(!1),this.isExporting.set(!0),await new Promise(n=>requestAnimationFrame(()=>requestAnimationFrame(n)));try{let n=this.dashboardName()||"Dashboard";e==="pdf"?await En(t,n):await Tn(t,n)}catch(n){console.error("[builder] Dashboard export failed.",n)}finally{this.isExporting.set(!1)}}async exportDashboardPdf(){await this.runExport("pdf")}async exportDashboardPng(){await this.runExport("png")}exportDashboard(){let e=this.dashboardState.snapshot,t=new Blob([JSON.stringify(e,null,2)],{type:"application/json"}),n=URL.createObjectURL(t),i=document.createElement("a");i.href=n,i.download=`${e.name.replace(/\s+/g,"_")}_dashboard.json`,i.click(),URL.revokeObjectURL(n)}async publishDashboard(e){if(this.isPublishing())return;if(!this.loadedDashboardId){this.aiPanelRef?.pushSystemMessage("error","Dashboard not loaded.");return}let t=this.loadedDashboardId;this.isPublishing.set(!0);try{let n=this.dashboardState.snapshot;if(this.removedWidgetIds.size>0){for(let o of this.removedWidgetIds)await this.publishRepo.deleteWidget(t,o);this.removedWidgetIds.clear()}await this.ngZone.run(()=>this.publishRepo.saveDraft(t,n));let i=e.trim()||"Untitled Dashboard";i!==n.name&&await this.ngZone.run(()=>this.publishRepo.renameDashboard(t,i)),await this.ngZone.run(()=>this.publishRepo.publishDashboard(t,i)),this.dashboardState.setDashboardId(t),this.dashboardState.setDashboardName(e),this.dashboardState.markClean(),this.loadedWidgetIds.set(new Set(n.widgets.map(o=>o.id))),this.isPublishing.set(!1),this.showSaveDialog.set(!1),this.showToast("success","Dashboard Published","Dashboard published successfully."),this.dashboardsBus.notifyChanged()}catch(n){console.error("Publish failed:",n),this.isPublishing.set(!1)}}onAiAddWidgets(e){e.forEach(t=>{let o=t,{id:n}=o,i=ge(o,["id"]);this.dashboardState.addWidget(E(D({},i),{config:E(D({},i.config),{aq:E(D({},i.config?.aq),{ai:{enabled:!0}})})}))})}dashboardSource(){let e=this.connections().find(t=>t.id===this.selectedDatasourceId())??this.connections().find(t=>t.id===this.selectedConnectionId());return e?{connectionId:e.connectionId??e.opensearchConnectionId??e.mssqlConnectionId,adapterType:e.adapterType}:void 0}async onPublishNewDashboard(e){if(!this.isPublishing()){this.isPublishing.set(!0);try{let t=await this.ngZone.run(()=>this.publishRepo.publishToApi(e.title,void 0,this.dashboardSource()));e.widgets.length>0&&await this.publishRepo.saveDraft(t,{id:t,name:e.title,widgets:e.widgets,updatedAt:new Date().toISOString()}),this.dashboardsBus.notifyChanged(),this.aiPanelRef?.pushSystemMessage("success",`Published "${e.title}" as a new dashboard.`),this.nav.openDashboard(t)}catch(t){let n=t instanceof Error?t.message:"Failed to publish dashboard";this.aiPanelRef?.pushSystemMessage("error",`Publish failed: ${n}`)}finally{this.isPublishing.set(!1)}}}async onAddWidgetsToDashboard(e){let{title:t,widgets:n}=e,i=n.filter(M=>this.isFilterWidgetConfig(M.config)),o=n.filter(M=>!this.isFilterWidgetConfig(M.config)),s=this.dashboardState.snapshot.name?.trim(),p=t&&(!s||s==="Untitled Dashboard")?t:null;p&&this.dashboardState.setDashboardName(p);for(let M of i){let P=M,{id:R}=P,we=ge(P,["id"]);this.addFilterAtTop(we)}if(o.length>0)for(let M of o){let W=M,{id:R}=W,we=ge(W,["id"]);this.dashboardState.addWidget(E(D({},we),{config:E(D({},we.config),{aq:E(D({},we.config?.aq),{ai:{enabled:!0}})})}))}let y=n.length,A=`widget${y>1?"s":""}`;this.aiPanelRef?.pushSystemMessage("info",`Publishing ${y} ${A} to this dashboard\u2026`);let F=this.loadedDashboardId;if(!F){this.aiPanelRef?.pushSystemMessage("error","No dashboard loaded.");return}try{p&&await this.publishRepo.renameDashboard(F,p),await this.publishRepo.saveDraft(F,this.dashboardState.snapshot),this.aiPanelRef?.pushSystemMessage("success",`${y} ${A} added to your dashboard.`)}catch(M){let R=M instanceof Error?M.message:"Failed to add widgets.";this.aiPanelRef?.pushSystemMessage("error",R)}}showToast(e,t,n){let i=document.createElement("nile-toast");i.variant=e,i.title=t,i.content=n,i.duration=5e3,i.closable=!0,i.toast(),qe()}allRemoteDashboards=g([]);repaintDashboardPreviews(){let e=this.hostEl.nativeElement;this.allRemoteDashboards.update(t=>t.map(n=>n.previewWidget?E(D({},n),{firstWidget:Ce(n.previewWidget,e)}):n))}notifyDashboardsChanged(){try{window.dispatchEvent(new CustomEvent("dv:dashboards-changed"))}catch{}}aiInitialTool=g(null);openWidgetLibraryInAi(){this.editMode&&this.aiInitialTool.set("widgetLibrary")}aiDashboardsList=w(()=>this.allRemoteDashboards());aiGlobalWidgets=w(()=>this.globalWidgets().map(e=>({id:e.id,title:e.title,widgetType:e.widgetType,config:e.config,drilldownBy:e.drilldownBy})));onAiSwitchDashboard(e){if(e===this.loadedDashboardId){this.isDashboardLoading.set(!0),this.loadDashboardFromApi(e);return}this.isDashboardLoading.set(!0),this.nav.openDashboard(e)}onAiExitDashboard(){this.loadedDashboardId&&this.ngZone.run(()=>{this.loadedDashboardId=null,this.loadedWidgetIds.set(new Set),this.removedWidgetIds.clear(),this.dashboardName.set(""),this.dashboardState.resetDashboard(),this.activeSummary.set(""),this.nav.exitToList()})}onAiDashboardRenamed(e){this.ngZone.run(()=>{this.allRemoteDashboards.update(t=>t.map(n=>n.id===e.id?E(D({},n),{name:e.name}):n)),this.loadedDashboardId===e.id&&this.dashboardState.setDashboardName(e.name),this.dashboardsBus.notifyChanged()})}onAiDashboardDeleted(e){this.ngZone.run(()=>{this.allRemoteDashboards.update(t=>t.filter(n=>n.id!==e)),this.loadedDashboardId===e&&(this.loadedDashboardId=null,this.dashboardName.set(""),this.dashboardState.resetDashboard()),this.dashboardsBus.notifyChanged()})}aiCreatingDashboard=g(!1);async onAiCreateDashboardClick(){if(this.aiCreatingDashboard())return;this.aiCreatingDashboard.set(!0);let e="Untitled Dashboard";try{let t=await this.publishRepo.createDashboard(e,void 0,this.dashboardSource());this.ngZone.run(()=>{this.allRemoteDashboards.update(n=>[{id:t,name:e,widgetCount:0,status:"draft"},...n.filter(i=>i.id!==t)]),this.dashboardsBus.notifyChanged(),this.dropCreateDashboardQueryParam(),this.isDashboardLoading.set(!0),this.loadDashboardFromApi(t)})}catch{}finally{this.ngZone.run(()=>this.aiCreatingDashboard.set(!1))}}dropCreateDashboardQueryParam(){}onAiCreatePipelineClick(){}async onAiLoadDashboardsList(){try{let e=await T(this.http.get(`${this.environment.baseUrl}/api/customers/${this.environment.getCustomerId()}/products/${this.environment.getProductId()}/workforce/dashboards`)),t=e?.data??e??[];await Ge(t.map(i=>i.previewWidget).filter(i=>!!i));let n=t.map(i=>({id:i.id,name:i.name,updatedAt:i.updatedAt,widgetCount:i.widgetCount,firstWidget:Ce(i.previewWidget??void 0,this.hostEl.nativeElement),previewWidget:i.previewWidget,status:i.status,isAutoGenerated:i.isAutoGenerated===!0}));this.ngZone.run(()=>this.allRemoteDashboards.set(n))}catch(e){console.error("Failed to load dashboards list:",e)}}async onAiLoadGlobalWidgets(){if(this.addedGlobalWidgetIds.set(new Set),!this.globalWidgetsLoading()){this.globalWidgetsLoading.set(!0);try{let e=await this.globalWidgetService.getAll();this.ngZone.run(()=>this.globalWidgets.set(e))}catch{this.ngZone.run(()=>this.globalWidgets.set([]))}finally{this.ngZone.run(()=>this.globalWidgetsLoading.set(!1))}}}onAiAddGlobalWidget(e){let t=this.globalWidgets().find(n=>n.id===e);t&&(this.addGlobalWidgetToDashboard(t),this.aiPanelRef?.pushSystemMessage("success",`"${t.title}" added to your dashboard.`))}async onAiSaveWidgetToLibrary(e){let n=this.dashboardState.snapshot.widgets.find(i=>i.id===e)??this.aiPanelRef?.findChatWidget(e)??null;if(!n){this.aiPanelRef?.finishSaveToLibrary(e,"error","Could not save widget to library.");return}try{await this.globalWidgetService.add(n),this.aiPanelRef?.finishSaveToLibrary(e,"success","Widget saved to your widget library."),await this.onAiLoadGlobalWidgets()}catch(i){let o=i instanceof Error?i.message:"Could not save widget to library.";this.aiPanelRef?.finishSaveToLibrary(e,"error",o)}}async openGlobalExportWidgets(){if(this.editMode){this.addedGlobalWidgetIds.set(new Set),this.globalToDashWidgetMap=new Map,this.showGlobalWidgetsDialog=!0,this.globalWidgetsLoading.set(!0);try{let e=await this.globalWidgetService.getAll();this.ngZone.run(()=>{this.globalWidgets.set(e)})}catch{this.ngZone.run(()=>{this.globalWidgets.set([])})}finally{this.ngZone.run(()=>{this.globalWidgetsLoading.set(!1)})}}}addGlobalWidgetToDashboard(e){if(!this.editMode)return;let t=this.dashboardState.addWidget({title:e.title,summary:e.summary,widgetType:e.widgetType,componentName:e.componentName,layout:e.layout,config:e.config,drilldownBy:e.drilldownBy});this.addedGlobalWidgetIds.update(n=>new Set(n).add(e.id)),this.globalToDashWidgetMap.set(e.id,t)}async removeGlobalWidget(e){try{await this.globalWidgetService.remove(e),this.ngZone.run(()=>{this.globalWidgets.update(t=>t.filter(n=>n.id!==e)),this.addedGlobalWidgetIds.update(t=>{let n=new Set(t);return n.delete(e),n})})}catch(t){console.error("Failed to remove global widget:",t)}}addQuickChart(e){let n={bar:"Monthly Revenue by Region",column:"Quarterly Sales Comparison",line:"Website Traffic Over Time",spline:"Temperature Trend",area:"Cumulative Revenue Growth",pie:"Market Share Distribution",donut:"Expense Breakdown",scatter:"Height vs Weight Correlation",bubble:"Product Performance Matrix",radar:"Team Skills Assessment",gauge:"System CPU Usage",waterfall:"Profit & Loss Breakdown",trendline:"Stock Price Trend",anomaly:"Server Response Time Anomalies",bellcurve:"Test Score Distribution",boxplot:"Salary Range by Department",cluster:"Sales by Product Category",dumbbell:"Budget vs Actual Spend",fan:"Revenue Forecast",flame:"Application Call Stack",funnel:"Sales Pipeline Conversion",histogram:"Order Value Distribution",spiderweb:"Competitor Analysis",stacked:"Revenue by Channel (Stacked)",timeline:"Product Roadmap",kpi:"Key Performance Indicator"}[e],i={};switch(e){case"bar":i={yAxisTitle:"Revenue ($K)",categories:["Jan","Feb","Mar","Apr","May","Jun"],data:[{name:"North America",data:[120,156,98,210,175,190]},{name:"Europe",data:[90,110,85,140,130,155]},{name:"Asia Pacific",data:[70,95,78,120,115,135]}]};break;case"column":i={yAxisTitle:"Sales ($K)",categories:["Q1","Q2","Q3","Q4"],data:[{name:"2024",data:[450,520,480,610]},{name:"2025",data:[500,580,550,690]}]};break;case"line":i={yAxisTitle:"Visitors (K)",categories:["Jan","Feb","Mar","Apr","May","Jun"],data:[{name:"Organic",data:[42,48,55,60,72,85]},{name:"Paid",data:[28,35,40,38,50,62]},{name:"Referral",data:[15,18,22,20,25,30]}]};break;case"spline":i={yAxisTitle:"Temperature (\xB0C)",categories:["6 AM","9 AM","12 PM","3 PM","6 PM","9 PM"],data:[{name:"Indoor",data:[20,22,24,25,23,21]},{name:"Outdoor",data:[14,18,28,32,26,17]}]};break;case"area":i={yAxisTitle:"Revenue ($K)",categories:["Jan","Feb","Mar","Apr","May","Jun"],data:[{name:"Product Sales",data:[80,95,110,130,155,180]},{name:"Services",data:[40,50,55,65,80,95]}]};break;case"pie":i={seriesName:"Market Share",data:[{name:"Company A",y:35},{name:"Company B",y:25},{name:"Company C",y:20},{name:"Company D",y:12},{name:"Others",y:8}]};break;case"donut":i={seriesName:"Expenses",data:[{name:"Salaries",y:45},{name:"Marketing",y:18},{name:"Operations",y:15},{name:"R&D",y:12},{name:"Infrastructure",y:7},{name:"Other",y:3}]};break;case"funnel":i={seriesName:"Pipeline",data:[{name:"Leads",y:1200},{name:"Qualified",y:800},{name:"Proposals",y:450},{name:"Negotiations",y:200},{name:"Closed Won",y:120}]};break;case"scatter":i={xAxisTitle:"Height (cm)",yAxisTitle:"Weight (kg)",data:[{name:"Male",data:[[170,72],[175,80],[180,85],[168,68],[182,90],[177,78],[185,92],[172,75]]},{name:"Female",data:[[158,52],[162,58],[165,60],[155,50],[170,65],[160,55],[168,62],[163,57]]}]};break;case"bubble":i={xAxisTitle:"Market Size ($M)",yAxisTitle:"Growth Rate (%)",data:[{name:"Products",data:[[50,15,120],[80,22,200],[120,8,350],[30,35,80],[200,12,500],[150,18,280]]}]};break;case"radar":i={categories:["Coding","Design","Communication","Problem Solving","Teamwork","Leadership"],data:[{name:"Team Alpha",data:[85,60,75,90,80,70]},{name:"Team Beta",data:[70,85,90,65,75,80]}]};break;case"spiderweb":i={categories:["Performance","Usability","Security","Scalability","Cost","Support"],data:[{name:"Our Product",data:[90,75,85,80,65,70]},{name:"Competitor A",data:[70,85,60,75,80,90]},{name:"Competitor B",data:[60,70,90,85,55,65]}]};break;case"gauge":i={value:72,min:0,max:100,suffix:"%",bands:[{from:0,to:40,color:"#DF5353"},{from:40,to:70,color:"#DDDF0D"},{from:70,to:100,color:"#55BF3B"}]};break;case"waterfall":i={yAxisTitle:"Amount ($K)",data:[{name:"Revenue",y:420},{name:"COGS",y:-160},{name:"Gross Profit",y:0,isIntermediateSum:!0},{name:"Marketing",y:-60},{name:"Salaries",y:-120},{name:"Operations",y:-35},{name:"Other Income",y:15},{name:"Net Profit",y:0,isSum:!0}]};break;case"trendline":i={yAxisTitle:"Price ($)",categories:["Mon","Tue","Wed","Thu","Fri","Sat","Sun","Mon","Tue","Wed"],data:[{name:"Stock Price",data:[142,148,145,152,158,155,162,160,168,172]}]};break;case"anomaly":i={yAxisTitle:"Response (ms)",categories:["00:00","02:00","04:00","06:00","08:00","10:00","12:00","14:00","16:00","18:00","20:00","22:00"],data:[{name:"Latency",data:[45,42,48,50,120,55,52,200,58,46,44,42]}]};break;case"cluster":i={yAxisTitle:"Sales ($K)",categories:["Q1","Q2","Q3","Q4"],data:[{name:"Electronics",data:[320,380,290,420]},{name:"Clothing",data:[210,250,310,280]},{name:"Food & Beverage",data:[180,200,195,230]}]};break;case"stacked":i={yAxisTitle:"Revenue ($K)",categories:["Jan","Feb","Mar","Apr","May","Jun"],data:[{name:"Direct Sales",data:[80,95,90,110,105,120]},{name:"Online",data:[60,72,85,90,100,115]},{name:"Partners",data:[30,35,40,45,50,55]}]};break;case"bellcurve":i={xAxisTitle:"Score",yAxisTitle:"Density",data:[52,55,58,60,62,63,64,65,66,67,68,68,69,70,70,71,71,72,72,73,73,74,74,75,75,76,76,77,78,78,79,80,80,81,82,83,84,85,87,90,58,62,65,68,70,72,74,76,78,82]};break;case"boxplot":i={xAxisTitle:"Department",yAxisTitle:"Salary ($K)",categories:["Engineering","Marketing","Sales","Design","HR"],data:[{name:"Salary Distribution",data:[{low:75,q1:95,median:115,q3:140,high:180},{low:55,q1:70,median:85,q3:105,high:130},{low:45,q1:60,median:80,q3:110,high:160},{low:60,q1:80,median:95,q3:115,high:145},{low:50,q1:65,median:78,q3:95,high:120}]}]};break;case"dumbbell":i={yAxisTitle:"Amount ($K)",seriesName:"Budget vs Actual",data:[{name:"Marketing",low:150,high:220},{name:"Engineering",low:280,high:310},{name:"Sales",low:120,high:200},{name:"Operations",low:90,high:140},{name:"HR",low:60,high:85},{name:"R&D",low:200,high:350}]};break;case"fan":i={yAxisTitle:"Revenue ($K)",lineData:[{category:"Jan",y:100},{category:"Feb",y:108},{category:"Mar",y:115},{category:"Apr",y:122},{category:"May",y:130},{category:"Jun",y:138},{category:"Jul",y:145},{category:"Aug",y:150},{category:"Sep",y:155}],bands:[{name:"90% Confidence",data:[{category:"Jun",low:120,high:156},{category:"Jul",low:115,high:175},{category:"Aug",low:108,high:192},{category:"Sep",low:100,high:210}]},{name:"50% Confidence",data:[{category:"Jun",low:130,high:146},{category:"Jul",low:128,high:162},{category:"Aug",low:125,high:175},{category:"Sep",low:120,high:190}]}]};break;case"flame":i={data:[{name:"main()",value:100,x:0,low:0,high:4},{name:"processData()",value:60,x:0,low:0,high:3},{name:"renderUI()",value:40,x:1,low:0,high:3},{name:"fetchAPI()",value:35,x:0,low:0,high:2},{name:"parseJSON()",value:25,x:1,low:0,high:2},{name:"updateDOM()",value:30,x:2,low:0,high:2},{name:"httpCall()",value:20,x:0,low:0,high:1},{name:"validate()",value:15,x:1,low:0,high:1}]};break;case"histogram":i={xAxisTitle:"Order Value ($)",yAxisTitle:"Frequency",data:[12,15,18,22,25,28,30,32,35,38,40,42,42,45,48,50,52,55,55,58,60,62,65,68,70,72,75,78,80,85,90,95,100,110,120,45,50,55,60,65,35,40,45,50,55,60,48,52,58,62]};break;case"timeline":i={data:[{name:"2024-01-15",label:"Project Kickoff",description:"Initial planning and team formation"},{name:"2024-03-01",label:"Design Complete",description:"UI/UX designs approved by stakeholders"},{name:"2024-05-15",label:"Alpha Release",description:"Internal testing of core features"},{name:"2024-07-01",label:"Beta Launch",description:"Public beta with 500 users"},{name:"2024-09-01",label:"GA Release",description:"General availability launch"},{name:"2024-11-15",label:"V2 Planning",description:"Roadmap for next major version"}]};break;default:i={yAxisTitle:"Value",categories:["Jan","Feb","Mar","Apr","May","Jun"],data:[{name:"Series 1",data:[120,156,98,210,175,190]}]};break}this.dashboardState.addWidget({title:n,widgetType:"chart",config:{chart:D({type:e},i),aq:{chartTitle:n,ai:{enabled:!0}}}}),this.showAddWidgetDialog=!1}addQuickKpi(){this.dashboardState.addWidget({title:"Total Revenue",widgetType:"kpi",config:{chart:{type:"kpi",variant:"card",label:"Total Revenue",value:"$1,284,500",prefix:"$",trendValue:12.5,trendDirection:"up",trendLabel:"vs last quarter",description:"Combined revenue across all channels",sparkline:[820,880,920,960,1050,1120,1180,1284]},aq:{chartTitle:"Total Revenue",ai:{enabled:!0}}}}),this.showAddWidgetDialog=!1}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=j({type:a,selectors:[["db-builder-shell"]],viewQuery:function(t,n){if(t&1&&Ie(Ee,5)(Ka,5)(Za,5)(Qa,5),t&2){let i;Q(i=J())&&(n.aiPanelRef=i.first),Q(i=J())&&(n.executiveSummaryEl=i.first),Q(i=J())&&(n.canvasAreaRef=i.first),Q(i=J())&&(n.nameInputRef=i.first)}},inputs:{dashboardId:[1,"dashboardId"]},decls:10,vars:22,consts:[[1,"shell","nile-theme-nxtgen"],[3,"addWidget","publishNewDashboard","addWidgetsToDashboard","connectionChange","editDashboardWidget","switchDashboard","exitDashboard","createDashboardClick","loadGlobalWidgets","loadDashboardsList","addGlobalWidgetToDashboard","saveWidgetToLibrary","removeGlobalWidgetFromLibrary","exportPdfClick","exportPngClick","publishClick","createPipelineClick","dashboardRenamed","dashboardDeleted","removeWidget","datasourceId","connections","selectedConnectionId","loadedDashboardId","dashboardLoading","isPublishing","isExporting","loadedWidgetIds","dashboardName","dashboardsList","globalWidgets","globalWidgetsLoading","addedGlobalWidgetIds","initialTool","dashboardSummaryHtml","dashboardSummaryLoading"],["placement","end",1,"widget-settings-drawer",3,"nile-request-close","open"],["slot","label",1,"widget-settings-drawer__title"],[1,"widget-setting-header"],[3,"close","updateWidget","updateLayout","applyDrilldown","drilldownLoadingChange","widget"],["label","Publish",3,"nile-request-close","open"],[3,"publish","dismissed","dashboardName","isPublishing"]],template:function(t,n){t&1&&(r(0,"div",0)(1,"db-dashboard-editor",1),f("addWidget",function(o){return n.onAiAddWidget(o)})("publishNewDashboard",function(o){return n.onPublishNewDashboard(o)})("addWidgetsToDashboard",function(o){return n.onAddWidgetsToDashboard(o)})("connectionChange",function(o){return n.onConnectionChange(o)})("editDashboardWidget",function(o){return n.openEditWidget(o)})("switchDashboard",function(o){return n.onAiSwitchDashboard(o)})("exitDashboard",function(){return n.onAiExitDashboard()})("createDashboardClick",function(){return n.onAiCreateDashboardClick()})("loadGlobalWidgets",function(){return n.onAiLoadGlobalWidgets()})("loadDashboardsList",function(){return n.onAiLoadDashboardsList()})("addGlobalWidgetToDashboard",function(o){return n.onAiAddGlobalWidget(o)})("saveWidgetToLibrary",function(o){return n.onAiSaveWidgetToLibrary(o)})("removeGlobalWidgetFromLibrary",function(o){return n.removeGlobalWidget(o)})("exportPdfClick",function(){return n.exportDashboardPdf()})("exportPngClick",function(){return n.exportDashboardPng()})("publishClick",function(){return n.saveDashboard()})("createPipelineClick",function(){return n.onAiCreatePipelineClick()})("dashboardRenamed",function(o){return n.onAiDashboardRenamed(o)})("dashboardDeleted",function(o){return n.onAiDashboardDeleted(o)})("removeWidget",function(o){return n.removeWidget(o)}),d(),r(2,"nile-drawer",2),f("nile-request-close",function(){return n.editingWidget=null}),r(3,"div",3)(4,"span",4),h(5,"Widget Settings"),d(),b(6,Ja,3,3,"nile-badge"),d(),r(7,"db-widget-settings",5),f("close",function(){return n.editingWidget=null})("updateWidget",function(o){return n.onUpdateWidget(o)})("updateLayout",function(o){return n.onUpdateLayout(o)})("applyDrilldown",function(o){return n.onApplyDrilldown(o)})("drilldownLoadingChange",function(o){return n.onDrilldownLoadingChange(o)}),d()(),r(8,"nile-dialog",6),f("nile-request-close",function(){return n.showSaveDialog.set(!1)}),r(9,"db-publish-dialog",7),f("publish",function(o){return n.publishDashboard(o)})("dismissed",function(){return n.showSaveDialog.set(!1)}),d()()()),t&2&&(l(),x("datasourceId",n.selectedDatasourceId())("connections",n.connections())("selectedConnectionId",n.selectedConnectionId())("loadedDashboardId",n.loadedDashboardId)("dashboardLoading",n.isDashboardLoading())("isPublishing",n.isPublishing())("isExporting",n.isExporting())("loadedWidgetIds",n.loadedWidgetIds())("dashboardName",n.dashboardName())("dashboardsList",n.aiDashboardsList())("globalWidgets",n.aiGlobalWidgets())("globalWidgetsLoading",n.globalWidgetsLoading())("addedGlobalWidgetIds",n.addedGlobalWidgetIds())("initialTool",n.aiInitialTool())("dashboardSummaryHtml",n.activeSummary())("dashboardSummaryLoading",n.isSummaryLoading()),l(),x("open",!!n.editingWidget),l(4),_(n.editingWidget?6:-1),l(),x("widget",n.editingWidget),l(),x("open",n.showSaveDialog()),l(),x("dashboardName",n.dashboardName())("isPublishing",n.isPublishing()))},dependencies:[me,Ve,Ee,On,Sn,Wt],styles:["[_nghost-%COMP%]{display:block;height:100%}.shell[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;background:var(--ng-colors-bg-secondary);overflow:hidden}db-dashboard-editor[_ngcontent-%COMP%]{display:block;flex:1;min-height:0}.create-dash-fields[_ngcontent-%COMP%]{display:flex;flex-direction:column;row-gap:24px}.toolbar[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;height:var(--db-toolbar-height, 72px);padding:0 var(--ng-spacing-5, 20px);background:var(--ng-colors-bg-primary);border-bottom:1px solid var(--ng-colors-border-secondary);box-shadow:0 1px 3px #0000000f;position:fixed;top:var(--nav-height, 56px);left:0;right:0;z-index:var(--z-header)}nile-lite-tooltip[_ngcontent-%COMP%]{display:flex}.toolbar__left[_ngcontent-%COMP%]{display:flex;align-items:center;gap:var(--ng-spacing-3, 12px);min-width:0}.dashboard-title-stack[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:4px;min-width:0}.dashboard-name-group[_ngcontent-%COMP%]{display:flex;align-items:center;gap:4px}.dashboard-name-group[_ngcontent-%COMP%] .dashboard-name__edit-glyph[_ngcontent-%COMP%]{opacity:0;transition:opacity .12s ease;cursor:pointer;color:var(--ng-colors-fg-tertiary-600);flex-shrink:0}.dashboard-name-group[_ngcontent-%COMP%]:hover .dashboard-name__edit-glyph[_ngcontent-%COMP%]{opacity:1}.dashboard-name__text[_ngcontent-%COMP%]{font-size:var(--ng-font-size-text-md, 15px);font-weight:400;color:var(--ng-colors-text-primary-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}.dashboard-name__input[_ngcontent-%COMP%]{display:inline-block;font-size:var(--ng-font-size-text-md, 15px);font-weight:400;color:var(--ng-colors-text-primary-900);padding:1px 4px;min-width:120px;max-width:280px;outline:none;cursor:text;white-space:nowrap;overflow:hidden}.toolbar__name-sep[_ngcontent-%COMP%]{width:1px;height:20px;background:var(--ng-colors-border-secondary);flex-shrink:0}.connection-name[_ngcontent-%COMP%]{font-size:var(--ng-font-size-text-sm, 14px);font-weight:var(--ng-font-weight-medium, 500);color:var(--ng-colors-border-brand);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.datasource-pill[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;padding:0 10px;height:32px;background:var(--ng-colors-bg-secondary);border:1px solid var(--ng-colors-border-secondary);border-radius:6px}.datasource-pill__icon[_ngcontent-%COMP%]{color:var(--ng-colors-fg-quaternary-400);flex-shrink:0}.datasource-pill__sep[_ngcontent-%COMP%]{width:1px;height:14px;background:var(--ng-colors-border-secondary);flex-shrink:0;margin:0 2px}.widget-setting-header[_ngcontent-%COMP%]{font-size:16px;font-weight:500}.change-btn[_ngcontent-%COMP%]{all:unset;cursor:pointer;font-size:var(--ng-font-size-text-sm, 14px);font-weight:400;color:var(--ng-colors-border-brand);padding:2px 4px;border-radius:4px;transition:opacity .1s ease}.change-btn[_ngcontent-%COMP%]:hover{opacity:.8}.change-btn--compact[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;color:var(--ng-colors-border-brand)}.change-btn--compact[_ngcontent-%COMP%] nile-glyph[_ngcontent-%COMP%]{color:var(--ng-colors-border-brand)}.change-btn__label--hoverable[_ngcontent-%COMP%]{max-width:0;overflow:hidden;white-space:nowrap;opacity:0;transition:max-width .16s ease,opacity .12s ease}.datasource-pill--compact[_ngcontent-%COMP%] .connection-name--hoverable[_ngcontent-%COMP%], .datasource-pill--compact[_ngcontent-%COMP%] .connection-chevron--hoverable[_ngcontent-%COMP%], .datasource-pill--compact[_ngcontent-%COMP%] .change-btn__label--hoverable[_ngcontent-%COMP%]{max-width:0;overflow:hidden;opacity:0;transition:max-width .16s ease,opacity .12s ease}.datasource-pill--compact[_ngcontent-%COMP%] .connection-chevron--hoverable[_ngcontent-%COMP%]{width:0}.datasource-pill--compact[_ngcontent-%COMP%] .connection-trigger--compact[_ngcontent-%COMP%]:hover .connection-name--hoverable[_ngcontent-%COMP%], .datasource-pill--compact[_ngcontent-%COMP%] .connection-trigger--compact[_ngcontent-%COMP%]:focus-within .connection-name--hoverable[_ngcontent-%COMP%]{max-width:200px;opacity:1}.datasource-pill--compact[_ngcontent-%COMP%] .connection-trigger--compact[_ngcontent-%COMP%]:hover .connection-chevron--hoverable[_ngcontent-%COMP%], .datasource-pill--compact[_ngcontent-%COMP%] .connection-trigger--compact[_ngcontent-%COMP%]:focus-within .connection-chevron--hoverable[_ngcontent-%COMP%]{max-width:16px;width:auto;opacity:1}.datasource-pill--compact[_ngcontent-%COMP%] .change-btn--compact[_ngcontent-%COMP%]:hover .change-btn__label--hoverable[_ngcontent-%COMP%], .datasource-pill--compact[_ngcontent-%COMP%] .change-btn--compact[_ngcontent-%COMP%]:focus-visible .change-btn__label--hoverable[_ngcontent-%COMP%]{max-width:120px;opacity:1}.connection-trigger[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;cursor:pointer;padding:2px 4px;border-radius:4px;transition:opacity .1s ease}.connection-trigger[_ngcontent-%COMP%]:hover{opacity:.8}.connection-chevron[_ngcontent-%COMP%]{color:var(--ng-colors-border-brand);flex-shrink:0}.toolbar__divider[_ngcontent-%COMP%]{width:1px;height:28px;background:linear-gradient(to bottom,transparent,var(--ng-colors-border-secondary),transparent);flex-shrink:0}.toolbar__title-group[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;min-width:0}.toolbar__title[_ngcontent-%COMP%]{font-size:var(--ng-font-size-text-md, 16px);font-weight:700;background:linear-gradient(135deg,var(--ng-colors-text-primary-900) 0%,var(--ng-colors-border-brand) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;white-space:nowrap;letter-spacing:-.01em}.toolbar__badge[_ngcontent-%COMP%]{font-size:9px;font-weight:700;letter-spacing:.06em;color:var(--ng-colors-border-brand);background:linear-gradient(135deg,var(--ng-colors-bg-brand-primary),var(--ng-colors-bg-brand-secondary));border:1px solid var(--ng-colors-bg-brand-secondary);border-radius:4px;padding:2px 5px;flex-shrink:0;line-height:1.4}.toolbar__right[_ngcontent-%COMP%]{display:flex;align-items:center;gap:var(--ng-spacing-2, 8px)}.export-menu[_ngcontent-%COMP%] nile-menu-item[_ngcontent-%COMP%]{font-size:var(--ng-font-size-text-sm, 14px);font-weight:var(--ng-font-weight-medium, 500)}nile-button-toggle-group[_ngcontent-%COMP%]{flex-shrink:0}.content[_ngcontent-%COMP%]{display:flex;flex:1;min-height:0;padding:var(--ng-spacing-4, 16px) var(--ng-spacing-5, 20px);overflow-y:auto}.canvas-area[_ngcontent-%COMP%]{flex:1;min-width:0}nile-drawer[_ngcontent-%COMP%]::part(panel){width:340px;max-width:90vw}nile-drawer[_ngcontent-%COMP%]::part(body){padding:var(--ng-spacing-4, 16px) var(--ng-spacing-5, 20px)}.widget-settings-drawer[_ngcontent-%COMP%]::part(panel){width:40vw}.widget-settings-drawer[_ngcontent-%COMP%]::part(header){height:56px}.widget-settings-drawer[_ngcontent-%COMP%]::part(body){padding:0;overflow:hidden}.widget-settings-drawer__title[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:10px}.ai-drawer[_ngcontent-%COMP%]::part(panel){width:100vw;max-width:100vw}.ai-drawer[_ngcontent-%COMP%]::part(body){padding:0;overflow:hidden}.ai-drawer[_ngcontent-%COMP%]::part(header){display:none}nile-dialog[_ngcontent-%COMP%]::part(panel){width:640px;max-width:90vw;border-radius:var(--ng-radius-2xl, 16px)}.widget-picker[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:var(--ng-spacing-4, 16px)}.picker-section[_ngcontent-%COMP%]{margin:0;font-size:var(--ng-font-size-text-sm, 14px);font-weight:var(--ng-font-weight-semibold, 600);color:var(--ng-colors-text-secondary-700)}.picker-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--ng-spacing-3, 12px)}.picker-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--ng-spacing-2, 8px);padding:var(--ng-spacing-5, 20px) var(--ng-spacing-3, 12px);border:1px solid var(--ng-colors-border-secondary);border-radius:var(--ng-radius-xl, 12px);cursor:pointer;transition:all .1s ease;font-size:var(--ng-font-size-text-sm, 14px);font-weight:var(--ng-font-weight-medium, 500);color:var(--ng-colors-text-secondary-700);background:var(--ng-colors-bg-primary)}.picker-card[_ngcontent-%COMP%]:hover{border-color:var(--ng-colors-border-brand);background:var(--ng-colors-bg-brand-primary);color:var(--ng-colors-text-brand-secondary-700)}.picker-icon[_ngcontent-%COMP%]{color:var(--ng-colors-fg-brand-primary-600)}.picker-kpi-icon[_ngcontent-%COMP%]{font-size:28px;font-weight:var(--ng-font-weight-bold, 700);color:var(--ng-colors-fg-brand-primary-600)}.global-widgets-drawer[_ngcontent-%COMP%]::part(panel){width:85%}.global-widgets-drawer[_ngcontent-%COMP%]::part(body){padding:16px;overflow-y:auto}.global-widgets-grid-view[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:start}.global-widget-card[_ngcontent-%COMP%]{min-width:0;width:100%}.global-widget-card[_ngcontent-%COMP%]::part(base){border-radius:12px;border:1px solid var(--ng-colors-border-secondary);width:100%;max-width:100%;box-sizing:border-box}.global-widget-card[_ngcontent-%COMP%]::part(body__wrapper){padding:12px;gap:unset}.gw-preview[_ngcontent-%COMP%]{height:220px;width:100%;overflow:hidden;box-sizing:border-box}.gw-preview[_ngcontent-%COMP%] db-nile-chart-widget[_ngcontent-%COMP%]{display:block;width:100%;height:100%}.gw-footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--ng-colors-border-secondary);padding-top:12px;margin-top:10px;gap:8px}.gw-title[_ngcontent-%COMP%]{font-weight:600;font-size:13px;color:var(--ng-colors-text-primary-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-global-widgets[_ngcontent-%COMP%]{text-align:center;padding:40px 20px;color:var(--ng-colors-text-secondary-700);font-size:14px}.btn-spinner[_ngcontent-%COMP%]{display:inline-block;width:14px;height:14px;border:2px solid rgba(0,0,0,.2);border-top-color:currentColor;border-radius:50%;animation:_ngcontent-%COMP%_btn-spin .7s linear infinite;flex-shrink:0}.btn-spinner--light[_ngcontent-%COMP%]{border-color:#ffffff59;border-top-color:var(--ng-colors-fg-white)}@keyframes _ngcontent-%COMP%_btn-spin{to{transform:rotate(360deg)}}"]})};function Ya(a,e){a&1&&m(0,"db-builder-shell",0),a&2&&x("dashboardId",e)}function Xa(a,e){a&1&&m(0,"db-all-dashboards-page")}var Qe=class a{nav=u(U);static \u0275fac=function(t){return new(t||a)};static \u0275cmp=j({type:a,selectors:[["dvz-manage-dashboards-page"]],decls:2,vars:1,consts:[[3,"dashboardId"]],template:function(t,n){if(t&1&&b(0,Ya,1,1,"db-builder-shell",0)(1,Xa,1,0,"db-all-dashboards-page"),t&2){let i;_((i=n.nav.dashboardId())?0:1,i)}},dependencies:[Ke,Ze],styles:["[_nghost-%COMP%]{display:block;height:100%;min-height:0}"],changeDetection:0})};function Vn(a){return[{provide:ie,useValue:a},L,{provide:Le,useFactory:()=>a().baseUrl},{provide:Dn,useValue:"workforce/dashboards"},U,le,xe,se,Ae,tn(se),nn(G),on(G),sn(G),cn(G),gn(G),hn(G),pn(G),Be(()=>{let e=u(B);return je(()=>`${a().baseUrl}/api/customers/${a().customerId??e.tenantId()??""}/products/${a().productId??""}/workforce`)})]}function eo(a,e){a&1&&Me(0)}function to(a,e){if(a&1&&ne(0,eo,1,0,"ng-container",0),a&2){let t=c();x("ngComponentOutlet",t.page)("ngComponentOutletInjector",t.elementInjector)("ngComponentOutletEnvironmentInjector",t.elementInjector)}}var Je=class a{config=k(void 0);theme=k(void 0);view=k(void 0);list=k(void 0);search=k("");ready=ae({alias:"dvz-ready"});error=ae({alias:"dvz-error"});unauthorized=ae({alias:"dvz-unauthorized"});navigate=ae({alias:"dvz-navigate"});dashboardChanged=ae({alias:"dvz-dashboard-changed"});viewChanged=ae({alias:"dvz-view-changed"});listChanged=ae({alias:"dvz-list-changed"});host=u(pe);instance=zn();elementInjector=Ct(Vn(this.instance.config),u(mt),"dvz-manage-dashboards");page=Qe;navigator=this.elementInjector.get(U);dashboardsBus=u(oe);destroyRef=u(de);stopAdopting=null;stopTokenRefresh=null;stopUi=null;themeChanged=ae({alias:"dvz-theme-changed"});themeStore=this.elementInjector.get(Ae);syncThemeInput=S(()=>{let e=this.theme();e&&this.themeStore.set(e)});lastAnnouncedTheme=null;announceTheme=S(()=>{let e=this.themeStore.resolved();if(e===this.lastAnnouncedTheme)return;let t=this.lastAnnouncedTheme===null;this.lastAnnouncedTheme=e,t||this.themeChanged.emit({theme:e,choice:this.themeStore.choice()})});configured=!1;constructor(){S(()=>{let e=this.config();e&&this.apply(e)}),this.navigator.requests.pipe(ee(this.destroyRef)).subscribe(e=>this.navigate.emit(e)),this.dashboardsBus.changes$.pipe(ee(this.destroyRef)).subscribe(()=>this.dashboardChanged.emit()),this.navigator.listState.pipe(ee(this.destroyRef)).subscribe(e=>this.listChanged.emit(e)),S(()=>{let e=this.view();if(!e)return;let t=e.dashboardId??null;t===null?this.navigator.exitToList():this.navigator.openDashboard(t)}),S(()=>this.navigator.search.set(this.search()??"")),S(()=>{let e=this.list();e&&this.navigator.applyListView(e)}),S(()=>{let e=this.navigator.dashboardId();this.configured&&this.viewChanged.emit({view:e?"builder":"list",dashboardId:e})}),queueMicrotask(()=>{let e=this.host.nativeElement.shadowRoot;e&&(this.stopAdopting=lt(e))})}async apply(e){let t=e.auth;Zt(e.api.baseUrl),Gt(e.api,t);let n=this.instance.set(qn({baseUrl:e.api.baseUrl,mcpUrl:e.api.mcpUrl,tokenizedOrigins:e.api.tokenizedOrigins,headers:e.api.headers,customerId:e.tenant.customerId??null,productId:e.tenant.productId,productName:e.tenant.productName??null,authMode:t.mode,authToken:t.mode==="token"?t.token:null,getToken:t.mode==="callback"?t.getToken:null,ssoEnabled:t.mode==="inherit"?t.ssoEnabled:void 0,onUnauthorized:()=>this.unauthorized.emit(),features:e.features,ui:e.ui,hrefs:e.hrefs,initialDashboardId:e.initial?.dashboardId??null,initialDatasource:e.initial?.datasource??null,initialCreateDashboard:e.initial?.createDashboard??!1,initialTool:e.initial?.tool??null}));this.stopUi?.(),this.stopUi=ct(this.host.nativeElement,e.ui),this.themeStore.attach(this.host.nativeElement),this.theme()||this.themeStore.set(e.ui?.theme??"light"),Xt({productId:e.tenant.productId,name:e.tenant.productName}),jt(()=>this.unauthorized.emit());let i=n;await $t(i),this.stopTokenRefresh??=Vt(i),this.configured||(this.configured=!0,n.initialDashboardId&&this.navigator.openDashboard(n.initialDashboardId),n.initialDatasource&&this.navigator.selectDatasource(n.initialDatasource),n.initialCreateDashboard&&this.navigator.requestCreateDashboard(),n.initialTool&&this.navigator.openTool(n.initialTool),this.ready.emit({customerId:n.customerId??"",productId:n.productId??""}))}ngOnDestroy(){this.stopAdopting?.(),this.stopTokenRefresh?.(),this.stopUi?.(),this.elementInjector.destroy()}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=j({type:a,selectors:[["dvz-manage-dashboards-root"]],inputs:{config:[1,"config"],theme:[1,"theme"],view:[1,"view"],list:[1,"list"],search:[1,"search"]},outputs:{ready:"dvz-ready",error:"dvz-error",unauthorized:"dvz-unauthorized",navigate:"dvz-navigate",dashboardChanged:"dvz-dashboard-changed",viewChanged:"dvz-view-changed",listChanged:"dvz-list-changed",themeChanged:"dvz-theme-changed"},decls:1,vars:1,consts:[[4,"ngComponentOutlet","ngComponentOutletInjector","ngComponentOutletEnvironmentInjector"]],template:function(t,n){t&1&&b(0,to,1,3,"ng-container"),t&2&&_(n.config()?0:-1)},dependencies:[At],styles:[`:host{display:block;height:100%;min-height:0}
|
|
2
|
-
`],encapsulation:3,changeDetection:0})};Lt();var no="dvz-manage-dashboards";function io(a={}){return Nt(Je,no,[_t(),Ut(),Rt(Ft([en]))],a)}io();export{$n as a,no as b,io as c};
|
|
3
|
-
/*! Bundled license information:
|
|
4
|
-
|
|
5
|
-
@angular/animations/fesm2022/animations.mjs:
|
|
6
|
-
(**
|
|
7
|
-
* @license Angular v21.2.18
|
|
8
|
-
* (c) 2010-2026 Google LLC. https://angular.dev/
|
|
9
|
-
* License: MIT
|
|
10
|
-
*)
|
|
11
|
-
*/
|