@aquera/data-visualizer-sdk 0.0.3 → 0.0.5
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-4FNUVR7T.js +1 -0
- package/chunk-4XZ7RFFX.js +1 -0
- package/chunk-5CTM6JVQ.js +1 -0
- package/chunk-5GQQVHN2.js +1 -0
- package/chunk-6HEMJDCI.js +1 -0
- package/chunk-6Q3P5YXE.js +2 -0
- package/chunk-77D6MLBV.js +1 -0
- package/chunk-7IOYSCQD.js +18 -0
- package/chunk-ATIVRRY6.js +2 -0
- package/chunk-ATUZQYGW.js +1 -0
- package/chunk-AYEY6YSX.js +1 -0
- package/chunk-BTDKTIE6.js +2 -0
- package/chunk-DPY4ZJSO.js +1 -0
- package/chunk-DQ2YRLQN.js +1 -0
- package/chunk-ELIOZDZD.js +1 -0
- package/chunk-F6YL5NFN.js +1 -0
- package/chunk-FWRVVJCM.js +1 -0
- package/chunk-GQMRT62M.js +1 -0
- package/chunk-HOS2FAXH.js +1 -0
- package/chunk-I4TM4AGJ.js +1 -0
- package/chunk-INJSG5RK.js +1 -0
- package/chunk-JWVGGQEQ.js +18 -0
- package/chunk-L6I5ELGW.js +1 -0
- package/chunk-LFSX3TZJ.js +1 -0
- package/chunk-LVEGSJBT.js +1 -0
- package/chunk-LVKS7TUK.js +1 -0
- package/chunk-LYEP6PZI.js +1 -0
- package/chunk-MPGDQZRI.js +1 -0
- package/{chunk-S24GYO47.js → chunk-MYNXPNVU.js} +793 -793
- package/chunk-OBIV4S2O.js +1 -0
- package/chunk-OETTICY5.js +1 -0
- package/chunk-OF6NT3W7.js +1 -0
- package/chunk-OREJIV5W.js +1 -0
- package/chunk-QXVITQOV.js +1 -0
- package/chunk-RCWO45CI.js +1 -0
- package/chunk-REQTBAAZ.js +1 -0
- package/chunk-SYVY7IJY.js +4 -0
- package/chunk-T3NXAI3H.js +1 -0
- package/chunk-UVIAZB7Z.js +1 -0
- package/chunk-W25JWAKD.js +1 -0
- package/chunk-W2HKCDVZ.js +1 -0
- package/chunk-WRBHM7X4.js +1 -0
- package/chunk-XCT4UKLK.js +1 -0
- package/chunk-YA4FV3D2.js +2 -0
- package/chunk-YHTLTPEH.js +18 -0
- package/chunk-YPOBCEMA.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 @@
|
|
|
1
|
+
import{a}from"./chunk-ATUZQYGW.js";import"./chunk-ZW5NV4UO.js";export default a();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a,b}from"./chunk-YA4FV3D2.js";import"./chunk-MYNXPNVU.js";import"./chunk-JP5QY5S6.js";import"./chunk-F6ZDDRJ7.js";import"./chunk-FK6H3RFT.js";import"./chunk-SYVY7IJY.js";import"./chunk-DPY4ZJSO.js";import"./chunk-T3NXAI3H.js";import"./chunk-JWVGGQEQ.js";import"./chunk-QXVITQOV.js";import"./chunk-I4TM4AGJ.js";import"./chunk-F6YL5NFN.js";import"./chunk-ATUZQYGW.js";import"./chunk-XCT4UKLK.js";import"./chunk-4XZ7RFFX.js";import"./chunk-YHTLTPEH.js";import"./chunk-LFSX3TZJ.js";import"./chunk-BTDKTIE6.js";import"./chunk-5CTM6JVQ.js";import"./chunk-W2HKCDVZ.js";import"./chunk-MPGDQZRI.js";import"./chunk-HOS2FAXH.js";import"./chunk-INJSG5RK.js";import"./chunk-RCWO45CI.js";import"./chunk-ZW5NV4UO.js";export{a as DVZ_DASHBOARDS_TAG,b as defineDvzDashboards};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a}from"./chunk-SYVY7IJY.js";import"./chunk-ZW5NV4UO.js";export default a();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a}from"./chunk-DPY4ZJSO.js";import"./chunk-ZW5NV4UO.js";export default a();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e as J}from"./chunk-ZW5NV4UO.js";var K=J((x,H)=>{(function(a,w){typeof x=="object"&&typeof H=="object"?H.exports=w(a._Highcharts,a._Highcharts.SeriesRegistry,a._Highcharts.SVGRenderer):typeof define=="function"&&define.amd?define("highcharts/modules/dumbbell",["highcharts/highcharts"],function(C){return w(C,C.SeriesRegistry,C.SVGRenderer)}):typeof x=="object"?x["highcharts/modules/dumbbell"]=w(a._Highcharts,a._Highcharts.SeriesRegistry,a._Highcharts.SVGRenderer):a.Highcharts=w(a.Highcharts,a.Highcharts.SeriesRegistry,a.Highcharts.SVGRenderer)})("u"<typeof window?x:window,(a,w,C)=>(()=>{"use strict";var O={512:e=>{e.exports=w},540:e=>{e.exports=C},944:e=>{e.exports=a}},G={};function h(e){var t=G[e];if(t!==void 0)return t.exports;var o=G[e]={exports:{}};return O[e](o,o.exports,h),o.exports}h.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return h.d(t,{a:t}),t},h.d=(e,t)=>{for(var o in t)h.o(t,o)&&!h.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},h.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var A={};h.d(A,{default:()=>F});var V=h(944),S=h.n(V),I=h(512),X=h.n(I);let{area:{prototype:{pointClass:D,pointClass:{prototype:v}}}}=X().seriesTypes,{defined:L,isNumber:m}=S(),R=class extends D{setState(){let e=this.state,t=this.series,o=t.chart.polar;L(this.plotHigh)||(this.plotHigh=t.yAxis.toPixels(this.high,!0)),L(this.plotLow)||(this.plotLow=this.plotY=t.yAxis.toPixels(this.low,!0)),t.lowerStateMarkerGraphic=t.stateMarkerGraphic,t.stateMarkerGraphic=t.upperStateMarkerGraphic,this.graphic=this.graphics&&this.graphics[1],this.plotY=this.plotHigh,o&&m(this.plotHighX)&&(this.plotX=this.plotHighX),v.setState.apply(this,arguments),this.state=e,this.plotY=this.plotLow,this.graphic=this.graphics&&this.graphics[0],o&&m(this.plotLowX)&&(this.plotX=this.plotLowX),t.upperStateMarkerGraphic=t.stateMarkerGraphic,t.stateMarkerGraphic=t.lowerStateMarkerGraphic,t.lowerStateMarkerGraphic=void 0;let r=t.modifyMarkerSettings();v.setState.apply(this,arguments),t.restoreMarkerSettings(r)}haloPath(){let e=this.series.chart.polar,t=[];return this.plotY=this.plotLow,e&&m(this.plotLowX)&&(this.plotX=this.plotLowX),this.isInside&&(t=v.haloPath.apply(this,arguments)),this.plotY=this.plotHigh,e&&m(this.plotHighX)&&(this.plotX=this.plotHighX),this.isTopInside&&(t=t.concat(v.haloPath.apply(this,arguments))),t}isValid(){return m(this.low)&&m(this.high)}},{extend:T,pick:W}=S();class _ extends R{setState(){let t=this.series,o=t.chart,r=t.options.lowColor,i=t.options.marker,n=t.options.lowMarker,l=this.options,s=l.lowColor,y=this.zone&&this.zone.color,d=W(s,n?.fillColor,r,l.color,y,this.color,t.color),g="attr",f,k;if(this.pointSetState.apply(this,arguments),!this.state){g="animate";let[c,u]=this.graphics||[];c&&!o.styledMode&&(c.attr({fill:d}),u&&(k={y:this.y,zone:this.zone},this.y=this.high,this.zone=this.zone?this.getZone():void 0,f=W(this.marker?this.marker.fillColor:void 0,i?i.fillColor:void 0,l.color,this.zone?this.zone.color:void 0,this.color),u.attr({fill:f}),T(this,k)))}this.connector?.[g](t.getConnectorAttribs(this))}destroy(){return this.graphic||(this.graphic=this.connector,this.connector=void 0),super.destroy()}}T(_.prototype,{pointSetState:R.prototype.setState});var Z=h(540),B=h.n(Z);let{noop:N}=S(),{arearange:M,column:b,columnrange:q}=X().seriesTypes,{extend:Y,merge:E,pick:p}=S();class z extends M{getConnectorAttribs(t){let o=this.chart,r=t.options,i=this.options,n=this.xAxis,l=this.yAxis,s=p(i.states&&i.states.hover&&i.states.hover.connectorWidthPlus,1),y=p(r.dashStyle,i.dashStyle),d=l.toPixels(i.threshold||0,!0),g=o.inverted?l.len-d:d,f=p(r.connectorWidth,i.connectorWidth),k=p(r.connectorColor,i.connectorColor,r.color,t.zone?t.zone.color:void 0,t.color),c=p(t.plotLow,t.plotY),u=p(t.plotHigh,g),j;if(typeof c!="number")return{};t.state&&(f+=s),c<0?c=0:c>=l.len&&(c=l.len),u<0?u=0:u>=l.len&&(u=l.len),(t.plotX<0||t.plotX>n.len)&&(f=0),t.graphics&&t.graphics[1]&&(j={y:t.y,zone:t.zone},t.y=t.high,t.zone=t.zone?t.getZone():void 0,k=p(r.connectorColor,i.connectorColor,r.color,t.zone?t.zone.color:void 0,t.color),Y(t,j));let P={d:B().prototype.crispLine([["M",t.plotX,c],["L",t.plotX,u]],f)};return!o.styledMode&&(P.stroke=k,P["stroke-width"]=f,y&&(P.dashstyle=y)),P}drawConnector(t){let o=p(this.options.animationLimit,250),r=t.connector&&this.chart.pointCount<o?"animate":"attr";t.connector||(t.connector=this.chart.renderer.path().addClass("highcharts-lollipop-stem").attr({zIndex:-1}).add(this.group)),t.connector[r](this.getConnectorAttribs(t))}getColumnMetrics(){let t=b.prototype.getColumnMetrics.apply(this,arguments);return t.offset+=t.width/2,t}translate(){let t=this.chart.inverted;for(let o of(this.setShapeArgs.apply(this),this.translatePoint.apply(this,arguments),this.points)){let{pointWidth:r,shapeArgs:i={},tooltipPos:n}=o;o.plotX=i.x||0,i.x=o.plotX-r/2,n&&(t?n[1]=this.xAxis.len-o.plotX:n[0]=o.plotX)}this.columnMetrics.offset-=this.columnMetrics.width/2}drawPoints(){let t=this.chart,o=this.points.length,r=this.lowColor=this.options.lowColor,i=this.options.lowMarker,n=0,l,s,y;for(this.seriesDrawPoints.apply(this,arguments);n<o;){let[d,g]=(s=this.points[n]).graphics||[];this.drawConnector(s),g&&(g.element.point=s,g.addClass("highcharts-lollipop-high")),s.connector&&(s.connector.element.point=s),d&&(y=s.zone&&s.zone.color,l=p(s.options.lowColor,i?.fillColor,r,s.options.color,y,s.color,this.color),t.styledMode||d.attr({fill:l}),d.addClass("highcharts-lollipop-low")),n++}}pointAttribs(t,o){let r=super.pointAttribs.apply(this,arguments);return o==="hover"&&delete r.fill,r}setShapeArgs(){b.prototype.translate.apply(this),q.prototype.afterColumnTranslate.apply(this)}}z.defaultOptions=E(M.defaultOptions,{trackByArea:!1,fillColor:"none",lineWidth:0,pointRange:1,connectorWidth:1,stickyTracking:!1,groupPadding:.2,crisp:!1,pointPadding:.1,legendSymbol:"rectangle",lowColor:"#333333",states:{hover:{lineWidthPlus:0,connectorWidthPlus:1,halo:!1}}}),Y(z.prototype,{crispCol:b.prototype.crispCol,drawGraph:N,drawTracker:b.prototype.drawTracker,pointClass:_,seriesDrawPoints:M.prototype.drawPoints,trackerGroups:["group","markerGroup","dataLabelsGroup"],translatePoint:M.prototype.translate}),X().registerSeriesType("dumbbell",z);let F=S();return A.default})())});export{K as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e as Q}from"./chunk-ZW5NV4UO.js";var Z=Q((m,O)=>{(function(d,y){typeof m=="object"&&typeof O=="object"?O.exports=y(d._Highcharts,d._Highcharts.SeriesRegistry,d._Highcharts.Point):typeof define=="function"&&define.amd?define("highcharts/modules/timeline",["highcharts/highcharts"],function(x){return y(x,x.SeriesRegistry,x.Point)}):typeof m=="object"?m["highcharts/modules/timeline"]=y(d._Highcharts,d._Highcharts.SeriesRegistry,d._Highcharts.Point):d.Highcharts=y(d.Highcharts,d.Highcharts.SeriesRegistry,d.Highcharts.Point)})("u"<typeof window?m:window,(d,y,x)=>(()=>{"use strict";var N={260:i=>{i.exports=x},512:i=>{i.exports=y},944:i=>{i.exports=d}},A={};function l(i){var t=A[i];if(t!==void 0)return t.exports;var e=A[i]={exports:{}};return N[i](e,e.exports,l),e.exports}l.n=i=>{var t=i&&i.__esModule?()=>i.default:()=>i;return l.d(t,{a:t}),t},l.d=(i,t)=>{for(var e in t)l.o(t,e)&&!l.o(i,e)&&Object.defineProperty(i,e,{enumerable:!0,get:t[e]})},l.o=(i,t)=>Object.prototype.hasOwnProperty.call(i,t);var C={};l.d(C,{default:()=>$});var S=l(944),v=l.n(S),W=l(512),L=l.n(W),_=l(260),j=l.n(_);let{line:{prototype:{pointClass:R}},pie:{prototype:{pointClass:V}}}=L().seriesTypes,{defined:X,isNumber:P,merge:E,objectEach:U,pick:z}=v(),B=class extends R{alignConnector(){let i=this.series,t=this.dataLabel,e=t.connector,s=t.options||{},n=s.connectorWidth||0,r=this.series.chart,a=e.getBBox(),h={x:a.x+(t.translateX||0),y:a.y+(t.translateY||0)};r.inverted?h.y-=n/2:h.x+=n/2,e[r.isInsidePlot(h.x,h.y)?"animate":"attr"]({d:this.getConnectorPath()}),e.addClass("highcharts-color-"+this.colorIndex),i.chart.styledMode||e.attr({stroke:s.connectorColor||this.color,"stroke-width":s.connectorWidth,opacity:t[X(t.newOpacity)?"newOpacity":"opacity"]})}drawConnector(){let{dataLabel:i,series:t}=this;i&&(i.connector||(i.connector=t.chart.renderer.path(this.getConnectorPath()).attr({zIndex:-1}).add(i)),this.series.chart.isInsidePlot(i.x||0,i.y||0)&&this.alignConnector())}getConnectorPath(){let{plotX:i=0,plotY:t=0,series:e,dataLabel:s}=this,n=e.chart,r=e.xAxis.len,a=n.inverted,h=a?"x2":"y2";if(s){let c=s.targetPosition,g=(s.alignAttr||s)[h[0]]<e.yAxis.len/2,o={x1:i,y1:t,x2:i,y2:P(c.y)?c.y:s.y};return a&&(o={x1:t,y1:r-i,x2:c.x||s.x,y2:r-i}),g&&(o[h]+=s[a?"width":"height"]||0),U(o,(p,u)=>{o[u]-=(s.alignAttr||s)[u[0]]}),n.renderer.crispLine([["M",o.x1,o.y1],["L",o.x2,o.y2]],s.options?.connectorWidth||0)}return[]}constructor(i,t){super(i,t),this.name??(this.name=(t&&t.y!==null||!i.options.nullInteraction)&&"Event"||"Null"),this.y=1}isValid(){return this.options.y!==null||this.series.options.nullInteraction||!0}setState(){let i=super.setState;(!this.isNull||this.series.options.nullInteraction)&&i.apply(this,arguments)}setVisible(i,t){let e=this.series;t=z(t,e.options.ignoreHiddenPoint),V.prototype.setVisible.call(this,i,!1),e.processData(),t&&e.chart.redraw()}applyOptions(i,t){let e=this.isNull||i===null||i.y===null,s=this.series;t||i?.x||(P(this.x)?t=this.x:P(s?.xIncrement)&&(t=s.xIncrement||0,s.autoIncrement())),i=j().prototype.optionsToObject.call(this,i??(s.options.nullInteraction&&{y:0}||null));let n=super.applyOptions(i,t);return this.userDLOptions=E(this.userDLOptions,i.dataLabels),n.isNull=e,n}},{column:G,line:k}=L().seriesTypes,{addEvent:b,arrayMax:Y,arrayMin:F,defined:q,extend:K,merge:I,pick:f}=v();class w extends k{alignDataLabel(t,e,s,n){let r,a,h,c=this.chart.inverted,g=this.visibilityMap.filter(J=>!!J),o=this.visiblePointsCount||0,p=g.indexOf(t),u=this.options.dataLabels,M=t.userDLOptions||{},T=u.alternate?p&&p!==o-1?2:1.5:1,H=Math.floor(this.xAxis.len/o),D=e.padding;t.visible&&(r=Math.abs(M.x||t.options.dataLabels.x),c?(a=(r-D)*2-(t.itemHeight||0)/2,h={width:f(u.style?.width,`${.4*this.yAxis.len}px`),textOverflow:(e.width||0)/a*(e.height||0)/2>H*T?"ellipsis":"none"}):h={width:(M.width||u.width||H*T-2*D)+"px"},e.css(h),this.chart.styledMode||e.shadow(u.shadow)),super.alignDataLabel.apply(this,arguments)}bindAxes(){super.bindAxes(),this.xAxis.userOptions.type||(this.xAxis.categories=this.xAxis.hasNames=!0)}distributeDL(){let t=this.options.dataLabels,e=this.chart.inverted,s=1;if(t){let n=f(t.distance,e?20:100);for(let r of this.points){let a={[e?"x":"y"]:t.alternate&&s%2?-n:n};e&&(a.align=t.alternate&&s%2?"right":"left"),r.options.dataLabels=I(a,r.userDLOptions),s++}}}generatePoints(){super.generatePoints();let t=this.points,e=t.length,s=this.getColumn("x");for(let n=0;n<e;++n){let r=s[n];t[n].applyOptions({x:r},r)}}getVisibilityMap(){let t=this.options.nullInteraction;return((this.data.length?this.data:this.options.data)||[]).map(e=>!!e&&e.visible!==!1&&(!e.isNull||!!t)&&e)}getXExtremes(t){let e=this,s=t.filter((n,r)=>e.points[r].isValid()&&e.points[r].visible);return{min:F(s),max:Y(s)}}init(){let t=this;super.init.apply(t,arguments),t.eventsToUnbind.push(b(t,"afterTranslate",function(){let e,s=Number.MAX_VALUE;for(let n of t.points)n.isInside=n.isInside&&n.visible,n.visible&&(!n.isNull||t.options.nullInteraction)&&(q(e)&&(s=Math.min(s,Math.abs(n.plotX-e))),e=n.plotX);t.closestPointRangePx=s})),t.eventsToUnbind.push(b(t,"drawDataLabels",function(){t.distributeDL()})),t.eventsToUnbind.push(b(t,"afterDrawDataLabels",function(){let e;for(let s of t.points)(e=s.dataLabel)&&(e.animate=function(n){return this.targetPosition&&(this.targetPosition=n),this.renderer.Element.prototype.animate.apply(this,arguments)},e.targetPosition||(e.targetPosition={}),s.drawConnector())})),t.eventsToUnbind.push(b(t.chart,"afterHideOverlappingLabel",function(){for(let e of t.points)e.dataLabel&&e.dataLabel.connector&&e.dataLabel.oldOpacity!==e.dataLabel.newOpacity&&e.alignConnector()}))}markerAttribs(t,e){let s=this.options.marker,n=t.marker||{},r=n.symbol||s.symbol,a=f(n.width,s.width,this.closestPointRangePx),h=f(n.height,s.height),c,g,o=0;if(this.xAxis.dateTime)return super.markerAttribs(t,e);e&&(c=s.states?.[e],g=n.states?.[e],o=f(g?.radius,c?.radius,o+(c?.radiusPlus||0))),t.hasImage=!!(r&&r.indexOf("url")===0);let p={x:Math.floor(t.plotX)-a/2-o/2,y:t.plotY-h/2-o/2,width:a+o,height:h+o};return this.chart.inverted?{y:p.x&&p.width&&this.xAxis.len-p.x-p.width,x:p.y&&p.y,width:p.height,height:p.width}:p}}w.defaultOptions=I(k.defaultOptions,{colorByPoint:!0,stickyTracking:!1,ignoreHiddenPoint:!0,legendType:"point",lineWidth:4,tooltip:{headerFormat:'<span style="color:{point.color}">\u25CF</span> <span style="font-size: 0.8em"> {point.key}</span><br/>',pointFormat:"{point.description}"},states:{hover:{lineWidthPlus:0}},dataLabels:{enabled:!0,allowOverlap:!0,alternate:!0,backgroundColor:"#ffffff",borderWidth:1,borderColor:"#999999",borderRadius:3,color:"#333333",connectorWidth:1,distance:void 0,formatter:function(){return(this.series.chart.styledMode?'<span class="highcharts-color-'+this.point.colorIndex+'">\u25CF </span>':'<span style="color:'+this.point.color+'">\u25CF </span>')+('<span class="highcharts-strong">'+(this.key||"")+"</span><br/>")+(this.label||"")},style:{textOutline:"none",fontWeight:"normal",fontSize:"0.8em",textAlign:"left"},shadow:!1,verticalAlign:"middle"},marker:{enabledThreshold:0,symbol:"square",radius:6,lineWidth:2,height:15},showInLegend:!1,colorKey:"x",legendSymbol:"rectangle"}),b(w,"afterProcessData",function(){let i=this.getColumn("x"),t=0;for(let e of(this.visibilityMap=this.getVisibilityMap(),this.visibilityMap))e&&t++;this.visiblePointsCount=t,this.dataTable.setColumn("y",Array(i.length).fill(1))}),K(w.prototype,{drawTracker:G.prototype.drawTracker,pointClass:B,trackerGroups:["markerGroup","dataLabelsGroup"]}),L().registerSeriesType("timeline",w);let $=v();return C.default})())});export{Z as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e as ot}from"./chunk-ZW5NV4UO.js";var rt=ot((C,B)=>{(function(g,x){typeof C=="object"&&typeof B=="object"?B.exports=x(g._Highcharts,g._Highcharts.AST,g._Highcharts.Chart):typeof define=="function"&&define.amd?define("highcharts/modules/offline-exporting",["highcharts/highcharts"],function(A){return x(A,A.AST,A.Chart)}):typeof C=="object"?C["highcharts/modules/offline-exporting"]=x(g._Highcharts,g._Highcharts.AST,g._Highcharts.Chart):g.Highcharts=x(g.Highcharts,g.Highcharts.AST,g.Highcharts.Chart)})("u"<typeof window?C:window,(g,x,A)=>(()=>{"use strict";var O,D={660:t=>{t.exports=x},944:t=>{t.exports=g},960:t=>{t.exports=A}},U={};function s(t){var o=U[t];if(o!==void 0)return o.exports;var a=U[t]={exports:{}};return D[t](a,a.exports,s),a.exports}s.n=t=>{var o=t&&t.__esModule?()=>t.default:()=>t;return s.d(o,{a:o}),o},s.d=(t,o)=>{for(var a in o)s.o(o,a)&&!s.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:o[a]})},s.o=(t,o)=>Object.prototype.hasOwnProperty.call(t,o);var N={};s.d(N,{default:()=>et});var G=s(944),b=s.n(G);let{isSafari:V,win:c,win:{document:S}}=b(),{error:k}=b(),R=c.URL||c.webkitURL||c;function T(t){let o=t.replace(/filename=.*;/,"").match(/data:([^;]*)(;base64)?,([A-Z+\d\/]+)/i);if(o&&o.length>3&&c.atob&&c.ArrayBuffer&&c.Uint8Array&&c.Blob&&R.createObjectURL){let a=c.atob(o[3]),y=new c.ArrayBuffer(a.length),e=new c.Uint8Array(y);for(let r=0;r<e.length;++r)e[r]=a.charCodeAt(r);return R.createObjectURL(new c.Blob([e],{type:o[1]}))}}function P(t,o){let a=c.navigator,y=S.createElement("a");if(typeof t!="string"&&!(t instanceof String)&&a.msSaveOrOpenBlob)return void a.msSaveOrOpenBlob(t,o);if(t=""+t,a.userAgent.length>1e3)throw Error("Input too long");let e=/Edge\/\d+/.test(a.userAgent);if((V&&typeof t=="string"&&t.indexOf("data:application/pdf")===0||e||t.length>2e6)&&!(t=T(t)||""))throw Error("Failed to convert to blob");if(y.download!==void 0)y.href=t,y.download=o,S.body.appendChild(y),y.click(),S.body.removeChild(y);else try{if(!c.open(t,"chart"))throw Error("Failed to open window")}catch{c.location.href=t}}function _(t){return new Promise((o,a)=>{let y=S.getElementsByTagName("head")[0],e=S.createElement("script");e.type="text/javascript",e.src=t,e.onload=()=>{o()},e.onerror=()=>{let r=`Error loading script ${t}`;k(r),a(Error(r))},y.appendChild(e)})}var I=s(660),$=s.n(I),z=s(960),M=s.n(z);let Z={exporting:{}},{getOptions:J,setOptions:K}=b(),{composed:Q,doc:W,win:L}=b(),{addEvent:X,extend:Y,pushUnique:tt}=b();(function(t){async function o(e,r,m,h){var d,i;let p,n,f,l,v,j=(d=e,i=h,f=W.createElement("div"),$().setElementHTML(f,d),l=f.getElementsByTagName("text"),v=function(u,w){let F=u;for(;F&&F!==f;){if(F.style[w]){let H=F.style[w];w==="fontSize"&&/em$/.test(H)&&(H=Math.round(16*parseFloat(H))+"px"),u.style[w]=H;break}F=F.parentNode}},[].forEach.call(l,function(u){for(["fontFamily","fontSize"].forEach(w=>{v(u,w)}),u.style.fontFamily=i?.normal?"HighchartsFont":String(u.style.fontFamily&&u.style.fontFamily.split(" ").splice(-1)),p=u.getElementsByTagName("title"),[].forEach.call(p,function(w){u.removeChild(w)}),n=u.getElementsByClassName("highcharts-text-outline");n.length>0;){let w=n[0];w.parentNode&&w.parentNode.removeChild(w)}}),f.querySelector("svg"));j&&(await a(j,h),P(await y(j,0,r),m))}async function a(e,r){let m,h,d=(i,p)=>{L.jspdf.jsPDF.API.events.push(["initialized",function(){this.addFileToVFS(i,p),this.addFont(i,"HighchartsFont",i),this.getFontList()?.HighchartsFont||this.setFont("HighchartsFont")}])};for(let i of(r&&(h=e.textContent||"",!/[^\u0000-\u007F\u200B]+/.test(h))&&(r=void 0),["normal","italic","bold","bolditalic"])){let p=r?.[i];if(p)try{let n=await L.fetch(p);if(!n.ok)throw Error(`Failed to fetch font: ${p}`);let f=await n.blob(),l=new FileReader,v=await new Promise((j,u)=>{l.onloadend=()=>{typeof l.result=="string"?j(l.result.split(",")[1]):u(Error("Failed to read font as base64"))},l.onerror=u,l.readAsDataURL(f)});d(i,v),i==="normal"&&(m=v)}catch{}else m&&d(i,m)}}async function y(e,r,m){let h=(Number(e.getAttribute("width"))+2*r)*m,d=(Number(e.getAttribute("height"))+2*r)*m,i=new L.jspdf.jsPDF(d>h?"p":"l","pt",[h,d]);[].forEach.call(e.querySelectorAll('*[visibility="hidden"]'),function(n){n.parentNode.removeChild(n)});let p=e.querySelectorAll("linearGradient");for(let n=0;n<p.length;n++){let f=p[n].querySelectorAll("stop"),l=0;for(;l<f.length&&f[l].getAttribute("offset")==="0"&&f[l+1].getAttribute("offset")==="0";)f[l].remove(),l++}return[].forEach.call(e.querySelectorAll("tspan"),n=>{n.textContent==="\u200B"&&(n.textContent=" ",n.setAttribute("dx",-5))}),await i.svg(e,{x:0,y:0,width:h,height:d,removeInvalid:!0}),i.output("datauristring")}t.compose=function(e){if(X(e,"downloadSVG",async function(m){let{svg:h,exportingOptions:d,exporting:i,preventDefault:p}=m;if(d?.type==="application/pdf"){p?.();try{let{type:n,filename:f,scale:l,libURL:v}=b().Exporting.prepareImageOptions(d);n==="application/pdf"&&(L.jspdf?.jsPDF||(await _(`${v}jspdf.js`),await _(`${v}svg2pdf.js`)),await o(h,l,f,d?.pdfFont))}catch(n){await i?.fallbackToServer(d,n)}}}),!tt(Q,"OfflineExporting"))return;Y(M().prototype,{exportChartLocal:async function(m,h){await this.exporting?.exportChart(m,h)}}),K(Z);let r=J().exporting?.buttons?.contextButton?.menuItems;r&&r.push("downloadPDF")},t.downloadSVGLocal=async function(e,r){await b().Exporting.prototype.downloadSVG.call(void 0,e,r)}})(O||(O={}));let q=O,E=b();E.dataURLtoBlob=E.dataURLtoBlob||T,E.downloadSVGLocal=q.downloadSVGLocal,E.downloadURL=E.downloadURL||P,q.compose(E.Exporting);let et=b();return N.default})())});export default rt();
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{e as he}from"./chunk-ZW5NV4UO.js";var ce=he((N,K)=>{(function(M,P){typeof N=="object"&&typeof K=="object"?K.exports=P(M._Highcharts,M._Highcharts.SeriesRegistry):typeof define=="function"&&define.amd?define("highcharts/modules/tiledwebmap",["highcharts/highcharts"],function(I){return P(I,I.SeriesRegistry)}):typeof N=="object"?N["highcharts/modules/tiledwebmap"]=P(M._Highcharts,M._Highcharts.SeriesRegistry):M.Highcharts=P(M.Highcharts,M.Highcharts.SeriesRegistry)})("u"<typeof window?N:window,(M,P)=>(()=>{"use strict";var I={512:p=>{p.exports=P},944:p=>{p.exports=M}},Y={};function u(p){var r=Y[p];if(r!==void 0)return r.exports;var t=Y[p]={exports:{}};return I[p](t,t.exports,u),t.exports}u.n=p=>{var r=p&&p.__esModule?()=>p.default:()=>p;return u.d(r,{a:r}),r},u.d=(p,r)=>{for(var t in r)u.o(r,t)&&!u.o(p,t)&&Object.defineProperty(p,t,{enumerable:!0,get:r[t]})},u.o=(p,r)=>Object.prototype.hasOwnProperty.call(p,r);var F={};u.d(F,{default:()=>ne});var ee=u(944),L=u.n(ee);let W={Esri:class{constructor(){this.defaultCredits="Tiles © Esri — Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012",this.initialProjectionName="WebMercator",this.themes={WorldStreetMap:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20},DeLorme:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/Specialty/DeLorme_World_Base_Map/MapServer/tile/{z}/{y}/{x}",minZoom:1,maxZoom:11,credits:"Tiles © Esri — Copyright: ©2012 DeLorme"},WorldTopoMap:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20,credits:"Tiles © Esri — Esri, DeLorme, NAVTEQ, TomTom, Intermap, iPC, USGS, FAO, NPS, NRCAN, GeoBase, Kadaster NL, Ordnance Survey, Esri Japan, METI, Esri China (Hong Kong), and the GIS User Community"},WorldImagery:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20,credits:"Tiles © Esri — Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community"},WorldTerrain:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:13,credits:"Tiles © Esri — Source: USGS, Esri, TANA, DeLorme, and NPS"},WorldShadedRelief:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Shaded_Relief/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:13,credits:"Tiles © Esri — Source: Esri"},WorldPhysical:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/World_Physical_Map/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:8,credits:"Tiles © Esri — Source: US National Park Service"},NatGeoWorldMap:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:16,credits:"Tiles © Esri — National Geographic, Esri, DeLorme, NAVTEQ, UNEP-WCMC, USGS, NASA, ESA, METI, NRCAN, GEBCO, NOAA, iPC"},WorldGrayCanvas:{url:"https://server.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:16,credits:"Tiles © Esri — Esri, DeLorme, NAVTEQ"}}}},LimaLabs:class{constructor(){this.defaultCredits='Map data ©2023 <a href="https://maps.lima-labs.com/">LimaLabs</a>',this.initialProjectionName="WebMercator",this.requiresApiKey=!0,this.themes={Standard:{url:"https://cdn.lima-labs.com/{zoom}/{x}/{y}.png?api={apikey}",minZoom:0,maxZoom:20}}}},OpenStreetMap:class{constructor(){this.defaultCredits='Map data ©2023 <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>',this.initialProjectionName="WebMercator",this.subdomains=["a","b","c"],this.themes={Standard:{url:"https://tile.openstreetmap.org/{zoom}/{x}/{y}.png",minZoom:0,maxZoom:19},Hot:{url:"https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png",minZoom:0,maxZoom:19},OpenTopoMap:{url:"https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png",minZoom:0,maxZoom:17,credits:`Map data: © <a href="https://www.openstreetmap.org/copyright">
|
|
2
|
+
OpenStreetMap</a> contributors, <a href="https://viewfinderpanoramas.org">SRTM</a>
|
|
3
|
+
| Map style: © <a href="https://opentopomap.org">OpenTopoMap</a>
|
|
4
|
+
(<a href="https://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA</a>)`}}}},Stamen:class{constructor(){this.defaultCredits='© Map tiles by <a href="https://stamen.com">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/3.0">CC BY 3.0</a>. Data by <a href="https://openstreetmap.org">OpenStreetMap</a>, under <a href="https://www.openstreetmap.org/copyright">ODbL</a>',this.initialProjectionName="WebMercator",this.subdomains=["a","b","c","d"],this.themes={Toner:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/toner/{z}/{x}/{y}.png",minZoom:0,maxZoom:20},TonerBackground:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/toner-background/{z}/{x}/{y}.png",minZoom:0,maxZoom:20},TonerLite:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/toner-lite/{z}/{x}/{y}.png",minZoom:0,maxZoom:20},Terrain:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/terrain/{z}/{x}/{y}.png",minZoom:0,maxZoom:18},TerrainBackground:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/terrain-background/{z}/{x}/{y}.png",minZoom:0,maxZoom:18},Watercolor:{url:"https://stamen-tiles-{s}.a.ssl.fastly.net/watercolor/{z}/{x}/{y}.png",minZoom:1,maxZoom:16,credits:'© Map tiles by <a href="https://stamen.com">Stamen Design</a>, under <a href="https://creativecommons.org/licenses/by/3.0">CC BY 3.0</a>. Data by <a href="https://openstreetmap.org">OpenStreetMap</a>, under <a href="https://creativecommons.org/licenses/by-sa/3.0">CC BY SA</a>'}}}},Thunderforest:class{constructor(){this.defaultCredits='Maps © <a href="https://www.thunderforest.com">Thunderforest</a>, Data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap contributors</a>',this.initialProjectionName="WebMercator",this.requiresApiKey=!0,this.subdomains=["a","b","c"],this.themes={OpenCycleMap:{url:"https://{s}.tile.thunderforest.com/cycle/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},Transport:{url:"https://{s}.tile.thunderforest.com/transport/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},TransportDark:{url:"https://{s}.tile.thunderforest.com/transport-dark/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},SpinalMap:{url:"https://{s}.tile.thunderforest.com/spinal-map/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},Landscape:{url:"https://{s}.tile.thunderforest.com/landscape/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},Outdoors:{url:"https://{s}.tile.thunderforest.com/outdoors/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},Pioneer:{url:"https://{s}.tile.thunderforest.com/pioneer/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},MobileAtlas:{url:"https://{s}.tile.thunderforest.com/mobile-atlas/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22},Neighbourhood:{url:"https://{s}.tile.thunderforest.com/neighbourhood/{z}/{x}/{y}.png?apikey={apikey}",minZoom:0,maxZoom:22}}}},USGS:class{constructor(){this.defaultCredits='Tiles courtesy of the <a href="https://usgs.gov/">U.S. GeologicalSurvey</a>',this.initialProjectionName="WebMercator",this.themes={USTopo:{url:"https://basemap.nationalmap.gov/arcgis/rest/services/USGSTopo/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20},USImagery:{url:"https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryOnly/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20},USImageryTopo:{url:"https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryTopo/MapServer/tile/{z}/{y}/{x}",minZoom:0,maxZoom:20}}}}};var te=u(512),X=u.n(te);let{composed:oe}=L(),{map:q}=X().seriesTypes,{addEvent:re,defined:g,error:Z,merge:ie,pick:E,pushUnique:se}=L();function ae(p){let{geoBounds:r,chart:t}=p,e=(t.options.series||[]).filter(c=>c.type==="tiledwebmap")[0];if(e&&e.provider&&e.provider.type&&!e.provider.url){let c=W[e.provider.type];if(g(c)){let{initialProjectionName:n}=new c;if(r){let{x1:i,y1:b,x2:k,y2:C}=r;this.recommendedMapView={projection:{name:n,parallels:[b,C],rotation:[-(i+k)/2]}}}else this.recommendedMapView={projection:{name:n},minZoom:0};return!1}Z("Highcharts warning: Tiles Provider not defined in the Provider Registry.",!1)}return!0}class $ extends q{constructor(){super(...arguments),this.redrawTiles=!1,this.isAnimating=!1}static compose(r){se(oe,"TiledWebMapSeries")&&re(r,"onRecommendMapView",ae)}lonLatToTile(r,t){let{lon:e,lat:c}=r;return{x:Math.floor((e+180)/360*Math.pow(2,t)),y:Math.floor((1-Math.log(Math.tan(c*Math.PI/180)+1/Math.cos(c*Math.PI/180))/Math.PI)/2*Math.pow(2,t))}}tileToLonLat(r,t,e){let c=r/Math.pow(2,e)*360-180,n=Math.PI-2*Math.PI*t/Math.pow(2,e);return{lon:c,lat:180/Math.PI*Math.atan(.5*(Math.exp(n)-Math.exp(-n)))}}drawPoints(){let r=this.chart,t=r.mapView;if(!t)return;let e=this.tiles=this.tiles||{},c=this.transformGroups=this.transformGroups||[],n=this,i=this.options.provider,{zoom:b}=t,k=E(t.projection.options.rotation&&t.projection.options.rotation[0],0),C=200*!r.renderer.forExport,R=s=>{for(let o of Object.keys(e))parseFloat(o)===(t.zoom<0?0:Math.floor(t.zoom))||n.minZoom&&(t.zoom<0?0:Math.floor(t.zoom))<n.minZoom&&parseFloat(o)===n.minZoom||n.maxZoom&&(t.zoom<0?0:Math.floor(t.zoom))>n.maxZoom&&parseFloat(o)===n.maxZoom?Object.keys(e[o].tiles).forEach((l,a)=>{e[o].tiles[l].animate({opacity:1},{duration:s},()=>{a===Object.keys(e[o].tiles).length-1&&(e[o].isActive=!0)})}):Object.keys(e[o].tiles).forEach((l,a)=>{e[o].tiles[l].animate({opacity:0},{duration:s,defer:s/2},()=>{e[o].tiles[l].destroy(),delete e[o].tiles[l],a===Object.keys(e[o].tiles).length-1&&(e[o].isActive=!1,e[o].loaded=!1)})})},m=b<0?0:Math.floor(b),z=Math.pow(2,m),D=.638436911716859*Math.pow(2,b)/(.638436911716859*Math.pow(2,m)),w=256*D;if(i&&(i.type||i.url)){if(i.type&&!i.url){let s=W[i.type];if(!g(s))return void Z("Highcharts warning: Tiles Provider '"+i.type+"' not defined in the ProviderRegistry.",!1);let o=new s,l=o.initialProjectionName,a,f="";if(i.theme&&g(o.themes[i.theme]))a=o.themes[i.theme];else{let T=Object.keys(o.themes)[0];a=o.themes[T],Z("Highcharts warning: The Tiles Provider's Theme '"+i.theme+"' is not defined in the Provider definition - falling back to '"+T+"'.",!1)}i.subdomain&&o.subdomains&&o.subdomains.indexOf(i.subdomain)!==-1?f=i.subdomain:g(o.subdomains)&&a.url.indexOf("{s}")!==-1&&(f=E(o.subdomains&&o.subdomains[0],""),Z("Highcharts warning: The Tiles Provider's Subdomain '"+i.subdomain+"' is not defined in the Provider definition - falling back to '"+f+"'.",!1)),o.requiresApiKey&&(i.apiKey?a.url=a.url.replace("{apikey}",i.apiKey):(Z("Highcharts warning: The Tiles Provider requires API Key to use tiles, use provider.apiKey to provide a token.",!1),a.url=a.url.replace("?apikey={apikey}",""))),i.url=a.url.replace("{s}",f),this.minZoom=a.minZoom,this.maxZoom=a.maxZoom;let S=E(r.userOptions.credits&&r.userOptions.credits.text,"Highcharts.com "+E(a.credits,o.defaultCredits));r.credits?r.credits.update({text:S}):r.addCredits({text:S,style:E(r.options.credits?.style,{})}),t.projection.options.name!==l&&Z("Highcharts warning: The set projection is different than supported by Tiles Provider.",!1)}else t.projection.options.name||Z("Highcharts warning: The set projection is different than supported by Tiles Provider.",!1);if(g(this.minZoom)&&m<this.minZoom?(z=Math.pow(2,m=this.minZoom),w=256*(D=.638436911716859*Math.pow(2,b)/(.638436911716859*Math.pow(2,m)))):g(this.maxZoom)&&m>this.maxZoom&&(z=Math.pow(2,m=this.maxZoom),w=256*(D=.638436911716859*Math.pow(2,b)/(.638436911716859*Math.pow(2,m)))),t.projection&&t.projection.def){t.projection.hasCoordinates=!0,c[m]||(c[m]=r.renderer.g().add(this.group));let s=(d,y,h,A,le)=>{let B=d%z,V=y%z,pe=B<0?B+z:B,me=V<0?V+z:V;if(!e[`${h}`].tiles[`${d},${y}`]&&i.url){let Q,J=(Q=i.url,Q.replace("{x}",pe.toString()).replace("{y}",me.toString()).replace("{zoom}",h.toString()).replace("{z}",h.toString()));e[h].loaded=!1,e[`${h}`].tiles[`${d},${y}`]=r.renderer.image(J,d*w-A,y*w-le,w,w).attr({zIndex:2,opacity:0}).on("load",function(){i.onload&&i.onload.apply(this),(h===(t.zoom<0?0:Math.floor(t.zoom))||h===n.minZoom)&&(e[`${h}`].actualTilesCount++,e[`${h}`].howManyTiles===e[`${h}`].actualTilesCount&&(e[h].loaded=!0,n.isAnimating?n.redrawTiles=!0:(n.redrawTiles=!1,R(C)),e[`${h}`].actualTilesCount=0))}).add(c[h]),e[`${h}`].tiles[`${d},${y}`].posX=d,e[`${h}`].tiles[`${d},${y}`].posY=y,e[`${h}`].tiles[`${d},${y}`].originalURL=J}},o=t.pixelsToProjectedUnits({x:0,y:0}),l=t.projection.def.inverse([o.x,o.y]),a={lon:l[0]-k,lat:l[1]},f=t.pixelsToProjectedUnits({x:r.plotWidth,y:r.plotHeight}),S=t.projection.def.inverse([f.x,f.y]),T={lon:S[0]-k,lat:S[1]};(a.lat>t.projection.maxLatitude||T.lat<-1*t.projection.maxLatitude)&&(a.lat=t.projection.maxLatitude,T.lat=-1*t.projection.maxLatitude);let x=this.lonLatToTile(a,m),j=this.lonLatToTile(T,m),G=this.tileToLonLat(x.x,x.y,m),O=t.projection.def.forward([G.lon+k,G.lat]),v=t.projectedUnitsToPixels({x:O[0],y:O[1]}),U=x.x*w-v.x,_=x.y*w-v.y;e[`${m}`]||(e[`${m}`]={tiles:{},isActive:!1,howManyTiles:0,actualTilesCount:0,loaded:!1}),e[`${m}`].howManyTiles=(j.x-x.x+1)*(j.y-x.y+1),e[`${m}`].actualTilesCount=0;for(let d=x.x;d<=j.x;d++)for(let y=x.y;y<=j.y;y++)s(d,y,m,U,_)}for(let s of Object.keys(e))for(let o of Object.keys(e[s].tiles))if(t.projection&&t.projection.def){let l=256*(.638436911716859*Math.pow(2,b)/(.638436911716859*Math.pow(2,parseFloat(s)))),a=e[s].tiles[Object.keys(e[s].tiles)[0]],{posX:f,posY:S}=e[s].tiles[o];if(g(f)&&g(S)&&g(a.posX)&&g(a.posY)){let T=this.tileToLonLat(a.posX,a.posY,parseFloat(s)),x=t.projection.def.forward([T.lon+k,T.lat]),j=t.projectedUnitsToPixels({x:x[0],y:x[1]}),G=a.posX*l-j.x,O=a.posY*l-j.y;if(r.renderer.globalAnimation&&r.hasRendered){let v=Number(e[s].tiles[o].attr("x")),U=Number(e[s].tiles[o].attr("y")),_=Number(e[s].tiles[o].attr("width")),d=Number(e[s].tiles[o].attr("height")),y=(h,A)=>{e[s].tiles[o].attr({x:v+(f*l-G-v)*A.pos,y:U+(S*l-O-U)*A.pos,width:_+(Math.ceil(l)+1-_)*A.pos,height:d+(Math.ceil(l)+1-d)*A.pos})};n.isAnimating=!0,e[s].tiles[o].attr({animator:0}).animate({animator:1},{step:y},function(){n.isAnimating=!1,n.redrawTiles&&(n.redrawTiles=!1,R(C))})}else(n.redrawTiles||parseFloat(s)!==m||(e[s].isActive||parseFloat(s)===m)&&Object.keys(e[s].tiles).map(v=>e[s].tiles[v]).some(v=>v.opacity===0))&&(n.redrawTiles=!1,R(C)),e[s].tiles[o].attr({x:f*l-G,y:S*l-O,width:Math.ceil(l)+1,height:Math.ceil(l)+1})}}}else Z("Highcharts warning: Tiles Provider not defined in the Provider Registry.",!1)}update(r){let{transformGroups:t}=this,e=this.chart,c=e.mapView,{provider:n}=r;if(t&&(t.forEach(i=>{Object.keys(i).length!==0&&i.destroy()}),this.transformGroups=[]),c&&!g(e.userOptions.mapView?.projection)&&n?.type){let i=W[n.type];i&&c.update({projection:{name:new i().initialProjectionName}})}super.update.apply(this,arguments)}}$.defaultOptions=ie(q.defaultOptions,{states:{inactive:{enabled:!1}}}),X().registerSeriesType("tiledwebmap",$);let H=L();H.TilesProviderRegistry=H.TilesProviderRegistry||W,$.compose(H.MapView);let ne=L();return F.default})())});export{ce as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e as rt}from"./chunk-ZW5NV4UO.js";var ot=rt((N,F)=>{(function(b,L){typeof N=="object"&&typeof F=="object"?F.exports=L(b._Highcharts,b._Highcharts.SeriesRegistry,b._Highcharts.SVGElement):typeof define=="function"&&define.amd?define("highcharts/modules/organization",["highcharts/highcharts"],function(v){return L(v,v.SeriesRegistry,v.SVGElement)}):typeof N=="object"?N["highcharts/modules/organization"]=L(b._Highcharts,b._Highcharts.SeriesRegistry,b._Highcharts.SVGElement):b.Highcharts=L(b.Highcharts,b.Highcharts.SeriesRegistry,b.Highcharts.SVGElement)})("u"<typeof window?N:window,(b,L,v)=>(()=>{"use strict";var D={28:n=>{n.exports=v},512:n=>{n.exports=L},944:n=>{n.exports=b}},H={};function k(n){var t=H[n];if(t!==void 0)return t.exports;var s=H[n]={exports:{}};return D[n](s,s.exports,k),s.exports}k.n=n=>{var t=n&&n.__esModule?()=>n.default:()=>n;return k.d(t,{a:t}),t},k.d=(n,t)=>{for(var s in t)k.o(t,s)&&!k.o(n,s)&&Object.defineProperty(n,s,{enumerable:!0,get:t[s]})},k.o=(n,t)=>Object.prototype.hasOwnProperty.call(n,t);var C={};k.d(C,{default:()=>st});var _=k(944),M=k.n(_),B=k(512),O=k.n(B);let{sankey:{prototype:{pointClass:I}}}=O().seriesTypes,{defined:G,find:z,pick:V}=M(),$=class extends I{constructor(n,t,s){super(n,t,s),this.isNode||(this.dataLabelOnNull=!0,this.formatPrefix="link")}getSum(){return 1}setNodeColumn(){super.setNodeColumn();let n=this,t=n.getFromNode().fromNode;if(!G(n.options.column)&&n.linksTo.length!==0&&t&&t.options.layout==="hanging"){let s=-1,e;n.options.layout=V(n.options.layout,"hanging"),n.hangsFrom=t,z(t.linksFrom,(r,i)=>{let o=r.toNode===n;return o&&(s=i),o});for(let r=0;r<t.linksFrom.length;++r)(e=t.linksFrom[r]).toNode.id===n.id?r=t.linksFrom.length:s+=(function i(o){let a=o.linksFrom.length;return o.linksFrom.forEach(h=>{h.id===h.toNode.linksTo[0].id?a+=i(h.toNode):a--}),a})(e.toNode);n.column=(n.column||0)+s}}};function q(n,t){let s=[];for(let e=0;e<n.length;e++){let r=n[e][1],i=n[e][2];if(typeof r=="number"&&typeof i=="number")if(e===0)s.push(["M",r,i]);else if(e===n.length-1)s.push(["L",r,i]);else if(t){let o=n[e-1],a=n[e+1];if(o&&a){let h=o[1],d=o[2],p=a[1],l=a[2];if(typeof h=="number"&&typeof p=="number"&&typeof d=="number"&&typeof l=="number"&&h!==p&&d!==l){let c=h<p?1:-1,g=d<l?1:-1;s.push(["L",r-c*Math.min(Math.abs(r-h),t),i-g*Math.min(Math.abs(i-d),t)],["C",r,i,r,i,r+c*Math.min(Math.abs(r-p),t),i+g*Math.min(Math.abs(i-l),t)])}}}else s.push(["L",r,i])}return s}var K=k(28),X=k.n(K);let{deg2rad:Y}=M(),{addEvent:P,merge:J,uniqueKey:Q,defined:R,extend:U}=M();function Z(n,t){t=J(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},t);let s=this.renderer.url,e=this.text||this,r=e.textPath,{attributes:i,enabled:o}=t;if(n=n||r&&r.path,r&&r.undo(),n&&o){let a=P(e,"afterModifyTree",h=>{if(n&&o){let d=n.attr("id");d||n.attr("id",d=Q());let p={x:0,y:0};R(i.dx)&&(p.dx=i.dx,delete i.dx),R(i.dy)&&(p.dy=i.dy,delete i.dy),e.attr(p),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let l=h.nodes.slice(0);h.nodes.length=0,h.nodes[0]={tagName:"textPath",attributes:U(i,{"text-anchor":i.textAnchor,href:`${s}#${d}`}),children:l}}});e.textPath={path:n,undo:a}}else e.attr({dx:0,dy:0}),delete e.textPath;return this.added&&(e.textCache="",this.renderer.buildText(e)),this}function tt(n){let t=n.bBox,s=this.element?.querySelector("textPath");if(s){let e=[],{b:r,h:i}=this.renderer.fontMetrics(this.element),o=i-r,a=RegExp('(<tspan>|<tspan(?!\\sclass="highcharts-br")[^>]*>|<\\/tspan>)',"g"),h=s.innerHTML.replace(a,"").split(/<tspan class="highcharts-br"[^>]*>/),d=h.length,p=(l,c)=>{let{x:g,y:f}=c,m=(s.getRotationOfChar(l)-90)*Y,u=Math.cos(m),y=Math.sin(m);return[[g-o*u,f-o*y],[g+r*u,f+r*y]]};for(let l=0,c=0;c<d;c++){let g=h[c].length;for(let f=0;f<g;f+=5)try{let m=l+f+c,[u,y]=p(m,s.getStartPositionOfChar(m));f===0?(e.push(y),e.push(u)):(c===0&&e.unshift(y),c===d-1&&e.push(u))}catch{break}l+=g-1;try{let f=l+c,m=s.getEndPositionOfChar(f),[u,y]=p(f,m);e.unshift(y),e.unshift(u)}catch{break}}e.length&&e.push(e[0].slice()),t.polygon=e}return t}function et(n){let t=n.labelOptions,s=n.point,e=t[s.formatPrefix+"TextPath"]||t.textPath;e&&!t.useHTML&&(this.setTextPath(s.getDataLabelPath?.(this)||s.graphic,e),s.dataLabelPath&&!e.enabled&&(s.dataLabelPath=s.dataLabelPath.destroy()))}let{sankey:T}=O().seriesTypes,{css:j,crisp:x,extend:it,isNumber:nt,merge:S,pick:A}=M();({compose:function(n){P(n,"afterGetBBox",tt),P(n,"beforeAddingDataLabel",et);let t=n.prototype;t.setTextPath||(t.setTextPath=Z)}}).compose(X());class W extends T{alignDataLabel(t,s,e){let r=t.shapeArgs,i=s.text;if(e.useHTML&&r){let o=this.options.borderWidth+2*this.options.dataLabels.padding,a=r.width||0,h=r.height||0;this.chart.inverted&&(a=h,h=r.width||0),h-=o,a-=o,i.foreignObject?.attr({x:0,y:0,width:a,height:h}),j(i.element.parentNode,{width:a+"px",height:h+"px"}),j(i.element,{left:0,top:0,width:"100%",height:"100%",overflow:"hidden"}),s.getBBox=()=>({width:a,height:h,x:0,y:0}),s.width=a,s.height=h}super.alignDataLabel.apply(this,arguments)}createNode(t){let s=super.createNode.call(this,t);return s.getSum=()=>1,s}pointAttribs(t,s){let e=T.prototype.pointAttribs.call(this,t,s),r=t.isNode?t.level:t.fromNode.level,i=this.mapOptionsToLevel[r||0]||{},o=t.options,a=i.states&&i.states[s]||{},h=A(a.borderRadius,o.borderRadius,i.borderRadius,this.options.borderRadius),d=A(a.linkColor,o.linkColor,i.linkColor,this.options.linkColor,a.link&&a.link.color,o.link&&o.link.color,i.link&&i.link.color,this.options.link&&this.options.link.color),p=A(a.linkLineWidth,o.linkLineWidth,i.linkLineWidth,this.options.linkLineWidth,a.link&&a.link.lineWidth,o.link&&o.link.lineWidth,i.link&&i.link.lineWidth,this.options.link&&this.options.link.lineWidth),l=A(a.linkOpacity,o.linkOpacity,i.linkOpacity,this.options.linkOpacity,a.link&&a.link.linkOpacity,o.link&&o.link.linkOpacity,i.link&&i.link.linkOpacity,this.options.link&&this.options.link.linkOpacity);return t.isNode?nt(h)&&(e.r=h):(e.stroke=d,e["stroke-width"]=p,e.opacity=l,delete e.fill),e}translateLink(t){let s=this.chart,e=this.options,r=t.fromNode,i=t.toNode,o=A(e.linkLineWidth,e.link.lineWidth,0),a=A(e.link.offset,.5),h=A(t.options.link&&t.options.link.type,e.link.type);if(r.shapeArgs&&i.shapeArgs){let d=e.hangingIndent,p=e.hangingSide==="right",l=i.options.offset,c=/%$/.test(l)&&parseInt(l,10),g=s.inverted,f=x((r.shapeArgs.x||0)+(r.shapeArgs.width||0),o),m=x((r.shapeArgs.y||0)+(r.shapeArgs.height||0)/2,o),u=x(i.shapeArgs.x||0,o),y=x((i.shapeArgs.y||0)+(i.shapeArgs.height||0)/2,o),w;if(g&&(f-=r.shapeArgs.width||0,u+=i.shapeArgs.width||0),w=this.colDistance?x(u+(g?1:-1)*(this.colDistance-this.nodeWidth)/2,o):x((u+f)/2,o),c&&(c>=50||c<=-50)&&(w=u=x(u+(g?-.5:.5)*(i.shapeArgs.width||0),o),y=i.shapeArgs.y||0,c>0&&(y+=i.shapeArgs.height||0)),i.hangsFrom===r&&(s.inverted?(m=x(p?(r.shapeArgs.y||0)+d/2:(r.shapeArgs.y||0)+(r.shapeArgs.height||0)-d/2,o),y=p?(i.shapeArgs.y||0)+d/2:(i.shapeArgs.y||0)+(i.shapeArgs.height||0)):m=x((r.shapeArgs.y||0)+d/2,o),w=u=x((i.shapeArgs.x||0)+(i.shapeArgs.width||0)/2,o)),t.plotX=w,t.plotY=(m+y)/2,t.shapeType="path",h==="straight")t.shapeArgs={d:[["M",f,m],["L",u,y]]};else if(h==="curved"){let E=Math.abs(u-f)*a*(g?-1:1);t.shapeArgs={d:[["M",f,m],["C",f+E,m,u-E,y,u,y]]}}else t.shapeArgs={d:q([["M",f,m],["L",w,m],["L",w,y],["L",u,y]],A(e.linkRadius,e.link.radius))};t.dlBox={x:(f+u)/2,y:(m+y)/2,height:o,width:0}}}translateNode(t,s){super.translateNode(t,s);let e=this.chart,r=this.options,i=Math.max(Math.round(t.getSum()*this.translationFactor),r.minLinkWidth||0),o=r.hangingSide==="right",a=r.hangingIndent||0,h=r.hangingIndentTranslation,d=r.minNodeLength||10,p=Math.round(this.nodeWidth),l=t.shapeArgs,c=e.inverted?-1:1,g=t.hangsFrom;if(g)if(h==="cumulative")for(l.height-=a,e.inverted&&!o&&(l.y-=c*a);g;)l.y+=(o?1:c)*a,g=g.hangsFrom;else if(h==="shrink")for(;g&&l.height>a+d;)l.height-=a,(!e.inverted||o)&&(l.y+=a),g=g.hangsFrom;else l.height-=a,(!e.inverted||o)&&(l.y+=a);t.nodeHeight=e.inverted?l.width:l.height,t.shapeArgs&&!t.hangsFrom&&(t.shapeArgs=S(t.shapeArgs,{x:(t.shapeArgs.x||0)+p/2-(t.shapeArgs.width||0)/2,y:(t.shapeArgs.y||0)+i/2-(t.shapeArgs.height||0)/2}))}drawDataLabels(){let t=this.options.dataLabels;if(t.linkTextPath&&t.linkTextPath.enabled)for(let s of this.points)s.options.dataLabels=S(s.options.dataLabels,{useHTML:!1});super.drawDataLabels()}}W.defaultOptions=S(T.defaultOptions,{borderColor:"#666666",borderRadius:3,link:{color:"#666666",lineWidth:1,radius:10,type:"orthogonal"},borderWidth:1,dataLabels:{nodeFormatter:function(){let n={width:"100%",height:"100%",display:"flex","flex-direction":"row","align-items":"center","justify-content":"center"},t={"max-height":"100%","border-radius":"50%"},s={width:"100%",padding:0,"text-align":"center","white-space":"normal"};function e(h){return Object.keys(h).reduce(function(d,p){return d+p+":"+h[p]+";"},'style="')+'"'}let{description:r,image:i,title:o}=this.point;i&&(t["max-width"]="30%",s.width="70%"),this.series.chart.renderer.forExport&&(n.display="block",s.position="absolute",s.left=i?"30%":0,s.top=0);let a="<div "+e(n)+">";return i&&(a+='<img src="'+i+'" '+e(t)+">"),a+="<div "+e(s)+">",this.point.name&&(a+="<h4 "+e({margin:0})+">"+this.point.name+"</h4>"),o&&(a+="<p "+e({margin:0})+">"+(o||"")+"</p>"),r&&(a+="<p "+e({opacity:.75,margin:"5px"})+">"+r+"</p>"),a+="</div></div>"},style:{fontWeight:"normal",fontSize:"0.9em",textAlign:"left"},useHTML:!0,linkTextPath:{attributes:{startOffset:"95%",textAnchor:"end"}}},hangingIndent:20,hangingIndentTranslation:"inherit",hangingSide:"left",minNodeLength:10,nodeWidth:50,tooltip:{nodeFormat:"{point.name}<br>{point.title}<br>{point.description}"}}),it(W.prototype,{pointClass:$}),O().registerSeriesType("organization",W);let st=M();return C.default})())});export{ot as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a}from"./chunk-HOS2FAXH.js";import"./chunk-ZW5NV4UO.js";export default a();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a}from"./chunk-BTDKTIE6.js";import"./chunk-ZW5NV4UO.js";export default a();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e as it}from"./chunk-ZW5NV4UO.js";var lt=it((v,O)=>{(function(d,f){typeof v=="object"&&typeof O=="object"?O.exports=f(d._Highcharts,d._Highcharts.SeriesRegistry,d._Highcharts.Color):typeof define=="function"&&define.amd?define("highcharts/modules/solid-gauge",["highcharts/highcharts"],function(x){return f(x,x.SeriesRegistry,x.Color)}):typeof v=="object"?v["highcharts/modules/solid-gauge"]=f(d._Highcharts,d._Highcharts.SeriesRegistry,d._Highcharts.Color):d.Highcharts=f(d.Highcharts,d.Highcharts.SeriesRegistry,d.Highcharts.Color)})("u"<typeof window?v:window,(d,f,x)=>(()=>{"use strict";var b,A,W={512:e=>{e.exports=f},620:e=>{e.exports=x},944:e=>{e.exports=d}},P={};function l(e){var t=P[e];if(t!==void 0)return t.exports;var o=P[e]={exports:{}};return W[e](o,o.exports,l),o.exports}l.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return l.d(t,{a:t}),t},l.d=(e,t)=>{for(var o in t)l.o(t,o)&&!l.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var S={};l.d(S,{default:()=>at});var F=l(944),p=l.n(F);let{defaultOptions:nt}=p(),{noop:dt}=p(),{addEvent:ht,extend:ct,isObject:G,merge:J,relativeLength:gt}=p(),K={radius:0,scope:"stack",where:void 0};function Q(e,t){return G(e)||(e={radius:e||0}),J(K,t,e)}let U=Q;var X=l(512),T=l.n(X),Y=l(620);let{parse:w}=l.n(Y)(),{merge:Z}=p();(b=A||(A={})).initDataClasses=function(e){let t=this.chart,o=this.legendItem=this.legendItem||{},a=this.options,s=e.dataClasses||[],n,c,i=t.options.chart.colorCount,h=0,r;this.dataClasses=c=[],o.labels=[];for(let g=0,m=s.length;g<m;++g)n=Z(n=s[g]),c.push(n),(t.styledMode||!n.color)&&(a.dataClassColor==="category"?(t.styledMode||(i=(r=t.options.colors||[]).length,n.color=r[h]),n.colorIndex=h,++h===i&&(h=0)):n.color=w(a.minColor).tweenTo(w(a.maxColor),m<2?.5:g/(m-1)))},b.initStops=function(){let e=this.options,t=this.stops=e.stops||[[0,e.minColor||""],[1,e.maxColor||""]];for(let o=0,a=t.length;o<a;++o)t[o].color=w(t[o][1])},b.normalizedValue=function(e){let t=this.max||0,o=this.min||0;return this.logarithmic&&(e=this.logarithmic.log2lin(e)),1-(t-e)/(t-o||1)},b.toColor=function(e,t){let o,a,s,n,c,i,h=this.dataClasses,r=this.stops;if(h){for(i=h.length;i--;)if(a=(c=h[i]).from,s=c.to,(a===void 0||e>=a)&&(s===void 0||e<=s)){n=c.color,t&&(t.dataClass=i,t.colorIndex=c.colorIndex);break}}else{for(o=this.normalizedValue(e),i=r.length;i--&&!(o>r[i][0]););a=r[i]||r[i+1],o=1-((s=r[i+1]||a)[0]-o)/(s[0]-a[0]||1),n=a.color.tweenTo(s.color,o)}return n};let $=A,{extend:tt}=p(),et=function(e){tt(e,$)},{gauge:M,pie:ot}=T().seriesTypes,{clamp:N,extend:st,isNumber:z,merge:rt,pick:H,pInt:D}=p();class V extends M{translate(){let t=this.yAxis;et(t),!t.dataClasses&&t.options.dataClasses&&t.initDataClasses(t.options),t.initStops(),M.prototype.translate.call(this)}drawPoints(){let t,o=this.yAxis,a=o.center,s=this.options,n=this.chart.renderer,c=s.overshoot,i=s.rounded&&s.borderRadius===void 0,h=z(c)?c/180*Math.PI:0;for(let r of(z(s.threshold)&&(t=o.startAngleRad+o.translate(s.threshold,void 0,void 0,void 0,!0)),this.thresholdAngleRad=H(t,o.startAngleRad),this.points))if(!r.isNull){let g=D(H(r.options.radius,s.radius,100))*a[2]/200,m=D(H(r.options.innerRadius,s.innerRadius,60))*a[2]/200,L=Math.min(o.startAngleRad,o.endAngleRad),q=Math.max(o.startAngleRad,o.endAngleRad),u=r.graphic,y=o.startAngleRad+o.translate(r.y,void 0,void 0,void 0,!0),R,I,C=o.toColor(r.y,r),_=r.getClassName();C==="none"&&(C=r.color||this.color||"none"),C!=="none"&&(r.color=C),y=N(y,L-h,q+h),s.wrap===!1&&(y=N(y,L,q));let B=i?(g-m)/2/g:0,j=Math.min(y,this.thresholdAngleRad)-B,k=Math.max(y,this.thresholdAngleRad)+B;k-j>2*Math.PI&&(k=j+2*Math.PI);let E=i?"50%":0;s.borderRadius&&(E=U(s.borderRadius).radius),r.shapeArgs=R={x:a[0],y:a[1],r:g,innerR:m,start:j,end:k,borderRadius:E},r.startR=g,u?(I=R.d,u.animate(st({fill:C},R)),I&&(R.d=I)):r.graphic=u=n.arc(R).attr({fill:C,"sweep-flag":0}).add(this.group),this.chart.styledMode?this.yAxis?.stops&&(_=_.replace(/highcharts-color-\d/gm,"").trim()):(s.linecap!=="square"&&u.attr({"stroke-linecap":"round","stroke-linejoin":"round"}),u.attr({stroke:s.borderColor||"none","stroke-width":s.borderWidth||0})),u&&u.addClass(_)}}animate(t){t||(this.startAngleRad=this.thresholdAngleRad,ot.prototype.animate.call(this,t))}}V.defaultOptions=rt(M.defaultOptions,{colorByPoint:!0,dataLabels:{y:0}}),T().registerSeriesType("solidgauge",V);let at=p();return S.default})())});export{lt as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a}from"./chunk-QXVITQOV.js";import"./chunk-ZW5NV4UO.js";export default a();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e as j}from"./chunk-ZW5NV4UO.js";var P=j((p,g)=>{(function(s,a){typeof p=="object"&&typeof g=="object"?g.exports=a(s._Highcharts,s._Highcharts.SeriesRegistry):typeof define=="function"&&define.amd?define("highcharts/modules/vector",["highcharts/highcharts"],function(c){return a(c,c.SeriesRegistry)}):typeof p=="object"?p["highcharts/modules/vector"]=a(s._Highcharts,s._Highcharts.SeriesRegistry):s.Highcharts=a(s.Highcharts,s.Highcharts.SeriesRegistry)})("u"<typeof window?p:window,(s,a)=>(()=>{"use strict";var c={512:e=>{e.exports=a},944:e=>{e.exports=s}},u={};function o(e){var r=u[e];if(r!==void 0)return r.exports;var t=u[e]={exports:{}};return c[e](t,t.exports,o),t.exports}o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var t in r)o.o(r,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);var y={};o.d(y,{default:()=>M});var m=o(944),n=o.n(m),v=o(512),f=o.n(v);let{animObject:x}=n(),{series:w,seriesTypes:{scatter:b}}=f(),{arrayMax:k,extend:L,merge:O,pick:H}=n();class l extends b{animate(r){r?this.markerGroup.attr({opacity:.01}):this.markerGroup.animate({opacity:1},x(this.options.animation))}arrow(r){let t=r.length/this.lengthMax*this.options.vectorLength/20,i={start:10*t,center:0,end:-10*t}[this.options.rotationOrigin]||0;return[["M",0,7*t+i],["L",-1.5*t,7*t+i],["L",0,10*t+i],["L",1.5*t,7*t+i],["L",0,7*t+i],["L",0,-10*t+i]]}drawPoints(){let r=this.chart;for(let t of this.points){let i=t.plotX,h=t.plotY;this.options.clip===!1||r.isInsidePlot(i,h,{inverted:r.inverted})?(t.graphic||(t.graphic=this.chart.renderer.path().add(this.markerGroup).addClass("highcharts-point highcharts-color-"+H(t.colorIndex,t.series.colorIndex))),t.graphic.attr({d:this.arrow(t),translateX:i,translateY:h,rotation:t.direction}),this.chart.styledMode||t.graphic.attr(this.pointAttribs(t))):t.graphic&&(t.graphic=t.graphic.destroy())}}pointAttribs(r,t){let i=this.options,h=r?.color||this.color,d=this.options.lineWidth;return t&&(h=i.states[t].color||h,d=(i.states[t].lineWidth||d)+(i.states[t].lineWidthPlus||0)),{stroke:h,"stroke-width":d}}translate(){w.prototype.translate.call(this),this.lengthMax=k(this.getColumn("length"))}}l.defaultOptions=O(b.defaultOptions,{lineWidth:2,marker:void 0,rotationOrigin:"center",states:{hover:{lineWidthPlus:1}},tooltip:{pointFormat:"<b>[{point.x}, {point.y}]</b><br/>Length: <b>{point.length}</b><br/>Direction: <b>{point.direction}\xB0</b><br/>"},vectorLength:20}),L(l.prototype,{drawGraph:n().noop,getSymbol:n().noop,markerAttribs:n().noop,parallelArrays:["x","y","length","direction"],pointArrayMap:["y","length","direction"]}),f().registerSeriesType("vector",l);let M=n();return y.default})())});export{P as a};
|
|
@@ -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-MYNXPNVU.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};
|