@aquera/data-visualizer-sdk 0.0.42 → 0.0.44
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-AWECVEYG.js +1 -0
- package/chunk-BPV32KT7.js +2 -0
- package/chunk-CNJPGVJ3.js +1 -0
- package/chunk-EHWQDPIU.js +1 -0
- package/chunk-J3CWLOYI.js +1 -0
- package/{chunk-6Q3P5YXE.js → chunk-R3C2A3GE.js} +1 -1
- package/chunk-RFZOWARM.js +22 -0
- package/{chunk-REQTBAAZ.js → chunk-RRYXNANE.js} +1 -1
- package/{chunk-ATIVRRY6.js → chunk-SVXYWKUB.js} +1 -1
- package/chunk-Y7TAV2FY.js +1 -0
- package/chunk-YJIEQJJF.js +1 -0
- package/chunk-YLQJEXAU.js +11 -0
- package/{chunk-XVFAQZE6.js → chunk-ZFW6PP7T.js} +656 -656
- package/main.js +1 -1
- package/package.json +1 -1
- package/chunk-4P742CS2.js +0 -1
- package/chunk-N5WYXMEB.js +0 -22
- package/chunk-UPYSRLXK.js +0 -1
- package/chunk-WSVKPOKK.js +0 -1
- package/chunk-XCL6PSY4.js +0 -11
- package/chunk-ZIS2I5NZ.js +0 -2
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import{$a as Ge,A as $t,Aa as cn,Ab as Tn,Ba as Le,Ca as ze,Da as gn,Ea as hn,F as Vt,G as Gt,Ga as X,H as Bt,Ha as pn,I as Ut,Ia as qe,Ja as mn,K as H,Ka as un,L as Ht,M as jt,N as We,O as Kt,P as Zt,Q as Qt,R as et,S as Jt,Sa as $e,T as Re,Ta as bn,U as Fe,Ua as _n,W as Yt,Y as Xt,Ya as Ve,Za as fn,_a as fe,a as rt,b as st,c as Te,ca as en,cb as Be,db as yn,e as Tt,eb as Cn,fa as Ne,fb as vn,g as At,ga as tn,gb as L,ha as nn,hb as xn,i as ue,ib as wn,j as be,jb as Dn,kb as Pn,l as J,lb as Mn,m as ne,mb as Sn,n as It,na as an,nb as On,o as Wt,oa as on,pa as rn,pb as ye,q as Rt,qa as sn,qb as Ue,ra as dn,s as Ft,t as Nt,u as Lt,ub as kn,v as _e,w as zt,x as qt,xb as He,yb as En,z as Y,za as ln,zb as tt}from"./chunk-ZFW6PP7T.js";import{c as Xe,d as Ae,f as Pe,g as Ie}from"./chunk-XUJBDACP.js";import{$ as Oe,$a as we,Ab as Ct,B as lt,Bb as vt,Cb as xt,Db as De,Eb as O,Ib as f,Jb as wt,Kb as g,Ma as ut,Na as l,Nb as ke,O as V,Ob as B,Pb as U,R as ct,S as gt,Sb as Dt,T as m,Tb as Je,Ub as Pt,Va as bt,W as ht,Wb as u,Xb as Q,Y as w,Yb as $,Z as D,Zb as Ee,_ as xe,ca as de,d as he,db as _t,dc as Mt,ea as T,eb as G,ec as St,fa as pt,fc as Ye,gb as ft,hc as Ot,ia as mt,ic as kt,ja as c,jb as te,ma as S,oc as Et,p as W,pb as q,pc as P,qb as b,ra as pe,rb as _,sb as me,sc as ae,tb as yt,tc as k,ub as K,vb as Z,wb as C,xb as s,y as dt,yb as d,zb as p}from"./chunk-BTA57TVR.js";import{a as v,b as E,d as ge}from"./chunk-ZW5NV4UO.js";var nt="__dvDashboardsBusHub__";function An(){return typeof window>"u"?new he:(window[nt]||(window[nt]=new he),window[nt])}var oe=class a{changes$=An().asObservable();notifyChanged(){An().next()}static \u0275fac=function(t){return new(t||a)};static \u0275prov=V({token:a,factory:a.\u0275fac,providedIn:"root"})};var ee=["create","view","update","delete"],qn=[{id:"dashboard",name:"Dashboard",actions:ee,extras:[{key:"publish",label:"Publish"}]},{id:"report",name:"Reports",actions:ee,extras:[{key:"run",label:"Run"},{key:"export",label:"Export"}]},{id:"askAquera",name:"Ask Aquera",actions:ee,extras:[{key:"query",label:"Query"}]},{id:"story",name:"Stories",actions:ee,extras:[{key:"publish",label:"Publish"},{key:"export",label:"Export"}]},{id:"dataset",name:"Dataset",actions:ee,extras:[]},{id:"connection",name:"Connection",actions:ee,extras:[{key:"test",label:"Test"}]},{id:"integration",name:"Pipelines",actions:ee,extras:[{key:"run",label:"Run"}]},{id:"alertNotification",name:"Alerts & Notifications",actions:ee,extras:[{key:"configureChannels",label:"Configure Channels"}]},{id:"auditLog",name:"Audit Log",actions:["view"],extras:[{key:"export",label:"Export"}]},{id:"user",name:"User Management",actions:ee,extras:[]},{id:"role",name:"Role Management",actions:ee,extras:[]},{id:"agentAccess",name:"Agent & MCP Access",actions:ee,extras:[]}],it="owner.transferOwnership";function $n(){let a=[];for(let e of qn){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(it),a}var Vn=new Set($n()),Gn={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"},Bn={edit:"update",configurechannels:"configureChannels"},Un={pipeline:["connection","dataset","integration"],transform:["dataset"]},Hn=["create","view","update","delete"];function jn(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=Gn[t]??t,o=Bn[n.toLowerCase()]??n,r=`${i}.${o}`;return Vn.has(r)?r:null}function Kn(a){for(let[e,t]of Object.entries(Un))for(let n of Hn)t.some(i=>a.has(`${i}.${n}`))&&a.add(`${e}.${n}`);return a}function In(a){let e=new Set;if(!Array.isArray(a))return e;for(let t of a){let n=jn(t);n&&e.add(n)}return Kn(e)}var re=class a{http=m(ne);tokenStore=m(H);injectedBaseUrl=m(Fe,{optional:!0})??"";get baseUrl(){return jt()||this.injectedBaseUrl}permissions=c(new Set);roleSystemKey=c(null);roleName=c(null);loaded=c(!1);isOwner=P(()=>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=Y.CONSOLE_API_URL,n=Y.CONSOLE_WFI_PRODUCT_ID,i=Y.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),[r,h]=await Promise.all([et("customer_console_list_user_product_permissions",{productName:i,tenantId:o},t),et("customer_console_get_user_product_roles",{tenantId:o},t)]),y=In(r?.permissionKeys),A=h?.products??[],F=M=>String(M).toLowerCase().replace(/&/g,"").replace(/[^a-z0-9]+/g,"_").replace(/^_|_$/g,""),I=A.find(M=>n?M.productId===n:F(M.productName)===i)?.roles?.[0]?.roleName??null;return I==="owner"&&y.add(it),{permissions:[...y],systemKey:I,roleName:I}}async fetch(e){let t=We();if(!t){this.clear();return}try{let n,i,o;if(Y.SSO_ENABLED)({permissions:n,systemKey:i,roleName:o}=await this.fetchViaConsole(e));else{let r=`${this.baseUrl}/api/customers/${e}/products/${t}/workforce/access-control/me/permissions`,h=await W(this.http.get(r));n=h?.data?.permissions??[],i=h?.data?.role?.systemKey??null,o=h?.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=Ut(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=V({token:a,factory:a.\u0275fac,providedIn:"root"})};var ce=class a{templateRef=m(bt);viewContainer=m(we);perms=m(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=ft({type:a,selectors:[["","hasPermission",""]],inputs:{hasPermission:"hasPermission"}})};function Zn(){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 Qn(){return{mcpGateway:Y.MCP_GATEWAY_ENABLED??!1,create:!0,categoryFilter:!0,delete:!0,askAquera:!0,builder:!0,widgetMenu:Zn()}}function at(){return{baseUrl:Y.baseUrl??"",mcpUrl:Y.MCP_URL??null,tokenizedOrigins:[Y.baseUrl].filter(a=>!!a),headers:{},customerId:null,productId:null,productName:null,authMode:"inherit",authToken:null,getToken:null,resolvedToken:null,onUnauthorized:null,ssoEnabled:Y.SSO_ENABLED??!1,features:Qn(),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 Wn=Nt("manageDashboards",at),ie=new ct("MANAGE_DASHBOARDS_CONFIG",{factory:()=>Jn}),Rn=c(0),Jn=P(()=>(Rn(),Wn.read()));function Fn(){let a=Lt(Wn,at());return{config:a.config,set:e=>{let t=a.set(e);return Rn.update(n=>n+1),t}}}function Nn(a){let e=at(),t=E(v(v({},e),_e(a)),{features:E(v(v({},e.features),_e(a.features??{})),{widgetMenu:v(v({},e.features.widgetMenu),_e(a.features?.widgetMenu??{}))}),ui:v(v({},e.ui),_e(a.ui??{})),hrefs:v(v({},e.hrefs),_e(a.hrefs??{})),headers:v(v({},e.headers),a.headers??{})});return a.tokenizedOrigins||(t.tokenizedOrigins=[t.baseUrl,t.mcpUrl].filter(n=>!!n)),t}var N=class a{config=m(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??Gt("_TenantID")??""}getProductId(){return this.config().productId??""}static \u0275fac=function(t){return new(t||a)};static \u0275prov=V({token:a,factory:a.\u0275fac})};var Ln=50;var z=class a{manageDashboardsConfig=m(ie);requests$=new he;requests=this.requests$.asObservable();listState$=new he;listState=this.listState$.asObservable();reportListState(e){this.listState$.next(e)}dashboardId=c(null);datasource=c(null);search=c("");page=c(1);pageSize=c(50);category=c(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=En.some(n=>n.id===e.category);this.category.set(t?e.category:null)}}createDashboardRequest=c(0);initialTool=c(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=V({token:a,factory:a.\u0275fac})};var Ce=class a{deleteClick=new T;static \u0275fac=function(t){return new(t||a)};static \u0275cmp=G({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&&(Ct(0,"span",0),wt("mousedown",function(o){return o.stopPropagation()})("click",function(o){return o.stopPropagation(),n.deleteClick.emit(o)}),xt(1,"nile-glyph",1),vt())},styles:["[_nghost-%COMP%]{display:contents}.dash-card__action-wrap[_ngcontent-%COMP%]{display:contents}"]})};var Yn=(a,e)=>e.id;function Xn(a,e){if(a&1){let t=O();s(0,"div",1)(1,"span",11),u(2,"Category"),d(),s(3,"shared-category-filter-row",12),f("selectionChange",function(i){w(t);let o=g();return D(o.onCategoryChange(i))}),d()()}if(a&2){let t=g();l(3),C("selected",t.selectedCategory())}}function ei(a,e){if(a&1&&p(0,"nile-skeleton-loader",16),a&2){let t=e.$implicit;q("height",t)}}function ti(a,e){if(a&1&&(s(0,"div",13)(1,"div",14)(2,"div",15),K(3,ei,1,1,"nile-skeleton-loader",16,me),d()(),s(5,"div",17)(6,"div",18),p(7,"nile-skeleton-loader",19),d(),s(8,"div",20),p(9,"nile-skeleton-loader",21),d()()()),a&2){let t=g(2);l(3),Z(t.skeletonBarHeights)}}function ni(a,e){if(a&1&&(s(0,"div",3),K(1,ti,10,0,"div",13,me),d()),a&2){let t=g();l(),Z(t.skeletonSlots)}}function ii(a,e){if(a&1){let t=O();s(0,"nile-button",71),f("click",function(){w(t);let i=g(3);return D(i.openCreate())}),p(1,"nile-glyph",72),u(2," Create dashboard "),d()}}function ai(a,e){a&1&&te(0,ii,3,0,"nile-button",70),a&2&&C("hasPermission","dashboard.create")}function oi(a,e){if(a&1&&(s(0,"div",4)(1,"div",22),xe(),s(2,"svg",23)(3,"defs")(4,"linearGradient",24),p(5,"stop",25)(6,"stop",26),d()(),p(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),s(17,"circle",37),p(18,"animate",38),d(),s(19,"circle",39),p(20,"animate",40),d(),p(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),s(31,"rect",51),p(32,"animate",52)(33,"animate",53),d(),s(34,"rect",54),p(35,"animate",55)(36,"animate",56),d(),s(37,"rect",57),p(38,"animate",58)(39,"animate",59),d(),s(40,"rect",60),p(41,"animate",61)(42,"animate",62),d(),s(43,"path",63),p(44,"animate",64),d(),s(45,"circle",65),p(46,"animate",66),d()()(),Oe(),s(47,"h2",67),u(48,"Build your first dashboard"),d(),s(49,"p",68),u(50," Dashboards bring your data to life with charts, KPIs, and tables. Create one to start exploring. "),d(),b(51,ai,1,1,"nile-button",69),d()),a&2){let t=g();l(51),_(t.features().create?51:-1)}}function ri(a,e){a&1&&(s(0,"div",5)(1,"h2",67),u(2,"No dashboards match your search"),d(),s(3,"p",68),u(4,"Try a different name or clear the search to see all dashboards."),d()())}function si(a,e){if(a&1&&(s(0,"span",77),p(1,"nile-glyph",86),u(2),d()),a&2){let t=g().$implicit;l(2),Ee(" ",t.widgetCount," widget",t.widgetCount===1?"":"s"," ")}}function di(a,e){if(a&1&&(s(0,"span",87),u(1),d()),a&2){let t=e.$implicit,n=g(4);l(),Q(n.dashboardCategoryLabel(t))}}function li(a,e){if(a&1&&(s(0,"nile-tooltip",88)(1,"span",89),u(2),d()()),a&2){let t=g(2).$implicit,n=g(2);C("content",n.hiddenCategoryLabels(t)),l(),q("aria-label",n.hiddenCategoryAriaLabel(t)),l(),$("+",n.hiddenCategoryCount(t))}}function ci(a,e){if(a&1&&(s(0,"span",78),K(1,di,2,1,"span",87,yt),b(3,li,3,3,"nile-tooltip",88),d()),a&2){let t=g().$implicit,n=g(2);l(),Z(n.visibleCategories(t)),l(2),_(n.hiddenCategoryCount(t)>0?3:-1)}}function gi(a,e){if(a&1&&(s(0,"div",79),p(1,"db-dash-card-chart",90),d()),a&2){let t=g().$implicit;l(),C("config",t.firstWidget.config)}}function hi(a,e){a&1&&(s(0,"div",80)(1,"div",91),p(2,"span",92)(3,"span",93)(4,"span",94)(5,"span",95)(6,"span",96),d()())}function pi(a,e){if(a&1){let t=O();s(0,"span",97),f("mousedown",function(i){return i.stopPropagation()})("click",function(i){w(t);let o=g().$implicit,r=g(2);return D(r.onCardEditClick(i,o))}),p(1,"nile-glyph",98),d()}}function mi(a,e){if(a&1){let t=O();s(0,"dash-card-delete-action",100),f("deleteClick",function(i){w(t);let o=g(2).$implicit,r=g(2);return D(r.onCardDeleteClick(i,o.id))}),d()}}function ui(a,e){a&1&&te(0,mi,1,0,"dash-card-delete-action",99),a&2&&C("hasPermission","dashboard.delete")}function bi(a,e){if(a&1&&(s(0,"span",84),u(1),d()),a&2){let t=g().$implicit,n=g(2);l(),$("Updated ",n.computeRelativeTime(t.updatedAt))}}function _i(a,e){a&1&&(s(0,"span",85)(1,"nile-badge",101),u(2,"Auto-generated"),d()())}function fi(a,e){if(a&1&&(s(0,"span",85)(1,"nile-badge"),u(2),d()()),a&2){let t=g().$implicit;l(),q("variant",t.status==="published"?"blue":"warning"),l(),$(" ",t.status==="published"?"Published":"Draft"," ")}}function yi(a,e){if(a&1){let t=O();s(0,"div",76),f("click",function(){let i=w(t).$implicit,o=g(2);return D(o.onCardClick(i.id))})("keydown.enter",function(){let i=w(t).$implicit,o=g(2);return D(o.onCardClick(i.id))}),s(1,"div",14),b(2,si,3,2,"span",77),b(3,ci,4,1,"span",78),b(4,gi,2,1,"div",79)(5,hi,7,0,"div",80),d(),s(6,"div",17)(7,"div",18)(8,"span",81),u(9),d(),s(10,"span",82),te(11,pi,2,0,"span",83),b(12,ui,1,1,"dash-card-delete-action"),d()(),s(13,"div",20),b(14,bi,2,1,"span",84),b(15,_i,3,0,"span",85)(16,fi,3,2,"span",85),d()()()}if(a&2){let t=e.$implicit,n=g(2);l(2),_(t.widgetCount!==void 0?2:-1),l(),_(n.visibleCategories(t).length?3:-1),l(),_(t.firstWidget?4:5),l(4),C("title",t.name),l(),Q(t.name),l(2),C("hasPermission","dashboard.update"),l(),_(n.features().delete?12:-1),l(2),_(t.updatedAt?14:-1),l(),_(t.isAutoGenerated?15:t.status?16:-1)}}function Ci(a,e){if(a&1){let t=O();s(0,"div",73),K(1,yi,17,9,"div",74,Yn),d(),s(3,"nile-pagination",75),f("nile-change",function(i){w(t);let o=g();return D(o.onPageChange(i))}),d()}if(a&2){let t=g();l(),Z(t.dashboards()),l(2),q("totalitems",t.totalCount())("currentpage",t.currentPage())("pagesize",t.pageSize())}}function vi(a,e){if(a&1&&(u(0," Delete "),s(1,"strong"),u(2),d(),u(3,"? This action cannot be undone. ")),a&2){let t=g();l(2),Q(t.pendingDeleteName())}}function xi(a,e){a&1&&u(0," Delete this dashboard? This action cannot be undone. ")}var je=class a{manageDashboardsConfig=m(ie);environment=m(N);http=m(ne);nav=m(z);tokenStore=m(H);publishRepo=m(L);dashboardsBus=m(oe);routeProgress=m(qe);destroyRef=m(de);hostEl=m(pe);dashboards=c([]);features(){return this.manageDashboardsConfig().features}search=this.nav.search;selectedCategory=this.nav.category;dashboardCategoryLabel=tt;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=>tt(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=c(0);reloadRequest=c(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(),Et(()=>{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=c(!0);skeletonSlots=Array.from({length:8});skeletonBarHeights=[42,70,95,57,79];pendingDeleteId=c(null);isDeleting=c(!1);pendingDeleteName=P(()=>{let e=this.pendingDeleteId();return e?this.dashboards().find(t=>t.id===e)?.name??"":""});constructor(){this.watchSearch(),this.watchListView(),this.watchListState(),this.destroyRef.onDestroy(Re(()=>this.repaintPreviews()))}repaintPreviews(){let e=this.hostEl.nativeElement;this.dashboards.update(t=>t.map(n=>n.previewWidget?E(v({},n),{firstWidget:ye(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 We()}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 r=await this.routeProgress.track(W(this.http.get(`${this.environment.baseUrl}/api/customers/${e}/products/${this.productId}/workforce/dashboards?${n.toString()}`))),h=r?.data??r??[],y=r?.pagination?.total??h.length;if(this.totalCount.set(y),h.length===0&&this.currentPage()>1&&t>=y){this.currentPage.set(Math.max(1,Math.ceil(y/this.pageSize())));return}await Ge(h.map(x=>x.previewWidget).filter(x=>!!x));let A=new Map(this.dashboards().map(x=>[x.id,x])),F=h.map(x=>{let I=A.get(x.id),M=ye(x.previewWidget??void 0,this.hostEl.nativeElement),R=wi(I?.firstWidget,M)?I?.firstWidget:M;return{id:x.id,name:x.name,updatedAt:x.updatedAt??I?.updatedAt,widgetCount:x.widgetCount,firstWidget:R,previewWidget:x.previewWidget,status:x.version??x.status??I?.status,isAutoGenerated:x.isAutoGenerated??I?.isAutoGenerated,category:x.category??I?.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 r=Math.round(o/24);if(r<30)return`${r} day${r===1?"":"s"} ago`;let h=Math.round(r/30);if(h<12)return`${h} month${h===1?"":"s"} ago`;let y=Math.round(h/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=G({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&&(s(0,"div",0),b(1,Xn,4,1,"div",1),s(2,"div",2),b(3,ni,3,0,"div",3)(4,oi,52,1,"div",4)(5,ri,5,0,"div",5)(6,Ci,4,3),d(),s(7,"nile-dialog",6),f("nile-request-close",function(o){return o.stopPropagation(),n.cancelDelete()}),s(8,"p",7),b(9,vi,4,1)(10,xi,1,0),d(),s(11,"div",8)(12,"nile-button",9),f("click",function(){return n.cancelDelete()}),u(13," Cancel "),d(),s(14,"nile-button",10),f("click",function(){return n.confirmDelete()}),u(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),C("open",!!n.pendingDeleteId()),l(2),_(n.pendingDeleteName()?9:10),l(3),q("disabled",n.isDeleting()?"":null),l(2),q("disabled",n.isDeleting()?"":null),l(),$(" ",n.isDeleting()?"Deleting\u2026":"Delete"," "))},dependencies:[ue,Ue,ce,Ce,Tn],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:0 3px;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 wi(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=m(N);http=m(ne);tokenStore=m(H);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 r;try{r=await W(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 J?new Error(y.error?.error?.message||y.error?.message||y.message):y}if(r.error)throw new Error(r.error.message);let h=r.result;if(h?.isError)throw new Error(h.structuredContent?.error?.message??h.content?.[0]?.text??`${e} failed`);return h?.structuredContent??{}}sessionHeader(e){return e?{headers:new be({"x-session-id":e})}:{}}async fetchGridPage(e,t,n,i,o,r,h,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(x=>x&&x.value!=null&&String(x.value).trim()!=="");return F.length&&(A+=`&filters=${encodeURIComponent(JSON.stringify(F))}`),o&&Object.keys(o).length&&(A+=`&dashboardFilters=${encodeURIComponent(JSON.stringify(o))}`),h&&h.length&&(A+=`&resolvedFilters=${encodeURIComponent(JSON.stringify(h))}`),r&&(A+=`&dashboardId=${encodeURIComponent(r)}`),y&&(A+=`&conversationId=${encodeURIComponent(y)}`),W(this.http.get(A))}async getSuggestedPrompts(e){let t;try{t=await W(this.http.get(`${this.environment.baseUrl}/api/customers/${this.customerId}/products/${this.environment.getProductId()}/datasources/${e}/suggested-prompts`))}catch(n){throw n instanceof J?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}),r;try{r=await W(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 J?new Error(y.error?.error||y.message):y}if(r?.success===!1)throw new Error(r.error||"Request failed");let h=r?.data??r??{};return{nextToken:h.nextToken,completions:Array.isArray(h.completions)?h.completions:[],suggestions:Array.isArray(h.suggestions)?h.suggestions:[]}}async applyFilters(e,t,n,i,o,r){let h=await new Promise((x,I)=>{let M=this.http.post(`${this.environment.baseUrl}/api/customers/${this.customerId}/products/${this.environment.getProductId()}/workforce/dashboards/${n}/filter/apply?status=${i??"draft"}`,yn(e,t,r)).subscribe({next:R=>x(R),error:R=>{R instanceof J?I(new Error(R.error?.error||R.message)):I(R)}});if(o){if(o.aborted){M.unsubscribe();let R=new Error("Aborted");R.name="AbortError",I(R);return}o.addEventListener("abort",()=>{M.unsubscribe();let R=new Error("Aborted");R.name="AbortError",I(R)},{once:!0})}});if(h?.success===!1)throw new Error(h.error||"Request failed");let y=h?.data??h,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(x=>fe(x.config))),{widgets:A,resolvedFilters:F}}async generate(e,t,n,i,o){let r={prompt:e};t&&(r.dataSourceId=t),i&&(r.dashboardId=i);let h=await new Promise((F,x)=>{let I=this.http.post(`${this.environment.baseUrl}/api/customers/${this.customerId}/products/${this.environment.getProductId()}/workforce/widget/generate`,r,this.sessionHeader(n)).subscribe({next:M=>F(M),error:M=>{M instanceof J?x(new Error(M.error?.error||M.message)):x(M)}});if(o){if(o.aborted){I.unsubscribe();let M=new Error("Aborted");M.name="AbortError",x(M);return}o.addEventListener("abort",()=>{I.unsubscribe();let M=new Error("Aborted");M.name="AbortError",x(M)},{once:!0})}});if(h?.success===!1)throw new Error(h.error||"Request failed");let y=h?.data??h;if(y?.dashboardTitle&&Array.isArray(y?.widgets)){let F=y;return await Promise.all(F.widgets.map(x=>fe(x.config))),F}if(!y?.config)throw new Error("Invalid response from generate API");let A=y;return await fe(A.config),A}async getWidgetSession(e){let t;try{t=await W(this.http.get(`${this.environment.baseUrl}/api/customers/${this.customerId}/products/${this.environment.getProductId()}/workforce/widget/sessions/${e}`))}catch(n){throw n instanceof J?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?fe(n.widgetConfig.config):Promise.resolve())),t.data}async getWidgetSessions(){let e;try{e=await W(this.http.get(`${this.environment.baseUrl}/api/customers/${this.customerId}/products/${this.environment.getProductId()}/workforce/widget/sessions`))}catch(t){throw t instanceof J?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:Di(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 W(this.http.post(`${this.environment.baseUrl}/api/customers/${this.customerId}/products/${this.environment.getProductId()}/workforce/widget/modify`,t))}catch(r){throw r instanceof J?new Error(r.error?.error||r.message):r}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 fe(n.config),n}async previewWidgetDetailPanelDefinition(e){return(await W(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=V({token:a,factory:a.\u0275fac})};function Di(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=m(N);tokenStore=m(H);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 W(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(r){throw r instanceof J?new Error(r.error?.error?.message||r.error?.message||r.message):r}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 W(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 W(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 W(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)(gt(ne))};static \u0275prov=V({token:a,factory:a.\u0275fac})};var Pi=["aiExecutiveSummary"],Mi=["pipelineHost"],Si=["erDiagram"],Oi=["osViewer"],ki=["sliderGrid"],Ei=["reportHost"],Ti=()=>[],Ai=()=>[1,2,3,4],ot=(a,e)=>e.id,Ii=(a,e)=>t=>t.tableName;function Wi(a,e){a&1&&(s(0,"div",9),De(1,null,2),d())}function Ri(a,e){if(a&1){let t=O();s(0,"div",10)(1,"div",36)(2,"span",37),u(3,"Report"),d(),s(4,"button",38),f("click",function(){w(t);let i=g();return D(i.closeTool())}),p(5,"nile-glyph",39),d()(),s(6,"div",40),De(7,null,3),d()()}}function Fi(a,e){a&1&&(s(0,"div",42),u(1,"Create a pipeline to start moving your data."),d())}function Ni(a,e){a&1&&(s(0,"nile-badge",49),u(1,"Active"),d())}function Li(a,e){if(a&1){let t=O();s(0,"nile-card",45),f("click",function(){let i=w(t).$implicit,o=g(3);return o.onPipelineRowClick(i.id),D(o.closeTool())}),s(1,"div",46)(2,"div",47),p(3,"nile-glyph",48),d(),b(4,Ni,2,0,"nile-badge",49),d(),s(5,"span",50),u(6),d()()}if(a&2){let t=e.$implicit,n=g(3);l(4),_(t.id===n.selectedConnectionId()?4:-1),l(),C("title",t.name),l(),Q(t.name)}}function zi(a,e){if(a&1&&(s(0,"div",43),K(1,Li,7,3,"nile-card",44,ot),d()),a&2){let t=g(2);l(),Z(t.connections())}}function qi(a,e){if(a&1){let t=O();s(0,"div",11)(1,"div",36)(2,"span",37),u(3,"All pipelines"),d(),s(4,"button",38),f("click",function(){w(t);let i=g();return D(i.closeTool())}),p(5,"nile-glyph",39),d()(),s(6,"div",41),b(7,Fi,2,0,"div",42)(8,zi,3,0,"div",43),d()()}if(a&2){let t=g();l(7),_(t.connections().length===0?7:8)}}function $i(a,e){a&1&&p(0,"span",56)}function Vi(a,e){if(a&1){let t=O();s(0,"div",51),p(1,"app-er-diagram",52,4),s(3,"div",53)(4,"nile-button",54),f("click",function(){w(t);let i=g(2);return D(i.closeTool())}),u(5,"Cancel"),d(),s(6,"nile-button",55),f("click",function(){w(t);let i=g(2);return D(i.updateDatasource())}),b(7,$i,1,0,"span",56),u(8," Update "),d()()()}if(a&2){let t,n=g(2);l(),C("connectionId",n.selectedConnection().mssqlConnectionId)("tables",((t=n.selectedConnection().datasets)==null?null:t.map(Mt(6,Ii,e)))??Ye(7,Ti))("preselectedColumns",n.datasetColumnsByTable()),l(5),q("loading",n.isUpdatingDatasource()?"":null)("disabled",n.isUpdatingDatasource()?"":null),l(),_(n.isUpdatingDatasource()?7:-1)}}function Gi(a,e){a&1&&p(0,"span",56)}function Bi(a,e){if(a&1){let t=O();s(0,"div",51),p(1,"app-os-schema-viewer",57,5),s(3,"div",53)(4,"nile-button",54),f("click",function(){w(t);let i=g(2);return D(i.closeTool())}),u(5,"Cancel"),d(),s(6,"nile-button",55),f("click",function(){w(t);let i=g(2);return D(i.updateDatasource())}),b(7,Gi,1,0,"span",56),u(8," Update "),d()()()}if(a&2){let t=g(2);l(),C("connectionId",t.osSchemaConnectionId())("indexNames",t.osSchemaIndexNames())("preselectedFields",t.datasetColumnsByTable()),l(5),q("loading",t.isUpdatingDatasource()?"":null)("disabled",t.isUpdatingDatasource()?"":null),l(),_(t.isUpdatingDatasource()?7:-1)}}function Ui(a,e){if(a&1){let t=O();s(0,"div",12)(1,"div",36)(2,"span",37),u(3),d(),s(4,"button",38),f("click",function(){w(t);let i=g();return D(i.closeTool())}),p(5,"nile-glyph",39),d()(),s(6,"div",40),b(7,Vi,9,8,"div",51),b(8,Bi,9,6,"div",51),d()()}if(a&2){let t,n,i=g();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 Hi(a,e){if(a&1){let t=O();s(0,"nile-button",60),f("click",function(){w(t);let i=g(2);return D(i.onCreateDashboardClick())}),p(1,"nile-glyph",61),u(2," Create dashboard "),d()}}function ji(a,e){if(a&1){let t=O();s(0,"nile-button",110),f("click",function(){w(t);let i=g(3);return D(i.onCreateDashboardClick())}),p(1,"nile-glyph",61),u(2," Create dashboard "),d()}}function Ki(a,e){a&1&&(s(0,"div",59)(1,"div",62),xe(),s(2,"svg",63)(3,"defs")(4,"linearGradient",64),p(5,"stop",65)(6,"stop",66),d()(),p(7,"rect",67)(8,"line",68)(9,"line",69)(10,"circle",70)(11,"circle",71)(12,"circle",72)(13,"circle",73)(14,"circle",74)(15,"circle",75)(16,"path",76),s(17,"circle",77),p(18,"animate",78),d(),s(19,"circle",79),p(20,"animate",80),d(),p(21,"rect",81)(22,"rect",82)(23,"rect",83)(24,"rect",84)(25,"rect",85)(26,"rect",86)(27,"rect",87)(28,"rect",88)(29,"rect",89)(30,"rect",90),s(31,"rect",91),p(32,"animate",92)(33,"animate",93),d(),s(34,"rect",94),p(35,"animate",95)(36,"animate",96),d(),s(37,"rect",97),p(38,"animate",98)(39,"animate",99),d(),s(40,"rect",100),p(41,"animate",101)(42,"animate",102),d(),s(43,"path",103),p(44,"animate",104),d(),s(45,"circle",105),p(46,"animate",106),d()()(),Oe(),s(47,"h2",107),u(48,"Build your first dashboard"),d(),s(49,"p",108),u(50," Dashboards bring your data to life with charts, KPIs, and tables. Create one to start exploring. "),d(),te(51,ji,3,0,"nile-button",109),d()),a&2&&(l(51),C("hasPermission","dashboard.create"))}function Zi(a,e){if(a&1&&(s(0,"span",114),p(1,"nile-glyph",126),u(2),d()),a&2){let t=g().$implicit;l(2),Ee(" ",t.widgetCount," widget",t.widgetCount===1?"":"s"," ")}}function Qi(a,e){if(a&1&&(s(0,"span",115)(1,"nile-badge"),u(2),d()()),a&2){let t=g().$implicit;l(),q("variant",t.status==="published"?"success":"warning"),l(),$(" ",t.status==="published"?"Published":"Draft"," ")}}function Ji(a,e){if(a&1&&(s(0,"div",116),p(1,"db-dash-card-chart",127),d()),a&2){let t=g().$implicit;l(),C("config",t.firstWidget.config)}}function Yi(a,e){a&1&&(s(0,"div",117)(1,"div",128),p(2,"span",129)(3,"span",130)(4,"span",131)(5,"span",132)(6,"span",133),d()())}function Xi(a,e){if(a&1){let t=O();s(0,"span",134),f("mousedown",function(i){return i.stopPropagation()})("click",function(i){w(t);let o=g().$implicit,r=g(3);return D(r.onDashboardRowEditClick(i,o))}),p(1,"nile-glyph",135),d()}}function ea(a,e){if(a&1){let t=O();s(0,"dash-card-delete-action",136),f("deleteClick",function(i){w(t);let o=g().$implicit,r=g(3);return D(r.onDashboardRowDeleteClick(i,o.id))}),d()}}function ta(a,e){a&1&&p(0,"span",137)}function na(a,e){if(a&1&&(s(0,"span",125),u(1),d(),b(2,ta,1,0,"span",137)),a&2){let t=g().$implicit;l(),Q(t.firstWidget==null?null:t.firstWidget.title),l(),_(t.updatedAt?2:-1)}}function ia(a,e){if(a&1&&(s(0,"span",125),u(1),d()),a&2){let t=g().$implicit,n=g(3);l(),$("Updated ",n.computeRelativeTime(t.updatedAt))}}function aa(a,e){if(a&1){let t=O();s(0,"button",112),f("click",function(){let i=w(t).$implicit,o=g(3);return D(o.onDashboardRowClick(i.id))}),s(1,"div",113),b(2,Zi,3,2,"span",114),b(3,Qi,3,2,"span",115),b(4,Ji,2,1,"div",116)(5,Yi,7,0,"div",117),d(),s(6,"div",118)(7,"div",119)(8,"span",120),u(9),d(),s(10,"span",121),te(11,Xi,2,0,"span",122)(12,ea,1,0,"dash-card-delete-action",123),d()(),s(13,"div",124),b(14,na,3,2),b(15,ia,2,1,"span",125),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),C("title",t.name),l(),Q(t.name),l(2),C("hasPermission","dashboard.update"),l(),C("hasPermission","dashboard.delete"),l(2),_(t.firstWidget!=null&&t.firstWidget.title?14:-1),l(),_(t.updatedAt?15:-1)}}function oa(a,e){if(a&1&&(s(0,"div",43),K(1,aa,16,9,"button",111,ot),d()),a&2){let t=g(2);l(),Z(t.dashboardsList())}}function ra(a,e){if(a&1&&(s(0,"div",13)(1,"div",36)(2,"span",37),u(3,"Dashboards"),d(),te(4,Hi,3,0,"nile-button",58),d(),s(5,"div",41),b(6,Ki,52,1,"div",59)(7,oa,3,0,"div",43),d()()),a&2){let t=g();l(4),C("hasPermission","dashboard.create"),l(2),_(t.dashboardsList().length===0?6:7)}}function sa(a,e){a&1&&(s(0,"span",14),xe(),s(1,"svg",138),p(2,"rect",139)(3,"rect",140)(4,"rect",141)(5,"rect",142),d()())}function da(a,e){if(a&1){let t=O();s(0,"nile-button",145),f("click",function(){w(t);let i=g(2);return D(i.openInAskAquera())}),p(1,"nile-glyph",146),u(2," Open in Ask Aquera "),d()}}function la(a,e){if(a&1){let t=O();s(0,"div",15),b(1,da,3,0,"nile-button",143),s(2,"shared-builder-toolbar",144),f("action",function(i){w(t);let o=g();return D(o.onMenuAction(i))}),d()()}if(a&2){let t=g();l(),_(t.loadedDashboardId()&&t.features().askAquera?1:-1),l(),C("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())("showAskAquera",!1)}}function ca(a,e){if(a&1){let t=O();s(0,"div",147),f("mousedown",function(i){return i.stopPropagation()})("click",function(i){return i.stopPropagation()}),s(1,"input",148,6),f("input",function(){w(t);let i=Dt(2),o=g();return D(o.onRenameInputChange(i.value))})("keydown",function(i){w(t);let o=g();return D(o.onRenameInputKeydown(i))}),d(),s(3,"button",149),f("click",function(){w(t);let i=g();return D(i.commitRenameDashboard())}),p(4,"nile-glyph",150),d(),s(5,"button",151),f("click",function(){w(t);let i=g();return D(i.cancelRenameDashboard())}),p(6,"nile-glyph",152),d()()}if(a&2){let t=g();l(),C("value",t.renamingValue())("disabled",t.isRenamingDashboard()),l(2),C("disabled",t.isRenamingDashboard()),l(2),C("disabled",t.isRenamingDashboard())}}function ga(a,e){a&1&&p(0,"nile-skeleton-loader",153)}function ha(a,e){if(a&1&&(s(0,"span",154),u(1),d()),a&2){let t=g(2);l(),Q(t.dashboardName()||"Untitled Dashboard")}}function pa(a,e){if(a&1){let t=O();s(0,"button",156),f("click",function(){w(t);let i=g(2);return D(i.startEditDashboardName())}),p(1,"nile-glyph",135),d()}}function ma(a,e){if(a&1&&(s(0,"div",22),b(1,ga,1,0,"nile-skeleton-loader",153)(2,ha,2,1,"span",154),b(3,pa,2,0,"button",155),d()),a&2){let t=g();l(),_(t.dashboardLoading()?1:2),l(2),_(t.loadedDashboardId()?3:-1)}}function ua(a,e){a&1&&(s(0,"nile-card",158)(1,"div",159),p(2,"nile-skeleton-loader",160),d(),s(3,"div",161),p(4,"nile-skeleton-loader",162)(5,"nile-skeleton-loader",163),d()())}function ba(a,e){a&1&&(s(0,"div",157),K(1,ua,6,0,"nile-card",158,me),d()),a&2&&(l(),Z(Ye(0,Ai)))}function _a(a,e){a&1&&(s(0,"div",42),u(1,"Create charts, save widgets, and build your library."),d())}function fa(a,e){a&1&&(s(0,"nile-badge",49),u(1,"Added"),d())}function ya(a,e){if(a&1){let t=O();s(0,"nile-button",168),f("click",function(){w(t);let i=g().$implicit,o=g(3);return D(o.onGlobalWidgetAddClick(i.id))}),u(1," + Add to Dashboard "),d()}}function Ca(a,e){if(a&1){let t=O();s(0,"nile-card",158)(1,"div",159),p(2,"shared-nile-chart-widget",164),d(),s(3,"div",161),b(4,fa,2,0,"nile-badge",49)(5,ya,2,0,"nile-button",165),s(6,"span",166),f("click",function(){let i=w(t).$implicit,o=g(3);return D(o.onGlobalWidgetRemoveClick(i.id))})("keydown.enter",function(){let i=w(t).$implicit,o=g(3);return D(o.onGlobalWidgetRemoveClick(i.id))})("keydown.space",function(){let i=w(t).$implicit,o=g(3);return D(o.onGlobalWidgetRemoveClick(i.id))}),p(7,"nile-glyph",167),d()()()}if(a&2){let t=e.$implicit,n=g(3);l(2),C("config",t.config)("drilldownBy",t.drilldownBy),l(2),_(n.addedGlobalWidgetIds().has(t.id)?4:5)}}function va(a,e){if(a&1&&(s(0,"div",157),K(1,Ca,8,3,"nile-card",158,ot),d()),a&2){let t=g(2);l(),Z(t.globalWidgets())}}function xa(a,e){if(a&1){let t=O();s(0,"div",23)(1,"div",36)(2,"span",37),u(3,"Widget library"),d(),s(4,"button",38),f("click",function(){w(t);let i=g();return D(i.closeTool())}),p(5,"nile-glyph",39),d()(),s(6,"div",41),b(7,ba,3,1,"div",157)(8,_a,2,0,"div",42)(9,va,3,0,"div",157),d()()}if(a&2){let t=g();l(7),_(t.globalWidgetsLoading()?7:t.globalWidgets().length===0?8:9)}}function wa(a,e){a&1&&u(0),a&2&&$(" ",e," ")}function Da(a,e){a&1&&p(0,"nile-skeleton-loader",171)}function Pa(a,e){if(a&1&&p(0,"nile-skeleton-loader",178),a&2){let t=e.$implicit;Je("left",t.x/12*100,"%")("top",t.y*72,"px")("width","calc("+t.w/12*100+"% - 12px)")("height",t.h*72-12,"px")}}function Ma(a,e){if(a&1&&(s(0,"div",176),K(1,Pa,1,8,"nile-skeleton-loader",177,me),d()),a&2){let t=g(3);Je("height",t.widgetDetailPanelSkeletonHeight(),"px"),l(),Z(t.widgetDetailPanelSkeletonSlots())}}function Sa(a,e){a&1&&(s(0,"div",175)(1,"div",179),p(2,"nile-skeleton-loader",180)(3,"nile-skeleton-loader",180)(4,"nile-skeleton-loader",180),d(),p(5,"nile-skeleton-loader",181),d())}function Oa(a,e){if(a&1&&b(0,Ma,3,2,"div",174)(1,Sa,6,0,"div",175),a&2){let t=g(2);_(t.widgetDetailPanelSkeletonSlots().length?0:1)}}function ka(a,e){if(a&1&&p(0,"shared-dashboard-grid",173),a&2){let t=g(2);C("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 Ea(a,e){if(a&1){let t=O();s(0,"div",29)(1,"div",169)(2,"nile-breadcrumb",170),f("nile-click",function(){w(t);let i=g();return D(i.closeWidgetDetailPanel())}),s(3,"nile-breadcrumb-item"),u(4),d(),s(5,"nile-breadcrumb-item"),b(6,wa,1,1)(7,Da,1,0,"nile-skeleton-loader",171),d()()(),s(8,"div",172),b(9,Oa,2,1)(10,ka,1,16,"shared-dashboard-grid",173),d()()}if(a&2){let t,n=g();l(4),$(" ",n.dashboardName()," "),l(2),_((t=n.widgetDetailPanelTitle())?6:7,t),l(3),_(n.widgetDetailPanelLoading()?9:10)}}function Ta(a,e){if(a&1&&(u(0," Delete "),s(1,"strong"),u(2),d(),u(3,"? This action cannot be undone. ")),a&2){let t=g();l(2),Q(t.pendingDeleteDashboardName())}}function Aa(a,e){a&1&&u(0," Delete this dashboard? This action cannot be undone. ")}var Se=class a{aiExecutiveSummaryEl;pipelineHost;erDiagramRef;osViewerRef;sliderGridRef;reportHost;alertDrawerOpen=c(!1);alertWidget=c(null);onSetAlert(e){this.alertWidget.set(e),this.alertDrawerOpen.set(!0)}onAlertClosed(){this.alertDrawerOpen.set(!1)}isDashboardPublished=P(()=>this.dashboardsList().find(e=>e.id===this.loadedDashboardId())?.status==="published");canSetAlert=P(()=>this.isDashboardPublished());pipelineRemoteRef=null;pipelineLoading=c(!1);reportRemoteRef=null;reportLoading=c(!1);addWidget=new T;saveWidgetToLibrary=new T;publishNewDashboard=new T;addWidgetsToDashboard=new T;connectionChange=new T;editDashboardWidget=new T;switchDashboard=new T;exitDashboard=new T;createDashboardClick=new T;addGlobalWidgetToDashboard=new T;removeGlobalWidgetFromLibrary=new T;loadGlobalWidgets=new T;loadDashboardsList=new T;toolClosed=new T;executiveSummaryClick=new T;exportPdfClick=new T;exportPngClick=new T;publishClick=new T;dashboardDeleted=new T;dashboardRenamed=new T;createPipelineClick=new T;removeWidget=new T;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=c(!1);showLayoutPopup=c(!1);sliderView=c("none");sliderFullscreen=c(!1);activeTool=c("none");dashboardsExpanded=c(!1);dashboardsShownCount=c(5);dashboardsPageSize=5;pipelinesExpanded=c(!1);pipelinesShownCount=c(5);pipelinesPageSize=5;toolSearchTerm=c("");dashboardMenuOpen=c(!1);showExecutiveSummary=c(!1);showCreatePipelineFlyer=c(!1);newPipelineName=c("");tweakingWidgetId=c(null);pendingDashboardWidgets=c({widgets:[]});addingGlobalWidgetIds=c(new Set);isUpdatingDatasource=c(!1);selectedConnection=P(()=>this.connections().find(e=>e.id===this.selectedConnectionId())??this.connections()[0]??null);isMssqlSchema=P(()=>{let e=this.selectedConnection();return e?e.adapterType==="mssql"||!e.adapterType&&!!e.mssqlConnectionId:!1});isOpenSearchSchema=P(()=>{let e=this.selectedConnection();return e?e.adapterType==="opensearch"||!e.adapterType&&!!e.opensearchConnectionId:!1});osSchemaConnectionId=P(()=>{let e=this.selectedConnection();return e?.opensearchConnectionId??e?.connectionId??""});osSchemaIndexNames=P(()=>{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=P(()=>{let e=this.selectedConnection()?.datasets??[],t={};return e.forEach(n=>{t[n.tableName]=n.columnsSelected.map(i=>i.name)}),t});selectedConnectionName=P(()=>{let e=this.selectedConnectionId(),t=this.connections().find(n=>n.id===e);return t?.connectionName??t?.name??""});manageDashboardsConfig=m(ie);environment=m(N);openAiService=m(se);dashboardState=m(Ne);publishRepo=m(L);forecastService=m(nn);destroyRef=m(de);datasourcesService=m(le);nav=m(z);perms=m(re);timeFilterPref=m(xn);nothingToPublish=pn(this.dashboardState.nothingToPublish$,{initialValue:!1});canPublish=P(()=>!this.nothingToPublish());hasTimeFilter=this.timeFilterPref.enabled(this.loadedDashboardId);autoGenerated=c(!1);canUpdate=P(()=>(this.perms.permissions(),this.perms.has("dashboard.update")));canDelete=P(()=>(this.perms.permissions(),this.perms.has("dashboard.delete")));isWorkforceIntelligence=Kt;isHrDataLake=Zt;dashboardWidgets=c(this.dashboardState.snapshot.widgets);sliderWidgets=P(()=>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=P(()=>this.dashboardWidgets().length>0);alertSource=c(null);widgetDetailPanelOpen=c(!1);widgetDetailPanelLoading=c(!1);widgetDetailPanelTitle=c(null);widgetDetailPanelRaw=c([]);widgetDetailPanelSkeletonSlots=c([]);widgetDetailPanelSkeletonHeight=P(()=>{let e=this.widgetDetailPanelSkeletonSlots();return e.length?Math.max(...e.map(t=>(t.y+t.h)*72)):0});widgetDetailPanelWidgets=P(()=>{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:en(e)});constructor(){this.perms.ensureLoaded(),this.destroyRef.onDestroy(()=>this.clearPipelineMountTimeout()),this.dashboardState.state$.pipe(X(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.sliderView()==="none"&&this.loadedDashboardId()&&this.sliderView.set("edit")}),S(()=>{this.dashboardWidgets(),this.loadedDashboardId(),queueMicrotask(()=>this.primeFilterWidgets())}),S(()=>{let t=this.loadedDashboardId(),n=rn(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=c({});forecastingWidgetId=c(null);forecastBusy=new Set;hasFilter=P(()=>this.sliderWidgets().some(e=>this.isFilterWidget(e)));anyForecastOn=P(()=>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),ze({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=c(!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 r of n.widgets??[])this.replaceForecastWidget(r);let i=n.applied?.length??0,o=n.skipped?.length??0;i&&ze({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(v({},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"askAquera":this.openInAskAquera();break;case"promptGallery":break}}isRearranging=c(!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=c(null);renamingValue=c("");isRenamingDashboard=c(!1);pendingDeleteDashboardId=c(null);isDeletingDashboard=c(!1);pendingDeleteDashboardName=P(()=>{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){ze({variant:"warning",title:"Rename failed",content:hn(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=P(()=>this.dashboardsList().slice(0,this.dashboardsShownCount()));canLoadMoreDashboards=P(()=>this.dashboardsShownCount()<this.dashboardsList().length);remainingDashboardsCount=P(()=>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=P(()=>this.connections().slice(0,this.pipelinesShownCount()));canLoadMorePipelines=P(()=>this.pipelinesShownCount()<this.connections().length);remainingPipelinesCount=P(()=>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 r=this.pipelineRemoteRef.instance;r.createMode=!0,r.showAddDialog=!0,r.pipelineCreated?.pipe(X(this.destroyRef)).subscribe(({id:h})=>{this.connectionChange.emit(h),this.loadDashboardsList.emit(),this.closeCreatePipelineFlyer()}),r.cancelled?.pipe(X(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=P(()=>{let e=this.toolSearchTerm().toLowerCase().trim(),t=this.dashboardsList();return e?t.filter(n=>n.name.toLowerCase().includes(e)):t});toolDrawerLabel=P(()=>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 r=Math.floor(o/24);if(r<30)return`${r} day${r>1?"s":""} ago`;let h=Math.floor(r/30);return`${h} month${h>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 r=e.target;if(!(r&&(r.isContentEditable||/^(input|textarea|select)$/i.test(r.tagName))))if(o){if(!this.dashboardState.canRedoLayout)return;e.preventDefault(),this.dashboardState.redoLayout()}else{if(!this.dashboardState.canUndoLayout)return;e.preventDefault(),this.dashboardState.undoLayout()}}applyingFilters=c(!1);activeDashboardFilters=c(null);activeResolvedFilters=c(null);currentTimeRange=c(null);applySummary=c(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 r=o.value;r!=null&&(typeof r=="string"&&r.trim()===""||(t[o.id]=r))}}return Object.keys(t).length>0?t:null}async applyInitialFilters(e){let t=this.dashboardState.snapshot.widgets.filter(r=>!this.isFilterWidget(r));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:r,resolvedFilters:h}=await this.openAiService.applyFilters(t,e,n,"draft",i.signal,{timeRange:this.currentTimeRange()??void 0});if(o!==this.applyFiltersSeq)return;this.dashboardState.applyFilterView(r),this.activeDashboardFilters.set(e),this.activeResolvedFilters.set(h),this.applySummary.set(Be(r,this.buildActiveFilters(e)))}catch(r){if(r?.name==="AbortError"||o!==this.applyFiltersSeq)return;let h=r instanceof Error?r.message:"Failed to apply filters.";this.pushSystemMessage("error",`Apply filters failed: ${h}`)}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(r=>!this.isFilterWidget(r));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 r=this.activeDashboardFilters()??{},{widgets:h,resolvedFilters:y}=await this.openAiService.applyFilters(t,r,n,"draft",i.signal,{resolvedFilters:this.activeResolvedFilters()??[],timeRange:e??void 0});if(o!==this.applyFiltersSeq)return;this.dashboardState.applyFilterView(h),this.activeResolvedFilters.set(y),this.applySummary.set(Be(h,this.buildActiveFilters(r)))}catch(r){if(r?.name==="AbortError"||o!==this.applyFiltersSeq)return;let h=r instanceof Error?r.message:"Failed to apply time range.";this.pushSystemMessage("error",`Apply time range failed: ${h}`)}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 r=await this.openAiService.filterSuggest(t,"",n,"draft");this.applyFilterSuggestions(i,o,r)}catch(r){console.warn("[sug] editor filterSuggest failed",r)}})()}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(h=>h.variant==="prompt"||h.variant==="expression"||h.variant==="hybrid")??i.controls?.find(h=>h.id);if(!o?.id)continue;this.primedFilterWidgets.add(n.id);let r=o.id;(async()=>{try{let h=await this.openAiService.filterSuggest(e,"",t,"draft");this.applyFilterSuggestions(n.id,r,h)}catch(h){this.primedFilterWidgets.delete(n.id),console.warn("Filter suggest prime failed:",h)}})()}}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 bn(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(r=>!this.isFilterWidget(r));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:r,resolvedFilters:h}=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(r),this.activeDashboardFilters.set(e.filters),this.activeResolvedFilters.set(h),this.applySummary.set(Be(r,this.buildActiveFilters(e.filters)))}catch(r){if(r?.name==="AbortError"||o!==this.applyFiltersSeq)return;let h=r instanceof Error?r.message:"Failed to apply filters.";this.pushSystemMessage("error",`Apply filters failed: ${h}`)}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(r=>r.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(v({},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(v({},o.config??{}),{summary:gn(`**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(),Le()}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=G({type:a,selectors:[["db-dashboard-editor"]],viewQuery:function(t,n){if(t&1&&ke(Pi,5)(Mi,5,we)(Si,5)(Oi,5)(ki,5)(Ei,5,we),t&2){let i;B(i=U())&&(n.aiExecutiveSummaryEl=i.first),B(i=U())&&(n.pipelineHost=i.first),B(i=U())&&(n.erDiagramRef=i.first),B(i=U())&&(n.osViewerRef=i.first),B(i=U())&&(n.sliderGridRef=i.first),B(i=U())&&(n.reportHost=i.first)}},hostBindings:function(t,n){t&1&&f("keydown",function(o){return n.onLayoutUndoRedoKeydown(o)},ut)},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:[St([on(),Ve(()=>{let e=m(H),t=m(N);return He(()=>`${t.baseUrl}/api/customers/${e.tenantId()??""}/products/${t.getProductId()}/workforce`)})])],decls:42,vars:53,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","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"],["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","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"]],template:function(t,n){if(t&1){let i=O();s(0,"div",7)(1,"div",8),b(2,Wi,3,0,"div",9),b(3,Ri,9,0,"div",10),b(4,qi,9,1,"div",11),b(5,Ui,9,3,"div",12),b(6,ra,8,2,"div",13),b(7,sa,6,0,"span",14),b(8,la,3,14,"div",15),s(9,"div",16)(10,"div",17)(11,"nile-tooltip",18)(12,"nile-button",19),f("click",function(){return n.exitDashboard.emit()}),p(13,"nile-glyph",20),d()(),b(14,ca,7,4,"div",21)(15,ma,4,2,"div",22),d(),b(16,xa,10,1,"div",23),s(17,"div",24)(18,"div",25)(19,"shared-dashboard-grid",26,0),f("forecast",function(r){return n.onForecast(r)})("remove",function(r){return n.onSliderRemoveWidget(r)})("editWidget",function(r){return n.onSliderEditWidget(r)})("updateLayout",function(r){return n.onSliderUpdateLayout(r)})("tweakWidget",function(r){return n.onSliderTweakWidget(r)})("dslWidgetUpdated",function(r){return n.onSliderDslWidgetUpdated(r)})("widgetChartTypeChanged",function(r){return n.onSliderWidgetChartTypeChanged(r)})("widgetFiltersChanged",function(r){return n.onSliderWidgetFiltersChanged(r)})("widgetColorChanged",function(r){return n.onSliderWidgetColorChanged(r)})("filterSubmit",function(r){return n.onSliderFilterSubmit(r)})("filterChange",function(r){return n.onSliderFilterChange(r)})("setAlert",function(r){return n.onSetAlert(r)})("widgetClick",function(r){return n.onSliderWidgetClicked(r)})("timeRangeApply",function(r){return n.onTimeRangeApply(r)}),d(),s(21,"app-alert-drawer",27),f("closed",function(){return n.onAlertClosed()})("saved",function(){return n.onAlertClosed()}),d()()()()()(),p(22,"nile-executive-summary",28,1),b(24,Ea,11,3,"div",29),s(25,"nile-dialog",30),f("nile-request-close",function(r){return w(i),r.stopPropagation(),D(n.cancelDeleteDashboard())}),s(26,"p",31),b(27,Ta,4,1)(28,Aa,1,0),d(),s(29,"div",32)(30,"nile-button",33),f("click",function(){return n.cancelDeleteDashboard()}),u(31," Cancel "),d(),s(32,"nile-button",34),f("click",function(){return n.confirmDeleteDashboard()}),u(33),d()()(),s(34,"nile-dialog",35),f("nile-request-close",function(r){return w(i),r.stopPropagation(),D(n.showLayoutPopup.set(!1))}),s(35,"p",31),u(36,"Adding to this dashboard may cause layout change."),d(),s(37,"div",32)(38,"nile-button",33),f("click",function(){return n.showLayoutPopup.set(!1)}),u(39," Cancel "),d(),s(40,"nile-button",34),f("click",function(){return n.confirmAddToDashboard()}),u(41," OK "),d()()()}t&2&&(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(),Pt("dashboard-slider--fullscreen",n.sliderFullscreen()),l(2),C("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),C("open",n.alertDrawerOpen())("widget",n.alertWidget())("dashboardId",n.loadedDashboardId())("source",n.alertSource()),l(3),_(n.widgetDetailPanelOpen()?24:-1),l(),C("open",!!n.pendingDeleteDashboardId()),l(2),_(n.pendingDeleteDashboardName()?27:28),l(3),q("disabled",n.isDeletingDashboard()?"":null),l(2),q("disabled",n.isDeletingDashboard()?"":null),l(),$(" ",n.isDeletingDashboard()?"Deleting\u2026":"Delete"," "),l(),C("open",n.showLayoutPopup()))},dependencies:[ue,$e,kn,_n,fn,mn,un,Ue,ce,Cn,Ce],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}'],data:{animation:[Xe("slideWidth",[Ie(":enter",[Pe({width:"0",overflow:"hidden"}),Ae("300ms ease-in",Pe({width:"*"}))]),Ie(":leave",[Ae("300ms ease-in",Pe({width:"0",overflow:"hidden"}))])])]}})};var Ia=["executiveSummary"],Wa=["canvasArea"],Ra=["nameInput"];function Fa(a,e){if(a&1&&(s(0,"nile-badge"),u(1),Ot(2,"titlecase"),d()),a&2){let t=g();l(),$(" ",t.editingWidget.widgetType==="kpi"||t.editingWidget.config.chart.type==="kpi"?"KPI Card":kt(2,1,t.editingWidget.config.chart.type)+" Chart"," ")}}var Ke=class a{aiPanelRef;executiveSummaryEl;canvasAreaRef;nameInputRef;isExporting=c(!1);showExportDropdown=c(!1);isEditingName=c(!1);isDashboardLoading=c(!1);isRefreshingData=c(!1);tweakingWidgetId=c(null);editingNameValue="";MAX_NAME_LENGTH=50;VALID_NAME_RE=/[a-zA-Z0-9]/;state$;dashboardName=c("");activeSummary=c("");showAddWidgetDialog=!1;showSaveDialog=c(!1);showGlobalWidgetsDialog=!1;editMode=!0;editingWidget=null;connections=c([]);connectionsLoading=c(!1);selectedConnectionId=c("");selectedDatasourceId=c("");connectionDropdownOpen=c(!1);globalWidgets=c([]);globalWidgetsLoading=c(!1);addedGlobalWidgetIds=c(new Set);globalToDashWidgetMap=new Map;isPublishing=c(!1);loadedDashboardId=null;loadedWidgetIds=c(new Set);removedWidgetIds=new Set;isSummaryLoading=c(!1);environment=m(N);dashboardState=m(Ne);globalWidgetService=m(wn);publishRepo=m(L);connectionsService=m(le);openAiService=m(se);dashboardId=k("");nav=m(z);ngZone=m(pt);destroyRef=m(de);dashboardsBus=m(oe);routeProgress=m(qe);connectionsLoadPromise=null;hostEl=m(pe);constructor(){this.watchElementState(),this.destroyRef.onDestroy(Re(()=>this.ngZone.run(()=>this.repaintDashboardPreviews()))),this.state$=this.dashboardState.state$,this.dashboardName.set(this.dashboardState.snapshot.name),this.state$.pipe(X(this.destroyRef)).subscribe(e=>{this.dashboardName.set(e.name)}),this.dashboardState.mutations$.pipe(dt(()=>!!this.loadedDashboardId),lt(0),X(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 r=o.mssqlConnectionId??o.opensearchConnectionId??o.connectionId;return E(v({},o),{connectionName:r&&n.get(r)||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(v({},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(v({},e),{config:E(v({},e.config),{aq:E(v({},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(r=>r.layout?{id:r.id,layout:E(v({},r.layout),{y:r.layout.y+2})}:null).filter(r=>r!==null);i.length>0&&this.dashboardState.updateWidgetLayouts(i);let o={x:0,y:0,w:12,h:2};this.dashboardState.addWidget(E(v({},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?v({},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(r=>r.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=m(ne);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 W(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=v({},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 Mn(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 Sn(t,n):await On(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(v({},i),{config:E(v({},i.config),{aq:E(v({},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)),r=this.dashboardState.snapshot.name?.trim(),h=t&&(!r||r==="Untitled Dashboard")?t:null;h&&this.dashboardState.setDashboardName(h);for(let M of i){let x=M,{id:R}=x,ve=ge(x,["id"]);this.addFilterAtTop(ve)}if(o.length>0)for(let M of o){let I=M,{id:R}=I,ve=ge(I,["id"]);this.dashboardState.addWidget(E(v({},ve),{config:E(v({},ve.config),{aq:E(v({},ve.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{h&&await this.publishRepo.renameDashboard(F,h),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(),Le()}allRemoteDashboards=c([]);repaintDashboardPreviews(){let e=this.hostEl.nativeElement;this.allRemoteDashboards.update(t=>t.map(n=>n.previewWidget?E(v({},n),{firstWidget:ye(n.previewWidget,e)}):n))}notifyDashboardsChanged(){try{window.dispatchEvent(new CustomEvent("dv:dashboards-changed"))}catch{}}aiInitialTool=c(null);openWidgetLibraryInAi(){this.editMode&&this.aiInitialTool.set("widgetLibrary")}aiDashboardsList=P(()=>this.allRemoteDashboards());aiGlobalWidgets=P(()=>this.globalWidgets().map(e=>({id:e.id,title:e.title,widgetType:e.widgetType,config:e.config,drilldownBy:e.drilldownBy})));onAiSwitchDashboard(e){e!==this.loadedDashboardId&&(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(v({},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=c(!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 W(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:ye(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:v({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=G({type:a,selectors:[["db-builder-shell"]],viewQuery:function(t,n){if(t&1&&ke(Se,5)(Ia,5)(Wa,5)(Ra,5),t&2){let i;B(i=U())&&(n.aiPanelRef=i.first),B(i=U())&&(n.executiveSummaryEl=i.first),B(i=U())&&(n.canvasAreaRef=i.first),B(i=U())&&(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&&(s(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(),s(2,"nile-drawer",2),f("nile-request-close",function(){return n.editingWidget=null}),s(3,"div",3)(4,"span",4),u(5,"Widget Settings"),d(),b(6,Fa,3,3,"nile-badge"),d(),s(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()(),s(8,"nile-dialog",6),f("nile-request-close",function(){return n.showSaveDialog.set(!1)}),s(9,"db-publish-dialog",7),f("publish",function(o){return n.publishDashboard(o)})("dismissed",function(){return n.showSaveDialog.set(!1)}),d()()()),t&2&&(l(),C("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(),C("open",!!n.editingWidget),l(4),_(n.editingWidget?6:-1),l(),C("widget",n.editingWidget),l(),C("open",n.showSaveDialog()),l(),C("dashboardName",n.dashboardName())("isPublishing",n.isPublishing()))},dependencies:[ue,$e,Se,Pn,Dn,At],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 Na(a,e){a&1&&p(0,"db-builder-shell",0),a&2&&C("dashboardId",e)}function La(a,e){a&1&&p(0,"db-all-dashboards-page")}var Ze=class a{nav=m(z);static \u0275fac=function(t){return new(t||a)};static \u0275cmp=G({type:a,selectors:[["dvz-manage-dashboards-page"]],decls:2,vars:1,consts:[[3,"dashboardId"]],template:function(t,n){if(t&1&&b(0,Na,1,1,"db-builder-shell",0)(1,La,1,0,"db-all-dashboards-page"),t&2){let i;_((i=n.nav.dashboardId())?0:1,i)}},dependencies:[je,Ke],styles:["[_nghost-%COMP%]{display:block;height:100%;min-height:0}"],changeDetection:0})};function zn(a){return[{provide:ie,useValue:a},N,{provide:Fe,useFactory:()=>a().baseUrl},{provide:vn,useValue:"workforce/dashboards"},z,le,se,Te,Yt(se),Xt(L),tn(L),an(L),sn(L),dn(L),ln(L),cn(L),Ve(()=>{let e=m(H);return He(()=>`${a().baseUrl}/api/customers/${a().customerId??e.tenantId()??""}/products/${a().productId??""}/workforce`)})]}function za(a,e){a&1&&De(0)}function qa(a,e){if(a&1&&te(0,za,1,0,"ng-container",0),a&2){let t=g();C("ngComponentOutlet",t.page)("ngComponentOutletInjector",t.elementInjector)("ngComponentOutletEnvironmentInjector",t.elementInjector)}}var Qe=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=m(pe);instance=Fn();elementInjector=_t(zn(this.instance.config),m(ht),"dvz-manage-dashboards");page=Ze;navigator=this.elementInjector.get(z);dashboardsBus=m(oe);destroyRef=m(de);stopAdopting=null;stopTokenRefresh=null;stopUi=null;themeChanged=ae({alias:"dvz-theme-changed"});themeStore=this.elementInjector.get(Te);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(X(this.destroyRef)).subscribe(e=>this.navigate.emit(e)),this.dashboardsBus.changes$.pipe(X(this.destroyRef)).subscribe(()=>this.dashboardChanged.emit()),this.navigator.listState.pipe(X(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=rt(e))})}async apply(e){let t=e.auth;Ht(e.api.baseUrl),$t(e.api,t);let n=this.instance.set(Nn({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=st(this.host.nativeElement,e.ui),this.themeStore.attach(this.host.nativeElement),this.theme()||this.themeStore.set(e.ui?.theme??"light"),Qt({productId:e.tenant.productId,name:e.tenant.productName}),Bt(()=>this.unauthorized.emit());let i=n;await zt(i),this.stopTokenRefresh??=qt(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=G({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,qa,1,3,"ng-container"),t&2&&_(n.config()?0:-1)},dependencies:[Tt],styles:[`:host{display:block;height:100%;min-height:0}
|
|
2
|
+
`],encapsulation:3,changeDetection:0})};Ft();var $a="dvz-manage-dashboards";function Va(a={}){return Rt(Qe,$a,[mt(),Vt(),It(Wt([Jt]))],a)}Va();export{Ln as a,$a as b,Va 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
|
+
*/
|