@aquera/data-visualizer-sdk 0.0.3 → 0.0.4
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-4PS3OAOS.js +1 -0
- package/chunk-5CTM6JVQ.js +1 -0
- package/chunk-6Q3P5YXE.js +2 -0
- package/chunk-7ROJSOMZ.js +1 -0
- package/chunk-ATIVRRY6.js +2 -0
- package/chunk-AYEY6YSX.js +1 -0
- package/chunk-BTDKTIE6.js +2 -0
- package/chunk-CFURBIBO.js +1 -0
- package/chunk-DPG6F2YZ.js +1 -0
- package/chunk-FZDVALWH.js +1 -0
- package/chunk-GE5TYRBE.js +18 -0
- package/chunk-GJVMDYMJ.js +2 -0
- package/chunk-H2YEWK77.js +1 -0
- package/chunk-HIPUXYQH.js +18 -0
- package/{chunk-S24GYO47.js → chunk-IKSLFT22.js} +606 -606
- package/chunk-MMU63XDX.js +1 -0
- package/chunk-ORMWZQE4.js +1 -0
- package/chunk-QAUTHFGS.js +1 -0
- package/chunk-REQTBAAZ.js +1 -0
- package/chunk-THFIOYOT.js +1 -0
- package/chunk-UBYEJME7.js +1 -0
- package/chunk-VHRN6ITF.js +18 -0
- package/chunk-W25JWAKD.js +1 -0
- package/chunk-XEG2ZCTG.js +1 -0
- package/chunk-XRJ2TFI3.js +1 -0
- package/chunk-Y42W4DYB.js +4 -0
- package/chunk-Y6QEYRLY.js +1 -0
- package/chunk-YOMAZ3ZR.js +1 -0
- package/chunk-ZAZ2JO4L.js +1 -0
- package/main.js +1 -1
- package/package.json +1 -1
- package/chunk-2RUFAZZ3.js +0 -2
- package/chunk-4L6PYIW4.js +0 -1
- package/chunk-O74A6HHW.js +0 -18
- package/chunk-V7RVJSD2.js +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{$ as At,A as _t,Aa as He,C as yt,D as Ct,E as vt,F as xt,Fa as A,G as wt,H as Pt,Ha as Le,I as Mt,Ia as qt,J as Dt,K as kt,L as St,La as Wt,M as De,Ma as Ht,N as ke,Na as Lt,Oa as Fe,P as Se,Ra as $e,Sa as $t,X as Te,Y as Tt,_ as Ot,a as Ue,aa as N,b as je,ba as Ft,c as st,d as Pe,da as Et,ea as It,f as Me,g as $,h as J,i as lt,j as dt,k as ct,l as gt,ma as Rt,n as pt,na as Nt,o as ht,p as re,q as mt,r as ut,sa as Oe,ta as _e,ua as zt,va as Ae,w as ft,wa as Vt,x as ce,y as bt,ya as pe,z as ge}from"./chunk-IKSLFT22.js";import{$b as le,Ab as D,Bb as rt,Eb as _,Ga as et,Gb as d,Ha as tt,Jb as se,Kb as Y,La as c,Lb as K,N as j,Ob as q,Pb as ot,Qb as ne,R as Ye,S as w,Sb as P,Tb as L,Ub as We,X as f,Xa as xe,Y as b,Z as Ke,_ as Qe,ab as W,ac as ie,ba as Je,bc as de,d as Ze,da as me,ea as ve,fb as G,fc as fe,ha as Xe,ia as u,jc as T,kb as nt,la as ee,lb as te,mb as y,mc as be,nb as C,nc as Q,ob as Z,p as F,pa as oe,pb as it,pc as at,qb as I,rb as R,sb as v,tb as s,ub as l,vb as h,wb as ae,xb as we,yb as ue,zb as H}from"./chunk-F6ZDDRJ7.js";import{a as x,b as E}from"./chunk-ZW5NV4UO.js";function Kt(){return{dashboardsTitle:"Dashboards",loadingDashboards:"Loading dashboards\u2026",noDashboardsTitle:"No dashboards yet",noDashboardsSub:"Generate one from your data, or create it in the builder.",generateDashboardButton:"Generate dashboard",refreshButton:"Refresh",exportButton:"Export",editButton:"Edit",renamePlaceholder:"Dashboard name",askAqueraButton:"Ask Aquera",errors:{loadFailedFallback:"Could not load dashboards",saveFailedFallback:"Could not save the dashboard",refreshFailedFallback:"Could not refresh the dashboard",exportFailedFallback:"Could not export the dashboard"}}}function Qt(){return{mcpGateway:ce.MCP_GATEWAY_ENABLED??!1,aiPrompt:!0,autoGenerate:!0,export:!0,rename:!0,refresh:!0,executiveSummary:!0,edit:!0}}function Gt(){return{baseUrl:ce.baseUrl??"",mcpUrl:ce.MCP_URL??null,tokenizedOrigins:[ce.baseUrl].filter(r=>!!r),headers:{},customerId:null,productId:null,productName:null,authMode:"inherit",authToken:null,getToken:null,resolvedToken:null,onUnauthorized:null,ssoEnabled:ce.SSO_ENABLED??!1,features:Qt(),ui:{theme:"light",density:"comfortable",header:!0,locale:"en"},copy:Kt(),hrefs:{askAquera:"/ask-aquera",builder:"/manage-dashboards"},initialDashboardId:null}}var Bt=ht("dashboards",Gt);function k(){return Bt.read()}function Ut(r){let t=Gt(),e=E(x(x({},t),re(r)),{features:x(x({},t.features),re(r.features??{})),ui:x(x({},t.ui),re(r.ui??{})),hrefs:x(x({},t.hrefs),re(r.hrefs??{})),copy:E(x(x({},t.copy),re(r.copy??{})),{errors:x(x({},t.copy.errors),re(r.copy?.errors??{}))}),headers:x(x({},t.headers),r.headers??{})});return r.tokenizedOrigins||(e.tokenizedOrigins=[e.baseUrl,e.mcpUrl].filter(n=>!!n)),Bt.write(e)}var B=class r{requests$=new Ze;requests=this.requests$.asObservable();toAskAquera(){this.requests$.next({to:k().hrefs.askAquera})}toAskAqueraDashboard(t,e){this.requests$.next({to:`${k().hrefs.askAquera}/dashboard/${t}`,queryParams:e})}toBuilder(t){this.requests$.next({to:`${k().hrefs.builder}/${t}`})}static \u0275fac=function(e){return new(e||r)};static \u0275prov=j({token:r,factory:r.\u0275fac})};var S={get baseUrl(){return k().baseUrl},get MCP_URL(){return k().mcpUrl??""},get MCP_GATEWAY_ENABLED(){return k().features.mcpGateway},get SSO_ENABLED(){return k().ssoEnabled}};function jt(){return k().customerId??""}function O(){return k().productId??""}var he=class r{constructor(t){this.http=t}http;tokenStore=w(ge);publishRepo=w(A);lastSentCustomerId=null;lastSentProductId=null;get customerId(){return this.tokenStore.tenantId()??""}mcpGatewayUrl(){return`${S.baseUrl}/dviz-mcp`}async callMcpTool(t,e={}){let n=this.customerId,i=O(),o={};n!==this.lastSentCustomerId&&(o.customerId=n),i!==this.lastSentProductId&&(o.productId=i);let a;try{a=await F(this.http.post(this.mcpGatewayUrl(),{jsonrpc:"2.0",id:Date.now(),method:"tools/call",params:{name:t,arguments:e}},{headers:{Accept:"application/json, text/event-stream"},params:o})),this.lastSentCustomerId=n,this.lastSentProductId=i}catch(p){throw p instanceof $?new Error(p.error?.error?.message||p.error?.message||p.message):p}if(a.error)throw new Error(a.error.message);let g=a.result;if(g?.isError)throw new Error(g.structuredContent?.error?.message??g.content?.[0]?.text??`${t} failed`);return g?.structuredContent??{}}async loadDashboards(){return(await this.publishRepo.listDashboards({published:"true",limit:100})).filter(e=>e.isPublished===!0||e.version==="published").map(e=>({id:e.id,name:e.name??"Untitled",description:e.description,createdAt:e.createdAt??new Date().toISOString(),updatedAt:e.updatedAt,isAutoGenerated:e.isAutoGenerated===!0,category:e.category??null}))}async renameDashboard(t,e){if(!S.MCP_GATEWAY_ENABLED){try{await F(this.http.put(`${S.baseUrl}/api/customers/${this.customerId}/products/${O()}/workforce/dashboards/${t}?published=true`,{name:e}))}catch(n){throw n instanceof $?new Error(n.error?.error||n.message):n}return}await this.callMcpTool("updateDashboard",{dashboardId:t,name:e,published:!0})}async fetchDashboard(t){let e,n=!1;if(S.MCP_GATEWAY_ENABLED){let i=await this.callMcpTool("getDashboard",{dashboardId:t,published:"true"});e=i?.dashboard??{},n=i?.canRefresh===!0}else{let i=await F(this.http.get(`${S.baseUrl}/api/customers/${this.customerId}/products/${O()}/workforce/dashboards/${t}?published=true`));e=i?.data??i,n=i?.canRefresh===!0}return{id:e.id,name:e.name??"Untitled",widgets:await this.mapAndHydrateWidgets(e.widgets),connectionId:e.connectionId,isPipeline:e.isPipeline,adapterType:e.adapterType,category:e.category??null,canRefresh:n}}async refreshDashboard(t){if(!S.MCP_GATEWAY_ENABLED){let n=await F(this.http.post(`${S.baseUrl}/api/customers/${this.customerId}/products/${O()}/workforce/dashboards/${t}/refresh`,{})),i=n?.data??n;return{widgets:await this.mapAndHydrateWidgets(i?.widgets)}}let e=await this.callMcpTool("refreshDashboard",{dashboardId:t});return{widgets:await this.mapAndHydrateWidgets(e?.refresh?.widgets)}}async previewWidgetTemplateDetailPanel(t){return(await F(this.http.post(`${S.baseUrl}/api/customers/${this.customerId}/products/${O()}/workforce/widget-templates/${t}/detail-panel`,{}))).data}async previewWidgetDetailPanelDefinition(t){return(await F(this.http.post(`${S.baseUrl}/api/customers/${this.customerId}/products/${O()}/workforce/widget-templates/preview-detail-panel`,{detailPanel:t}))).data}async mapAndHydrateWidgets(t){let e=(t??[]).map(n=>({id:n.id,title:n.title,type:n.widgetType??"chart",layout:n.layout??{x:0,y:0,w:12,h:4},nileConfig:{chart:n.chart??n.config?.chart??{},aq:n.config?.aq??{},_meta:n.config?._meta},drilldownBy:Array.isArray(n.drilldownBy)?n.drilldownBy:void 0,dataSourceId:n.dataSourceId,queryMeta:n.queryMeta,category:n.category??null}));return await Promise.all(e.map(n=>_e(n.nileConfig))),e}static \u0275fac=function(e){return new(e||r)(Ye(J))};static \u0275prov=j({token:r,factory:r.\u0275fac,providedIn:"root"})};var U=class r{http=w(J);tokenStore=w(ge);get customerId(){return this.tokenStore.tenantId()??""}async fetchGridPage(t,e,n,i,o,a,g,p){let m=`${S.baseUrl}/api/customers/${this.customerId}/products/${O()}/workforce/data-grid/${t}?pageIndex=${e}&pageSize=${n}`,M=(i??[]).filter(V=>V&&V.value!=null&&String(V.value).trim()!=="");return M.length&&(m+=`&filters=${encodeURIComponent(JSON.stringify(M))}`),o&&Object.keys(o).length&&(m+=`&dashboardFilters=${encodeURIComponent(JSON.stringify(o))}`),g&&g.length&&(m+=`&resolvedFilters=${encodeURIComponent(JSON.stringify(g))}`),a&&(m+=`&dashboardId=${encodeURIComponent(a)}`),p&&(m+=`&conversationId=${encodeURIComponent(p)}`),F(this.http.get(m))}async generateWidget(t,e){let n=yt()?{prompt:t}:{prompt:t,dataSourceId:e},i;try{i=await F(this.http.post(`${S.baseUrl}/api/customers/${this.customerId}/products/${O()}/workforce/widget/generate`,n))}catch(g){if(g instanceof $){let p=g.error?.error||g.message;throw new Error(p)}throw g}if(i?.success===!1)throw new Error(i.error||"Request failed");let o=i?.data??i;if(!o?.config)throw new Error("Invalid response from widget generate API");let a=o;return await _e(a.config),a}async filterSuggest(t,e,n,i){let o=n.filter(p=>!!p.id).map(p=>({widgetId:p.id})),a;try{a=await F(this.http.post(`${S.baseUrl}/api/customers/${this.customerId}/products/${O()}/workforce/dashboards/${t}/filter/suggest?status=${i??"draft"}`,{query:e,refreshCache:!1,widgets:o}))}catch(p){throw p instanceof $?new Error(p.error?.error||p.message):p}if(a?.success===!1)throw new Error(a.error||"Request failed");let g=a?.data??a??{};return{nextToken:g.nextToken,completions:Array.isArray(g.completions)?g.completions:[],suggestions:Array.isArray(g.suggestions)?g.suggestions:[]}}async applyFilters(t,e,n,i,o,a){let g=await new Promise((qe,Ce)=>{let Be=this.http.post(`${S.baseUrl}/api/customers/${this.customerId}/products/${O()}/workforce/dashboards/${n}/filter/apply?status=${i??"draft"}`,Vt(t,e,a)).subscribe({next:z=>qe(z),error:z=>{z instanceof $?Ce(new Error(z.error?.error||z.message)):Ce(z)}});if(o){if(o.aborted){Be.unsubscribe();let z=new Error("Aborted");z.name="AbortError",Ce(z);return}o.addEventListener("abort",()=>{Be.unsubscribe();let z=new Error("Aborted");z.name="AbortError",Ce(z)},{once:!0})}});if(g?.success===!1)throw new Error(g.error||"Request failed");let p=g?.data??g,m=Array.isArray(p)?p:p?.widgets;if(!Array.isArray(m))throw new Error("Invalid response from apply-filters API");let M=!Array.isArray(p)&&Array.isArray(p?.resolvedFilters)?p.resolvedFilters:[],V=!Array.isArray(p)&&Array.isArray(p?.filterGroups)?p.filterGroups:[];return await Promise.all(m.map(qe=>_e(qe.config))),{widgets:m,resolvedFilters:M,filterGroups:V}}static \u0275fac=function(e){return new(e||r)};static \u0275prov=j({token:r,factory:r.\u0275fac,providedIn:"root"})};var Xt=["grid"];function en(r,t){if(r&1&&P(0),r&2){let e=d(2);We(" ",e.widgetDetailPanelTitle," ")}}function tn(r,t){r&1&&h(0,"nile-skeleton-loader",6)}function nn(r,t){if(r&1&&h(0,"shared-dashboard-grid",8),r&2){let e=d(2);v("widgets",e.widgetDetailPanelWidgets)("widgetsLoading",e.widgetDetailPanelLoading)("editMode",!1)("selectable",!1)("canSetAlert",!1)("canAddToStory",!1)("canForecast",!1)}}function rn(r,t){r&1&&(s(0,"div",9)(1,"div",10),h(2,"nile-skeleton-loader",11)(3,"nile-skeleton-loader",11)(4,"nile-skeleton-loader",11),l(),h(5,"nile-skeleton-loader",12),l())}function on(r,t){if(r&1){let e=D();s(0,"div",2)(1,"div",4)(2,"nile-breadcrumb",5),_("nile-click",function(){f(e);let i=d();return b(i.closeWidgetDetailPanel())}),s(3,"nile-breadcrumb-item"),P(4),l(),s(5,"nile-breadcrumb-item"),y(6,en,1,1)(7,tn,1,0,"nile-skeleton-loader",6),l()()(),s(8,"div",7),y(9,nn,1,7,"shared-dashboard-grid",8)(10,rn,6,0,"div",9),l()()}if(r&2){let e=d();c(4),We(" ",e.dashboardName," "),c(2),C(e.widgetDetailPanelTitle?6:7),c(3),C(e.widgetDetailPanelWidgets.length?9:e.widgetDetailPanelLoading?10:-1)}}var ye=class r{widgets=[];dashboardId=null;applyingFilters=!1;widgetDetailPanelOpen=!1;widgetDetailPanelLoading=!1;widgetDetailPanelTitle=null;widgetDetailPanelWidgets=[];dashboardName=null;widgetDetailPanelSkeletonSlots=[];widgetDetailPanelSkeletonHeight(){return this.widgetDetailPanelSkeletonSlots.length?Math.max(...this.widgetDetailPanelSkeletonSlots.map(t=>(t.y+t.h)*72)):0}async onKpiWidgetClicked(t){if(this.widgetDetailPanelLoading)return;let e=t.config?._meta,n=e?.templateId??null,i=e?.detailPanel??null;if(!(!n&&!i)){this.beginCardMorph(t.id),this.runViewTransition(()=>{this.widgetDetailPanelOpen=!0,this.widgetDetailPanelLoading=!0,this.widgetDetailPanelTitle=i?.title??t.title??null,this.widgetDetailPanelSkeletonSlots=(i?.widgets??[]).map(o=>o.layout).filter(o=>!!o),this.widgetDetailPanelWidgets=this.detailPanelPlaceholders(i),this.cdr.markForCheck()});try{let o=i?await this.dashboardsService.previewWidgetDetailPanelDefinition(i):await this.dashboardsService.previewWidgetTemplateDetailPanel(String(n));if(!o.widgets.length){let g=o.skipped[0]?.reason;N({variant:"error",content:g?`Detail panel widgets failed to build: ${g}`:"This detail panel has no widgets configured."}),this.widgetDetailPanelOpen=!1;return}this.widgetDetailPanelTitle=o.title??t.title??null;let a=o.widgets.map((g,p)=>E(x({},g),{id:`detail-panel-${p}`}));this.widgetDetailPanelWidgets=a.every(g=>g.layout)?a:He(a),o.skipped.length&&N({variant:"error",content:`${o.skipped.length} widget(s) in the detail panel could not be built: ${o.skipped[0]?.reason??""}`})}catch{N({variant:"error",title:"Unable to load widget details",content:"Please try again."}),this.widgetDetailPanelOpen=!1}finally{this.widgetDetailPanelLoading=!1,this.cdr.markForCheck()}}}detailPanelPlaceholders(t){let e=t?.widgets??[];if(!e.length)return[];let n=e.map((i,o)=>E(x({},i),{id:`detail-panel-${o}`}));return n.every(i=>i.layout)?n:He(n)}closeWidgetDetailPanel(){this.runViewTransition(()=>{this.widgetDetailPanelOpen=!1,this.widgetDetailPanelTitle=null,this.widgetDetailPanelWidgets=[],this.widgetDetailPanelSkeletonSlots=[],this.cdr.markForCheck()},"back")}currentTimeRange=null;lastMonitoredTotal=null;isRefreshingData=!1;activeDashboardFilters=null;activeResolvedFilters=null;activeFilterGroups=[];applySummary=null;alertDrawerOpen=!1;alertWidget=null;alertFilterPredicates=null;alertFilterHasOr=!1;alertAuthoringMode="widget";alertSource=null;gridRef;http=w(J);zone=w(ve);navigator=w(B);openAiService=w(U);dashboardsService=w(he);forecastService=w(St);cdr=w(at);appRef=w(nt);hostEl=w(oe);static MORPH_NAME="dv-detail-morph";morphSourceEl=null;beginCardMorph(t){if(!t||typeof CSS>"u"||!CSS.escape)return!1;let e=this.hostEl.nativeElement.querySelector(`.widget-card[data-widget-id="${CSS.escape(String(t))}"]`);if(!e)return!1;let n=e.getBoundingClientRect();return n.height>0&&n.bottom>0&&n.top<window.innerHeight?(e.style.viewTransitionName=r.MORPH_NAME,this.morphSourceEl=e,this.hostEl.nativeElement.classList.add("dv-morphing"),!0):!1}endCardMorph(){this.morphSourceEl&&(this.morphSourceEl.style.removeProperty("view-transition-name"),this.morphSourceEl=null),this.hostEl.nativeElement.classList.remove("dv-morphing")}runViewTransition(t,e="forward"){let n=document,i=window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;if(typeof n.startViewTransition!="function"||i){t(),this.endCardMorph();return}let o=document.documentElement;e==="back"&&(o.dataset.vtDirection="back");let a=()=>{delete o.dataset.vtDirection,this.endCardMorph()};n.startViewTransition(()=>{t(),this.appRef.tick()})?.finished?.then(a,a)??a()}sessionMap=new Map;primedFilterWidgets=new Set;filterSuggestCache=new Map;filterSuggestInflight=new Set;applyFiltersSeq=0;applyFiltersAbort;viewInited=!1;openInBuilder(){!this.dashboardId||!k().features.edit||this.navigator.toBuilder(this.dashboardId)}set config(t){let e=t?.id??null,n=e!==this.dashboardId;if(n&&(this.primedFilterWidgets.clear(),this.filterSuggestCache.clear(),this.filterSuggestInflight.clear(),this.activeDashboardFilters=null,this.activeResolvedFilters=null,this.activeFilterGroups=[],this.applySummary=null,this.currentTimeRange=null,this.lastMonitoredTotal=null),!t){this.widgets=[],this.dashboardId=null,this.alertSource=null,this.dashboardName=null;return}this.dashboardId=e,this.dashboardName=t.name??null,this.alertSource={connectionId:t.connectionId,isPipeline:t.isPipeline,adapterType:t.adapterType},this.widgets=(t.widgets??[]).map(o=>({id:o.id,title:o.title??"",widgetType:o.type??"chart",layout:o.layout,config:o.nileConfig,drilldownBy:o.drilldownBy,dataSourceId:o.dataSourceId,queryMeta:o.queryMeta,category:o.category??null})),this.forecastable=t.forecastable??{};let i=this.collectInitialFilters(this.widgets);i?this.applyInitialFilters(i):n&&t.canRefresh&&this.refreshLoadedDashboardData(e),this.viewInited&&queueMicrotask(()=>this.primeFilterWidgets())}async refreshLoadedDashboardData(t){this.isRefreshingData=!0;try{let{widgets:e}=await this.dashboardsService.refreshDashboard(t);this.dashboardId===t&&!this.activeDashboardFilters&&(this.widgets=e.map(n=>({id:n.id,title:n.title??"",widgetType:n.type??"chart",layout:n.layout,config:n.nileConfig,drilldownBy:n.drilldownBy,dataSourceId:n.dataSourceId,queryMeta:n.queryMeta,category:n.category??null})))}catch(e){console.error("Failed to refresh dashboard data:",e)}finally{this.isRefreshingData=!1,this.cdr.markForCheck()}}collectInitialFilters(t){let e={};for(let n of t){let i=n.config?.chart;if(i?.type==="filter")for(let o of i.controls??[]){if(!o.id)continue;let a=o.value;a!=null&&(typeof a=="string"&&a.trim()===""||(e[o.id]=a))}}return Object.keys(e).length>0?e:null}async applyInitialFilters(t){let e=this.widgets.filter(o=>!pe(o));if(e.length===0||!this.dashboardId)return;this.applyFiltersAbort?.abort();let n=new AbortController;this.applyFiltersAbort=n;let i=++this.applyFiltersSeq;this.applyingFilters=!0;try{let{widgets:o,resolvedFilters:a,filterGroups:g}=await this.openAiService.applyFilters(e,t,this.dashboardId,"published",n.signal,{timeRange:this.currentTimeRange??void 0});if(i!==this.applyFiltersSeq)return;let p=new Map(o.map(m=>[m.id,m]));this.widgets=this.widgets.map(m=>{let M=p.get(m.id);return M?E(x(x({},m),M),{config:M.config??m.config}):m}),this.activeDashboardFilters=t,this.activeResolvedFilters=a,this.activeFilterGroups=g,this.applySummary=Ae(o,this.buildActiveFilters(t))}catch(o){if(o?.name==="AbortError")return;console.error("Apply initial filters failed:",o)}finally{i===this.applyFiltersSeq&&(this.applyingFilters=!1),this.cdr.markForCheck()}}ngAfterViewInit(){this.viewInited=!0,queueMicrotask(()=>this.primeFilterWidgets())}alertTargetWidget(){let t=this.widgets.filter(n=>!pe(n)),e=t.filter(n=>!!n.config?.chart?.gridId);return e.length===1?e[0]:t.find(n=>!!n.queryMeta?.sql)??null}onWidgetPatchedByGrid(t){this.widgets=this.widgets.map(e=>e.id===t.id?t:e),this.cdr.markForCheck()}forecastable={};forecastBusy=new Set;forecastingWidgetId=null;async onForecast(t){let e=this.dashboardId,n=String(t.widget.id);if(!(!e||this.forecastBusy.has(n))){this.forecastBusy.add(n),this.forecastingWidgetId=n,this.cdr.markForCheck();try{let i=t.enable?await this.forecastService.addToWidget(e,n,t.settings??{}):await this.forecastService.removeFromWidget(e,n);if(t.enable&&i?.guardrails&&i.guardrails.passed===!1){N({variant:"info",title:i.guardrails.title||"Not forecastable",content:i.guardrails.body||"This widget can\u2019t be forecast."});return}i?.widget&&this.applyForecastedWidget(i.widget),N({variant:"success",title:t.enable?t.settings?"Forecast updated":"Forecast added":"Forecast removed",content:t.enable?"The projection is shown with its confidence range.":"The chart is back to its measured history."})}catch(i){N({variant:"error",title:t.enable?"Couldn\u2019t add the forecast":"Couldn\u2019t remove the forecast",content:i?.error?.error??"Please try again."})}finally{this.forecastBusy.delete(n),this.forecastingWidgetId=null,this.cdr.markForCheck()}}}applyForecastedWidget(t){this.widgets=this.widgets.map(e=>String(e.id)===String(t.id)?E(x({},e),{config:t.config?.chart??t.nileConfig??e.config,queryMeta:t.queryMeta??e.queryMeta}):e)}onSetAlert(t){if(pe(t)){let e=this.alertTargetWidget();if(!e){N({variant:"error",title:"Cannot set alert",content:"This dashboard has no queryable widget to alert on."});return}this.alertWidget=e,this.alertFilterPredicates=this.activeResolvedFilters,this.alertFilterHasOr=this.activeFilterGroups.length>1,this.alertAuthoringMode="filter"}else this.alertWidget=t,this.alertFilterPredicates=null,this.alertFilterHasOr=!1,this.alertAuthoringMode="widget";this.alertDrawerOpen=!0,this.cdr.markForCheck()}onAlertClosed(){this.alertDrawerOpen=!1,this.cdr.markForCheck()}onAlertSaved(){this.alertDrawerOpen=!1,this.cdr.markForCheck()}onFilterChange(t){let e=t.widgetId,n=t.controlId;!e||!n||this.dashboardId&&this.fetchSuggestionsOnce(e,n,this.dashboardId)}fetchSuggestionsOnce(t,e,n){let i=this.filterSuggestCache.get(t);if(i){this.gridRef?.patchFilterSuggestions(t,e,i);return}this.filterSuggestInflight.has(t)||(this.filterSuggestInflight.add(t),(async()=>{try{let o=await this.openAiService.filterSuggest(n,"",this.widgets,"published");this.applyFilterSuggestions(t,e,o)}catch(o){console.warn("Filter suggest failed:",o)}finally{this.filterSuggestInflight.delete(t)}})())}async onFilterSubmit(t){if(this.isEmptyFilters(t.filters)){await this.reloadDashboard();return}let e=this.widgets.filter(o=>!pe(o));if(e.length===0||!this.dashboardId)return;this.applyFiltersAbort?.abort();let n=new AbortController;this.applyFiltersAbort=n;let i=++this.applyFiltersSeq;this.applyingFilters=!0;try{let{widgets:o,resolvedFilters:a,filterGroups:g}=await this.openAiService.applyFilters(e,t.filters,this.dashboardId,"published",n.signal,{mode:t.mode,prompt:t.prompt,timeRange:this.currentTimeRange??void 0});if(i!==this.applyFiltersSeq)return;let p=new Map(o.map(m=>[m.id,m]));this.widgets=this.widgets.map(m=>{let M=p.get(m.id);return M?E(x(x({},m),M),{config:M.config??m.config}):m}),this.activeDashboardFilters=t.filters,this.lastMonitoredTotal=null,this.activeResolvedFilters=a,this.activeFilterGroups=g,this.applySummary=Ae(o,this.buildActiveFilters(t.filters))}catch(o){if(o?.name==="AbortError")return;console.error("Apply filters failed:",o)}finally{i===this.applyFiltersSeq&&(this.applyingFilters=!1),this.cdr.markForCheck()}}async applyTimeRange(t){this.currentTimeRange=t;let e=this.widgets.filter(o=>!pe(o));if(e.length===0||!this.dashboardId)return;this.applyFiltersAbort?.abort();let n=new AbortController;this.applyFiltersAbort=n;let i=++this.applyFiltersSeq;this.applyingFilters=!0;try{let o=this.activeDashboardFilters??{},{widgets:a,resolvedFilters:g,filterGroups:p}=await this.openAiService.applyFilters(e,o,this.dashboardId,"published",n.signal,{resolvedFilters:this.activeResolvedFilters??[],timeRange:t});if(i!==this.applyFiltersSeq)return;let m=new Map(a.map(M=>[M.id,M]));this.widgets=this.widgets.map(M=>{let V=m.get(M.id);return V?E(x(x({},M),V),{config:V.config??M.config}):M}),this.activeResolvedFilters=g,this.activeFilterGroups=p,this.applySummary=Ae(a,this.buildActiveFilters(o)),this.checkForNewSinceLastCheck(t)}catch(o){if(o?.name==="AbortError")return;console.error("Apply time range failed:",o)}finally{i===this.applyFiltersSeq&&(this.applyingFilters=!1),this.cdr.markForCheck()}}checkForNewSinceLastCheck(t){if(!(Math.abs(Date.now()-new Date(t.to).getTime())<6e4))return;let n=this.kpiTotal(this.widgets);if(n!=null&&this.lastMonitoredTotal!=null&&n>this.lastMonitoredTotal){let i=n-this.lastMonitoredTotal;N({variant:"info",content:`+${i} new since last check`,duration:6e3})}n!=null&&(this.lastMonitoredTotal=n)}kpiTotal(t){let e=0,n=!1;for(let i of t){let o=i.config?.chart;if(o?.type!=="kpi")continue;let a=Number(o.value);Number.isFinite(a)&&(e+=a,n=!0)}return n?e:null}buildActiveFilters(t){return Nt(t,e=>this.filterFieldLabel(e))}filterFieldLabel(t){for(let e of this.filterSuggestCache.values()){let n=e.find(i=>i.type==="attribute"&&i.id===t);if(n)return n.label}return t}isEmptyFilters(t){if(!t)return!0;for(let e of Object.values(t))if(e!=null&&!(typeof e=="string"&&e.trim()==="")&&!(typeof e=="object"&&Object.keys(e).length===0))return!1;return!0}async reloadDashboard(){if(!this.dashboardId)return;this.applyFiltersAbort?.abort();let t=++this.applyFiltersSeq;this.applyingFilters=!0,this.activeDashboardFilters=null,this.lastMonitoredTotal=null,this.activeResolvedFilters=null,this.activeFilterGroups=[],this.applySummary=null;try{let e=await this.dashboardsService.fetchDashboard(this.dashboardId);if(t!==this.applyFiltersSeq)return;this.widgets=(e.widgets??[]).map(n=>({id:n.id,title:n.title??"",widgetType:n.type??"chart",layout:n.layout,config:zt(n.nileConfig),drilldownBy:n.drilldownBy,dataSourceId:n.dataSourceId,queryMeta:n.queryMeta,category:n.category??null}))}catch(e){console.error("Reload dashboard failed:",e)}finally{t===this.applyFiltersSeq&&(this.applyingFilters=!1),this.cdr.markForCheck()}this.currentTimeRange&&t===this.applyFiltersSeq&&await this.applyTimeRange(this.currentTimeRange)}primeFilterWidgets(){if(this.dashboardId)for(let t of this.widgets){if(this.primedFilterWidgets.has(t.id))continue;let e=t.config?.chart;if(e?.type!=="filter")continue;let n=e.controls?.find(i=>i.variant==="prompt"||i.variant==="expression"||i.variant==="hybrid")??e.controls?.find(i=>i.id);n?.id&&(this.primedFilterWidgets.add(t.id),this.fetchSuggestionsOnce(t.id,n.id,this.dashboardId))}}applyFilterSuggestions(t,e,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.filterSuggestCache.set(t,i),this.gridRef?.patchFilterSuggestions(t,e,i))}async onAiSend(t){if(!this.dashboardId)return;let e=this.sessionMap.get(t.widgetId)??t.sessionId;this.sessionMap.set(t.widgetId,e);try{let n=jt(),i=await F(this.http.post(`${S.baseUrl}/api/customers/${n}/products/${O()}/workforce/dashboards/${this.dashboardId}/widgets/${t.widgetId}/chat`,{message:t.message,sessionId:e})),o=i?.reply?.content;o&&(this.sessionMap.set(t.widgetId,i.sessionId??e),this.zone.run(()=>{t.chartEl?.addAiResponse?.(o)}))}catch(n){console.error("Chat request failed:",n),this.zone.run(()=>{t.chartEl?.addAiResponse?.("Sorry, I couldn't process your request. Please try again.")})}}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=W({type:r,selectors:[["app-dashboard-viewer"]],viewQuery:function(e,n){if(e&1&&se(Xt,5),e&2){let i;Y(i=K())&&(n.gridRef=i.first)}},inputs:{config:"config"},features:[le([{provide:wt,useFactory:t=>t.fetchGridPage.bind(t),deps:[U]},{provide:Mt,useFactory:t=>t.fetchFilterValues.bind(t),deps:[A]},Se(A),De(A),ke(A),Te(A)])],decls:4,vars:21,consts:[["grid",""],[3,"forecast","aiSend","openAiBuilder","filterSubmit","filterChange","widgetChartTypeChanged","widgetFiltersChanged","setAlert","widgetClick","widgets","editMode","dashboardId","persistToPublished","widgetsLoading","dashboardFilters","resolvedFilters","applySummary","canSetAlert","canAddToStory","canForecast","forecastable","forecastingWidgetId"],[1,"aq-detail-overlay"],[3,"closed","saved","open","widget","dashboardId","source","filterPredicates","filterHasOr","authoringMode"],[1,"aq-detail-overlay__crumbs"],[3,"nile-click"],["variant","text","width","160","height","16"],[1,"aq-detail-overlay__body"],[3,"widgets","widgetsLoading","editMode","selectable","canSetAlert","canAddToStory","canForecast"],[1,"aq-detail-skeleton"],[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(e,n){e&1&&(s(0,"shared-dashboard-grid",1,0),_("forecast",function(o){return n.onForecast(o)})("aiSend",function(o){return n.onAiSend(o)})("openAiBuilder",function(){return n.openInBuilder()})("filterSubmit",function(o){return n.onFilterSubmit(o)})("filterChange",function(o){return n.onFilterChange(o)})("widgetChartTypeChanged",function(o){return n.onWidgetPatchedByGrid(o)})("widgetFiltersChanged",function(o){return n.onWidgetPatchedByGrid(o)})("setAlert",function(o){return n.onSetAlert(o)})("widgetClick",function(o){return n.onKpiWidgetClicked(o)}),l(),y(2,on,11,3,"div",2),s(3,"app-alert-drawer",3),_("closed",function(){return n.onAlertClosed()})("saved",function(){return n.onAlertSaved()}),l()),e&2&&(v("widgets",n.widgets)("editMode",!1)("dashboardId",n.dashboardId)("persistToPublished",!0)("widgetsLoading",n.applyingFilters||n.isRefreshingData)("dashboardFilters",n.activeDashboardFilters)("resolvedFilters",n.activeResolvedFilters)("applySummary",n.applySummary)("canSetAlert",!0)("canAddToStory",!1)("canForecast",!0)("forecastable",n.forecastable)("forecastingWidgetId",n.forecastingWidgetId),c(2),C(n.widgetDetailPanelOpen?2:-1),c(),v("open",n.alertDrawerOpen)("widget",n.alertWidget)("dashboardId",n.dashboardId)("source",n.alertSource)("filterPredicates",n.alertFilterPredicates)("filterHasOr",n.alertFilterHasOr)("authoringMode",n.alertAuthoringMode))},dependencies:[Me,Oe,Fe],styles:['@charset "UTF-8";[_nghost-%COMP%]{display:block;position:relative;height:100%;view-transition-name:dv-viewer-pane}.aq-detail-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:50;display:flex;flex-direction:column;background:#fff;view-transition-name:dv-detail-morph}.dv-morphing[_nghost-%COMP%]{view-transition-name:none}.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 #eaecf0;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;overflow:auto;padding:20px;background:var(--nile-color-bg-subtle, #fbfbfd)}.aq-detail-skeleton[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:16px}.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}.dv-skel-card[_ngcontent-%COMP%]{height:100%;display:flex;flex-direction:column;box-sizing:border-box;background:var(--ng-colors-bg-primary, #fff);border-radius:var(--ng-radius-xl, 12px);box-shadow:var(--ng-shadow-sm);overflow:hidden}.dv-skel-card__head[_ngcontent-%COMP%]{padding:13px 14px;border-bottom:1px solid #eef1f6;flex-shrink:0}.dv-skel-card__body[_ngcontent-%COMP%]{flex:1;min-height:0;padding:12px 14px}.dv-skel-card__body[_ngcontent-%COMP%] nile-skeleton-loader[_ngcontent-%COMP%], .dv-skel-card__body[_ngcontent-%COMP%] nile-skeleton-loader[_ngcontent-%COMP%]::part(base){height:100%}']})};var Ie=class r{http=w(J);tokenStore=w(ge);get customerId(){return this.tokenStore.tenantId()??""}async chat(t,e,n,i){let o=await new Promise((a,g)=>{let p=this.http.post(`${S.baseUrl}/api/customers/${this.customerId}/products/${O()}/workforce/dashboards/${e}/chat`,{message:t,sessionId:n}).subscribe({next:m=>a(m),error:m=>{m instanceof $?g(new Error(m.error?.error||m.message)):g(m)}});if(i){if(i.aborted){p.unsubscribe();let m=new Error("Aborted");m.name="AbortError",g(m);return}i.addEventListener("abort",()=>{p.unsubscribe();let m=new Error("Aborted");m.name="AbortError",g(m)},{once:!0})}});if(!o?.success)throw new Error("Chat request failed");return o}async getSuggestions(t){if(!t)return[];let e;try{e=await F(this.http.get(`${S.baseUrl}/api/customers/${this.customerId}/products/${O()}/workforce/dashboards/${t}/chat/suggestions`))}catch(n){throw n instanceof $?new Error(n.error?.error||n.message):n}if(Array.isArray(e))return e;if(e.success===!1)throw new Error("Suggestions request failed");return e.suggestions??e.data??[]}static \u0275fac=function(e){return new(e||r)};static \u0275prov=j({token:r,factory:r.\u0275fac,providedIn:"root"})};var sn=["sliderGrid"],ln=r=>({"recommend-window":r}),dn=()=>({variant:"welcome"}),cn=()=>[1,2,3,4],gn=r=>({"mic-listening":r}),pn=r=>({disabled:r}),Zt=(r,t)=>t.title;function hn(r,t){r&1&&H(0)}function mn(r,t){r&1&&(s(0,"div",18),h(1,"nile-skeleton-loader",19),l())}function un(r,t){r&1&&(s(0,"div",17),I(1,mn,2,0,"div",18,Z),l()),r&2&&(c(),R(ie(0,cn)))}function fn(r,t){if(r&1){let e=D();s(0,"button",23),_("click",function(){let i=f(e).$implicit,o=d(5);return b(o.runPrompt(i.title))}),s(1,"div",24),h(2,"nile-icon",25),l(),s(3,"span",26),P(4),l()()}if(r&2){let e=t.$implicit;c(4),L(e.title)}}function bn(r,t){if(r&1){let e=D();s(0,"div",17),I(1,fn,5,1,"button",20,Zt),l(),s(3,"button",21),_("click",function(){f(e);let i=d(4);return b(i.openPromptGallery())}),h(4,"nile-glyph",22),s(5,"span"),P(6,"View prompt gallery"),l()()}if(r&2){let e=d(4);c(),R(e.topRecommended())}}function _n(r,t){if(r&1&&(s(0,"div",9)(1,"div",12),h(2,"nile-icon",13),l(),s(3,"h2",14),P(4,"What would you like to ask?"),l(),s(5,"p",15),P(6,"Ask anything about your dashboard."),l(),G(7,hn,1,0,"ng-container",16),y(8,un,3,1,"div",17)(9,bn,7,0),l()),r&2){let e=d(3),n=q(3);c(7),v("ngTemplateOutlet",n)("ngTemplateOutletContext",ie(3,dn)),c(),C(e.loadingSuggestions()?8:e.recommended().length>0?9:-1)}}function yn(r,t){r&1&&(s(0,"div",10),h(1,"nile-icon",27),s(2,"div",28),P(3,"Generating your answer..."),l()()),r&2&&(c(),v("name","loader")("size","20"))}function Cn(r,t){if(r&1&&(s(0,"div",29)(1,"div",30)(2,"span"),P(3),l()()()),r&2){let e=d().$implicit;c(3),L(e.content)}}function vn(r,t){if(r&1&&(s(0,"div")(1,"div",31),h(2,"nile-glyph",32),l(),s(3,"div",33),h(4,"div",34),l()()),r&2){let e=d().$implicit;c(4),v("innerHTML",e.content,tt)}}function xn(r,t){if(r&1&&(y(0,Cn,4,1,"div",29),y(1,vn,5,1,"div")),r&2){let e=t.$implicit;C(e.role==="user"?0:-1),c(),C(e.role==="assistant"?1:-1)}}function wn(r,t){r&1&&H(0)}function Pn(r,t){if(r&1&&G(0,wn,1,0,"ng-container",35),r&2){d(3);let e=q(3);v("ngTemplateOutlet",e)}}function Mn(r,t){if(r&1){let e=D();s(0,"button",23),_("click",function(){let i=f(e).$implicit,o=d(4);return b(o.onGalleryPromptClick(i.title))}),s(1,"div",24),h(2,"nile-icon",25),l(),s(3,"span",26),P(4),l()()}if(r&2){let e=t.$implicit;c(4),L(e.title)}}function Dn(r,t){if(r&1){let e=D();s(0,"div",11)(1,"div",36)(2,"span",37),P(3,"Prompt gallery"),l(),s(4,"button",38),_("click",function(){f(e);let i=d(3);return b(i.closePromptGallery())}),h(5,"nile-glyph",39),l()(),s(6,"div",40)(7,"p",41),P(8,"Pick a suggestion to get started."),l(),s(9,"div",42),I(10,Mn,5,1,"button",20,Zt),l()()()}if(r&2){let e=d(3);c(10),R(e.recommended())}}function kn(r,t){if(r&1){let e=D();s(0,"div",6)(1,"nile-glyph",7),_("click",function(){f(e);let i=d(2);return b(i.closePanel.emit())}),l()(),s(2,"div",8),y(3,_n,10,4,"div",9),y(4,yn,4,2,"div",10),I(5,xn,2,2,null,null,Z),l(),y(7,Pn,1,1,"ng-container"),y(8,Dn,12,0,"div",11)}if(r&2){let e,n,i,o,a=d(2);c(2),v("ngClass",de(5,ln,!(!((e=a.chatsDetails())==null||e.message==null)&&e.message.length))),c(),C(!((n=a.chatsDetails())==null||n.message==null)&&n.message.length?-1:3),c(),C(a.isGenerating()?4:-1),c(),R((i=a.chatsDetails())==null?null:i.message),c(2),C(!((o=a.chatsDetails())==null||o.message==null)&&o.message.length?7:-1),c(),C(a.showPromptGallery()?8:-1)}}function Sn(r,t){if(r&1){let e=D();s(0,"div",43),_("pointerdown",function(i){f(e);let o=d(2);return b(o.onResizeStart(i))})("pointermove",function(i){f(e);let o=d(2);return b(o.onResizeMove(i))})("pointerup",function(i){f(e);let o=d(2);return b(o.onResizeEnd(i))})("pointercancel",function(i){f(e);let o=d(2);return b(o.onResizeEnd(i))}),l(),s(1,"div",44)(2,"div",45)(3,"shared-dashboard-grid",46,1),_("filterSubmit",function(i){f(e);let o=d(2);return b(o.onSliderFilterSubmit(i))})("filterChange",function(i){f(e);let o=d(2);return b(o.onSliderFilterChange(i))})("widgetChartTypeChanged",function(i){f(e);let o=d(2);return b(o.onSliderWidgetPatched(i))})("widgetFiltersChanged",function(i){f(e);let o=d(2);return b(o.onSliderWidgetPatched(i))})("setAlert",function(i){f(e);let o=d(2);return b(o.onSetAlert(i))}),l(),s(5,"app-alert-drawer",47),_("closed",function(){f(e);let i=d(2);return b(i.onAlertClosed())})("saved",function(){f(e);let i=d(2);return b(i.onAlertClosed())}),l()()()}if(r&2){let e=d(2);c(3),v("widgets",e.sliderWidgets())("editMode",!1)("outerMargin",!1)("dashboardId",e.dashboardId())("persistToPublished",!0)("canSetAlert",!0)("canAddToStory",!1),c(2),v("open",e.alertDrawerOpen())("widget",e.alertWidget())("dashboardId",e.dashboardId())("source",e.alertSource())}}function Tn(r,t){if(r&1&&(s(0,"div",4)(1,"div",5),y(2,kn,9,7),l(),y(3,Sn,6,11),l()),r&2){let e=d();ne("chat-layout--resizing",e.isResizing()),c(),ot("flex",e.chatColumnWidthPct()!==null?"0 0 "+e.chatColumnWidthPct()+"%":null),ne("chat-column--split",!!e.dashboardConfig()&&!e.chatOnly()),c(),C(e.loadingChat()?-1:2),c(),C(e.dashboardConfig()&&!e.chatOnly()?3:-1)}}function On(r,t){if(r&1){let e=D();s(0,"div",48)(1,"label",49)(2,"input",50),_("input",function(i){f(e);let o=d();return b(o.queryString.set(i.target.value))})("keyup.enter",function(){f(e);let i=d();return b(i.postMessage())}),l(),s(3,"div",51)(4,"div",52)(5,"nile-glyph",53),_("click",function(){f(e);let i=d();return b(i.toggleMic())}),l(),s(6,"nile-glyph",54),_("click",function(){f(e);let i=d();return b(i.isGenerating()?i.cancelGenerate():i.postMessage())}),l()()()()()}if(r&2){let e=t.variant,n=d();ne("input-query-container--welcome",e==="welcome"),c(2),v("value",n.queryString()),c(3),v("name",n.isMicListening()?"ng-mic":"ng-mic-off")("ngClass",de(8,gn,n.isMicListening())),c(),v("name",n.isGenerating()?"ng-circle-stop":"ng-send")("size",n.isGenerating()?"18":"16")("ngClass",de(10,pn,!n.isGenerating()&&!n.queryString()))}}var Re=class r{constructor(t,e,n){this.chatService=t;this.openAiService=e;this.sanitizer=n;ee(()=>{let o=this.dashboardId();o&&this.loadSuggestions(o)});let i=null;ee(()=>{let o=this.dashboardConfig(),a=o?.id??null;a!==i&&(this.primedFilterWidgets.clear(),i=a);let g=(o?.widgets??[]).map(p=>({id:p.id,title:p.title??"",widgetType:p.type??"chart",layout:p.layout,config:p.nileConfig,drilldownBy:p.drilldownBy,queryMeta:p.queryMeta,dataSourceId:p.dataSourceId}));this.sliderWidgets.set(g),queueMicrotask(()=>this.primeFilterWidgets())})}chatService;openAiService;sanitizer;closePanel=new me;dashboardId=Q("");dashboardName=Q("");dashboardConfig=Q(null);chatOnly=Q(!1);initialPrompt=Q("");allChats=u([]);chatsDetails=u(null);isGenerating=u(!1);queryString=u("");searchTerm=u("");selectedChatContextId=u("");loadingChat=u(!1);loadingAllChat=u(!1);isDeleting=u(!1);isMicListening=u(!1);recognition=null;micBaseText="";silenceTimer=null;micSilenceMs=5e3;recommended=u([]);topRecommended=T(()=>this.recommended().slice(0,4));loadingSuggestions=u(!1);showPromptGallery=u(!1);chatColumnWidthPct=u(null);isResizing=u(!1);resizeRect=null;resizePointerId=null;resizeRafPending=!1;sliderWidgets=u([]);alertDrawerOpen=u(!1);alertWidget=u(null);onSetAlert(t){this.alertWidget.set(t),this.alertDrawerOpen.set(!0)}onSliderWidgetPatched(t){this.sliderWidgets.update(e=>e.map(n=>n.id===t.id?t:n))}onAlertClosed(){this.alertDrawerOpen.set(!1)}alertSource=T(()=>{let t=this.dashboardConfig();return t?{connectionId:t.connectionId,isPipeline:t.isPipeline,adapterType:t.adapterType}:null});sliderGridRef;applyingFilters=u(!1);filterSuggestTimers=new Map;filterSuggestSeq=new Map;primedFilterWidgets=new Set;applyFiltersSeq=0;applyFiltersAbort;generateAbort;formattedChats=T(()=>this.buildFormattedChats(this.allChats()));filteredFormattedChats=T(()=>{let t=this.formattedChats(),e=this.searchTerm().toLowerCase().trim();if(!e)return t;let n=i=>i.filter(o=>o.displayName.toLowerCase().includes(e));return{today:n(t.today),yesterday:n(t.yesterday),older:n(t.older)}});ngOnInit(){this.createNewChat();let t=this.initialPrompt();t&&(this.queryString.set(t),this.postMessage())}async loadSuggestions(t){this.loadingSuggestions.set(!0);try{let e=await this.chatService.getSuggestions(t);this.recommended.set(e.map(n=>({title:n})))}catch(e){console.error("Failed to load chat suggestions:",e),this.recommended.set([])}finally{this.loadingSuggestions.set(!1)}}runPrompt(t){this.queryString.set(t),this.postMessage()}openPromptGallery(){this.showPromptGallery.set(!0)}closePromptGallery(){this.showPromptGallery.set(!1)}onGalleryPromptClick(t){this.closePromptGallery(),this.runPrompt(t)}isFilterWidget(t){return t?.config?.chart?.type==="filter"}onSliderFilterChange(t){let e=t.widgetId,n=t.controlId;if(!e||!n)return;let i=this.dashboardId();if(!i)return;let o=this.filterSuggestTimers.get(e);o&&clearTimeout(o);let a=(t.query??"").trim();if(!a)return;let g=(this.filterSuggestSeq.get(e)??0)+1;this.filterSuggestSeq.set(e,g);let p=setTimeout(async()=>{try{let m=this.sliderWidgets(),M=await this.openAiService.filterSuggest(i,a,m,"published");if(this.filterSuggestSeq.get(e)!==g)return;this.applyFilterSuggestions(e,n,M)}catch(m){console.warn("Filter suggest failed:",m)}},400);this.filterSuggestTimers.set(e,p)}async onSliderFilterSubmit(t){let e=this.sliderWidgets(),n=e.filter(a=>!this.isFilterWidget(a));if(n.length===0)return;this.applyFiltersAbort?.abort();let i=new AbortController;this.applyFiltersAbort=i;let o=++this.applyFiltersSeq;this.applyingFilters.set(!0);try{let{widgets:a}=await this.openAiService.applyFilters(n,t.filters,this.dashboardId(),"published",i.signal,{mode:t.mode,prompt:t.prompt});if(o!==this.applyFiltersSeq)return;let g=new Map(a.map(p=>[p.id,p]));this.sliderWidgets.set(e.map(p=>{let m=g.get(p.id);return m?E(x(x({},p),m),{config:m.config??p.config}):p}))}catch(a){if(a?.name==="AbortError"||o!==this.applyFiltersSeq)return;let g=a instanceof Error?a.message:"Failed to apply filters.";this.pushSystemMessage("error",`Apply filters failed: ${g}`)}finally{o===this.applyFiltersSeq&&this.applyingFilters.set(!1)}}primeFilterWidgets(){let t=this.dashboardId();if(!t)return;let e=this.sliderWidgets();for(let n of e){if(this.primedFilterWidgets.has(n.id))continue;let i=n.config?.chart;if(i?.type!=="filter")continue;let o=i.controls?.find(g=>g.variant==="expression"||g.variant==="hybrid");if(!o?.id)continue;this.primedFilterWidgets.add(n.id);let a=o.id;(async()=>{try{let g=await this.openAiService.filterSuggest(t,"",e,"published");this.applyFilterSuggestions(n.id,a,g)}catch(g){this.primedFilterWidgets.delete(n.id),console.warn("Filter suggest prime failed:",g)}})()}}applyFilterSuggestions(t,e,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.sliderGridRef?.patchFilterSuggestions(t,e,i)}onResizeStart(t){t.preventDefault();let e=t.currentTarget,n=e.parentElement;n&&(this.resizeRect=n.getBoundingClientRect(),e.setPointerCapture(t.pointerId),this.resizePointerId=t.pointerId,this.isResizing.set(!0))}onResizeMove(t){if(!this.isResizing()||!this.resizeRect)return;let n=(t.clientX-this.resizeRect.left)/this.resizeRect.width*100,i=Math.min(75,Math.max(20,n));this.chatColumnWidthPct.set(i),this.scheduleGridReflow()}onResizeEnd(t){let e=t.currentTarget;this.resizePointerId!==null&&e.hasPointerCapture?.(this.resizePointerId)&&e.releasePointerCapture(this.resizePointerId),this.isResizing.set(!1),this.resizeRect=null,this.resizePointerId=null,this.scheduleGridReflow()}scheduleGridReflow(){this.resizeRafPending||(this.resizeRafPending=!0,requestAnimationFrame(()=>{this.resizeRafPending=!1,window.dispatchEvent(new Event("resize"))}))}createNewChat(){let t={id:crypto.randomUUID(),displayName:"New Chat",createdOn:new Date().toISOString(),sessionId:crypto.randomUUID(),message:[]};this.allChats.update(e=>[t,...e]),this.getChatDetails(t.id)}getChatDetails(t){this.selectedChatContextId.set(t);let e=this.allChats().find(n=>n.id===t);e&&this.chatsDetails.set(e),this.loadingChat.set(!1)}deleteChat(t){if(this.isDeleting.set(!0),this.allChats.update(e=>e.filter(n=>n.id!==t)),this.isDeleting.set(!1),this.chatsDetails()?.id===t){let e=this.allChats();e.length?this.getChatDetails(e[0].id):this.createNewChat()}}onSearchChat(t){this.searchTerm.set(t)}async postMessage(){let t=this.queryString().trim();if(!t||this.isGenerating())return;this.chatsDetails()||this.createNewChat();let e=this.chatsDetails();e.message.unshift({role:"user",content:t}),e.displayName==="New Chat"&&(e.displayName=t.length>20?t.substring(0,20):t,this.allChats.update(i=>[...i])),this.chatsDetails.set(x({},e)),this.queryString.set(""),this.isGenerating.set(!0);let n=new AbortController;this.generateAbort=n;try{let i=await this.chatService.chat(t,this.dashboardId(),e.sessionId,n.signal);e.sessionId=i.sessionId,e.message.unshift({role:"assistant",content:this.sanitizeHtml(i.reply.content)})}catch(i){if(i instanceof Error&&i.name==="AbortError")e.message=e.message.filter((o,a)=>!(a===0&&o.role==="user"));else{let o=i instanceof Error?i.message:"Failed to get response.";this.pushSystemMessage("error",`Chat failed: ${o}`)}}finally{this.generateAbort===n&&(this.generateAbort=void 0),this.chatsDetails.set(x({},e)),this.isGenerating.set(!1)}}cancelGenerate(){this.generateAbort?.abort()}toggleMic(){this.isMicListening()?(this.clearSilenceTimer(),this.recognition?.stop()):this.startListening()}startListening(){let t=window,e=t.SpeechRecognition??t.webkitSpeechRecognition;e&&(this.micBaseText=this.queryString(),this.recognition=new e,this.recognition.continuous=!0,this.recognition.interimResults=!0,this.recognition.lang="en-US",this.recognition.onresult=n=>{let i="";for(let a=0;a<n.results.length;a++)i+=n.results[a][0].transcript;let o=this.micBaseText&&!this.micBaseText.endsWith(" ")?" ":"";this.queryString.set(this.micBaseText+o+i),this.resetSilenceTimer()},this.recognition.onend=()=>{this.clearSilenceTimer(),this.isMicListening.set(!1),this.recognition=null},this.recognition.start(),this.isMicListening.set(!0),this.resetSilenceTimer())}resetSilenceTimer(){this.clearSilenceTimer(),this.silenceTimer=setTimeout(()=>{this.silenceTimer=null,this.recognition?.stop(),this.queryString().trim()&&this.postMessage()},this.micSilenceMs)}clearSilenceTimer(){this.silenceTimer!==null&&(clearTimeout(this.silenceTimer),this.silenceTimer=null)}pushSystemMessage(t,e){let n=this.chatsDetails();if(!n){this.showToast(t==="error"?"error":"success",t==="error"?"Notice":"Done",e);return}let i=String(e).trim().replace(/[.!?]+$/,"").replace(/[<>&]/g,a=>a==="<"?"<":a===">"?">":"&"),o=t==="error"?`ERROR: ${i}!`:i;n.message.unshift({role:"assistant",content:this.sanitizeHtml(`<p class="chat-system chat-system--${t}">${o}</p>`)}),this.chatsDetails.set(x({},n))}showToast(t,e,n){if(t==="error"){Ot(`${e}: ${n}`.replace(/^:\s*/,""));return}let i=document.createElement("nile-toast");i.variant=t,i.title=e,i.content=n,i.duration=5e3,i.closable=!0,i.toast(),At()}sanitizeHtml(t){return this.sanitizer.sanitize(et.HTML,t)??""}buildFormattedChats(t){let e=[...t].sort((i,o)=>new Date(o.createdOn).getTime()-new Date(i.createdOn).getTime()),n={today:[],yesterday:[],older:[]};return e.forEach(i=>{this.isToday(i.createdOn)?n.today.push(i):this.isYesterday(i.createdOn)?n.yesterday.push(i):n.older.push(i)}),n}isToday(t){let e=new Date(t),n=new Date;return e.getDate()===n.getDate()&&e.getMonth()===n.getMonth()&&e.getFullYear()===n.getFullYear()}isYesterday(t){let e=new Date(t),n=new Date;return n.setDate(n.getDate()-1),e.getDate()===n.getDate()&&e.getMonth()===n.getMonth()&&e.getFullYear()===n.getFullYear()}static \u0275fac=function(e){return new(e||r)(xe(Ie),xe(U),xe(ct))};static \u0275cmp=W({type:r,selectors:[["db-ai-prompt-panel"]],viewQuery:function(e,n){if(e&1&&se(sn,5),e&2){let i;Y(i=K())&&(n.sliderGridRef=i.first)}},inputs:{dashboardId:[1,"dashboardId"],dashboardName:[1,"dashboardName"],dashboardConfig:[1,"dashboardConfig"],chatOnly:[1,"chatOnly"],initialPrompt:[1,"initialPrompt"]},outputs:{closePanel:"closePanel"},features:[le([])],decls:4,vars:1,consts:[["promptInput",""],["sliderGrid",""],[1,"qna-panel"],[1,"chat-layout",3,"chat-layout--resizing"],[1,"chat-layout"],[1,"chat-column"],[1,"chat-header"],["name","close","size","16",1,"close-panel-icon",3,"click"],[1,"chat-message-container",3,"ngClass"],[1,"welcome-section"],[1,"generating-loader"],[1,"contained-panel","prompt-gallery-panel"],[1,"ai-badge","ai-badge--md","welcome-icon-wrap"],["color","#2970ff","name","smartcode","size","20"],[1,"welcome-title"],[1,"welcome-subtitle"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"recommended"],[1,"recommended-box","skeleton-box"],[2,"width","100%","height","64px","border-radius","12px"],["type","button",1,"recommended-box"],["type","button",1,"browse-more",3,"click"],["name","ng-lightbulb-05","method","stroke","size","14"],["type","button",1,"recommended-box",3,"click"],[1,"ai-badge","ai-badge--sm","rec-icon-wrap"],["color","#2970ff","name","ng-lightbulb-05","size","16","method","stroke"],[1,"rec-title"],[3,"name","size"],[1,"generating-text"],[1,"user-row"],[1,"user"],[1,"ai-badge","ai-badge--sm","assistant-icon"],["name","ng-stars-02","method","stroke","size","16","color","#2970ff"],[1,"assistant"],[1,"assistant-body",3,"innerHTML"],[4,"ngTemplateOutlet"],[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"],[1,"prompt-gallery-subtitle"],[1,"prompt-gallery"],["role","separator","aria-orientation","vertical","aria-label","Resize chat column",1,"chat-layout__resizer",3,"pointerdown","pointermove","pointerup","pointercancel"],[1,"dashboard-slider"],[1,"dashboard-slider__body"],[3,"filterSubmit","filterChange","widgetChartTypeChanged","widgetFiltersChanged","setAlert","widgets","editMode","outerMargin","dashboardId","persistToPublished","canSetAlert","canAddToStory"],[3,"closed","saved","open","widget","dashboardId","source"],[1,"input-query-container"],[1,"chat-input-pill"],["type","text","placeholder","Enter your query",1,"input-query",3,"input","keyup.enter","value"],[1,"pill-toolbar"],[1,"pill-toolbar__right"],["method","stroke",1,"mic-icon",3,"click","name","ngClass"],["method","stroke",1,"send-icon",3,"click","name","size","ngClass"]],template:function(e,n){e&1&&(s(0,"div",2),y(1,Tn,4,8,"div",3),l(),G(2,On,7,12,"ng-template",null,0,fe)),e&2&&(c(),C(n.loadingAllChat()?-1:1))},dependencies:[Me,st,Pe,Rt,Oe,Fe],styles:['@charset "UTF-8";[_nghost-%COMP%]{display:block;height:100%;min-height:0}.qna-panel[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;background:var(--ng-colors-bg-secondary, #f9fafb);font-family:var(--ng-font-family-body)}.chat-layout[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:row;overflow:hidden;min-height:0;container-type:inline-size}.chat-layout.chat-layout--resizing[_ngcontent-%COMP%]{cursor:col-resize;-webkit-user-select:none;user-select:none}.chat-layout.chat-layout--resizing[_ngcontent-%COMP%] .chat-column[_ngcontent-%COMP%]{transition:none!important}.chat-layout.chat-layout--resizing[_ngcontent-%COMP%] .chat-layout__resizer[_ngcontent-%COMP%]:after{opacity:1}.chat-layout__resizer[_ngcontent-%COMP%]{flex:0 0 1px;align-self:stretch;cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none;position:relative;background:transparent}.chat-layout__resizer[_ngcontent-%COMP%]:before{content:"";position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);width:1px;background:var(--ng-colors-border-secondary, #e9eaeb);transition:background .15s}.chat-layout__resizer[_ngcontent-%COMP%]:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:4px;height:36px;border-radius:999px;background:#2970ff;opacity:0;transition:opacity .15s;pointer-events:none}.chat-layout__resizer[_ngcontent-%COMP%]:hover:before{background:#2970ff;opacity:0;transition:opacity .15s;pointer-events:none}.chat-layout__resizer[_ngcontent-%COMP%]:hover:after{opacity:1}.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, #f9fafb);animation:_ngcontent-%COMP%_slider-in .25s ease-out}.dashboard-slider__header[_ngcontent-%COMP%]{height:56px;padding:0 16px;border-bottom:1px solid var(--ng-colors-border-secondary, #e9eaeb);flex-shrink:0;background:#fff;display:flex;align-items:center;justify-content:space-between;box-sizing:border-box}.dashboard-slider__title[_ngcontent-%COMP%]{font-size:13px;font-weight:600;color:var(--ng-colors-text-primary-900, #181d27)}.dashboard-slider__body[_ngcontent-%COMP%]{flex:1;min-height:0;min-width:0;overflow:auto;padding:8px}.dashboard-slider__body[_ngcontent-%COMP%] > shared-dashboard-grid[_ngcontent-%COMP%]{display:block;min-width:calc(66.6667cqw - 32px)}@keyframes _ngcontent-%COMP%_slider-in{0%{transform:translate(24px);opacity:0}to{transform:translate(0);opacity:1}}.chat-column[_ngcontent-%COMP%]{flex:1 1 auto;display:flex;flex-direction:column;overflow:hidden;min-width:0;position:relative;background:#fff;container-type:inline-size;transition:flex-basis .3s ease,flex .3s ease}.chat-column.chat-column--split[_ngcontent-%COMP%]{flex:0 0 33.333%}.chat-column[_ngcontent-%COMP%] .chat-header[_ngcontent-%COMP%]{padding:16px 16px 8px;flex-shrink:0;background:#fff;display:flex;align-items:center;justify-content:flex-end}.chat-column[_ngcontent-%COMP%] .chat-header[_ngcontent-%COMP%] .close-panel-icon[_ngcontent-%COMP%]{cursor:pointer;color:var(--ng-colors-text-tertiary-600, #535862);transition:color .15s}.chat-column[_ngcontent-%COMP%] .chat-header[_ngcontent-%COMP%] .close-panel-icon[_ngcontent-%COMP%]:hover{color:var(--ng-colors-text-primary-900, #181d27)}.chat-column[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%]{flex:1;overflow:auto;padding:20px 24px;display:flex;flex-direction:column-reverse}.chat-column[_ngcontent-%COMP%] .chat-message-container.recommend-window[_ngcontent-%COMP%]{justify-content:center;align-items:center;padding:32px 40px}.chat-column[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .user-row[_ngcontent-%COMP%]{display:flex;flex-direction:row-reverse;justify-content:flex-start;align-items:flex-start;gap:8px;margin-bottom:20px;margin-top:8px}.chat-column[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .user[_ngcontent-%COMP%]{flex:0 1 auto;min-width:0}.chat-column[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .user[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{background:#eff4ff;color:var(--ng-colors-text-primary-900, #181d27);padding:9px 14px;border-radius:14px 14px 2px;font-size:14px;display:inline-block;max-width:100%;text-align:left}.chat-column[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .user-icon[_ngcontent-%COMP%]{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:#eff4ff;color:#2970ff;display:inline-flex;align-items:center;justify-content:center}.chat-column[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .assistant-icon[_ngcontent-%COMP%]{margin-bottom:6px}.chat-column[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .assistant[_ngcontent-%COMP%]{padding:14px 16px;background:var(--ng-colors-bg-secondary, #f9fafb);border:1px solid var(--ng-colors-border-secondary, #e9eaeb);border-radius:2px 14px 14px;margin-bottom:14px;font-size:14px;line-height:1.65;color:var(--ng-colors-text-primary-900, #181d27)}.chat-column[_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, #f9fafb);border:1px solid var(--ng-colors-border-secondary, #e9eaeb);border-radius:8px;font-size:13px;color:var(--ng-colors-text-tertiary-600, #535862);width:fit-content}.chat-column[_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}.chat-column[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .welcome-section[_ngcontent-%COMP%] .welcome-icon-wrap[_ngcontent-%COMP%]{margin-bottom:4px}.chat-column[_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, #181d27);letter-spacing:-.02em}.chat-column[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .welcome-section[_ngcontent-%COMP%] .welcome-subtitle[_ngcontent-%COMP%]{margin:0 0 8px;font-size:14px;color:var(--ng-colors-text-tertiary-600, #535862);max-width:440px;line-height:1.6}.chat-column[_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, #535862);transition:color .15s}.chat-column[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .browse-more[_ngcontent-%COMP%]:hover{color:#2970ff}.chat-column[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .recommended[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;width:100%}.chat-column[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .recommended[_ngcontent-%COMP%] .recommended-box[_ngcontent-%COMP%]{display:flex;align-items:center;gap:10px;font:inherit;color:inherit;border:1px solid var(--ng-colors-border-secondary, #e9eaeb);border-radius:14px;padding:18px;cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .15s;background:#fff;text-align:left}.chat-column[_ngcontent-%COMP%] .chat-message-container[_ngcontent-%COMP%] .recommended[_ngcontent-%COMP%] .recommended-box[_ngcontent-%COMP%]:hover{border-color:#2970ff;box-shadow:0 6px 24px #2970ff1a;transform:translateY(-2px)}.chat-column[_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, #181d27);text-transform:capitalize;line-height:1.4}.chat-column[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%]{padding:14px 24px 18px;display:flex;justify-content:center;flex-shrink:0;background:#fff}.chat-column[_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:#fff;border:1px solid var(--ng-colors-border-secondary, #e9eaeb);border-radius:24px;box-shadow:0 1px 2px #1018280a,0 8px 24px #1018280f;cursor:text;transition:border-color .15s,box-shadow .15s}.chat-column[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .chat-input-pill[_ngcontent-%COMP%]:focus-within{border-color:#2970ff;box-shadow:0 0 0 3px #2970ff1f}.chat-column[_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;color:var(--ng-colors-text-primary-900, #181d27);text-overflow:ellipsis}.chat-column[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .input-query[_ngcontent-%COMP%]::placeholder{color:var(--ng-colors-text-tertiary-600, #717680);overflow:hidden;text-overflow:ellipsis}.chat-column[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .pill-toolbar[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;gap:8px}.chat-column[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .pill-toolbar__right[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}.chat-column[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .send-icon[_ngcontent-%COMP%]{cursor:pointer;flex-shrink:0;transition:opacity .15s,transform .15s}.chat-column[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .send-icon[_ngcontent-%COMP%]:hover{transform:translate(2px)}.chat-column[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .send-icon.disabled[_ngcontent-%COMP%]{opacity:.2;pointer-events:none}.chat-column[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .mic-icon[_ngcontent-%COMP%]{cursor:pointer;color:var(--ng-colors-text-tertiary-600, #535862);transition:color .15s}.chat-column[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .mic-icon[_ngcontent-%COMP%]:hover{color:#2970ff}.chat-column[_ngcontent-%COMP%] .input-query-container[_ngcontent-%COMP%] .mic-icon.mic-listening[_ngcontent-%COMP%]{color:#e53e3e;animation:_ngcontent-%COMP%_mic-pulse 1.2s ease-in-out infinite}.chat-column[_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)}}.dashboard-slider__body[_ngcontent-%COMP%]{padding:unset}.contained-panel[_ngcontent-%COMP%]{position:absolute;inset:0;display:flex;flex-direction:column;background:#fff;border-left:1px solid var(--ng-colors-border-secondary, #e9eaeb);box-shadow:-8px 0 24px #10182814;z-index:var(--z-floating);animation:_ngcontent-%COMP%_contained-slide .25s ease-out}.contained-panel__header[_ngcontent-%COMP%]{height:56px;padding:0 16px;border-bottom:1px solid var(--ng-colors-border-secondary, #e9eaeb);flex-shrink:0;background:#fff;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, #535862);cursor:pointer;transition:color .15s;flex-shrink:0}.contained-panel__close[_ngcontent-%COMP%]:hover{color:var(--ng-colors-text-primary-900, #181d27)}.contained-panel__title[_ngcontent-%COMP%]{font-size:14px;font-weight:600;color:var(--ng-colors-text-primary-900, #181d27);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contained-panel__body[_ngcontent-%COMP%]{flex:1;min-height:0;overflow:auto;padding:16px 20px 20px}.prompt-gallery-subtitle[_ngcontent-%COMP%]{margin:0 0 24px;font-size:13px;color:var(--ng-colors-text-tertiary-600, #535862)}.prompt-gallery[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr;gap:12px;padding:6px 6px 8px}.prompt-gallery[_ngcontent-%COMP%] .recommended-box[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center;gap:10px;border:1px solid var(--ng-colors-border-secondary, #e9eaeb);border-radius:12px;padding:12px 16px;cursor:pointer;background:#fff;text-align:left;font:inherit;color:inherit;transition:border-color .18s,box-shadow .18s,transform .15s}.prompt-gallery[_ngcontent-%COMP%] .recommended-box[_ngcontent-%COMP%]:hover{border-color:#2970ff;box-shadow:0 6px 24px #2970ff1a;transform:translateY(-2px)}.prompt-gallery[_ngcontent-%COMP%] .recommended-box[_ngcontent-%COMP%] .rec-title[_ngcontent-%COMP%]{font-size:13px;font-weight:500;color:var(--ng-colors-text-secondary-700, #414651);line-height:1.45}@keyframes _ngcontent-%COMP%_contained-slide{0%{transform:translate(8px);opacity:0}to{transform:translate(0);opacity:1}}.chat-system[_ngcontent-%COMP%]{margin:4px 0;font-size:13px;line-height:1.4;color:var(--ng-colors-text-tertiary-600, #535862)}.chat-system--error[_ngcontent-%COMP%]{color:var(--ng-colors-fg-error-primary, #d92d20);font-weight:500}']})};var An=r=>[r];function Fn(r,t){if(r&1&&ue(0,"nile-progress-bar",4),r&2){let e=d();rt("value",e.percent())}}var Ne=class r{streamId;done=new me;failed=new me;streamService=w(Lt);totalCharts=u(0);widgetPhases=u([]);phaseLabel=u("Connecting to your data\u2026");dashboardNumber=u(0);barKey=u(0);pendingNewDashboard=!0;readyCount=T(()=>this.widgetPhases().filter(t=>t==="building"||t==="saving").length);percent=T(()=>{let t=this.totalCharts();if(!t)return 0;let e=this.widgetPhases(),n=0;for(let i=0;i<t;i++){let o=e[i];n+=o==="building"||o==="saving"?1:o==="querying"?.66:o==="analyzing"?.33:0}return Math.round(Math.min(1,n/t)*100)});countLabel=T(()=>{let t=this.totalCharts(),e=this.dashboardNumber();return!t||!e?"":`Dashboard ${e} \xB7 ${this.readyCount()} of ${t} charts`});finished=!1;dispose=null;ngOnInit(){if(!this.streamId){this.failed.emit();return}this.dispose=this.streamService.stream(this.streamId,t=>this.onEvent(t))}ngOnDestroy(){this.teardown()}onEvent(t){switch(t.kind){case"progress":{this.pendingNewDashboard&&(this.dashboardNumber.update(e=>e+1),this.pendingNewDashboard=!1),this.totalCharts.set(t.totalWidgets),this.widgetPhases.update(e=>{let n=[...e];return n[t.widgetIndex]=Ht(n[t.widgetIndex],t.phase),n}),this.phaseLabel.set(t.label);break}case"dashboard-start":{this.resetForNextDashboard(t.dashboardName?`Setting up ${t.dashboardName}\u2026`:"Preparing the next dashboard\u2026");break}case"saved":{this.resetForNextDashboard("Preparing the next dashboard\u2026");break}case"complete":{t.dashboardIds.length>0?this.finish(()=>this.done.emit(t.dashboardIds)):this.finish(()=>this.failed.emit());break}case"error":{t.dashboardIds.length>0?this.finish(()=>this.done.emit(t.dashboardIds)):this.finish(()=>this.failed.emit());break}}}resetForNextDashboard(t){this.barKey.update(e=>e+1),this.pendingNewDashboard=!0,this.totalCharts.set(0),this.widgetPhases.set([]),this.phaseLabel.set(t)}finish(t){this.finished||(this.finished=!0,this.teardown(),t())}teardown(){this.dispose?.(),this.dispose=null}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=W({type:r,selectors:[["app-dashboard-generating"]],inputs:{streamId:"streamId"},outputs:{done:"done",failed:"failed"},decls:13,vars:4,consts:[["role","status","aria-live","polite",1,"genbar"],["variant","informative","size","medium","pulse","",1,"genbar__light"],[1,"genbar__title"],["aria-hidden","true",1,"genbar__divider"],[1,"genbar__bar",3,"value"],[1,"genbar__count"],[1,"genbar__live"],["aria-hidden","true",1,"genbar__spinner"],[1,"genbar__status"]],template:function(e,n){e&1&&(ae(0,"div",0),ue(1,"nile-status-light",1),ae(2,"span",2),P(3,"Generating your dashboards"),we(),ue(4,"span",3),I(5,Fn,1,1,"nile-progress-bar",4,it),ae(7,"span",5),P(8),we(),ae(9,"div",6),ue(10,"nile-spinner",7),ae(11,"span",8),P(12),we()()()),e&2&&(c(5),R(de(2,An,n.barKey())),c(3),L(n.countLabel()),c(4),L(n.phaseLabel()))},styles:["[_nghost-%COMP%]{display:block;width:100%}.genbar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:var(--ng-spacing-md, 12px);width:100%;min-width:0;padding-inline-start:var(--ng-spacing-lg, 16px)}.genbar__light[_ngcontent-%COMP%]{flex:none}.genbar__title[_ngcontent-%COMP%]{font-size:var(--ng-font-size-text-sm, 14px);font-weight:var(--ng-font-weight-semibold, 600);line-height:var(--ng-line-height-text-sm, 1.4);color:var(--ng-colors-text-primary-900, #181d27);white-space:nowrap}.genbar__divider[_ngcontent-%COMP%]{width:1px;height:20px;background:var(--ng-colors-border-secondary, #e9eaeb);flex:none}.genbar__bar[_ngcontent-%COMP%]{width:160px;flex:none}.genbar__count[_ngcontent-%COMP%]{font-size:var(--ng-font-size-text-sm, 14px);line-height:var(--ng-line-height-text-sm, 1.4);color:var(--ng-colors-text-tertiary-600, #535862);white-space:nowrap}.genbar__live[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;margin-left:auto;flex:none;min-width:0}.genbar__spinner[_ngcontent-%COMP%]{font-size:14px;--indicator-color: #2970ff;--track-color: rgba(41, 112, 255, .2);flex:none}.genbar__status[_ngcontent-%COMP%]{font-size:var(--ng-font-size-text-sm, 14px);line-height:var(--ng-line-height-text-sm, 1.4);color:var(--ng-colors-text-tertiary-600, #535862);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}@media(max-width:760px){.genbar__divider[_ngcontent-%COMP%], .genbar__bar[_ngcontent-%COMP%], .genbar__count[_ngcontent-%COMP%]{display:none}}"]})};var En=["tabsScroller"],Yt=()=>({subtitle:"Explore your dashboards or ask your data a question"}),In=()=>({subtitle:"Setting up your initial dashboards \u2014 crafting a starter set from your data."}),Rn=(r,t)=>t.id;function Nn(r,t){if(r&1&&(s(0,"header",8),H(1,16),l()),r&2){d(2);let e=q(6);c(),v("ngTemplateOutlet",e)("ngTemplateOutletContext",ie(2,Yt))}}function zn(r,t){if(r&1&&h(0,"nile-skeleton-loader",11),r&2){let e=t.$implicit;te("width",e)}}function Vn(r,t){r&1&&h(0,"nile-skeleton-loader",14)}function qn(r,t){r&1&&H(0)}function Wn(r,t){if(r&1&&(s(0,"div",5)(1,"div",7),y(2,Nn,2,3,"header",8),s(3,"div",9)(4,"div",10),I(5,zn,1,1,"nile-skeleton-loader",11,Z),l(),h(7,"span",12)(8,"nile-skeleton-loader",13),I(9,Vn,1,0,"nile-skeleton-loader",14,Z),l(),G(11,qn,1,0,"ng-container",15),l()()),r&2){let e=d(),n=q(8);c(2),C(e.showHeader()?2:-1),c(3),R(e.skeletonTabWidths),c(4),R(e.skeletonActionBtns),c(2),v("ngTemplateOutlet",n)}}function Hn(r,t){if(r&1&&(s(0,"header",8),H(1,16),l()),r&2){d(2);let e=q(6);c(),v("ngTemplateOutlet",e)("ngTemplateOutletContext",ie(2,In))}}function Ln(r,t){if(r&1){let e=D();s(0,"app-dashboard-generating",18),_("done",function(i){f(e);let o=d(2);return b(o.onGenerationDone(i))})("failed",function(){f(e);let i=d(2);return b(i.onGenerationFailed())}),l()}if(r&2){let e=d(2);v("streamId",e.generationStreamId())}}function $n(r,t){r&1&&H(0)}function Gn(r,t){if(r&1&&(s(0,"div",6)(1,"div",7),y(2,Hn,2,3,"header",8),s(3,"div",9),y(4,Ln,1,1,"app-dashboard-generating",17),l()(),G(5,$n,1,0,"ng-container",15),l()),r&2){let e=d(),n=q(8);c(2),C(e.showHeader()?2:-1),c(2),C(e.features().autoGenerate?4:-1),c(),v("ngTemplateOutlet",n)}}function Bn(r,t){if(r&1&&(s(0,"header",8),H(1,16),l()),r&2){d(2);let e=q(6);c(),v("ngTemplateOutlet",e)("ngTemplateOutletContext",ie(2,Yt))}}function Un(r,t){r&1&&h(0,"nile-glyph",47)}function jn(r,t){if(r&1){let e=D();s(0,"span",49),_("click",function(i){return i.stopPropagation()}),s(1,"input",50,3),_("input",function(){f(e);let i=q(2),o=d(4);return b(o.onRenameInputChange(i.value))})("keydown",function(i){f(e);let o=d().$implicit,a=d(3);return b(a.onRenameInputKeydown(i,o))})("click",function(i){return i.stopPropagation()}),l(),s(3,"button",51),_("click",function(i){f(e);let o=d().$implicit,a=d(3);return b(a.commitRenameDashboard(o,i))}),h(4,"nile-glyph",52),l()()}if(r&2){let e=d().$implicit,n=d(3);c(),v("value",n.renamingValue())("disabled",n.isRenamingDashboard()),te("data-dashboard-id",e.id),c(2),v("disabled",n.isRenamingDashboard())}}function Zn(r,t){if(r&1){let e=D();s(0,"button",55),_("click",function(i){f(e);let o=d(2).$implicit,a=d(3);return b(a.startRenameDashboard(o,i))}),h(1,"nile-glyph",56),l()}}function Yn(r,t){if(r&1&&(s(0,"span",53),P(1),l(),y(2,Zn,2,0,"button",54)),r&2){let e=d().$implicit,n=d(3);c(),L(e.name),c(),C(n.features().rename&&!e.isAutoGenerated?2:-1)}}function Kn(r,t){if(r&1){let e=D();s(0,"nile-nav-tab",46),_("click",function(){let i=f(e).$implicit,o=d(3);return b(o.setActiveTab(i.id))}),y(1,Un,1,0,"nile-glyph",47),y(2,jn,5,4,"span",48)(3,Yn,3,2),l()}if(r&2){let e=t.$implicit,n=d(3);te("panel",e.id),c(),C(e.isAutoGenerated?1:-1),c(),C(n.renamingDashboardId()===e.id?2:3)}}function Qn(r,t){if(r&1){let e=D();s(0,"nile-lite-tooltip",35)(1,"button",57),_("click",function(){f(e);let i=d(3);return b(i.refreshActiveDashboard())}),h(2,"nile-glyph",58),l()()}if(r&2){let e=d(3);c(),v("disabled",!e.activeTabId()||e.refreshingDashboard()),c(),ne("home-refresh-glyph--spinning",e.refreshingDashboard())}}function Jn(r,t){if(r&1){let e=D();s(0,"app-time-range-picker",59),_("apply",function(i){f(e);let o=d(3);return b(o.onTimeRangeApply(i))}),l()}if(r&2){let e=d(3);v("resetKey",e.activeTabId())}}function Xn(r,t){r&1&&h(0,"span",41)}function ei(r,t){if(r&1){let e=D();s(0,"nile-lite-tooltip",44)(1,"button",60),_("click",function(){f(e);let i=d(3);return b(i.selectHomeMenuItem("executiveSummary"))}),h(2,"nile-glyph",61),l()()}}function ti(r,t){if(r&1){let e=D();s(0,"nile-dropdown",62),_("nile-hide",function(){f(e);let i=d(3);return b(i.downloadMenuOpen.set(!1))}),s(1,"nile-lite-tooltip",63)(2,"button",64),_("click",function(){f(e);let i=d(3);return b(i.downloadMenuOpen.set(!i.downloadMenuOpen()))}),h(3,"nile-glyph",65),l()(),s(4,"nile-menu")(5,"nile-menu-item",66),_("click",function(){f(e);let i=d(3);return i.downloadMenuOpen.set(!1),b(i.selectHomeMenuItem("exportPdf"))}),h(6,"nile-glyph",67),P(7," Download as PDF "),l(),s(8,"nile-menu-item",66),_("click",function(){f(e);let i=d(3);return i.downloadMenuOpen.set(!1),b(i.selectHomeMenuItem("exportPng"))}),h(9,"nile-glyph",68),P(10," Download as PNG "),l()()()}if(r&2){let e=d(3);v("open",e.downloadMenuOpen())}}function ni(r,t){if(r&1){let e=D();s(0,"div",23)(1,"button",24),_("click",function(){f(e);let i=d(2);return b(i.scrollTabs(-1))}),h(2,"nile-glyph",25),l(),s(3,"div",26,2),_("scroll",function(){f(e);let i=d(2);return b(i.onTabsScroll())}),s(5,"nile-nav-tab-group",27),h(6,"nile-nav-tab",28),I(7,Kn,4,3,"nile-nav-tab",29,Rn),l()(),s(9,"button",30),_("click",function(){f(e);let i=d(2);return b(i.scrollTabs(1))}),h(10,"nile-glyph",31),l(),h(11,"span",12),s(12,"nile-lite-tooltip",32)(13,"button",33),_("click",function(){f(e);let i=d(2);return b(i.goToCreateDashboard())}),h(14,"nile-glyph",34),l()(),y(15,Qn,3,3,"nile-lite-tooltip",35),y(16,Jn,1,1,"app-time-range-picker",36),s(17,"nile-dropdown",37),_("nile-hide",function(){f(e);let i=d(2);return b(i.categoryFilterOpen.set(!1))}),s(18,"nile-lite-tooltip",38)(19,"button",39),_("click",function(){f(e);let i=d(2);return b(i.categoryFilterOpen.set(!i.categoryFilterOpen()))}),h(20,"nile-glyph",40),y(21,Xn,1,0,"span",41),l()(),s(22,"shared-category-filter-row",42),_("mousedown",function(i){return i.stopPropagation()})("selectionChange",function(i){f(e);let o=d(2);return b(o.onCategoryFilterChange(i))}),l()(),s(23,"div",43),y(24,ei,3,0,"nile-lite-tooltip",44),y(25,ti,11,1,"nile-dropdown",45),l()()}if(r&2){let e=d(2);ne("is-scrollable",e.canScrollLeft()||e.canScrollRight()),c(),v("disabled",!e.canScrollLeft()),c(4),te("value",e.activeTabId()||"__sentinel__"),c(2),R(e.visibleDashboards()),c(2),v("disabled",!e.canScrollRight()),c(4),v("disabled",e.creatingDashboard()),c(2),C(e.features().refresh?15:-1),c(),C(e.activeTabId()?16:-1),c(),v("open",e.categoryFilterOpen()),c(4),C(e.selectedCategory()?21:-1),c(),v("selected",e.selectedCategory()),c(2),C(e.features().executiveSummary?24:-1),c(),C(e.features().export?25:-1)}}function ii(r,t){if(r&1&&(s(0,"nile-nav-tab-panel",69),h(1,"app-dashboard-viewer",71),l()),r&2){let e=d(3);te("name",e.activeTabId()),c(),v("config",e.loadedDashboards().get(e.activeTabId()))}}function ri(r,t){r&1&&H(0)}function oi(r,t){if(r&1&&(s(0,"div",70),G(1,ri,1,0,"ng-container",15),l()),r&2){d(3);let e=q(8);c(),v("ngTemplateOutlet",e)}}function ai(r,t){if(r&1&&y(0,ii,2,2,"nile-nav-tab-panel",69)(1,oi,2,1,"div",70),r&2){let e=d(2);C(e.loadedDashboards().has(e.activeTabId())?0:e.isTabLoading()||e.refreshingDashboard()?1:-1)}}function si(r,t){if(r&1){let e=D();s(0,"div",20)(1,"h2",72),P(2,"No dashboards in this category"),l(),s(3,"p",73),P(4,"Try a different category, or clear the filter to see everything."),l(),s(5,"nile-button",74),_("click",function(){f(e);let i=d(2);return b(i.onCategoryFilterChange(null))}),P(6," Clear filter "),l()()}}function li(r,t){if(r&1){let e=D();s(0,"div",20)(1,"div",75),Ke(),s(2,"svg",76),h(3,"rect",77)(4,"rect",78)(5,"rect",79),s(6,"rect",80),h(7,"animate",81)(8,"animate",82),l(),s(9,"rect",83),h(10,"animate",84)(11,"animate",85),l(),s(12,"rect",86),h(13,"animate",87)(14,"animate",88),l(),s(15,"rect",89),h(16,"animate",90)(17,"animate",91),l(),s(18,"rect",92),h(19,"animate",93)(20,"animate",94),l(),h(21,"rect",95)(22,"rect",96)(23,"circle",97),s(24,"circle",98),h(25,"animate",99),l(),h(26,"rect",100)(27,"rect",101),s(28,"path",102),h(29,"animate",103),l(),s(30,"circle",104),h(31,"animate",105),l()()(),Qe(),s(32,"h2",72),P(33,"Build your dashboard"),l(),s(34,"p",73),P(35," Tap the below button to generate dashboard. "),l(),s(36,"nile-button",106),_("click",function(){f(e);let i=d(2);return b(i.goToCreateDashboard())}),h(37,"nile-glyph",107),P(38," Create dashboard "),l()()}if(r&2){let e=d(2);c(36),te("disabled",e.creatingDashboard()?"":null)}}function di(r,t){if(r&1){let e=D();s(0,"db-ai-prompt-panel",108),_("closePanel",function(){f(e);let i=d(2);return b(i.showAiPanel.set(!1))}),l()}if(r&2){let e=d(2);v("dashboardId",e.activeTabId())("dashboardName",e.activeDashboardName())("dashboardConfig",e.loadedDashboards().get(e.activeTabId())??null)("chatOnly",e.aiChatOnly())("initialPrompt",e.aiInitialPrompt())}}function ci(r,t){if(r&1){let e=D();s(0,"div",6)(1,"div",7),y(2,Bn,2,3,"header",8),y(3,ni,26,13,"div",19),y(4,ai,2,1)(5,si,7,0,"div",20)(6,li,39,1,"div",20),s(7,"nile-drawer",21),_("nile-request-close",function(){f(e);let i=d();return b(i.showAiPanel.set(!1))}),y(8,di,1,5,"db-ai-prompt-panel",22),l()()()}if(r&2){let e=d();c(2),C(e.showHeader()?2:-1),c(),C(e.allDashboards().length>0?3:-1),c(),C(e.activeTabId()?4:e.allDashboards().length>0?5:e.allDashboards().length===0?6:-1),c(3),v("open",e.showAiPanel()),c(),C(e.features().aiPrompt&&e.showAiPanel()?8:-1)}}function gi(r,t){if(r&1&&(s(0,"div",109)(1,"h1",110),P(2,"Dashboards"),l(),s(3,"p",111),P(4),l()()),r&2){let e=t.subtitle;c(4),L(e)}}function pi(r,t){r&1&&(s(0,"div",114)(1,"div",117),h(2,"nile-skeleton-loader",118)(3,"nile-skeleton-loader",119),l(),h(4,"nile-skeleton-loader",120),s(5,"div",121),h(6,"nile-skeleton-loader",122)(7,"nile-skeleton-loader",123),l(),h(8,"nile-skeleton-loader",124),l())}function hi(r,t){r&1&&(s(0,"div",116)(1,"div",125)(2,"div",126),h(3,"nile-skeleton-loader",127)(4,"nile-skeleton-loader",128),l(),h(5,"nile-skeleton-loader",129),l(),h(6,"nile-skeleton-loader",130),l())}function mi(r,t){if(r&1&&(s(0,"div",112)(1,"div",113),I(2,pi,9,0,"div",114,Z),l(),s(4,"div",115),I(5,hi,7,0,"div",116,Z),l()()),r&2){let e=d();c(2),R(e.skeletonKpis),c(3),R(e.skeletonWidgets)}}var Ge=4,ze=class r{MAX_TABS=Ge;tabsScrollerEl;dashboardViewerRef;timeRangePickerRef;onTimeRangeApply(t){this.dashboardViewerRef?.applyTimeRange(t)}tabsScrollLeft=u(0);tabsClientWidth=u(0);tabsScrollWidth=u(0);canScrollLeft=T(()=>this.tabsScrollLeft()>0);canScrollRight=T(()=>this.tabsScrollLeft()+this.tabsClientWidth()<this.tabsScrollWidth()-1);onTabsScroll(){this.updateTabsScrollState()}updateTabsScrollState(){let t=this.tabsScrollerEl?.nativeElement;t&&(this.tabsScrollLeft.set(t.scrollLeft),this.tabsClientWidth.set(t.clientWidth),this.tabsScrollWidth.set(t.scrollWidth))}scrollTabs(t){let e=this.tabsScrollerEl?.nativeElement;e&&e.scrollBy({left:t*e.clientWidth*.8,behavior:"smooth"})}scrollActiveTabIntoView(){let t=this.tabsScrollerEl?.nativeElement;if(!t)return;let e=this.activeTabId();if(!e)return;let n=window.CSS&&CSS.escape?CSS.escape(e):e.replace(/"/g,'\\"'),i=t.querySelector(`nile-nav-tab[panel="${n}"]`);if(!i)return;let o=i.getBoundingClientRect(),a=t.getBoundingClientRect(),g=16;o.right>a.right?t.scrollBy({left:o.right-a.right+g,behavior:"smooth"}):o.left<a.left&&t.scrollBy({left:o.left-a.left-g,behavior:"smooth"})}onWindowResize=()=>this.ngZone.run(()=>this.updateTabsScrollState());showAiPanel=u(!1);aiChatOnly=u(!1);aiInitialPrompt=u("");allDashboards=u([]);selectedCategory=u(null);categoryFilterOpen=u(!1);visibleDashboards=T(()=>{let t=this.selectedCategory(),e=this.allDashboards();return t?e.filter(n=>n.category?.includes(t)):e});activeTabs=u([]);activeTabId=u("");loadedDashboards=u(new Map);isLoading=u(!0);isTabLoading=u(!1);skeletonTabWidths=[72,220,140];skeletonKpis=Array.from({length:4});skeletonWidgets=Array.from({length:4});skeletonActionBtns=Array.from({length:4});showMore=T(()=>this.allDashboards().length>0);activeDashboardName=T(()=>this.allDashboards().find(t=>t.id===this.activeTabId())?.name??"");activeConfig=T(()=>this.loadedDashboards().get(this.activeTabId())??null);isExporting=u(!1);showExportDropdown=u(!1);downloadMenuOpen=u(!1);creatingDashboard=u(!1);generationStreamId=u("");isGenerating=T(()=>this.generationStreamId()!=="");generationSettled=!1;showHeader(){return k().ui.header}features(){return k().features}copy(){return k().copy}service=w(he);ngZone=w(ve);el=w(oe);navigator=w(B);routeProgress=w(It);autoDashboard=w(Wt);goToCreateDashboard(){this.creatingDashboard()||(this.creatingDashboard.set(!0),this.navigator.toAskAquera())}constructor(){ee(()=>{this.activeTabId(),this.allDashboards(),queueMicrotask(()=>this.scrollActiveTabIntoView())})}ngAfterViewChecked(){this.updateTabsScrollState()}onExportTriggerClick(){this.showExportDropdown.set(!this.showExportDropdown())}selectHomeMenuItem(t){if(t==="askAi")this.aiChatOnly.set(!0),this.aiInitialPrompt.set(""),this.showAiPanel.set(!0);else if(t==="executiveSummary"){let e=this.activeTabId();e&&this.navigator.toAskAqueraDashboard(e,{summary:1})}else t==="exportPdf"?this.exportDashboardPdf():t==="exportPng"&&this.exportDashboardPng()}getDashboardTarget(){let t=this.activeTabId();return this.el.nativeElement.querySelector(`nile-nav-tab-panel[name="${t}"] app-dashboard-viewer gridster`)}async exportDashboardPdf(){if(this.isExporting())return;let t=this.getDashboardTarget();if(t){this.showExportDropdown.set(!1),this.isExporting.set(!0),await new Promise(e=>requestAnimationFrame(()=>requestAnimationFrame(e)));try{let e=t.scrollWidth,n=t.scrollHeight,i=await Le(t,{quality:1,width:e,height:n,cacheBust:!0,backgroundColor:"#ffffff",style:{height:`${n}px`,maxHeight:"none",overflow:"visible"}}),o=this.activeDashboardName()||"Dashboard",a=90,g=new qt({orientation:e>n?"landscape":"portrait",unit:"px",format:[e,n+a]});g.setFillColor(245,245,248),g.rect(0,0,e,a,"F"),g.setFont("helvetica","bold"),g.setFontSize(28),g.setTextColor(50,50,60),g.text(o,e/2,a/2+7,{align:"center"}),g.addImage(i,"JPEG",0,a,e,n),g.save(`${o}.pdf`)}finally{this.isExporting.set(!1)}}}async exportDashboardPng(){if(this.isExporting())return;let t=this.getDashboardTarget();if(t){this.showExportDropdown.set(!1),this.isExporting.set(!0),await new Promise(e=>requestAnimationFrame(()=>requestAnimationFrame(e)));try{let e=t.scrollWidth,n=t.scrollHeight,i=await Le(t,{quality:1,width:e,height:n,cacheBust:!0,backgroundColor:"#ffffff",style:{height:`${n}px`,maxHeight:"none",overflow:"visible"}}),o=this.activeDashboardName()||"Dashboard",a=90,g=document.createElement("canvas");g.width=e,g.height=n+a;let p=g.getContext("2d");p.fillStyle="#f5f5f8",p.fillRect(0,0,e,a),p.fillStyle="#32323c",p.font="bold 28px helvetica",p.textAlign="center",p.textBaseline="middle",p.fillText(o,e/2,a/2+7);let m=new Image;m.src=i,await new Promise(V=>{m.onload=()=>V()}),p.drawImage(m,0,a,e,n);let M=document.createElement("a");M.href=g.toDataURL("image/png"),M.download=`${o}.png`,M.click()}finally{this.isExporting.set(!1)}}}toggleAiPanel(){this.showAiPanel.update(t=>!t)}onToggleAiPanel=()=>this.ngZone.run(()=>this.showAiPanel.update(t=>!t));ngOnInit(){this.loadList(),window.addEventListener("dv:toggle-ai-panel",this.onToggleAiPanel),window.addEventListener("resize",this.onWindowResize)}ngOnDestroy(){window.removeEventListener("dv:toggle-ai-panel",this.onToggleAiPanel),window.removeEventListener("resize",this.onWindowResize)}async loadList(){this.isLoading.set(!0);try{let t=await this.routeProgress.track(this.service.loadDashboards());this.ngZone.run(()=>{this.allDashboards.set(t);let e=t.slice(0,Ge);this.activeTabs.set(e),e.length>0&&!this.activeTabId()&&(this.activeTabId.set(e[0].id),this.loadTab(e[0].id))}),t.length===0&&await this.checkAutoDashboard()}catch(t){console.error("Failed to load dashboards list:",t)}finally{this.ngZone.run(()=>this.isLoading.set(!1))}}async checkAutoDashboard(){if(!(this.generationSettled||this.isGenerating()))try{let t=await this.autoDashboard.trigger();t?.success&&!t.skipped&&t.streamId&&this.ngZone.run(()=>{this.generationStreamId.set(t.streamId)})}catch{}}onGenerationDone(t){this.generationSettled=!0,this.generationStreamId.set("");let e=t.length;this.loadList().then(()=>{this.showReadyToast(e>1?`${e} dashboards are ready`:"Your dashboard is ready")})}onGenerationFailed(){this.generationSettled=!0,this.generationStreamId.set("")}showReadyToast(t){N({variant:"success",title:"All set",content:t})}async loadTab(t){if(!this.loadedDashboards().has(t)){this.isTabLoading.set(!0);try{let e=await this.routeProgress.track(this.service.fetchDashboard(t));this.ngZone.run(()=>{let n=new Map(this.loadedDashboards());n.set(t,e),this.loadedDashboards.set(n)})}catch(e){console.error(`Failed to load dashboard ${t}:`,e)}finally{this.ngZone.run(()=>this.isTabLoading.set(!1))}}}refreshingDashboard=u(!1);async refreshActiveDashboard(){let t=this.activeTabId();if(!t||this.refreshingDashboard())return;let e=this.loadedDashboards().get(t);this.refreshingDashboard.set(!0),this.ngZone.run(()=>{let n=new Map(this.loadedDashboards());n.delete(t),this.loadedDashboards.set(n)});try{let n=await this.routeProgress.track(this.service.fetchDashboard(t));this.ngZone.run(()=>{let i=new Map(this.loadedDashboards());i.set(t,n),this.loadedDashboards.set(i)})}catch(n){console.error(`Failed to refresh dashboard ${t}:`,n),e&&this.ngZone.run(()=>{let i=new Map(this.loadedDashboards());i.set(t,e),this.loadedDashboards.set(i)})}finally{this.ngZone.run(()=>{this.refreshingDashboard.set(!1),queueMicrotask(()=>this.timeRangePickerRef?.reapply())})}}onTabChange(t){let e=t.detail.value;e!==this.activeTabId()&&this.setActiveTab(e)}onCategoryFilterChange(t){this.selectedCategory.set(t),this.categoryFilterOpen.set(!1);let e=this.visibleDashboards();e.some(n=>n.id===this.activeTabId())||(e.length>0?this.setActiveTab(e[0].id):this.activeTabId.set(""))}setActiveTab(t){this.showAiPanel.set(!1),this.activeTabId.set(t),this.loadTab(t)}isInActiveTabs(t){return this.activeTabs().some(e=>e.id===t)}canAdd(){return this.activeTabs().length<Ge}isLastActiveDashboard(t){return this.activeTabs().length===1&&this.isInActiveTabs(t)}renamingDashboardId=u(null);renamingValue=u("");isRenamingDashboard=u(!1);startRenameDashboard(t,e){e.stopPropagation(),!t.isAutoGenerated&&(this.renamingDashboardId.set(t.id),this.renamingValue.set(t.name),queueMicrotask(()=>{let n=this.el.nativeElement.querySelector(`.tab-rename-input[data-dashboard-id="${t.id}"]`);n?.focus(),n?.select()}))}onRenameInputChange(t){this.renamingValue.set(t)}onRenameInputKeydown(t,e){t.key==="Enter"?(t.preventDefault(),this.commitRenameDashboard(e)):t.key==="Escape"&&(t.preventDefault(),this.cancelRenameDashboard(t))}cancelRenameDashboard(t){t?.stopPropagation(),this.renamingDashboardId.set(null),this.renamingValue.set("")}async commitRenameDashboard(t,e){e?.stopPropagation();let n=this.renamingValue().trim();if(!n||n===t.name){this.cancelRenameDashboard();return}this.isRenamingDashboard.set(!0);try{await this.service.renameDashboard(t.id,n),this.ngZone.run(()=>{let i=o=>o.map(a=>a.id===t.id?E(x({},a),{name:n}):a);this.allDashboards.update(i),this.activeTabs.update(i),this.renamingDashboardId.set(null),this.renamingValue.set("")}),N({variant:"success",title:"Renamed",content:"Dashboard renamed."})}catch(i){let o=i instanceof Error?i.message:"Failed to rename dashboard.";N({variant:"error",title:"Rename failed",content:o})}finally{this.ngZone.run(()=>this.isRenamingDashboard.set(!1))}}onDashboardToggle(t,e){if(e){if(!this.canAdd())return;this.activeTabs.update(n=>[...n,t]),this.setActiveTab(t.id)}else{let n=this.activeTabId()===t.id;if(this.activeTabs.update(i=>i.filter(o=>o.id!==t.id)),n){let i=this.activeTabs();i.length>0?this.setActiveTab(i[0].id):this.activeTabId.set("")}}}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=W({type:r,selectors:[["dvz-dashboards-page"]],viewQuery:function(e,n){if(e&1&&se(En,5)(ye,5)($e,5),e&2){let i;Y(i=K())&&(n.tabsScrollerEl=i.first),Y(i=K())&&(n.dashboardViewerRef=i.first),Y(i=K())&&(n.timeRangePickerRef=i.first)}},decls:9,vars:3,consts:[["pageTitleBlock",""],["dashboardSkeleton",""],["tabsScroller",""],["renameInput",""],[1,"home-page"],["aria-hidden","true",1,"tabs-wrapper","home-skeleton"],[1,"tabs-wrapper"],[1,"tabs-bar"],[1,"home-nav"],[1,"tabs-bar__nav","home-skeleton__tabs-row"],[1,"home-skeleton__tab-pills"],["variant","rounded","height","28",1,"home-skeleton__tab"],["aria-hidden","true",1,"home-menu-divider"],["variant","rounded","width","32","height","28","border-radius","8px"],["variant","circular","width","28","height","28"],[4,"ngTemplateOutlet"],[3,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"streamId"],[3,"done","failed","streamId"],[1,"tabs-bar__nav",3,"is-scrollable"],[1,"home-empty-state"],["contained","","no-header","","placement","end","label","Ask",1,"home-ai-drawer",3,"nile-request-close","open"],[3,"dashboardId","dashboardName","dashboardConfig","chatOnly","initialPrompt"],[1,"tabs-bar__nav"],["type","button","aria-label","Scroll tabs left",1,"tabs-scroll-btn","tabs-scroll-btn--left",3,"click","disabled"],["name","ng-chevron-left","method","stroke","size","16"],[1,"tabs-scroller",3,"scroll"],["variant","filled",1,"dashboard-tab-group"],["slot","nav","panel","__sentinel__",1,"tab-sentinel"],["slot","nav"],["type","button","aria-label","Scroll tabs right",1,"tabs-scroll-btn","tabs-scroll-btn--right",3,"click","disabled"],["name","ng-chevron-right","method","stroke","size","16"],["content","Create dashboard"],["type","button","aria-label","Create dashboard",1,"home-action-btn",3,"click","disabled"],["name","ng-plus","method","stroke","size","18"],["content","Refresh dashboard"],[3,"resetKey"],["placement","bottom-end",1,"home-category-filter",3,"nile-hide","open"],["slot","trigger","content","Filter by category"],["type","button","aria-label","Filter by category",1,"home-action-btn",3,"click"],["name","ng-filter-lines","method","stroke","size","18"],["aria-hidden","true",1,"home-category-filter__dot"],["variant","menu",1,"home-category-filter__panel",3,"mousedown","selectionChange","selected"],[1,"home-actions"],["content","Executive Summary"],["placement","bottom-end",1,"home-download",3,"open"],["slot","nav",3,"click"],["name","ng-stars-02","method","stroke","size","14","color","#7a5af8","aria-label","Auto-generated dashboard",1,"tab-auto-badge"],[1,"tab-rename"],[1,"tab-rename",3,"click"],["type","text",1,"tab-rename-input",3,"input","keydown","click","value","disabled"],["type","button","aria-label","Save dashboard name",1,"tab-rename-save",3,"click","disabled"],["name","ng-check","method","stroke","size","14","color","#2970ff"],[1,"tab-label"],["type","button","aria-label","Rename dashboard",1,"tab-edit-btn"],["type","button","aria-label","Rename dashboard",1,"tab-edit-btn",3,"click"],["name","ng-edit-02","method","stroke","size","12"],["type","button","aria-label","Refresh dashboard",1,"home-action-btn",3,"click","disabled"],["name","ng-refresh-ccw","method","stroke","size","18",1,"home-refresh-glyph"],[3,"apply","resetKey"],["type","button","aria-label","Executive Summary",1,"home-action-btn",3,"click"],["name","ng-file-02","method","stroke","size","18"],["placement","bottom-end",1,"home-download",3,"nile-hide","open"],["slot","trigger","content","Download"],["type","button","aria-label","Download",1,"home-action-btn",3,"click"],["name","ng-download-01","method","stroke","size","18"],[3,"click"],["slot","prefix","name","ng-file-06","method","stroke","size","14"],["slot","prefix","name","ng-image-03","method","stroke","size","14"],["active","",1,"viewer-scroll-container"],["aria-hidden","true",1,"home-skeleton"],[3,"config"],[1,"home-empty-state__title"],[1,"home-empty-state__desc"],["variant","tertiary",3,"click"],[1,"home-empty-state__graphic"],["viewBox","0 0 380 140","aria-hidden","true","preserveAspectRatio","xMidYMid meet"],["x","40","y","20","width","300","height","100","rx","8","fill","#fff","stroke","#80AED3","stroke-width","1.5","stroke-dasharray","4 4"],["x","56","y","36","width","84","height","68","rx","6","fill","#F7FAFC","stroke","#E6E9EB"],["x","64","y","44","width","40","height","3","rx","1.5","fill","#80AED3"],["x","64","y","80","width","6","height","20","rx","1","fill","#005EA6","opacity","0.7"],["attributeName","height","values","20;14;20","dur","2s","repeatCount","indefinite"],["attributeName","y","values","80;86;80","dur","2s","repeatCount","indefinite"],["x","76","y","74","width","6","height","26","rx","1","fill","#005EA6"],["attributeName","height","values","26;18;26","dur","2s","begin","0.2s","repeatCount","indefinite"],["attributeName","y","values","74;82;74","dur","2s","begin","0.2s","repeatCount","indefinite"],["x","88","y","68","width","6","height","32","rx","1","fill","#005EA6","opacity","0.85"],["attributeName","height","values","32;24;32","dur","2s","begin","0.4s","repeatCount","indefinite"],["attributeName","y","values","68;76;68","dur","2s","begin","0.4s","repeatCount","indefinite"],["x","100","y","78","width","6","height","22","rx","1","fill","#005EA6","opacity","0.6"],["attributeName","height","values","22;16;22","dur","2s","begin","0.6s","repeatCount","indefinite"],["attributeName","y","values","78;84;78","dur","2s","begin","0.6s","repeatCount","indefinite"],["x","112","y","66","width","6","height","34","rx","1","fill","#005EA6","opacity","0.85"],["attributeName","height","values","34;26;34","dur","2s","begin","0.8s","repeatCount","indefinite"],["attributeName","y","values","66;74;66","dur","2s","begin","0.8s","repeatCount","indefinite"],["x","148","y","36","width","84","height","68","rx","6","fill","#F7FAFC","stroke","#E6E9EB"],["x","156","y","44","width","40","height","3","rx","1.5","fill","#80AED3"],["cx","190","cy","78","r","14","fill","none","stroke","#E6EFF6","stroke-width","5"],["cx","190","cy","78","r","14","fill","none","stroke","#005EA6","stroke-width","5","stroke-linecap","round","stroke-dasharray","88","stroke-dashoffset","88","transform","rotate(-90 190 78)"],["attributeName","stroke-dashoffset","values","88;22;22;88","keyTimes","0;0.5;0.85;1","dur","2.6s","repeatCount","indefinite"],["x","240","y","36","width","84","height","68","rx","6","fill","#F7FAFC","stroke","#E6E9EB"],["x","248","y","44","width","40","height","3","rx","1.5","fill","#80AED3"],["d","M 250 92 L 264 80 L 278 86 L 292 72 L 306 78 L 320 64","fill","none","stroke","#005EA6","stroke-width","1.5","stroke-linecap","round","stroke-linejoin","round","stroke-dasharray","200","stroke-dashoffset","200"],["attributeName","stroke-dashoffset","values","200;0;0;200","keyTimes","0;0.5;0.85;1","dur","2.6s","repeatCount","indefinite"],["cx","320","cy","64","r","2.5","fill","#005EA6"],["attributeName","opacity","values","0;0;1;1;0","keyTimes","0;0.45;0.55;0.85;1","dur","2.6s","repeatCount","indefinite"],["variant","primary","aria-label","Create dashboard",1,"home-empty-state__cta",3,"click"],["slot","prefix","name","ng-plus","size","16"],[3,"closePanel","dashboardId","dashboardName","dashboardConfig","chatOnly","initialPrompt"],[1,"home-nav__title-block"],[1,"home-nav__title"],[1,"home-nav__sub"],[1,"home-skeleton__panel"],[1,"home-skeleton__kpis"],[1,"home-skeleton__kpi"],[1,"home-skeleton__widgets"],[1,"home-skeleton__widget"],[1,"home-skeleton__kpi-head"],["variant","text","width","56%","height","14"],["variant","rounded","width","32","height","32","border-radius","8px"],["variant","text","width","48%","height","30"],[1,"home-skeleton__kpi-row"],["variant","rounded","width","72","height","20","border-radius","999px"],["variant","text","width","38%","height","11"],["variant","rounded","width","100%","height","44","border-radius","8px",1,"home-skeleton__kpi-spark"],[1,"home-skeleton__widget-head"],[1,"home-skeleton__widget-titles"],["variant","text","width","42%","height","16"],["variant","text","width","64%","height","11"],["variant","circular","width","20","height","20"],["variant","rounded","width","100%","height","100%","border-radius","10px",1,"home-skeleton__widget-chart"]],template:function(e,n){e&1&&(s(0,"div",4),h(1,"wf-page-error"),y(2,Wn,12,2,"div",5),y(3,Gn,6,3,"div",6),y(4,ci,9,5,"div",6),l(),G(5,gi,5,1,"ng-template",null,0,fe)(7,mi,7,0,"ng-template",null,1,fe)),e&2&&(c(2),C(n.isLoading()?2:-1),c(),C(!n.isLoading()&&n.isGenerating()?3:-1),c(),C(!n.isLoading()&&!n.isGenerating()?4:-1))},dependencies:[Pe,ye,Re,Ne,Ft,$e,$t],styles:['@charset "UTF-8";[_nghost-%COMP%]{display:block;height:100%;min-height:0}.home-page[_ngcontent-%COMP%]{height:100%;min-height:0;display:flex;flex-direction:column;background:var(--ng-colors-bg-active);overflow:visible;position:relative}.loading-state[_ngcontent-%COMP%], .empty-state[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;height:200px;color:var(--ng-colors-text-tertiary-600)}.home-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, #e9eaeb);border-radius:12px}.home-empty-state__graphic[_ngcontent-%COMP%]{width:380px;max-width:100%;height:140px;margin-bottom:24px;display:block}.home-empty-state__graphic[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{display:block;width:100%;height:100%}.home-empty-state__title[_ngcontent-%COMP%]{margin:0 0 8px;font-size:16px;font-weight:600;color:var(--ng-colors-text-primary-900, #181d27);letter-spacing:-.01em}.home-empty-state__desc[_ngcontent-%COMP%]{margin:0;max-width:480px;font-size:14px;line-height:1.5;color:var(--ng-colors-text-tertiary-600, #535862)}.home-empty-state__cta[_ngcontent-%COMP%]{margin-top:24px}.toolbar[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-end;height:64px;padding:0 38px;background:var(--ng-componentcolors-alpha-white-100);border-bottom:1px solid var(--ng-componentcolors-alpha-black-10);position:fixed;top:var(--nav-height, 56px);left:0;right:0;z-index:var(--z-header)}.toolbar__right[_ngcontent-%COMP%]{display:flex;align-items:center;gap:var(--ng-spacing-3, 12px)}.tabs-wrapper[_ngcontent-%COMP%]{flex:1;display:flex;flex-direction:column;min-height:0}.tabs-bar[_ngcontent-%COMP%]{position:relative;min-height:0;display:flex;flex-direction:column}.tabs-bar[_ngcontent-%COMP%] .home-nav[_ngcontent-%COMP%]{position:sticky;top:0;z-index:var(--z-sticky-row);display:flex;align-items:center;justify-content:space-between;gap:16px;height:76px;margin:0;padding:0 22px;background:var(--ng-componentcolors-alpha-white-100, #ffffff);border-bottom:1px solid var(--ng-colors-border-secondary, #e9eaeb);flex-shrink:0}.tabs-bar[_ngcontent-%COMP%] .home-nav__title-block[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2px;min-width:0}.tabs-bar[_ngcontent-%COMP%] .home-nav__title[_ngcontent-%COMP%]{margin:0;font-size:16px;font-weight:600;color:var(--ng-colors-text-primary-900, #181d27);line-height:1.2;letter-spacing:-.01em}.tabs-bar[_ngcontent-%COMP%] .home-nav__sub[_ngcontent-%COMP%]{margin:0;font-size:13px;font-weight:400;color:var(--ng-colors-text-tertiary-600, #535862);line-height:1.3}.tabs-bar[_ngcontent-%COMP%] .tabs-bar__nav[_ngcontent-%COMP%]{position:sticky;top:76px;height:56px;display:flex;align-items:center;gap:4px;z-index:var(--z-sticky-row);min-width:0;margin:0;padding:22px;background:var(--ng-componentcolors-alpha-white-100, #ffffff);border-bottom:1px solid var(--ng-colors-border-secondary, #e9eaeb)}.tabs-bar[_ngcontent-%COMP%] .home-menu-divider[_ngcontent-%COMP%]{width:1px;height:20px;background:var(--ng-colors-border-secondary, #e9eaeb);margin:0 6px 0 8px;flex-shrink:0}.tabs-bar[_ngcontent-%COMP%] .tabs-scroller[_ngcontent-%COMP%]{flex:1;min-width:0;overflow-x:auto;overflow-y:hidden;position:relative;scrollbar-width:none}.tabs-bar[_ngcontent-%COMP%] .tabs-scroller[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}.tabs-bar[_ngcontent-%COMP%] .dashboard-tab-group[_ngcontent-%COMP%]{display:block;width:max-content;min-width:100%}.tabs-bar[_ngcontent-%COMP%] .tab-sentinel[_ngcontent-%COMP%]{display:none!important}.tabs-bar[_ngcontent-%COMP%] .tab-auto-badge[_ngcontent-%COMP%]{display:inline-flex;vertical-align:text-bottom;margin-right:4px;flex:0 0 auto}.tabs-bar[_ngcontent-%COMP%] .tab-label[_ngcontent-%COMP%]{white-space:nowrap}.tabs-bar[_ngcontent-%COMP%] .tab-edit-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-left:4px;padding:0;border:0;background:transparent;border-radius:4px;color:var(--ng-colors-text-tertiary-600, #535862);cursor:pointer;opacity:0;pointer-events:none;flex:0 0 auto;transition:background .15s,opacity .15s,color .15s}.tabs-bar[_ngcontent-%COMP%] .tab-edit-btn[_ngcontent-%COMP%]:hover, .tabs-bar[_ngcontent-%COMP%] .tab-edit-btn[_ngcontent-%COMP%]:focus-visible{background:var(--ng-colors-bg-active, #e9eaeb);color:var(--ng-colors-text-primary-900, #181d27)}.tabs-bar[_ngcontent-%COMP%] nile-nav-tab[_ngcontent-%COMP%]:hover .tab-edit-btn[_ngcontent-%COMP%], .tabs-bar[_ngcontent-%COMP%] .tab-edit-btn[_ngcontent-%COMP%]:focus-visible{opacity:1;pointer-events:auto}.tabs-bar[_ngcontent-%COMP%] .tab-rename[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px}.tabs-bar[_ngcontent-%COMP%] .tab-rename-input[_ngcontent-%COMP%]{width:140px;height:24px;padding:0 6px;font-size:13px;font-weight:600;color:var(--ng-colors-text-primary-900, #181d27);background:#fff;border:1px solid var(--ng-colors-border-secondary, #e9eaeb);border-radius:6px;outline:none}.tabs-bar[_ngcontent-%COMP%] .tab-rename-input[_ngcontent-%COMP%]:focus{border-color:#2970ff;box-shadow:0 0 0 3px #2970ff29}.tabs-bar[_ngcontent-%COMP%] .tab-rename-save[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:0;background:transparent;border-radius:4px;cursor:pointer;flex:0 0 auto}.tabs-bar[_ngcontent-%COMP%] .tab-rename-save[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--ng-colors-bg-quaternary, #f2f4f7)}.tabs-bar[_ngcontent-%COMP%] .tab-rename-save[_ngcontent-%COMP%]:disabled{cursor:default;opacity:.5}.tabs-bar[_ngcontent-%COMP%] .tabs-scroll-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:0;outline:0;background:transparent;color:var(--ng-colors-text-tertiary-600, #535862);cursor:pointer;border-radius:6px;flex-shrink:0;opacity:0;pointer-events:none;transition:opacity .15s,background .15s,color .15s}.tabs-bar[_ngcontent-%COMP%] .tabs-scroll-btn[_ngcontent-%COMP%]:hover, .tabs-bar[_ngcontent-%COMP%] .tabs-scroll-btn[_ngcontent-%COMP%]:focus, .tabs-bar[_ngcontent-%COMP%] .tabs-scroll-btn[_ngcontent-%COMP%]:focus-visible{outline:0;background:var(--ng-colors-bg-active, #e9eaeb);color:var(--ng-colors-text-primary-900, #181d27)}.tabs-bar[_ngcontent-%COMP%] .tabs-scroll-btn[disabled][_ngcontent-%COMP%]{cursor:default;color:var(--ng-colors-text-disabled, #a4a7ae);background:transparent}.tabs-bar[_ngcontent-%COMP%] .tabs-bar__nav.is-scrollable[_ngcontent-%COMP%]:hover .tabs-scroll-btn[_ngcontent-%COMP%], .tabs-bar[_ngcontent-%COMP%] .tabs-bar__nav.is-scrollable[_ngcontent-%COMP%]:focus-within .tabs-scroll-btn[_ngcontent-%COMP%]{opacity:1;pointer-events:auto}.more-menu[_ngcontent-%COMP%]{width:260px;max-height:320px;overflow-y:auto;padding:var(--ng-spacing-xs) 0}.more-menu-item[_ngcontent-%COMP%]{padding:var(--ng-spacing-xs) var(--ng-spacing-md);display:flex;align-items:center;cursor:pointer}.more-menu-item[_ngcontent-%COMP%]:hover{background:var(--ng-colors-bg-secondary)}.more-menu-item[_ngcontent-%COMP%] nile-checkbox[_ngcontent-%COMP%]{width:100%}nile-tab-panel[_ngcontent-%COMP%], nile-nav-tab-panel[_ngcontent-%COMP%]{display:block;height:100%}.panel-loading[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;height:200px}.home-skeleton__tabs-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px}.home-skeleton__tab-pills[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;flex-shrink:0}.home-skeleton__tab[_ngcontent-%COMP%]{flex:0 0 auto}.home-skeleton__panel[_ngcontent-%COMP%]{flex:1;min-height:0;padding:18px 24px 32px;display:flex;flex-direction:column;gap:16px;overflow:auto}.home-skeleton__kpis[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}@media(max-width:1100px){.home-skeleton__kpis[_ngcontent-%COMP%]{grid-template-columns:repeat(2,1fr)}}.home-skeleton__kpi[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:8px;padding:18px 20px;border:1px solid var(--ng-colors-border-secondary, #e9eaeb);border-radius:12px;background:#fff}.home-skeleton__kpi-head[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px}.home-skeleton__kpi-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:12px;margin-top:4px}.home-skeleton__kpi-spark[_ngcontent-%COMP%]{margin-top:6px}.home-skeleton__widgets[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}@media(max-width:900px){.home-skeleton__widgets[_ngcontent-%COMP%]{grid-template-columns:1fr}}.home-skeleton__widget[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:18px;padding:20px 22px;border:1px solid var(--ng-colors-border-secondary, #e9eaeb);border-radius:12px;background:#fff;min-height:320px}.home-skeleton__widget-head[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.home-skeleton__widget-titles[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.home-skeleton__widget-chart[_ngcontent-%COMP%]{display:block;flex:1;min-height:0}.viewer-scroll-container[_ngcontent-%COMP%]{display:block;flex:1;min-height:0;overflow:auto}.viewer-scroll-container[_ngcontent-%COMP%]::part(base){padding:unset;min-height:100%}[_nghost-%COMP%] .viewer-scroll-container:has(.aq-detail-overlay){overflow:hidden}app-dashboard-viewer[_ngcontent-%COMP%], nile-dashboard-viewer[_ngcontent-%COMP%]{display:block;width:100%;height:100%}.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)}.home-actions[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}.home-action-btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:0;outline:0;background:transparent;color:var(--ng-colors-text-tertiary-600, #535862);cursor:pointer;border-radius:6px;flex-shrink:0}.home-action-btn[_ngcontent-%COMP%]:hover, .home-action-btn[_ngcontent-%COMP%]:focus, .home-action-btn[_ngcontent-%COMP%]:focus-visible{outline:0;background:var(--ng-colors-bg-active, #e9eaeb);color:var(--ng-colors-text-primary-900, #181d27)}.home-category-filter[_ngcontent-%COMP%] .home-action-btn[_ngcontent-%COMP%]{position:relative}.home-category-filter__dot[_ngcontent-%COMP%]{position:absolute;top:3px;right:3px;width:6px;height:6px;border-radius:50%;background:var(--ng-colors-fg-brand-primary-600)}.home-category-filter__panel[_ngcontent-%COMP%]{display:block;min-width:170px}.home-refresh-glyph[_ngcontent-%COMP%]{display:inline-flex;transform-origin:50% 50%}.home-refresh-glyph--spinning[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_home-refresh-spin .9s linear infinite}@keyframes _ngcontent-%COMP%_home-refresh-spin{to{transform:rotate(360deg)}}.home-ai-drawer[_ngcontent-%COMP%]::part(base){z-index:var(--z-drawer, 900)}.home-ai-drawer[_ngcontent-%COMP%]::part(panel){width:100%;max-width:100%}.home-ai-drawer[_ngcontent-%COMP%]::part(body){padding:0;overflow:hidden}.home-ai-drawer[_ngcontent-%COMP%] db-ai-prompt-panel[_ngcontent-%COMP%]{display:block;height:100%;min-height:0}']})};function ui(r,t){r&1&&h(0,"dvz-dashboards-page")}var Ve=class r{config=Q(void 0);ready=be({alias:"dvz-ready"});error=be({alias:"dvz-error"});unauthorized=be({alias:"dvz-unauthorized"});navigate=be({alias:"dvz-navigate"});host=w(oe);navigator=w(B);destroyRef=w(Je);stopAdopting=null;stopTokenRefresh=null;stopUi=null;configured=!1;constructor(){ee(()=>{let t=this.config();t&&this.apply(t)}),this.navigator.requests.pipe(Et(this.destroyRef)).subscribe(t=>this.navigate.emit(t)),queueMicrotask(()=>{let t=this.host.nativeElement.shadowRoot;t&&(this.stopAdopting=Ue(t))})}async apply(t){let e=t.auth,n=Ut({baseUrl:t.api.baseUrl,mcpUrl:t.api.mcpUrl,tokenizedOrigins:t.api.tokenizedOrigins,headers:t.api.headers,customerId:t.tenant.customerId??null,productId:t.tenant.productId,productName:t.tenant.productName??null,authMode:e.mode,authToken:e.mode==="token"?e.token:null,getToken:e.mode==="callback"?e.getToken:null,onUnauthorized:()=>this.unauthorized.emit(),features:t.features,ui:t.ui,copy:t.copy,hrefs:t.hrefs,initialDashboardId:t.initial?.dashboardId??null});this.stopUi?.(),this.stopUi=je(this.host.nativeElement,t.ui),_t(t.api.baseUrl),Ct({productId:t.tenant.productId,name:t.tenant.productName}),bt(()=>this.unauthorized.emit());let i=n;if(await mt(i),this.stopTokenRefresh??=ut(i),!this.configured){this.configured=!0;let o=k();this.ready.emit({customerId:o.customerId??"",productId:o.productId??""})}}ngOnDestroy(){this.stopAdopting?.(),this.stopTokenRefresh?.(),this.stopUi?.()}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=W({type:r,selectors:[["dvz-dashboards-root"]],inputs:{config:[1,"config"]},outputs:{ready:"dvz-ready",error:"dvz-error",unauthorized:"dvz-unauthorized",navigate:"dvz-navigate"},features:[le([B])],decls:1,vars:1,template:function(e,n){e&1&&y(0,ui,1,0,"dvz-dashboards-page"),e&2&&C(n.config()?0:-1)},dependencies:[ze],styles:[`:host{display:block;height:100%;min-height:0}
|
|
2
|
+
`],encapsulation:3,changeDetection:0})};pt();var fi="dvz-dashboards";function bi(r={}){return gt(Ve,fi,[Xe(),ft(),lt(dt([vt])),{provide:xt,useFactory:()=>k().baseUrl},Pt(U),Dt(A),kt(A),Se(A),De(A),ke(A),Te(A),Tt(A)],r)}bi();export{fi as a,bi as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as It,b as Nt,e as ki}from"./chunk-ZW5NV4UO.js";var zi=ki((st,Dt)=>{(function(L,K){typeof st=="object"&&typeof Dt=="object"?Dt.exports=K(L._Highcharts,L._Highcharts.Templating,L._Highcharts.Color,L._Highcharts.SeriesRegistry,L._Highcharts.SVGElement,L._Highcharts.Series):typeof define=="function"&&define.amd?define("highcharts/modules/sunburst",["highcharts/highcharts"],function(W){return K(W,W.Templating,W.Color,W.SeriesRegistry,W.SVGElement,W.Series)}):typeof st=="object"?st["highcharts/modules/sunburst"]=K(L._Highcharts,L._Highcharts.Templating,L._Highcharts.Color,L._Highcharts.SeriesRegistry,L._Highcharts.SVGElement,L._Highcharts.Series):L.Highcharts=K(L.Highcharts,L.Highcharts.Templating,L.Highcharts.Color,L.Highcharts.SeriesRegistry,L.Highcharts.SVGElement,L.Highcharts.Series)})("u"<typeof window?st:window,(L,K,W,he,de,pe)=>(()=>{"use strict";var Et,ct,gt,vt,ue={28:o=>{o.exports=de},512:o=>{o.exports=he},620:o=>{o.exports=W},820:o=>{o.exports=pe},944:o=>{o.exports=L},984:o=>{o.exports=K}},Ht={};function P(o){var t=Ht[o];if(t!==void 0)return t.exports;var e=Ht[o]={exports:{}};return ue[o](e,e.exports,P),e.exports}P.n=o=>{var t=o&&o.__esModule?()=>o.default:()=>o;return P.d(t,{a:t}),t},P.d=(o,t)=>{for(var e in t)P.o(t,e)&&!P.o(o,e)&&Object.defineProperty(o,e,{enumerable:!0,get:t[e]})},P.o=(o,t)=>Object.prototype.hasOwnProperty.call(o,t);var Gt={};P.d(Gt,{default:()=>Ei});var ce=P(944),A=P.n(ce);let ge={mainBreadcrumb:"Main"};var ve=P(984);let{format:be}=P.n(ve)(),{composed:fe}=A(),{addEvent:J,defined:me,extend:xe,fireEvent:ye,isString:Le,merge:rt,objectEach:kt,pick:bt,pushUnique:Pe}=A();function Te(){if(this.breadcrumbs){let o=this.resetZoomButton&&this.resetZoomButton.getBBox(),t=this.breadcrumbs.options;o&&t.position.align==="right"&&t.relativeTo==="plotBox"&&this.breadcrumbs.alignBreadcrumbsGroup(-o.width-t.buttonSpacing)}}function we(){this.breadcrumbs&&(this.breadcrumbs.destroy(),this.breadcrumbs=void 0)}function Ae(){let o=this.breadcrumbs;if(o&&!o.options.floating&&o.level){let t=o.options,e=t.buttonTheme,i=(e.height||0)+2*(e.padding||0)+t.buttonSpacing,l=t.position.verticalAlign;l==="bottom"?(this.marginBottom=(this.marginBottom||0)+i,o.yOffset=i):l!=="middle"?(this.plotTop+=i,o.yOffset=-i):o.yOffset=void 0}}function Se(){this.breadcrumbs&&this.breadcrumbs.redraw()}function Re(o){o.resetSelection===!0&&this.breadcrumbs&&this.breadcrumbs.alignBreadcrumbsGroup()}let zt=(()=>{class o{static compose(e,i){Pe(fe,"Breadcrumbs")&&(J(e,"destroy",we),J(e,"afterShowResetZoom",Te),J(e,"getMargins",Ae),J(e,"redraw",Se),J(e,"selection",Re),xe(i.lang,ge))}constructor(e,i){this.elementList={},this.isDirty=!0,this.level=0,this.list=[];let l=rt(e.options.drilldown&&e.options.drilldown.drillUpButton,o.defaultOptions,e.options.navigation&&e.options.navigation.breadcrumbs,i);this.chart=e,this.options=l||{}}updateProperties(e){this.setList(e),this.setLevel(),this.isDirty=!0}setList(e){this.list=e}setLevel(){this.level=this.list.length&&this.list.length-1}getLevel(){return this.level}getButtonText(e){let i=this.chart,l=this.options,s=i.options.lang,n=bt(l.format,l.showFullPath?"{level.name}":"\u2190 {level.name}"),r=s&&bt(s.drillUpText,s.mainBreadcrumb),a=l.formatter&&l.formatter(e)||be(n,{level:e.levelOptions},i)||"";return(Le(a)&&!a.length||a==="\u2190 ")&&me(r)&&(a=l.showFullPath?r:"\u2190 "+r),a}redraw(){this.isDirty&&this.render(),this.group&&this.group.align(),this.isDirty=!1}render(){let e=this.chart,i=this.options;!this.group&&i&&(this.group=e.renderer.g("breadcrumbs-group").addClass("highcharts-no-tooltip highcharts-breadcrumbs").attr({zIndex:i.zIndex}).add()),i.showFullPath?this.renderFullPathButtons():this.renderSingleButton(),this.alignBreadcrumbsGroup()}renderFullPathButtons(){this.destroySingleButton(),this.resetElementListState(),this.updateListElements(),this.destroyListElements()}renderSingleButton(){let e=this.chart,i=this.list,l=this.options.buttonSpacing;this.destroyListElements();let s=this.group?this.group.getBBox().width:l,n=i[i.length-2];!e.drillUpButton&&this.level>0?e.drillUpButton=this.renderButton(n,s,l):e.drillUpButton&&(this.level>0?this.updateSingleButton():this.destroySingleButton())}alignBreadcrumbsGroup(e){if(this.group){let i=this.options,l=i.buttonTheme,s=i.position,n=i.relativeTo==="chart"||i.relativeTo==="spacingBox"?void 0:"plotBox",r=this.group.getBBox(),a=2*(l.padding||0)+i.buttonSpacing;s.width=r.width+a,s.height=r.height+a;let h=rt(s);e&&(h.x+=e),this.options.rtl&&(h.x+=s.width),h.y=bt(h.y,this.yOffset,0),this.group.align(h,!0,n)}}renderButton(e,i,l){let s=this,n=this.chart,r=s.options,a=rt(r.buttonTheme),h=n.renderer.button(s.getButtonText(e),i,l,function(d){let u,p=r.events&&r.events.click;p&&(u=p.call(s,d,e)),u!==!1&&(r.showFullPath?d.newLevel=e.level:d.newLevel=s.level-1,ye(s,"up",d))},a).addClass("highcharts-breadcrumbs-button").add(s.group);return n.styledMode||h.attr(r.style),h}renderSeparator(e,i){let l=this.chart,s=this.options.separator,n=l.renderer.label(s.text,e,i,void 0,void 0,void 0,!1).addClass("highcharts-breadcrumbs-separator").add(this.group);return l.styledMode||n.css(s.style),n}update(e){rt(!0,this.options,e),this.destroy(),this.isDirty=!0}updateSingleButton(){let e=this.chart,i=this.list[this.level-1];e.drillUpButton&&e.drillUpButton.attr({text:this.getButtonText(i)})}destroy(){this.destroySingleButton(),this.destroyListElements(!0),this.group&&this.group.destroy(),this.group=void 0}destroyListElements(e){let i=this.elementList;kt(i,(l,s)=>{(e||!i[s].updated)&&((l=i[s]).button&&l.button.destroy(),l.separator&&l.separator.destroy(),delete l.button,delete l.separator,delete i[s])}),e&&(this.elementList={})}destroySingleButton(){this.chart.drillUpButton&&(this.chart.drillUpButton.destroy(),this.chart.drillUpButton=void 0)}resetElementListState(){kt(this.elementList,e=>{e.updated=!1})}updateListElements(){let e=this.elementList,i=this.options.buttonSpacing,l=this.list,s=this.options.rtl,n=s?-1:1,r=function(p,c){return n*p.getBBox().width+n*c},a=function(p,c,g){p.translate(c-p.getBBox().width,g)},h=this.group?r(this.group,i):i,d,u;for(let p=0,c=l.length;p<c;++p){let g,v,b=p===c-1;e[(u=l[p]).level]?(g=(d=e[u.level]).button,d.separator||b?d.separator&&b&&(d.separator.destroy(),delete d.separator):(h+=n*i,d.separator=this.renderSeparator(h,i),s&&a(d.separator,h,i),h+=r(d.separator,i)),e[u.level].updated=!0):(g=this.renderButton(u,h,i),s&&a(g,h,i),h+=r(g,i),b||(v=this.renderSeparator(h,i),s&&a(v,h,i),h+=r(v,i)),e[u.level]={button:g,separator:v,updated:!0}),g&&g.setState(2*!!b)}}}return o.defaultOptions={buttonSpacing:5,buttonTheme:{fill:"none",height:18,padding:2,"stroke-width":0,zIndex:7,states:{select:{fill:"none"}},style:{color:"#334eff"}},floating:!1,format:void 0,relativeTo:"plotBox",rtl:!1,position:{align:"left",verticalAlign:"top",x:0,y:void 0},separator:{text:"/",style:{color:"#666666",fontSize:"0.8em"}},showFullPath:!0,style:{},useHTML:!1,zIndex:7},o})();var Oe=P(620),Vt=P.n(Oe),Ce=P(512),z=P.n(Ce),Me=P(28),Ut=P.n(Me);let{column:{prototype:Be}}=z().seriesTypes,{addEvent:Ie,defined:Ne}=A();var ft=ct||(ct={});function De(o){let t=this.series,e=t.chart.renderer;this.moveToTopOnHover&&this.graphic&&(t.stateMarkerGraphic||(t.stateMarkerGraphic=new(Ut())(e,"use").css({pointerEvents:"none"}).add(this.graphic.parentGroup)),o?.state==="hover"?(this.graphic.attr({id:this.id}),t.stateMarkerGraphic.attr({href:`${e.url}#${this.id}`,visibility:"visible"})):t.stateMarkerGraphic.attr({href:""}))}ft.pointMembers={dataLabelOnNull:!0,moveToTopOnHover:!0,isValid:function(){return this.value!==null&&this.value!==1/0&&this.value!==-1/0&&(this.value===void 0||!isNaN(this.value))}},ft.seriesMembers={colorKey:"value",axisTypes:["xAxis","yAxis","colorAxis"],parallelArrays:["x","y","value"],pointArrayMap:["value"],trackerGroups:["group","markerGroup","dataLabelsGroup"],colorAttribs:function(o){let t={};return Ne(o.color)&&(!o.state||o.state==="normal")&&(t[this.colorProp||"fill"]=o.color),t},pointAttribs:Be.pointAttribs},ft.compose=function(o){return Ie(o.prototype.pointClass,"afterSetState",De),o};let Wt=ct;var Ee=P(820),Ft=P.n(Ee);let He=class{constructor(o,t,e,i){this.height=o,this.width=t,this.plot=i,this.direction=e,this.startDirection=e,this.total=0,this.nW=0,this.lW=0,this.nH=0,this.lH=0,this.elArr=[],this.lP={total:0,lH:0,nH:0,lW:0,nW:0,nR:0,lR:0,aspectRatio:function(l,s){return Math.max(l/s,s/l)}}}addElement(o){this.lP.total=this.elArr[this.elArr.length-1],this.total=this.total+o,this.direction===0?(this.lW=this.nW,this.lP.lH=this.lP.total/this.lW,this.lP.lR=this.lP.aspectRatio(this.lW,this.lP.lH),this.nW=this.total/this.height,this.lP.nH=this.lP.total/this.nW,this.lP.nR=this.lP.aspectRatio(this.nW,this.lP.nH)):(this.lH=this.nH,this.lP.lW=this.lP.total/this.lH,this.lP.lR=this.lP.aspectRatio(this.lP.lW,this.lH),this.nH=this.total/this.width,this.lP.nW=this.lP.total/this.nH,this.lP.nR=this.lP.aspectRatio(this.lP.nW,this.nH)),this.elArr.push(o)}reset(){this.nW=0,this.lW=0,this.elArr=[],this.total=0}},jt=class{constructor(){this.childrenTotal=0,this.visible=!1}init(o,t,e,i,l,s,n){return this.id=o,this.i=t,this.children=e,this.height=i,this.level=l,this.series=s,this.parent=n,this}},Ge=function(o,t){let{animatableAttribs:e,onComplete:i,css:l,renderer:s}=t,n=o.series&&o.series.chart.hasRendered?void 0:o.series&&o.series.options.animation,r=o.graphic;if(t.attribs=Nt(It({},t.attribs),{class:o.getClassName()}),o.shouldDraw())r||(o.graphic=r=t.shapeType==="text"?s.text():t.shapeType==="image"?s.image(t.imageUrl||"").attr(t.shapeArgs||{}):s[t.shapeType](t.shapeArgs||{}),r.add(t.group)),l&&r.css(l),r.attr(t.attribs).animate(e,!t.isNew&&n,i);else if(r){let a=()=>{o.graphic=r=r&&r.destroy(),typeof i=="function"&&i()};Object.keys(e).length?r.animate(e,void 0,()=>a()):a()}},{pie:{prototype:{pointClass:ke}},scatter:{prototype:{pointClass:ze}}}=z().seriesTypes,{extend:Ve,isNumber:_t,pick:Ue}=A();class Yt extends ze{constructor(){super(...arguments),this.groupedPointsAmount=0,this.shapeType="rect"}draw(t){Ge(this,t)}getClassName(){let t=this.series,e=t.options,i=super.getClassName();return this.node.level<=t.nodeMap[t.rootNode].level&&this.node.children.length?i+=" highcharts-above-level":this.node.isGroup||this.node.isLeaf||t.nodeMap[t.rootNode].isGroup||Ue(e.interactByLeaf,!e.allowTraversingTree)?this.node.isGroup||this.node.isLeaf||t.nodeMap[t.rootNode].isGroup||(i+=" highcharts-internal-node"):i+=" highcharts-internal-node-interactive",i}isValid(){return!!(this.id||_t(this.value))}setState(t){super.setState.apply(this,arguments),this.graphic&&this.graphic.attr({zIndex:+(t==="hover")})}shouldDraw(){return _t(this.plotY)&&this.y!==null}}Ve(Yt.prototype,{setVisible:ke.prototype.setVisible});let{isString:We}=A(),Fe={allowTraversingTree:!1,animationLimit:250,borderRadius:0,showInLegend:!1,marker:void 0,colorByPoint:!1,dataLabels:{enabled:!0,formatter:function(){let o=this&&this.point?this.point:{};return We(o.name)?o.name:""},headers:!1,inside:!0,padding:2,verticalAlign:"middle",style:{textOverflow:"ellipsis"}},tooltip:{headerFormat:"",pointFormat:"<b>{point.name}</b>: {point.value}<br/>",clusterFormat:"+ {point.groupedPointsAmount} more...<br/>"},ignoreHiddenPoint:!0,layoutAlgorithm:"sliceAndDice",layoutStartingDirection:"vertical",alternateStartingDirection:!1,levelIsConstant:!0,traverseUpButton:{position:{align:"right",x:-10,y:10}},borderColor:"#e6e6e6",borderWidth:1,colorKey:"colorValue",opacity:.15,states:{hover:{borderColor:"#999999",brightness:.1*!z().seriesTypes.heatmap,halo:!1,opacity:.75,shadow:!1}},legendSymbol:"rectangle",traverseToLeaf:!1,cluster:{className:void 0,color:void 0,enabled:!1,pixelWidth:void 0,pixelHeight:void 0,name:void 0,reductionFactor:void 0,minimumClusterSize:5,layoutAlgorithm:{distance:0,gridSize:0,kmeansThreshold:0},marker:{lineWidth:0,radius:0}}};(gt||(gt={})).recursive=function o(t,e,i){let l=e.call(i||this,t);l!==!1&&o(l,e,i)};let mt=gt,{extend:Xt,isArray:je,isNumber:xt,isObject:F,merge:yt,pick:Z,relativeLength:_e}=A(),$t={getColor:function(o,t){let e,i,l,s,n,r,a=t.index,h=t.mapOptionsToLevel,d=t.parentColor,u=t.parentColorIndex,p=t.series,c=t.colors,g=t.siblings,v=p.points,b=p.chart.options.chart;if(o){let f;e=v[o.i],i=h[o.level]||{},e&&i.colorByPoint&&(s=e.index%(c?c.length:b.colorCount),l=c&&c[s]),p.chart.styledMode||(n=Z(e&&e.options.color,i&&i.color,l,d&&((f=i&&i.colorVariation)&&f.key==="brightness"&&a&&g?Vt().parse(d).brighten(f.to*(a/g)).get():d),p.color)),r=Z(e&&e.options.colorIndex,i&&i.colorIndex,s,u,t.colorIndex)}return{color:n,colorIndex:r}},getLevelOptions:function(o){let t,e,i,l,s,n,r={};if(F(o))for(l=xt(o.from)?o.from:1,n=o.levels,e={},t=F(o.defaults)?o.defaults:{},je(n)&&(e=n.reduce((a,h)=>{let d,u,p;return F(h)&&xt(h.level)&&(u=Z((p=yt({},h)).levelIsConstant,t.levelIsConstant),delete p.levelIsConstant,delete p.level,F(a[d=h.level+(u?0:l-1)])?yt(!0,a[d],p):a[d]=p),a},{})),s=xt(o.to)?o.to:1,i=0;i<=s;i++)r[i]=yt({},t,F(e[i])?e[i]:{});return r},getNodeWidth:function(o,t){let{chart:e,options:i}=o,{nodeDistance:l=0,nodeWidth:s=0}=i,{plotSizeX:n=1}=e;if(s==="auto"){if(typeof l=="string"&&/%$/.test(l))return n/(t+parseFloat(l)/100*(t-1));let r=Number(l);return(n+r)/(t||1)-r}return _e(s,n)},setTreeValues:function o(t,e){let i=e.before,l=e.idRoot,s=e.mapIdToNode[l],n=e.levelIsConstant!==!1,r=e.points[t.i],a=r&&r.options||{},h=[],d=0;t.levelDynamic=t.level-(n?0:s.level),t.name=Z(r&&r.name,""),t.visible=l===t.id||e.visible===!0,typeof i=="function"&&(t=i(t,e)),t.children.forEach((p,c)=>{let g=Xt({},e);Xt(g,{index:c,siblings:t.children.length,visible:t.visible}),p=o(p,g),h.push(p),p.visible&&(d+=p.val)});let u=Z(a.value,d);return t.visible=u>=0&&(d>0||t.visible),t.children=h,t.childrenTotal=d,t.isLeaf=t.visible&&!d,t.val=u,t},updateRootId:function(o){let t,e;return F(o)&&(e=F(o.options)?o.options:{},t=Z(o.rootNode,e.rootId,""),F(o.userOptions)&&(o.userOptions.rootId=t),o.rootNode=t),t}},{parse:Ye}=Vt(),{composed:Xe,noop:qt}=A(),{column:$e,scatter:Kt}=z().seriesTypes,{getColor:qe,getLevelOptions:Ke,updateRootId:Ze}=$t,{addEvent:$,arrayMax:Je,clamp:Qe,correctFloat:ti,crisp:ot,defined:j,error:ei,extend:Q,fireEvent:ii,isArray:Zt,isNumber:Lt,isObject:si,isString:Jt,merge:H,pick:_,pushUnique:ri,splat:at,stableSort:oi}=A();Ft().keepProps.push("simulation","hadOutsideDataLabels");let Pt=!1;function ai(){let o=this.xAxis,t=this.yAxis;if(o&&t)if(this.is("treemap")){let e={endOnTick:!1,startOnTick:!1,visible:!1};this.is("treegraph")||(e.min=0,e.max=100,e.tickPositions=[]),H(!0,o.options,e,o.userOptions),H(!0,t.options,e,t.userOptions),o.visible=o.options.visible,t.visible=t.options.visible,this.is("treegraph")&&(this.isCartesian=o.visible),Pt=!0}else Pt&&(t.setOptions(t.userOptions),o.setOptions(o.userOptions),Pt=!1)}class lt extends Kt{constructor(){super(...arguments),this.simulation=0}static compose(t){ri(Xe,"TreemapSeries")&&$(t,"afterBindAxes",ai)}algorithmCalcPoints(t,e,i,l){let s=i.plot,n=i.elArr.length-1,r,a,h,d,u=i.lW,p=i.lH,c,g=0;for(let v of(e?(u=i.nW,p=i.nH):c=i.elArr[n],i.elArr))(e||g<n)&&(i.direction===0?(r=s.x,a=s.y,d=v/(h=u)):(r=s.x,a=s.y,h=v/(d=p)),l.push({x:r,y:a,width:h,height:ti(d)}),i.direction===0?s.y=s.y+d:s.x=s.x+h),g+=1;i.reset(),i.direction===0?i.width=i.width-u:i.height=i.height-p,s.y=s.parent.y+(s.parent.height-i.height),s.x=s.parent.x+(s.parent.width-i.width),t&&(i.direction=1-i.direction),e||i.addElement(c)}algorithmFill(t,e,i){let l=[],s,n=e.direction,r=e.x,a=e.y,h=e.width,d=e.height,u,p,c,g;for(let v of i)s=e.width*e.height*(v.val/e.val),u=r,p=a,n===0?(h-=c=s/(g=d),r+=c):(d-=g=s/(c=h),a+=g),l.push({x:u,y:p,width:c,height:g,direction:0,val:0}),t&&(n=1-n);return l}algorithmLowAspectRatio(t,e,i){let l=[],s={x:e.x,y:e.y,parent:e},n=e.direction,r=i.length-1,a=new He(e.height,e.width,n,s),h,d=0;for(let u of i)h=e.width*e.height*(u.val/e.val),a.addElement(h),a.lP.nR>a.lP.lR&&this.algorithmCalcPoints(t,!1,a,l,s),d===r&&this.algorithmCalcPoints(t,!0,a,l,s),++d;return l}alignDataLabel(t,e,i){$e.prototype.alignDataLabel.apply(this,arguments),t.dataLabel&&t.dataLabel.attr({zIndex:(t.node.zIndex||0)+1})}applyTreeGrouping(){let t=this,e=t.parentList||{},{cluster:i}=t.options,l=i?.minimumClusterSize||5;if(i?.enabled){let s={},n=a=>{if(a?.point?.shapeArgs){let{width:h=0,height:d=0}=a.point.shapeArgs,{pixelWidth:u=0,pixelHeight:p=0}=i,c=j(p),g=p?u*p:u*u;(h<u||d<(c?p:u)||h*d<g)&&!a.isGroup&&j(a.parent)&&(s[a.parent]||(s[a.parent]=[]),s[a.parent].push(a))}a?.children.forEach(h=>{n(h)})};for(let a in n(t.tree),s)s[a]&&s[a].length>l&&s[a].forEach(h=>{let d=e[a].indexOf(h.i);if(d!==-1){e[a].splice(d,1);let u=`highcharts-grouped-treemap-points-${h.parent||"root"}`,p=t.points.find(b=>b.id===u);if(!p){let b=t.pointClass,f=t.points.length;Q(p=new b(t,{className:i.className,color:i.color,id:u,index:f,isGroup:!0,value:0}),{formatPrefix:"cluster"}),t.points.push(p),e[a].push(f),e[u]=[]}let c=p.groupedPointsAmount+1,g=t.points[p.index].options.value||0,v=i.name||`+ ${c}`;t.points[p.index].groupedPointsAmount=c,t.points[p.index].options.value=g+(h.point.value||0),t.points[p.index].name=v,e[u].push(h.point.index)}});t.nodeMap={},t.nodeList=[],t.parentList=e;let r=t.buildTree("",-1,0,t.parentList);t.translate(r)}}calculateChildrenAreas(t,e){let i=this.options,l=this.mapOptionsToLevel[t.level+1],s=_(l?.layoutAlgorithm&&this[l?.layoutAlgorithm]&&l.layoutAlgorithm,i.layoutAlgorithm),n=i.alternateStartingDirection,r=t.children.filter(v=>t.isGroup||!v.ignore),a=l?.groupPadding??i.groupPadding??0,h=this.nodeMap[this.rootNode];if(!s)return;let d=[],u=h.pointValues?.width||0,p=h.pointValues?.height||0;l?.layoutStartingDirection&&(e.direction=+(l.layoutStartingDirection!=="vertical")),d=this[s](e,r);let c=-1;for(let v of r){let b=d[++c];v===h&&(u=u||b.width,p=b.height);let f=a/(this.xAxis.len/p),B=a/(this.yAxis.len/p);if(v.values=H(b,{val:v.childrenTotal,direction:n?1-e.direction:e.direction}),v.children.length&&v.point.dataLabels?.length){let I=Je(v.point.dataLabels.map(C=>C.options?.headers&&C.height||0))/(this.yAxis.len/p);I<v.values.height/2&&(v.values.y+=I,v.values.height-=I)}if(a){let I=Math.min(f,v.values.width/4),C=Math.min(B,v.values.height/4);v.values.x+=I,v.values.width-=2*I,v.values.y+=C,v.values.height-=2*C}v.pointValues=H(b,{x:b.x/this.axisRatio,y:100-b.y-b.height,width:b.width/this.axisRatio}),v.children.length&&this.calculateChildrenAreas(v,v.values)}let g=(v,b=[],f=!0)=>(v.children.forEach(B=>{f&&B.isLeaf?b.push(B.point):f||B.isLeaf||b.push(B.point),B.children.length&&g(B,b,f)}),b);if(i.nodeSizeBy==="leaf"&&t===h&&this.hasOutsideDataLabels&&!g(h,void 0,!1).some(v=>Lt(v.options.value))&&!Lt(h.point?.options.value)){let v=g(h),b=v.map(x=>x.options.value||0),f=v.map(({node:{pointValues:x}})=>x?x.width*x.height:0),B=b.reduce((x,T)=>x+T,0),I=f.reduce((x,T)=>x+T,0)/B,C=0,G=0;v.forEach((x,T)=>{let S=Qe((b[T]?f[T]/b[T]:1)/I,.8,1.4),V=1-S;x.value&&(f[T]<20&&(V*=f[T]/20),V>G&&(G=V),V<C&&(C=V),x.simulatedValue=(x.simulatedValue||x.value)/S)}),(C<-.05||G>.05)&&this.simulation<10?(this.simulation++,this.setTreeValues(t),e.val=t.val,this.calculateChildrenAreas(t,e)):(v.forEach(x=>{delete x.simulatedValue}),this.setTreeValues(t),this.simulation=0)}}createList(t){let e=this.chart,i=e.breadcrumbs,l=[];if(i){let s=0;l.push({level:s,levelOptions:e.series[0]});let n=t.target.nodeMap[t.newRootId],r=[];for(;n.parent||n.parent==="";)r.push(n),n=t.target.nodeMap[n.parent];for(let a of r.reverse())l.push({level:++s,levelOptions:a});l.length<=1&&(l.length=0)}return l}drawDataLabels(){let t=this.mapOptionsToLevel,e=this.points.filter(function(s){return s.node.visible||j(s.dataLabel)}),i=at(this.options.dataLabels||{})[0]?.padding,l=e.some(s=>Lt(s.plotY));for(let s of e){let n={},r={style:n},a=t[s.node.level];if((!s.node.isLeaf&&!s.node.isGroup||s.node.isGroup&&s.node.level<=this.nodeMap[this.rootNode].level)&&(r.enabled=!1),a?.dataLabels&&(H(!0,r,at(a.dataLabels)[0]),this.hasDataLabels=()=>!0),s.node.isLeaf?r.inside=!0:r.headers&&(r.verticalAlign="top"),s.shapeArgs&&l){let{height:h=0,width:d=0}=s.shapeArgs;if(d>32&&h>16&&s.shouldDraw()){let u=d-2*(r.padding||i||0);n.width=`${u}px`,n.lineClamp??(n.lineClamp=Math.floor(h/16)),n.visibility="inherit",r.headers&&s.dataLabel?.attr({width:u})}else n.width=`${d}px`,n.visibility="hidden"}s.dlOptions=H(r,s.options.dataLabels,{zIndex:void 0})}super.drawDataLabels(e)}drawPoints(t=this.points){let e=this.chart,i=e.renderer,l=e.styledMode,s=this.options,n=l?{}:s.shadow,r=s.borderRadius,a=e.pointCount<s.animationLimit,h=s.allowTraversingTree;for(let d of t){let u={},p={},c={},g="level-group-"+d.node.level,v=!!d.graphic,b=a&&v,f=d.shapeArgs;d.shouldDraw()&&(d.isInside=!0,r&&(p.r=r),H(!0,b?u:p,v?f:{},l?{}:this.pointAttribs(d,d.selected?"select":void 0)),this.colorAttribs&&l&&Q(c,this.colorAttribs(d)),this[g]||(this[g]=i.g(g).attr({zIndex:-(d.node.level||0)}).add(this.group),this[g].survive=!0)),d.draw({animatableAttribs:u,attribs:p,css:c,group:this[g],imageUrl:d.imageUrl,renderer:i,shadow:n,shapeArgs:f,shapeType:d.shapeType}),h&&d.graphic&&(d.drillId=s.interactByLeaf?this.drillToByLeaf(d):this.drillToByGroup(d))}}drillToByGroup(t){return(!t.node.isLeaf||!!t.node.isGroup)&&t.id}drillToByLeaf(t){let{traverseToLeaf:e}=t.series.options,i=!1,l;if(t.node.parent!==this.rootNode&&t.node.isLeaf)if(e)i=t.id;else for(l=t.node;!i;)l.parent!==void 0&&(l=this.nodeMap[l.parent]),l.parent===this.rootNode&&(i=l.id);return i}drillToNode(t,e){ei(32,!1,void 0,{"treemap.drillToNode":"use treemap.setRootNode"}),this.setRootNode(t,e)}drillUp(){let t=this.nodeMap[this.rootNode];t&&Jt(t.parent)&&this.setRootNode(t.parent,!0,{trigger:"traverseUpButton"})}getExtremes(){let{dataMin:t,dataMax:e}=super.getExtremes(this.colorValueData);return this.valueMin=t,this.valueMax=e,super.getExtremes()}getListOfParents(t,e){let i=Zt(t)?t:[],l=Zt(e)?e:[],s=i.reduce(function(n,r,a){let h=_(r.parent,"");return n[h]===void 0&&(n[h]=[]),n[h].push(a),n},{"":[]});for(let n of Object.keys(s)){let r=s[n];if(n!==""&&l.indexOf(n)===-1){for(let a of r)s[""].push(a);delete s[n]}}return s}getTree(){let t=this.data.map(function(e){return e.id});return this.parentList=this.getListOfParents(this.data,t),this.nodeMap={},this.nodeList=[],this.buildTree("",-1,0,this.parentList||{})}buildTree(t,e,i,l,s){let n=[],r=this.points[e],a=0,h;for(let u of l[t]||[])a=Math.max((h=this.buildTree(this.points[u].id,u,i+1,l,t)).height+1,a),n.push(h),this.is("treegraph")&&(h.visible=!0);let d=new this.NodeClass().init(t,e,n,a,i,this,s);for(let u of n)u.parentNode=d;return this.nodeMap[d.id]=d,this.nodeList.push(d),r&&(r.node=d,d.point=r,j(r.options.x)||(r.x=i)),d}hasData(){return!!this.dataTable.rowCount}init(t,e){let i=this,l=H(e.drillUpButton,e.breadcrumbs),s=$(i,"setOptions",n=>{let r=n.userOptions;j(r.allowDrillToNode)&&!j(r.allowTraversingTree)&&(r.allowTraversingTree=r.allowDrillToNode,delete r.allowDrillToNode),j(r.drillUpButton)&&!j(r.traverseUpButton)&&(r.traverseUpButton=r.drillUpButton,delete r.drillUpButton);let a=at(r.dataLabels||{});r.levels?.forEach(h=>{a.push.apply(a,at(h.dataLabels||{}))}),this.hasOutsideDataLabels=a.some(h=>h.headers)});super.init(t,e),delete i.opacity,i.eventsToUnbind.push(s),i.options.allowTraversingTree&&(i.eventsToUnbind.push($(i,"click",i.onClickDrillToNode)),i.eventsToUnbind.push($(i,"setRootNode",function(n){let r=i.chart;r.breadcrumbs&&r.breadcrumbs.updateProperties(i.createList(n))})),i.eventsToUnbind.push($(i,"update",function(n,r){let a=this.chart.breadcrumbs;a&&n.options.breadcrumbs&&a.update(n.options.breadcrumbs),this.hadOutsideDataLabels=this.hasOutsideDataLabels})),i.eventsToUnbind.push($(i,"destroy",function(n){let r=this.chart;r.breadcrumbs&&!n.keepEventsForUpdate&&(r.breadcrumbs.destroy(),r.breadcrumbs=void 0)}))),t.breadcrumbs||(t.breadcrumbs=new zt(t,l)),i.eventsToUnbind.push($(t.breadcrumbs,"up",function(n){let r=this.level-n.newLevel;for(let a=0;a<r;a++)i.drillUp()}))}onClickDrillToNode(t){let e=t.point,i=e?.drillId;Jt(i)&&(e.setState(""),this.setRootNode(i,!0,{trigger:"click"}))}pointAttribs(t,e){let i=si(this.mapOptionsToLevel)?this.mapOptionsToLevel:{},l=t&&i[t.node.level]||{},s=this.options,n=e&&s.states&&s.states[e]||{},r=t?.getClassName()||"",a={stroke:t&&t.borderColor||l.borderColor||n.borderColor||s.borderColor,"stroke-width":_(t&&t.borderWidth,l.borderWidth,n.borderWidth,s.borderWidth),dashstyle:t?.borderDashStyle||l.borderDashStyle||n.borderDashStyle||s.borderDashStyle,fill:t?.color||this.color};return r.indexOf("highcharts-above-level")!==-1?(a.fill="none",a["stroke-width"]=0):r.indexOf("highcharts-internal-node-interactive")!==-1?(a["fill-opacity"]=n.opacity??s.opacity??1,a.cursor="pointer"):r.indexOf("highcharts-internal-node")!==-1?a.fill="none":e&&n.brightness&&(a.fill=Ye(a.fill).brighten(n.brightness).get()),a}setColorRecursive(t,e,i,l,s){let n=this?.chart,r=n?.options?.colors;if(t){let a=qe(t,{colors:r,index:l,mapOptionsToLevel:this.mapOptionsToLevel,parentColor:e,parentColorIndex:i,series:this,siblings:s}),h=this.points[t.i];h&&(h.color=a.color,h.colorIndex=a.colorIndex);let d=-1;for(let u of t.children||[])this.setColorRecursive(u,a.color,a.colorIndex,++d,t.children.length)}}setPointValues(){let t=this,{points:e,xAxis:i,yAxis:l}=t,s=t.chart.styledMode,n=r=>s?0:t.pointAttribs(r)["stroke-width"]||0;for(let r of e){let{pointValues:a,visible:h}=r.node;if(a&&h){let{height:d,width:u,x:p,y:c}=a,g=n(r),v=i.toPixels(p,!0),b=i.toPixels(p+u,!0),f=l.toPixels(c,!0),B=l.toPixels(c+d,!0),I=v===0?g/2:ot(i.toPixels(p,!0),g,!0),C=b===i.len?i.len-g/2:ot(i.toPixels(p+u,!0),g,!0),G=f===l.len?l.len-g/2:ot(l.toPixels(c,!0),g,!0),x=B===0?g/2:ot(l.toPixels(c+d,!0),g,!0),T={x:Math.min(I,C),y:Math.min(G,x),width:Math.abs(C-I),height:Math.abs(x-G)};r.plotX=T.x+T.width/2,r.plotY=T.y+T.height/2,r.shapeArgs=T}else delete r.plotX,delete r.plotY}}setRootNode(t,e,i){ii(this,"setRootNode",Q({newRootId:t,previousRootId:this.rootNode,redraw:_(e,!0),series:this},i),function(l){let s=l.series;s.idPreviousRoot=l.previousRootId,s.rootNode=l.newRootId,s.isDirty=!0,l.redraw&&s.chart.redraw()})}setState(t){this.options.inactiveOtherPoints=!0,super.setState(t,!1),this.options.inactiveOtherPoints=!1}setTreeValues(t){let e=this.options,i=this.rootNode,l=this.nodeMap[i],s=typeof e.levelIsConstant!="boolean"||e.levelIsConstant,n=[],r=this.points[t.i],a=0;for(let d of t.children)d=this.setTreeValues(d),n.push(d),d.ignore||(a+=d.val);oi(n,(d,u)=>(d.sortIndex||0)-(u.sortIndex||0));let h=_(r?.simulatedValue,r?.options.value,a);return r&&(r.value=h),r?.isGroup&&e.cluster?.reductionFactor&&(h/=e.cluster.reductionFactor),t.parentNode?.point?.isGroup&&this.rootNode!==t.parent&&(t.visible=!1),Q(t,{children:n,childrenTotal:a,ignore:!(_(r?.visible,!0)&&h>0),isLeaf:t.visible&&!(this.type==="treegraph"?n.length>0:a),isGroup:r?.isGroup,levelDynamic:t.level-(s?0:l.level),name:_(r?.name,""),sortIndex:_(r?.sortIndex,-h),val:h}),t}sliceAndDice(t,e){return this.algorithmFill(!0,t,e)}squarified(t,e){return this.algorithmLowAspectRatio(!0,t,e)}strip(t,e){return this.algorithmLowAspectRatio(!1,t,e)}stripes(t,e){return this.algorithmFill(!1,t,e)}translate(t){let e=this,i=e.options,l=!t,s=Ze(e),n,r,a,h;t||s.startsWith("highcharts-grouped-treemap-points-")||((this.points||[]).forEach(d=>{d.isGroup&&d.destroy()}),super.translate(),t=e.getTree()),e.tree=t=t||e.tree,n=e.nodeMap[s],s===""||n||(e.setRootNode("",!1),s=e.rootNode,n=e.nodeMap[s]),n.point?.isGroup||(e.mapOptionsToLevel=Ke({from:n.level+1,levels:i.levels,to:t.height,defaults:{levelIsConstant:e.options.levelIsConstant,colorByPoint:i.colorByPoint}})),mt.recursive(e.nodeMap[e.rootNode],d=>{let u=d.parent,p=!1;return d.visible=!0,(u||u==="")&&(p=e.nodeMap[u]),p}),mt.recursive(e.nodeMap[e.rootNode].children,d=>{let u=!1;for(let p of d)p.visible=!0,p.children.length&&(u=(u||[]).concat(p.children));return u}),e.setTreeValues(t),e.axisRatio=e.xAxis.len/e.yAxis.len,e.nodeMap[""].pointValues=r={x:0,y:0,width:100,height:100},e.nodeMap[""].values=a=H(r,{width:r.width*e.axisRatio,direction:+(i.layoutStartingDirection!=="vertical"),val:t.val}),(this.hasOutsideDataLabels||this.hadOutsideDataLabels)&&this.drawDataLabels(),e.calculateChildrenAreas(t,a),e.colorAxis||i.colorByPoint||e.setColorRecursive(e.tree),i.allowTraversingTree&&n.pointValues&&(h=n.pointValues,e.xAxis.setExtremes(h.x,h.x+h.width,!1),e.yAxis.setExtremes(h.y,h.y+h.height,!1),e.xAxis.setScale(),e.yAxis.setScale()),e.setPointValues(),l&&e.applyTreeGrouping()}}lt.defaultOptions=H(Kt.defaultOptions,Fe),Q(lt.prototype,{buildKDTree:qt,colorAttribs:Wt.seriesMembers.colorAttribs,colorKey:"colorValue",directTouch:!0,getExtremesFromAll:!0,getSymbol:qt,optionalAxis:"colorAxis",parallelArrays:["x","y","value","colorValue"],pointArrayMap:["value","colorValue"],pointClass:Yt,NodeClass:jt,trackerGroups:["group","dataLabelsGroup"],utils:mt}),Wt.compose(lt),z().registerSeriesType("treemap",lt);let{deg2rad:Qt}=A(),{fireEvent:li,isNumber:Tt,pick:nt,relativeLength:ni}=A();(Et=vt||(vt={})).getCenter=function(){let o=this.options,t=this.chart,e=2*(o.slicedOffset||0),i=t.plotWidth-2*e,l=t.plotHeight-2*e,s=o.center,n=Math.min(i,l),r=o.thickness,a,h=o.size,d=o.innerSize||0,u,p;typeof h=="string"&&(h=parseFloat(h)),typeof d=="string"&&(d=parseFloat(d));let c=[nt(s?.[0],"50%"),nt(s?.[1],"50%"),nt(h&&h<0?void 0:o.size,"100%"),nt(d&&d<0?void 0:o.innerSize||0,"0%")];for(!t.angular||this instanceof Ft()||(c[3]=0),u=0;u<4;++u)p=c[u],a=u<2||u===2&&/%$/.test(p),c[u]=ni(p,[i,l,n,c[2]][u])+(a?e:0);return c[3]>c[2]&&(c[3]=c[2]),Tt(r)&&2*r<c[2]&&r>0&&(c[3]=c[2]-2*r),li(this,"afterGetCenter",{positions:c}),c},Et.getStartAndEndRadians=function(o,t){let e=Tt(o)?o:0,i=Tt(t)&&t>e&&t-e<360?t:e+360;return{start:Qt*(e+-90),end:Qt*(i+-90)}};let hi=vt,{series:{prototype:{pointClass:wt}},seriesTypes:{treemap:{prototype:{pointClass:di}}}}=z(),{correctFloat:te,extend:pi,pInt:ui}=A();class ee extends di{getDataLabelPath(t){let e=this.series.chart.renderer,i=this.shapeExisting,l=i.r+ui(t.options?.distance||0),s=i.start,n=i.end,r=s+(n-s)/2,a=r<0&&r>-Math.PI||r>Math.PI,h;return s===-Math.PI/2&&te(n)===te(1.5*Math.PI)&&(s=-Math.PI+Math.PI/360,n=-Math.PI/360,a=!0),n-s>Math.PI&&(a=!1,h=!0,n-s>2*Math.PI-.01&&(s+=.01,n-=.01)),this.dataLabelPath&&(this.dataLabelPath=this.dataLabelPath.destroy()),this.dataLabelPath=e.arc({open:!0,longArc:+!!h}).attr({start:a?s:n,end:a?n:s,clockwise:+a,x:i.x,y:i.y,r:(l+i.innerR)/2}).add(e.defs),this.dataLabelPath}isValid(){return!0}}pi(ee.prototype,{getClassName:wt.prototype.getClassName,haloPath:wt.prototype.haloPath,setState:wt.prototype.setState});let{seriesTypes:{treemap:ci}}=z(),{isNumber:tt,isObject:ie,merge:gi}=A();function se(o,t){let e=[];if(tt(o)&&tt(t)&&o<=t)for(let i=o;i<=t;i++)e.push(i);return e}let At={calculateLevelSizes:function(o,t){let e=ie(t)?t:{},i,l=0,s,n,r,a;if(ie(o)){for(let h of(i=gi({},o),n=se(tt(e.from)?e.from:0,tt(e.to)?e.to:0),r=Object.keys(i).filter(d=>n.indexOf(+d)===-1),s=a=tt(e.diffRadius)?e.diffRadius:0,n)){let d=i[h],u=d.levelSize.unit,p=d.levelSize.value;u==="weight"?l+=p:u==="percentage"?(d.levelSize={unit:"pixels",value:p/100*s},a-=d.levelSize.value):u==="pixels"&&(a-=p)}for(let h of n){let d=i[h];if(d.levelSize.unit==="weight"){let u=d.levelSize.value;i[h].levelSize={unit:"pixels",value:u/l*a}}}for(let h of r)i[h].levelSize={value:0,unit:"pixels"}}return i},getLevelFromAndTo:function({level:o,height:t}){return{from:o>0?o:1,to:o+t}},range:se,recursive:ci.prototype.utils.recursive},{deg2rad:vi}=A(),{addEvent:St,merge:bi,uniqueKey:fi,defined:re,extend:mi}=A();function xi(o,t){t=bi(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},t);let e=this.renderer.url,i=this.text||this,l=i.textPath,{attributes:s,enabled:n}=t;if(o=o||l&&l.path,l&&l.undo(),o&&n){let r=St(i,"afterModifyTree",a=>{if(o&&n){let h=o.attr("id");h||o.attr("id",h=fi());let d={x:0,y:0};re(s.dx)&&(d.dx=s.dx,delete s.dx),re(s.dy)&&(d.dy=s.dy,delete s.dy),i.attr(d),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let u=a.nodes.slice(0);a.nodes.length=0,a.nodes[0]={tagName:"textPath",attributes:mi(s,{"text-anchor":s.textAnchor,href:`${e}#${h}`}),children:u}}});i.textPath={path:o,undo:r}}else i.attr({dx:0,dy:0}),delete i.textPath;return this.added&&(i.textCache="",this.renderer.buildText(i)),this}function yi(o){let t=o.bBox,e=this.element?.querySelector("textPath");if(e){let i=[],{b:l,h:s}=this.renderer.fontMetrics(this.element),n=s-l,r=RegExp('(<tspan>|<tspan(?!\\sclass="highcharts-br")[^>]*>|<\\/tspan>)',"g"),a=e.innerHTML.replace(r,"").split(/<tspan class="highcharts-br"[^>]*>/),h=a.length,d=(u,p)=>{let{x:c,y:g}=p,v=(e.getRotationOfChar(u)-90)*vi,b=Math.cos(v),f=Math.sin(v);return[[c-n*b,g-n*f],[c+l*b,g+l*f]]};for(let u=0,p=0;p<h;p++){let c=a[p].length;for(let g=0;g<c;g+=5)try{let v=u+g+p,[b,f]=d(v,e.getStartPositionOfChar(v));g===0?(i.push(f),i.push(b)):(p===0&&i.unshift(f),p===h-1&&i.push(b))}catch{break}u+=c-1;try{let g=u+p,v=e.getEndPositionOfChar(g),[b,f]=d(g,v);i.unshift(f),i.unshift(b)}catch{break}}i.length&&i.push(i[0].slice()),t.polygon=i}return t}function Li(o){let t=o.labelOptions,e=o.point,i=t[e.formatPrefix+"TextPath"]||t.textPath;i&&!t.useHTML&&(this.setTextPath(e.getDataLabelPath?.(this)||e.graphic,i),e.dataLabelPath&&!i.enabled&&(e.dataLabelPath=e.dataLabelPath.destroy()))}let{getCenter:Pi,getStartAndEndRadians:Ti}=hi,{noop:wi}=A(),{column:Rt,treemap:oe}=z().seriesTypes,{getColor:Ai,getLevelOptions:Si,setTreeValues:Ri,updateRootId:Oi}=$t,{defined:ae,error:Ci,extend:Ot,fireEvent:Mi,isNumber:Ct,isObject:ht,isString:Bi,merge:dt,splat:Ii}=A();({compose:function(o){St(o,"afterGetBBox",yi),St(o,"beforeAddingDataLabel",Li);let t=o.prototype;t.setTextPath||(t.setTextPath=xi)}}).compose(Ut());let Ni=180/Math.PI,le=function(o,t,e,i){return{x:o+Math.cos(e)*i,y:t+Math.sin(e)*i}};function Di(o,t){let e=t.mapIdToNode,i=o.parent,l=i?e[i]:void 0,s=t.series,n=s.chart,r=s.points[o.i],a=Ai(o,{colors:s.options.colors||n&&n.options.colors,colorIndex:s.colorIndex,index:t.index,mapOptionsToLevel:t.mapOptionsToLevel,parentColor:l&&l.color,parentColorIndex:l&&l.colorIndex,series:t.series,siblings:t.siblings});return o.color=a.color,o.colorIndex=a.colorIndex,r&&(r.color=o.color,r.colorIndex=o.colorIndex,o.sliced=o.id!==t.idRoot&&r.sliced),o}class Mt extends oe{alignDataLabel(t,e,i){if(!i.textPath||!i.textPath.enabled)return e.placed=!1,super.alignDataLabel.apply(this,arguments)}animate(t){let e,i=this.chart,l=[i.plotWidth/2,i.plotHeight/2],s=i.plotLeft,n=i.plotTop,r=this.group;t?(e={translateX:l[0]+s,translateY:l[1]+n,scaleX:.001,scaleY:.001,rotation:10,opacity:.01},r.attr(e)):(e={translateX:s,translateY:n,scaleX:1,scaleY:1,rotation:0,opacity:1},r.animate(e,this.options.animation))}drawPoints(){let t=this,e=t.mapOptionsToLevel,i=t.shapeRoot,l=t.group,s=t.hasRendered,n=t.rootNode,r=t.idPreviousRoot,a=t.nodeMap,h=a[r],d=h&&h.shapeArgs,u=t.points,p=t.startAndEndRadians,c=t.chart,g=c&&c.options&&c.options.chart||{},v=typeof g.animation!="boolean"||g.animation,b=t.center,f={x:b[0],y:b[1]},B=b[3]/2,I=t.chart.renderer,C=!!(v&&s&&n!==r&&t.dataLabelsGroup),G,x=!1,T=!1;for(let S of(C&&(t.dataLabelsGroup.attr({opacity:0}),G=function(){x=!0,t.dataLabelsGroup.animate({opacity:1,visibility:"inherit"})}),u)){let V,ne,it=S.node,Hi=e[it.level],Gi=S.shapeExisting||{},k=it.shapeArgs||{},pt=!!(it.visible&&it.shapeArgs);k.borderRadius=t.options.borderRadius,V=s&&v?(function(w,y){let U=y.point,R=y.radians,O=y.innerR,ut=y.idRoot,Bt=y.idPreviousRoot,m=y.shapeExisting,Y=y.shapeRoot,N=y.shapePreviousRoot,X=y.visible,q={},D={end:w.end,start:w.start,innerR:w.innerR,r:w.r,x:w.x,y:w.y};return X?!U.graphic&&N&&((q=ut===U.id?{start:R.start,end:R.end}:N.end<=w.start?{start:R.end,end:R.end}:{start:R.start,end:R.start}).innerR=q.r=O):U.graphic&&(Bt===U.id?D={innerR:O,r:O}:Y&&(D=Y.end<=m.start?{innerR:O,r:O,start:R.end,end:R.end}:{innerR:O,r:O,start:R.start,end:R.start})),{from:q,to:D}})(k,{center:f,point:S,radians:p,innerR:B,idRoot:n,idPreviousRoot:r,shapeExisting:Gi,shapeRoot:i,shapePreviousRoot:d,visible:pt}):{to:k,from:{}},Ot(S,{shapeExisting:k,tooltipPos:[k.plotX,k.plotY],drillId:(function(w,y,U){let R;return w.node.isLeaf||(R=y===w.id?U[y].parent:w.id),R})(S,n,a),name:""+(S.name||S.id||S.index),plotX:k.plotX,plotY:k.plotY,value:it.val,isInside:pt,isNull:!pt}),S.dlOptions=Nt(It({},(function(w){let y=w.point,U=ht(w.shapeArgs)?w.shapeArgs:{},{end:R=0,radius:O=0,start:ut=0}=U,Bt=ht(w.optionsPoint)?w.optionsPoint.dataLabels:{},m=dt(Ii(ht(w.level)?w.level.dataLabels:{})[0],Bt),Y=m.style=m.style||{},{innerArcLength:N=0,outerArcLength:X=0}=y,q,D,M=m.rotationMode,E=ae(Y.width)?parseInt(Y.width||"0",10):void 0;return Ct(m.rotation)||((M==="auto"||M==="circular")&&(m.useHTML&&M==="circular"&&(M="auto"),N<1&&X>O?(q=0,y.dataLabelPath&&M==="circular"&&(m.textPath={enabled:!0}),R-ut<Math.PI&&(E=.7*O)):N>1&&X>1.5*O?M==="circular"?m.textPath={enabled:!0,attributes:{dy:5}}:M="parallel":(y.dataLabel?.textPath&&M==="circular"&&(m.textPath={enabled:!1}),M="perpendicular")),M!=="auto"&&M!=="circular"&&(y.dataLabel?.textPath&&(m.textPath={enabled:!1}),q=R-(R-ut)/2),M==="parallel"?E=Math.min(2.5*O,(X+N)/2):!ae(E)&&O&&(E=y.node.level===1?2*O:O),M==="perpendicular"&&(X<16?E=1:U.radius&&(Y.lineClamp=Math.floor(N/16)||1,E=O-(N<16?(16-N)/(X-N)*O:0))),E=Math.max((E||0)-2*(m.padding||0),1),D=(q||0)*Ni%180,M==="parallel"&&(D-=90),D>90?D-=180:D<-90&&(D+=180),m.rotation=D),m.textPath&&(y.shapeExisting.innerR===0&&m.textPath.enabled?(m.rotation=0,m.textPath.enabled=!1,E=Math.max(2*y.shapeExisting.r-2*(m.padding||0),1)):y.dlOptions?.textPath&&!y.dlOptions.textPath.enabled&&M==="circular"&&(m.textPath.enabled=!0),m.textPath.enabled&&(m.rotation=0,E=Math.max((X+N)/2-2*(m.padding||0),1),Y.whiteSpace="nowrap")),Y.width=E+"px",m})({point:S,level:Hi,optionsPoint:S.options,shapeArgs:k})),{zIndex:void 0}),!T&&pt&&(T=!0,ne=G),S.draw({animatableAttribs:V.to,attribs:Ot(V.from,!c.styledMode&&t.pointAttribs(S,S.selected&&"select")),onComplete:ne,group:l,renderer:I,shapeType:"arc",shapeArgs:k})}C&&T?(t.hasRendered=!1,t.options.dataLabels.defer=!0,Rt.prototype.drawDataLabels.call(t),t.hasRendered=!0,x&&G?.()):Rt.prototype.drawDataLabels.call(t),t.idPreviousRoot=n}layoutAlgorithm(t,e,i){let l=t.start,s=t.end-l,n=t.val,r=t.x,a=t.y,h=i&&ht(i.levelSize)&&Ct(i.levelSize.value)?i.levelSize.value:0,d=t.r,u=d+h,p=i&&Ct(i.slicedOffset)?i.slicedOffset:0;return(e||[]).reduce((c,g)=>{let v=1/n*g.val*s,b=le(r,a,l+v/2,p),f={x:g.sliced?b.x:r,y:g.sliced?b.y:a,innerR:d,r:u,radius:h,start:l,end:l+v};return c.push(f),l=f.end,c},[])}setRootNode(t,e,i){if(this.nodeMap[t].level===1&&this.nodeList.filter(l=>l.level===1).length===1){if(this.idPreviousRoot==="")return;t=""}super.setRootNode(t,e,i)}setShapeArgs(t,e,i){let l=i[t.level+1],s=t.children.filter(function(a){return a.visible}),n=[];n=this.layoutAlgorithm(e,s,l);let r=-1;for(let a of s){let h=n[++r],d=h.start+(h.end-h.start)/2,u=h.innerR+(h.r-h.innerR)/2,p=h.end-h.start,c=h.innerR===0&&p>6.28?{x:h.x,y:h.y}:le(h.x,h.y,d,u),g=a.val?a.childrenTotal>a.val?a.childrenTotal:a.val:a.childrenTotal;this.points[a.i]&&(this.points[a.i].innerArcLength=p*h.innerR,this.points[a.i].outerArcLength=p*h.r),a.shapeArgs=dt(h,{plotX:c.x,plotY:c.y}),a.values=dt(h,{val:g}),a.children.length&&this.setShapeArgs(a,a.values,i)}}translate(){let t=this.options,e=this.center=this.getCenter(),i=this.startAndEndRadians=Ti(t.startAngle,t.endAngle),l=e[3]/2,s=e[2]/2,n=Oi(this),r=this.nodeMap,a,h=r&&r[n],d={};this.shapeRoot=h&&h.shapeArgs,this.generatePoints(),Mi(this,"afterTranslate");let u=this.tree=this.getTree(),p=Bi((h=(r=this.nodeMap)[n]).parent)?h.parent:"",c=r[p],{from:g,to:v}=At.getLevelFromAndTo(h);a=Si({from:g,levels:this.options.levels,to:v,defaults:{colorByPoint:t.colorByPoint,dataLabels:t.dataLabels,levelIsConstant:t.levelIsConstant,levelSize:t.levelSize,slicedOffset:t.slicedOffset}}),a=At.calculateLevelSizes(a,{diffRadius:s-l,from:g,to:v}),Ri(u,{before:Di,idRoot:n,levelIsConstant:t.levelIsConstant,mapOptionsToLevel:a,mapIdToNode:r,points:this.points,series:this});let b=r[""].shapeArgs={end:i.end,r:l,start:i.start,val:h.val,x:e[0],y:e[1]};for(let f of(this.setShapeArgs(c,b,a),this.mapOptionsToLevel=a,this.points))d[f.id]&&Ci(31,!1,this.chart),d[f.id]=!0}}Mt.defaultOptions=dt(oe.defaultOptions,{center:["50%","50%"],clip:!1,colorByPoint:!1,opacity:1,dataLabels:{allowOverlap:!0,defer:!0,rotationMode:"circular",style:{textOverflow:"ellipsis"}},rootId:void 0,levelIsConstant:!0,levelSize:{value:1,unit:"weight"},slicedOffset:10}),Ot(Mt.prototype,{axisTypes:[],drawDataLabels:wi,getCenter:Pi,isCartesian:!1,onPointSupported:!0,pointAttribs:Rt.prototype.pointAttribs,pointClass:ee,NodeClass:class extends jt{},utils:At}),z().registerSeriesType("sunburst",Mt);let et=A();et.Breadcrumbs=et.Breadcrumbs||zt,et.Breadcrumbs.compose(et.Chart,et.defaultOptions);let Ei=A();return Gt.default})())});export default zi();
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import{a as wt,b as Mt,e as ye}from"./chunk-ZW5NV4UO.js";var be=ye((N,ht)=>{(function(f,E){typeof N=="object"&&typeof ht=="object"?ht.exports=E(f._Highcharts,f._Highcharts.Axis,f._Highcharts.Color,f._Highcharts.LegendSymbol,f._Highcharts.SeriesRegistry,f._Highcharts.SVGElement,f._Highcharts.SVGRenderer):typeof define=="function"&&define.amd?define("highcharts/modules/heatmap",["highcharts/highcharts"],function(M){return E(M,M.Axis,M.Color,M.LegendSymbol,M.SeriesRegistry,M.SVGElement,M.SVGRenderer)}):typeof N=="object"?N["highcharts/modules/heatmap"]=E(f._Highcharts,f._Highcharts.Axis,f._Highcharts.Color,f._Highcharts.LegendSymbol,f._Highcharts.SeriesRegistry,f._Highcharts.SVGElement,f._Highcharts.SVGRenderer):f.Highcharts=E(f.Highcharts,f.Highcharts.Axis,f.Highcharts.Color,f.Highcharts.LegendSymbol,f.Highcharts.SeriesRegistry,f.Highcharts.SVGElement,f.Highcharts.SVGRenderer)})("u"<typeof window?N:window,(f,E,M,kt,Lt,It,St)=>(()=>{"use strict";var W,Z,q,$,Pt={28:r=>{r.exports=It},500:r=>{r.exports=kt},512:r=>{r.exports=Lt},532:r=>{r.exports=E},540:r=>{r.exports=St},620:r=>{r.exports=M},944:r=>{r.exports=f}},dt={};function v(r){var t=dt[r];if(t!==void 0)return t.exports;var e=dt[r]={exports:{}};return Pt[r](e,e.exports,v),e.exports}v.n=r=>{var t=r&&r.__esModule?()=>r.default:()=>r;return v.d(t,{a:t}),t},v.d=(r,t)=>{for(var e in t)v.o(t,e)&&!v.o(r,e)&&Object.defineProperty(r,e,{enumerable:!0,get:t[e]})},v.o=(r,t)=>Object.prototype.hasOwnProperty.call(r,t);var pt={};v.d(pt,{default:()=>ue});var Tt=v(944),A=v.n(Tt),Et=v(532),ct=v.n(Et),Dt=v(620),B=v.n(Dt);let{parse:J}=B(),{merge:Ot}=A();(W=Z||(Z={})).initDataClasses=function(r){let t=this.chart,e=this.legendItem=this.legendItem||{},i=this.options,o=r.dataClasses||[],s,l,a=t.options.chart.colorCount,d=0,p;this.dataClasses=l=[],e.labels=[];for(let h=0,g=o.length;h<g;++h)s=Ot(s=o[h]),l.push(s),(t.styledMode||!s.color)&&(i.dataClassColor==="category"?(t.styledMode||(a=(p=t.options.colors||[]).length,s.color=p[d]),s.colorIndex=d,++d===a&&(d=0)):s.color=J(i.minColor).tweenTo(J(i.maxColor),g<2?.5:h/(g-1)))},W.initStops=function(){let r=this.options,t=this.stops=r.stops||[[0,r.minColor||""],[1,r.maxColor||""]];for(let e=0,i=t.length;e<i;++e)t[e].color=J(t[e][1])},W.normalizedValue=function(r){let t=this.max||0,e=this.min||0;return this.logarithmic&&(r=this.logarithmic.log2lin(r)),1-(t-r)/(t-e||1)},W.toColor=function(r,t){let e,i,o,s,l,a,d=this.dataClasses,p=this.stops;if(d){for(a=d.length;a--;)if(i=(l=d[a]).from,o=l.to,(i===void 0||r>=i)&&(o===void 0||r<=o)){s=l.color,t&&(t.dataClass=a,t.colorIndex=l.colorIndex);break}}else{for(e=this.normalizedValue(r),a=p.length;a--&&!(e>p[a][0]););i=p[a]||p[a+1],e=1-((o=p[a+1]||i)[0]-e)/(o[0]-i[0]||1),s=i.color.tweenTo(o.color,e)}return s};let Vt=Z,{parse:_}=B(),{addEvent:D,extend:ut,merge:Ht,pick:zt,splat:Rt}=A();(function(r){let t;function e(){let{userOptions:n}=this;this.colorAxis=[],n.colorAxis&&(n.colorAxis=Rt(n.colorAxis),n.colorAxis.map(u=>new t(this,u)))}function i(n){let u=this.chart.colorAxis||[],x=C=>{let b=n.allItems.indexOf(C);b!==-1&&(this.destroyItem(n.allItems[b]),n.allItems.splice(b,1))},c=[],m,y;for(u.forEach(function(C){m=C.options,m?.showInLegend&&(m.dataClasses&&m.visible?c=c.concat(C.getDataClassLegendSymbols()):m.visible&&c.push(C),C.series.forEach(function(b){(!b.options.showInLegend||m.dataClasses)&&(b.options.legendType==="point"?b.points.forEach(function(k){x(k)}):x(b))}))}),y=c.length;y--;)n.allItems.unshift(c[y])}function o(n){n.visible&&n.item.legendColor&&n.item.legendItem.symbol.attr({fill:n.item.legendColor})}function s(n){this.chart.colorAxis?.forEach(u=>{u.update({},n.redraw)})}function l(){(this.chart.colorAxis?.length||this.colorAttribs)&&this.translateColors()}function a(){let n=this.axisTypes;n?n.indexOf("colorAxis")===-1&&n.push("colorAxis"):this.axisTypes=["colorAxis"]}function d(n){let u=this,x=n?"show":"hide";u.visible=u.options.visible=!!n,["graphic","dataLabel"].forEach(function(c){u[c]&&u[c][x]()}),this.series.buildKDTree()}function p(){let n=this,u=this.getPointsCollection(),x=this.options.nullColor,c=this.colorAxis,m=this.colorKey;u.forEach(y=>{let C=y.getNestedProperty(m),b=y.options.color||(y.isNull||y.value===null?x:c&&C!==void 0?c.toColor(C,y):y.color||n.color);b&&y.color!==b&&(y.color=b,n.options.legendType==="point"&&y.legendItem&&y.legendItem.label&&n.chart.legend.colorizeItem(y,y.visible))})}function h(){this.elem.attr("fill",_(this.start).tweenTo(_(this.end),this.pos),void 0,!0)}function g(){this.elem.attr("stroke",_(this.start).tweenTo(_(this.end),this.pos),void 0,!0)}r.compose=function(n,u,x,c,m){var y;let C,b=u.prototype,k=x.prototype,G=m.prototype;b.collectionsWithUpdate.includes("colorAxis")||(t=n,b.collectionsWithUpdate.push("colorAxis"),b.collectionsWithInit.colorAxis=[b.addColorAxis],D(u,"afterCreateAxes",e),C=(y=u).prototype.createAxis,y.prototype.createAxis=function(Y,H){if(Y!=="colorAxis")return C.apply(this,arguments);let it=new t(this,Ht(H.axis,{index:this[Y].length,isX:!1}));return this.isDirtyLegend=!0,this.axes.forEach(P=>{P.series=[]}),this.series.forEach(P=>{P.bindAxes(),P.isDirtyData=!0}),zt(H.redraw,!0)&&this.redraw(H.animation),it},k.fillSetter=h,k.strokeSetter=g,D(c,"afterGetAllItems",i),D(c,"afterColorizeItem",o),D(c,"afterUpdate",s),ut(G,{optionalAxis:"colorAxis",translateColors:p}),ut(G.pointClass.prototype,{setVisible:d}),D(m,"afterTranslate",l,{order:1}),D(m,"bindAxes",a))},r.pointSetVisible=d})(q||(q={}));let Gt=q;var Nt=v(500),Wt=v.n(Nt),_t=v(512),z=v.n(_t);let{defaultOptions:Q}=A(),{series:gt}=z(),{defined:K,extend:mt,fireEvent:Kt,isArray:Xt,isNumber:jt,merge:ft,pick:L,relativeLength:xt}=A();Q.colorAxis=ft(Q.xAxis,{lineWidth:0,minPadding:0,maxPadding:0,gridLineColor:"#ffffff",gridLineWidth:1,tickPixelInterval:72,startOnTick:!0,endOnTick:!0,offset:0,marker:{animation:{duration:50},width:.01,color:"#999999"},labels:{distance:8,overflow:"justify",rotation:0},minColor:"#e6e9ff",maxColor:"#0022ff",tickLength:5,showInLegend:!0});class w extends ct(){static compose(t,e,i,o){Gt.compose(w,t,e,i,o)}constructor(t,e){super(t,e),this.coll="colorAxis",this.visible=!0,this.init(t,e)}init(t,e){let i=t.options.legend||{},o=e.layout?e.layout!=="vertical":i.layout!=="vertical";this.side=e.side||o?2:1,this.reversed=e.reversed,this.opposite=!o,super.init(t,e,"colorAxis"),this.userOptions=e,Xt(t.userOptions.colorAxis)&&(t.userOptions.colorAxis[this.index]=e),e.dataClasses&&this.initDataClasses(e),this.initStops(),this.horiz=o,this.zoomEnabled=!1}hasData(){return!!(this.tickPositions||[]).length}setTickPositions(){if(!this.dataClasses)return super.setTickPositions()}setOptions(t){let e=ft(Q.colorAxis,t,{showEmpty:!1,title:null,visible:this.chart.options.legend.enabled&&t.visible!==!1});super.setOptions(e),this.options.crosshair=this.options.marker}setAxisSize(){let t=this.chart,e=this.legendItem?.symbol,{width:i,height:o}=this.getSize();e&&(this.left=+e.attr("x"),this.top=+e.attr("y"),this.width=i=+e.attr("width"),this.height=o=+e.attr("height"),this.right=t.chartWidth-this.left-i,this.bottom=t.chartHeight-this.top-o,this.pos=this.horiz?this.left:this.top),this.len=(this.horiz?i:o)||w.defaultLegendLength}getOffset(){let t=this.legendItem?.group,e=this.chart.axisOffset[this.side];if(t){this.axisParent=t,super.getOffset();let i=this.chart.legend;i.allItems.forEach(function(o){o instanceof w&&o.drawLegendSymbol(i,o)}),i.render(),this.chart.getMargins(!0),this.chart.series.some(o=>o.isDrilling)||(this.isDirty=!0),this.added||(this.added=!0),this.labelLeft=0,this.labelRight=this.width,this.chart.axisOffset[this.side]=e}}setLegendColor(){let t=this.horiz,e=this.reversed,i=+!!e,o=+!e,s=t?[i,0,o,0]:[0,o,0,i];this.legendColor={linearGradient:{x1:s[0],y1:s[1],x2:s[2],y2:s[3]},stops:this.stops}}drawLegendSymbol(t,e){let i=e.legendItem||{},o=t.padding,s=t.options,l=this.options.labels,a=L(s.itemDistance,10),d=this.horiz,{width:p,height:h}=this.getSize(),g=L(s.labelPadding,d?16:30);this.setLegendColor(),i.symbol||(i.symbol=this.chart.renderer.symbol("roundedRect").attr({r:s.symbolRadius??3,zIndex:1}).add(i.group)),i.symbol.attr({x:0,y:(t.baseline||0)-11,width:p,height:h}),i.labelWidth=p+o+(d?a:L(l.x,l.distance)+(this.maxLabelLength||0)),i.labelHeight=h+o+(d?g:0)}setState(t){this.series.forEach(function(e){e.setState(t)})}setVisible(){}getSeriesExtremes(){let t=this.series,e,i,o,s,l=t.length;for(this.dataMin=1/0,this.dataMax=-1/0;l--;){for(let a of(i=(s=t[l]).colorKey=L(s.options.colorKey,s.colorKey,s.pointValKey,s.zoneAxis,"y"),o=s[i+"Min"]&&s[i+"Max"],[i,"value","y"]))if((e=s.getColumn(a)).length)break;if(o)s.minColorValue=s[i+"Min"],s.maxColorValue=s[i+"Max"];else{let a=gt.prototype.getExtremes.call(s,e);s.minColorValue=a.dataMin,s.maxColorValue=a.dataMax}K(s.minColorValue)&&K(s.maxColorValue)&&(this.dataMin=Math.min(this.dataMin,s.minColorValue),this.dataMax=Math.max(this.dataMax,s.maxColorValue)),o||gt.prototype.applyExtremes.call(s)}}drawCrosshair(t,e){let i,o=this.legendItem||{},s=e?.plotX,l=e?.plotY,a=this.pos,d=this.len;e&&((i=this.toPixels(e.getNestedProperty(e.series.colorKey)))<a?i=a-2:i>a+d&&(i=a+d+2),e.plotX=i,e.plotY=this.len-i,super.drawCrosshair(t,e),e.plotX=s,e.plotY=l,this.cross&&!this.cross.addedToColorAxis&&o.group&&(this.cross.addClass("highcharts-coloraxis-marker").add(o.group),this.cross.addedToColorAxis=!0,this.chart.styledMode||typeof this.crosshair!="object"||this.cross.attr({fill:this.crosshair.color})))}getPlotLinePath(t){let e=this.left,i=t.translatedValue,o=this.top;return jt(i)?this.horiz?[["M",i-4,o-6],["L",i+4,o-6],["L",i,o],["Z"]]:[["M",e,i],["L",e-6,i+6],["L",e-6,i-6],["Z"]]:super.getPlotLinePath(t)}update(t,e){let i=this.chart.legend;this.series.forEach(o=>{o.isDirtyData=!0}),(t.dataClasses&&i.allItems||this.dataClasses)&&this.destroyItems(),super.update(t,e),this.legendItem?.label&&(this.setLegendColor(),i.colorizeItem(this,!0))}destroyItems(){let t=this.chart,e=this.legendItem||{};if(e.label)t.legend.destroyItem(this);else if(e.labels)for(let i of e.labels)t.legend.destroyItem(i);t.isDirtyLegend=!0}destroy(){this.chart.isDirtyLegend=!0,this.destroyItems(),super.destroy(...[].slice.call(arguments))}remove(t){this.destroyItems(),super.remove(t)}getDataClassLegendSymbols(){let t,e=this,i=e.chart,o=e.legendItem&&e.legendItem.labels||[],s=i.options.legend,l=L(s.valueDecimals,-1),a=L(s.valueSuffix,""),d=p=>e.series.reduce((h,g)=>(h.push(...g.points.filter(n=>n.dataClass===p)),h),[]);return o.length||e.dataClasses.forEach((p,h)=>{let g=p.from,n=p.to,{numberFormatter:u}=i,x=!0;t="",g===void 0?t="< ":n===void 0&&(t="> "),g!==void 0&&(t+=u(g,l)+a),g!==void 0&&n!==void 0&&(t+=" - "),n!==void 0&&(t+=u(n,l)+a),o.push(mt({chart:i,name:t,options:{},drawLegendSymbol:Wt().rectangle,visible:!0,isDataClass:!0,setState:c=>{for(let m of d(h))m.setState(c)},setVisible:function(){this.visible=x=e.visible=!x;let c=[];for(let m of d(h))m.setVisible(x),m.hiddenInDataClass=!x,c.indexOf(m.series)===-1&&c.push(m.series);i.legend.colorizeItem(this,x),c.forEach(m=>{Kt(m,"afterDataClassLegendClick")})}},p))}),o}getSize(){let{chart:t,horiz:e}=this,{height:i,width:o}=this.options,{legend:s}=t.options;return{width:L(K(o)?xt(o,t.chartWidth):void 0,s?.symbolWidth,e?w.defaultLegendLength:12),height:L(K(i)?xt(i,t.chartHeight):void 0,s?.symbolHeight,e?12:w.defaultLegendLength)}}}w.defaultLegendLength=200,w.keepProps=["legendItem"],mt(w.prototype,Vt),Array.prototype.push.apply(ct().keepProps,w.keepProps);let S=A();S.ColorAxis=S.ColorAxis||w,S.ColorAxis.compose(S.Chart,S.Fx,S.Legend,S.Series);var Ut=v(28),Yt=v.n(Ut);let{column:{prototype:Ft}}=z().seriesTypes,{addEvent:Zt,defined:qt}=A();var tt=$||($={});function $t(r){let t=this.series,e=t.chart.renderer;this.moveToTopOnHover&&this.graphic&&(t.stateMarkerGraphic||(t.stateMarkerGraphic=new(Yt())(e,"use").css({pointerEvents:"none"}).add(this.graphic.parentGroup)),r?.state==="hover"?(this.graphic.attr({id:this.id}),t.stateMarkerGraphic.attr({href:`${e.url}#${this.id}`,visibility:"visible"})):t.stateMarkerGraphic.attr({href:""}))}tt.pointMembers={dataLabelOnNull:!0,moveToTopOnHover:!0,isValid:function(){return this.value!==null&&this.value!==1/0&&this.value!==-1/0&&(this.value===void 0||!isNaN(this.value))}},tt.seriesMembers={colorKey:"value",axisTypes:["xAxis","yAxis","colorAxis"],parallelArrays:["x","y","value"],pointArrayMap:["value"],trackerGroups:["group","markerGroup","dataLabelsGroup"],colorAttribs:function(r){let t={};return qt(r.color)&&(!r.state||r.state==="normal")&&(t[this.colorProp||"fill"]=r.color),t},pointAttribs:Ft.pointAttribs},tt.compose=function(r){return Zt(r.prototype.pointClass,"afterSetState",$t),r};let O=$,{scatter:{prototype:{pointClass:Bt}}}=z().seriesTypes,{clamp:X,defined:Jt,extend:Qt,pick:te}=A();class yt extends Bt{applyOptions(t,e){return(this.isNull||this.value===null)&&delete this.color,super.applyOptions(t,e),this.formatPrefix=this.isNull||this.value===null?"null":"point",this}getCellAttributes(){let t=this.series,e=t.options,i=(e.colsize||1)/2,o=(e.rowsize||1)/2,s=t.xAxis,l=t.yAxis,a=this.options.marker||t.options.marker,d=t.pointPlacementToXValue(),p=te(this.pointPadding,e.pointPadding,0),h={x1:X(Math.round(s.len-s.translate(this.x-i,!1,!0,!1,!0,-d)),-s.len,2*s.len),x2:X(Math.round(s.len-s.translate(this.x+i,!1,!0,!1,!0,-d)),-s.len,2*s.len),y1:X(Math.round(l.translate(this.y-o,!1,!0,!1,!0)),-l.len,2*l.len),y2:X(Math.round(l.translate(this.y+o,!1,!0,!1,!0)),-l.len,2*l.len)};for(let g of[["width","x"],["height","y"]]){let n=g[0],u=g[1],x=u+"1",c=u+"2",m=Math.abs(h[x]-h[c]),y=a&&a.lineWidth||0,C=Math.abs(h[x]+h[c])/2,b=a&&a[n];if(Jt(b)&&b<m){let k=b/2+y/2;h[x]=C-k,h[c]=C+k}p&&((u==="x"&&s.reversed||u==="y"&&!l.reversed)&&(x=c,c=u+"1"),h[x]+=p,h[c]-=p)}return h}haloPath(t){if(!t)return[];let{x:e=0,y:i=0,width:o=0,height:s=0}=this.shapeArgs||{};return[["M",e-t,i-t],["L",e-t,i+s+t],["L",e+o+t,i+s+t],["L",e+o+t,i-t],["Z"]]}isValid(){return this.value!==1/0&&this.value!==-1/0}}Qt(yt.prototype,{dataLabelOnNull:!0,moveToTopOnHover:!0,ttBelow:!1});let{isNumber:ee}=A();var ie=v(540),se=v.n(ie);let{doc:oe}=A(),{defined:re,pick:bt}=A(),{series:V,seriesTypes:{column:ae,scatter:vt}}=z(),{prototype:{symbols:j}}=se(),{addEvent:le,extend:ne,fireEvent:he,isNumber:U,merge:et,pick:de}=A(),{colorFromPoint:pe,getContext:ce}={colorFromPoint:function(r,t){let e=t.series.colorAxis;if(e){let i=e.toColor(r||0,t).split(")")[0].split("(")[1].split(",").map(o=>bt(parseFloat(o),parseInt(o,10)));return i[3]=255*bt(i[3],1),re(r)&&t.visible||(i[3]=0),i}return[0,0,0,0]},getContext:function(r){let{canvas:t,context:e}=r;return t&&e?(e.clearRect(0,0,t.width,t.height),e):(r.canvas=oe.createElement("canvas"),r.context=r.canvas.getContext("2d",{willReadFrequently:!0})||void 0,r.context)}};class R extends vt{constructor(){super(...arguments),this.valueMax=NaN,this.valueMin=NaN,this.isDirtyCanvas=!0}drawPoints(){let t=this,e=t.options,i=e.interpolation,o=e.marker||{};if(i){let{image:s,chart:l,xAxis:a,yAxis:d}=t,{reversed:p=!1,len:h}=a,{reversed:g=!1,len:n}=d,u={width:h,height:n};if(!s||t.isDirtyData||t.isDirtyCanvas){let x=ce(t),{canvas:c,options:{colsize:m=1,rowsize:y=1},points:C,points:{length:b}}=t,k=l.colorAxis&&l.colorAxis[0];if(c&&x&&k){let{min:G,max:Y}=a.getExtremes(),{min:H,max:it}=d.getExtremes(),P=Y-G,Ct=it-H,st=Math.round(P/m/8*8),ot=Math.round(Ct/y/8*8),[ge,me]=[[st,st/P,p,"ceil"],[ot,ot/Ct,!g,"floor"]].map(([T,I,lt,F])=>lt?nt=>Math[F](T-I*nt):nt=>Math[F](I*nt)),rt=c.width=st+1,at=rt*(c.height=ot+1),fe=(b-1)/at,At=new Uint8ClampedArray(4*at),xe=(T,I)=>4*Math.ceil(rt*me(I-H)+ge(T-G));t.buildKDTree();for(let T=0;T<at;T++){let I=C[Math.ceil(fe*T)],{x:lt,y:F}=I;At.set(pe(I.value,I),xe(lt,F))}x.putImageData(new ImageData(At,rt),0,0),s?s.attr(Mt(wt({},u),{href:c.toDataURL("image/png",1)})):(t.directTouch=!1,t.image=l.renderer.image(c.toDataURL("image/png",1)).attr(u).add(t.group))}t.isDirtyCanvas=!1}else(s.width!==h||s.height!==n)&&s.attr(u)}else(o.enabled||t._hasPointMarkers)&&(V.prototype.drawPoints.call(t),t.points.forEach(s=>{s.graphic&&(s.graphic[t.chart.styledMode?"css":"animate"](t.colorAttribs(s)),s.value===null&&s.graphic.addClass("highcharts-null-point"))}))}getExtremes(){let{dataMin:t,dataMax:e}=V.prototype.getExtremes.call(this,this.getColumn("value"));return U(t)&&(this.valueMin=t),U(e)&&(this.valueMax=e),V.prototype.getExtremes.call(this)}getValidPoints(t,e){return V.prototype.getValidPoints.call(this,t,e,!0)}hasData(){return!!this.dataTable.rowCount}init(){super.init.apply(this,arguments);let t=this.options;t.pointRange=de(t.pointRange,t.colsize||1),this.yAxis.axisPointRange=t.rowsize||1,j.ellipse=j.circle,t.marker&&U(t.borderRadius)&&(t.marker.r=t.borderRadius)}markerAttribs(t,e){let i=t.shapeArgs||{};if(t.hasImage)return{x:t.plotX,y:t.plotY};if(e&&e!=="normal"){let o=t.options.marker||{},s=this.options.marker||{},l=s.states?.[e]||{},a=o.states?.[e]||{},d=(a.width||l.width||i.width||0)+(a.widthPlus||l.widthPlus||0),p=(a.height||l.height||i.height||0)+(a.heightPlus||l.heightPlus||0);return{x:(i.x||0)+((i.width||0)-d)/2,y:(i.y||0)+((i.height||0)-p)/2,width:d,height:p}}return i}pointAttribs(t,e){let i=V.prototype.pointAttribs.call(this,t,e),o=this.options||{},s=this.chart.options.plotOptions||{},l=s.series||{},a=s.heatmap||{},d=t?.options.borderColor||o.borderColor||a.borderColor||l.borderColor,p=t?.options.borderWidth||o.borderWidth||a.borderWidth||l.borderWidth||i["stroke-width"];if(i.stroke=t?.marker?.lineColor||o.marker?.lineColor||d||this.color,i["stroke-width"]=p,e&&e!=="normal"){let h=et(o.states?.[e],o.marker?.states?.[e],t?.options.marker?.states?.[e]||{});i.fill=h.color||B().parse(i.fill).brighten(h.brightness||0).get(),i.stroke=h.lineColor||i.stroke}return i}translate(){let{borderRadius:t,marker:e}=this.options,i=e?.symbol||"rect",o=j[i]?i:"rect",s=["circle","square"].indexOf(o)!==-1;for(let l of(this.generatePoints(),this.points)){let a=l.getCellAttributes(),d=Math.min(a.x1,a.x2),p=Math.min(a.y1,a.y2),h=Math.max(Math.abs(a.x2-a.x1),0),g=Math.max(Math.abs(a.y2-a.y1),0);if(l.hasImage=(l.marker?.symbol||i||"").indexOf("url")===0,s){let n=Math.abs(h-g);d=Math.min(a.x1,a.x2)+(h<g?0:n/2),p=Math.min(a.y1,a.y2)+(h<g?n/2:0),h=g=Math.min(h,g)}l.hasImage&&(l.marker={width:h,height:g}),l.plotX=l.clientX=(a.x1+a.x2)/2,l.plotY=(a.y1+a.y2)/2,l.shapeType="path",l.shapeArgs=et(!0,{x:d,y:p,width:h,height:g},{d:j[o](d,p,h,g,{r:U(t)?t:0})})}he(this,"afterTranslate")}}R.defaultOptions=et(vt.defaultOptions,{animation:!1,borderRadius:0,borderWidth:0,interpolation:!1,nullColor:"#f7f7f7",dataLabels:{formatter:function(){let{numberFormatter:r}=this.series.chart,{value:t}=this.point;return ee(t)?r(t,-1):""},inside:!0,verticalAlign:"middle",crop:!1,overflow:"allow",padding:0},marker:{symbol:"rect",radius:0,lineColor:void 0,states:{hover:{lineWidthPlus:0},select:{}}},clip:!0,pointRange:null,tooltip:{pointFormat:"{point.x}, {point.y}: {point.value}<br/>"},states:{hover:{halo:!1,brightness:.2}},legendSymbol:"rectangle"}),le(R,"afterDataClassLegendClick",function(){this.isDirtyCanvas=!0,this.drawPoints(),this.options.enableMouseTracking&&this.drawTracker()}),ne(R.prototype,{axisTypes:O.seriesMembers.axisTypes,colorKey:O.seriesMembers.colorKey,directTouch:!0,getExtremesFromAll:!0,keysAffectYAxis:["y"],parallelArrays:O.seriesMembers.parallelArrays,pointArrayMap:["y","value"],pointClass:yt,specialGroup:"group",trackerGroups:O.seriesMembers.trackerGroups,alignDataLabel:ae.prototype.alignDataLabel,colorAttribs:O.seriesMembers.colorAttribs,getSymbol:V.prototype.getSymbol}),O.compose(R),z().registerSeriesType("heatmap",R);let ue=A();return pt.default})())});export default be();
|
|
2
|
+
/*! Bundled license information:
|
|
3
|
+
|
|
4
|
+
highcharts/modules/heatmap.js:
|
|
5
|
+
(**
|
|
6
|
+
* @license Highcharts JS v12.5.0 (2026-01-12)
|
|
7
|
+
* @module highcharts/modules/color-axis
|
|
8
|
+
* @requires highcharts
|
|
9
|
+
*
|
|
10
|
+
* ColorAxis module
|
|
11
|
+
*
|
|
12
|
+
* (c) 2012-2026 Highsoft AS
|
|
13
|
+
* Author: Pawel Potaczek
|
|
14
|
+
*
|
|
15
|
+
* A commercial license may be required depending on use.
|
|
16
|
+
* See www.highcharts.com/license
|
|
17
|
+
*)
|
|
18
|
+
*/
|