{"version":3,"file":"xui-charts.mjs","sources":["../../../../libs/charts/src/analysis/analysis.service.ts","../../../../libs/charts/src/analysis/metrics/metrics.component.ts","../../../../libs/charts/src/analysis/metrics/metrics.component.html","../../../../libs/charts/src/analysis/chart/chart.component.ts","../../../../libs/charts/src/analysis/chart/chart.component.html","../../../../libs/charts/src/analysis/analysis.component.ts","../../../../libs/charts/src/analysis/analysis.component.html","../../../../libs/charts/src/analysis/analysis.module.ts","../../../../libs/charts/src/xui-charts.ts"],"sourcesContent":["import { ApplicationRef, Injectable, Signal, signal, WritableSignal } from '@angular/core';\nimport { Entity, Metric } from './analysis.types';\nimport { connect, ECharts } from 'echarts';\n\nexport interface Trend {\n  metric: Metric;\n  entity: Entity;\n  // TODO: polled data, etc.\n}\n\nexport type Chart = Trend[];\n\n@Injectable()\nexport class AnalysisService {\n  private _eCharts: ECharts[] = [];\n  private _isDragging = signal(false);\n  private _charts: WritableSignal<Chart>[] = [];\n\n  get charts() {\n    return this._charts;\n  }\n\n  constructor(private appRef: ApplicationRef) {}\n\n  getChart(index: number): Signal<Chart> {\n    return this._charts?.[index]?.asReadonly();\n  }\n\n  addChart(position: number, trends: Chart) {\n    this._charts.splice(position, 0, signal(trends));\n  }\n\n  addTrend(chartPos: number, trend: Trend) {\n    const chart = this._charts[chartPos];\n    chart.update(x => [...x, trend]);\n  }\n\n  removeTrend(chartPos: number, trendPos: number) {\n    this._charts[chartPos].update(x => chart.splice(trendPos, 1));\n    const chart = this._charts[chartPos]();\n\n    if (!chart.length) {\n      this._charts.splice(chartPos, 1);\n    }\n  }\n\n  get isDragging() {\n    return this._isDragging.asReadonly();\n  }\n\n  dragStarted() {\n    this._isDragging.set(true);\n    this.appRef.tick(); // Not able to D'n'D metric unless ticked\n  }\n\n  dragEnded() {\n    this._isDragging.set(false);\n  }\n\n  connectChart(chart: ECharts) {\n    this._eCharts.push(chart);\n    connect(this._eCharts);\n  }\n}\n","import { Component, Input } from '@angular/core';\nimport { Entity, EntityGroup, EntityId, MetricGroup } from '../analysis.types';\nimport { AnalysisService } from '../analysis.service';\n\n@Component({\n  selector: 'xui-metrics',\n  templateUrl: './metrics.component.html',\n  styleUrls: ['./metrics.component.scss']\n})\nexport class MetricsComponent {\n  opened: EntityId[] = [];\n  active: Entity | null = null;\n\n  @Input() entities?: EntityGroup[];\n\n  constructor(public analysis: AnalysisService) {}\n\n  ngOnInit() {\n    // Testing\n    this.active = this.entities?.[0].entities[0] ?? null;\n  }\n\n  isActive(entity: Entity) {\n    return this.active?.id === entity.id;\n  }\n\n  activate(entity: Entity) {\n    this.active = entity;\n  }\n\n  isOpened(group: EntityGroup | MetricGroup) {\n    // return true;\n    return this.opened.includes(group.id);\n  }\n\n  toggleGroup(group: EntityGroup | MetricGroup) {\n    if (this.isOpened(group)) {\n      this.opened = this.opened.filter(x => x !== group.id);\n    } else {\n      this.opened = [...this.opened, group.id];\n    }\n  }\n}\n","<div class=\"entries\">\n  <xui-input color=\"dark\" size=\"small\">\n    <xui-icon icon=\"search\" xuiPostfix></xui-icon>\n  </xui-input>\n\n  <div class=\"buttons\">\n    <xui-button> <xui-icon icon=\"add_circle\"></xui-icon> Add Entities </xui-button>\n\n    <xui-button type=\"icon\">\n      <xui-icon icon=\"refresh\"></xui-icon>\n    </xui-button>\n  </div>\n\n  @for (group of entities; track group) {\n    <div class=\"group\">\n      <div class=\"name\" (click)=\"toggleGroup(group)\">\n        <xui-icon class=\"menu-icon\" [icon]=\"isOpened(group) ? 'menu' : 'menu_open'\"></xui-icon>\n        <div class=\"content\">\n          <xui-icon [icon]=\"group.icon\"></xui-icon>\n          {{ group.name }}\n        </div>\n      </div>\n\n      <div class=\"entities\" *ngIf=\"isOpened(group)\">\n        @for (entity of group.entities; track entity.id) {\n          <div class=\"entity\" [class.active]=\"isActive(entity)\" (click)=\"activate(entity)\">\n            <xui-icon icon=\"check\"></xui-icon>\n            {{ entity.name }}\n          </div>\n        }\n      </div>\n    </div>\n  }\n</div>\n\n<div class=\"metrics\">\n  <xui-input color=\"dark\" size=\"small\">\n    <xui-icon icon=\"search\" xuiPostfix></xui-icon>\n  </xui-input>\n\n  @for (group of active?.metrics; track group) {\n    <div class=\"group\">\n      <div class=\"name\" (click)=\"toggleGroup(group)\">\n        <xui-icon class=\"menu-icon\" [icon]=\"isOpened(group) ? 'menu' : 'menu_open'\"></xui-icon>\n        <div class=\"content\">\n          {{ group.name }}\n        </div>\n      </div>\n\n      <div class=\"entities\" *ngIf=\"isOpened(group)\" cdkDropList cdkDropListSortingDisabled>\n        @for (metric of group.metrics; track metric.id) {\n          <div\n            class=\"metric\"\n            cdkDrag\n            [cdkDragData]=\"{ metric, entity: active }\"\n            (cdkDragStarted)=\"analysis.dragStarted()\"\n            (cdkDragEnded)=\"analysis.dragEnded()\"\n          >\n            <span style=\"display: none\" *cdkDragPlaceholder></span>\n            <div class=\"drag-preview\" *cdkDragPreview>\n              <xui-icon icon=\"drag_indicator\"></xui-icon>\n              <div>\n                {{ metric.name }}\n                <div class=\"description\">{{ active!.name }}</div>\n              </div>\n            </div>\n\n            <xui-icon icon=\"drag_indicator\"></xui-icon>\n            <div>\n              {{ metric.name }}\n              <div class=\"description\">{{ active!.name }}</div>\n            </div>\n          </div>\n        }\n      </div>\n    </div>\n  }\n</div>\n","import { Component, Inject, Input, OnDestroy } from '@angular/core';\nimport { ECharts, EChartsOption } from 'echarts';\nimport { AnalysisService } from '../analysis.service';\nimport { DOCUMENT } from '@angular/common';\n\n@Component({\n  selector: 'xui-analysis-chart',\n  templateUrl: './chart.component.html',\n  styleUrls: ['./chart.component.scss']\n})\nexport class ChartComponent {\n  private chart!: ECharts;\n  @Input() index!: number;\n\n  chartOptions: EChartsOption = {\n    grid: {\n      left: 40,\n      top: 10,\n      right: 40,\n      bottom: 40\n    },\n    tooltip: {\n      showContent: false,\n      trigger: 'axis',\n      axisPointer: { type: 'cross' }\n    },\n\n    xAxis: [\n      {\n        type: 'category',\n        axisLine: {\n          // show: true,\n          lineStyle: {\n            width: 2\n            // type: 'solid'\n          }\n        },\n        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']\n      },\n      {\n        axisLine: {\n          onZero: false,\n\n          lineStyle: {\n            width: 2\n          }\n        }\n      }\n    ],\n    yAxis: [\n      {\n        axisLine: {\n          show: true,\n          lineStyle: {\n            width: 2,\n            type: 'solid'\n          }\n        }\n        // type: 'value'\n        // splitNumber: 3,\n      },\n      {\n        position: 'right',\n        axisLine: {\n          show: true,\n          lineStyle: {\n            width: 2,\n            type: 'solid'\n          }\n        }\n        // splitNumber: 3,\n      }\n    ],\n    series: [\n      {\n        data: [820, 932, 901, 934, 1290, 1330, 1320],\n        showSymbol: false,\n        type: 'line'\n      },\n      {\n        data: [420, 332, 981, 924, 4290, 1930, 2320],\n        yAxisIndex: 1,\n        showSymbol: false,\n        type: 'line'\n      }\n    ]\n  };\n\n  get trends() {\n    return this.analysisService.getChart(this.index);\n  }\n\n  constructor(\n    private analysisService: AnalysisService,\n    @Inject(DOCUMENT) private document: Document\n  ) {}\n\n  onChartInit(chart: ECharts) {\n    this.chart = chart;\n    this.analysisService.connectChart(chart);\n\n    chart.on('highlight', (event: any) => {\n      console.log('event', event);\n\n      // const series = this.chart.getVisual({ seriesIndex: 1, dataIndex: 1 }, 'symbol');//.getSeries();\n      const series = (this.chart as any).getModel().getSeries();\n\n      // const values = series.map(x => x)\n\n      console.log('series', series);\n\n      this.document.addEventListener('resize', () => {\n        console.log('resize');\n        chart.resize();\n      });\n    });\n  }\n}\n","<div echarts (chartInit)=\"onChartInit($event)\" [options]=\"chartOptions\" class=\"chart\"></div>\n<div class=\"legend\">\n  @for (trend of trends(); track trend) {\n    <div class=\"trend\">\n      <div class=\"metric\">\n        42.0\n        <div class=\"type\">%</div>\n      </div>\n\n      <div class=\"labels\">\n        <div class=\"metric-name\">{{ trend.metric.name }}</div>\n        <div class=\"entity-name\">{{ trend.entity.name }}</div>\n      </div>\n\n      <xui-button type=\"icon\" [cdkMenuTriggerFor]=\"menu\">\n        <xui-icon icon=\"more_horiz\"></xui-icon>\n      </xui-button>\n    </div>\n  }\n</div>\n\n<ng-template #menu>\n  <xui-context-menu cdkMenu>\n    <xui-button cdkMenuItem>Remove</xui-button>\n    <hr />\n    <xui-button cdkMenuItem>None</xui-button>\n  </xui-context-menu>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { EntityGroup, EntityId } from './analysis.types';\nimport { CdkDragDrop } from '@angular/cdk/drag-drop';\nimport { AnalysisService } from './analysis.service';\n\n@Component({\n  selector: 'xui-analysis',\n  exportAs: 'xuiAnalysis',\n  encapsulation: ViewEncapsulation.Emulated,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  styleUrls: ['./analysis.scss'],\n  templateUrl: './analysis.component.html',\n  providers: [AnalysisService]\n})\nexport class XuiAnalysisComponent {\n  isDragging = this.analysisService.isDragging;\n  closed = false;\n\n  @Input() entities?: EntityGroup[];\n  @Input() loadData?: (entityId: EntityId, metricId: EntityId) => { date: string; value: number };\n\n  get charts() {\n    return this.analysisService.charts;\n  }\n\n  constructor(private analysisService: AnalysisService) {}\n\n  ngOnInit() {\n    const first = this.entities?.[0].entities[0]!;\n    this.analysisService.addChart(0, [\n      {\n        entity: first,\n        metric: first?.metrics?.[0].metrics?.[0]!\n      }\n    ]);\n\n    this.analysisService.addTrend(0, {\n      entity: first,\n      metric: first?.metrics?.[0].metrics?.[1]!\n    });\n\n    this.analysisService.addChart(1, [\n      {\n        entity: first,\n        metric: first?.metrics?.[0].metrics?.[0]!\n      }\n    ]);\n\n    this.analysisService.addChart(3, [\n      {\n        entity: first,\n        metric: first?.metrics?.[0].metrics?.[0]!\n      }\n    ]);\n\n    // this.analysisService.addTrend(0, {\n    //   entity: first,\n    //   metric: first?.metrics?.[0].metrics?.[1]!\n    // });\n    // this.analysisService.addTrend(0, {\n    //   entity: first,\n    //   metric: first?.metrics?.[0].metrics?.[1]!\n    // });\n    // this.analysisService.addTrend(0, {\n    //   entity: first,\n    //   metric: first?.metrics?.[0].metrics?.[1]!\n    // });\n  }\n\n  dropped(event: CdkDragDrop<any>, index: number, isPlaceholder = true) {\n    if (isPlaceholder) {\n      this.analysisService.addChart(index, [event.item.data]);\n    } else {\n      this.analysisService.addTrend(index, event.item.data);\n    }\n  }\n}\n","<div class=\"header\">\n  <p>New Analysis</p>\n  <div class=\"buttons\">\n    <xui-button><xui-icon icon=\"add_circle\"></xui-icon> New</xui-button>\n    <xui-button><xui-icon icon=\"save\"></xui-icon> Save</xui-button>\n    <xui-button><xui-icon icon=\"file_open\"></xui-icon> Load</xui-button>\n\n    <xui-button><xui-icon icon=\"file_save\"></xui-icon> Export</xui-button>\n    <xui-button><xui-icon icon=\"share\"></xui-icon> Share</xui-button>\n\n    <xui-button [cdkMenuTriggerFor]=\"moreMenu\">More <xui-icon icon=\"arrow_drop_down\"></xui-icon></xui-button>\n\n    <ng-template #moreMenu>\n      <xui-context-menu cdkMenu>\n        <xui-button cdkMenuItem>Save as ...</xui-button>\n        <xui-button cdkMenuItem color=\"error\">\n          Delete\n          <xui-icon icon=\"delete-outline\"></xui-icon>\n        </xui-button>\n      </xui-context-menu>\n    </ng-template>\n  </div>\n</div>\n\n<div class=\"content\" cdkDropListGroup>\n  <div class=\"drawer\" [class.closed]=\"closed\">\n    <xui-tab-group>\n      <xui-tab title=\"Metrics\">\n        <xui-metrics [entities]=\"entities\"></xui-metrics>\n      </xui-tab>\n      <xui-tab title=\"Data\">Data</xui-tab>\n    </xui-tab-group>\n\n    <xui-button class=\"toggle\" type=\"icon\" (click)=\"closed = !closed\">\n      <xui-icon [icon]=\"closed ? 'chevron-double-right' : 'chevron-double-left'\"></xui-icon>\n    </xui-button>\n  </div>\n\n  <div class=\"charts\">\n    <div class=\"placeholder\" cdkDropList (cdkDropListDropped)=\"dropped($event, 0)\" *ngIf=\"isDragging()\">\n      Drop Here to Add Metric\n    </div>\n\n    @for (chart of charts; track chart; let i = $index) {\n      <ng-container>\n        <div class=\"placeholder-group\">\n          <xui-analysis-chart [index]=\"i\" cdkDropList />\n          <div class=\"placeholder\" cdkDropList (cdkDropListDropped)=\"dropped($event, i, false)\" *ngIf=\"isDragging()\">\n            Drop Here to Add Metric\n          </div>\n        </div>\n\n        <div class=\"placeholder\" cdkDropList (cdkDropListDropped)=\"dropped($event, i + 1)\" *ngIf=\"isDragging()\">\n          Drop Here to Add Metric\n        </div>\n      </ng-container>\n    }\n  </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { XuiAnalysisComponent } from './analysis.component';\nimport { XuiButtonModule, XuiContextMenuModule, XuiIcon, XuiInputModule, XuiTabModule } from '@xui/components';\nimport { CdkMenuModule } from '@angular/cdk/menu';\nimport { MetricsComponent } from './metrics/metrics.component';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { ChartComponent } from './chart/chart.component';\nimport { NgxEchartsModule } from 'ngx-echarts';\n\n@NgModule({\n  declarations: [XuiAnalysisComponent, MetricsComponent, ChartComponent],\n  imports: [\n    CommonModule,\n    XuiButtonModule,\n    XuiIcon,\n    XuiContextMenuModule,\n    XuiTabModule,\n    XuiInputModule,\n    CdkMenuModule,\n    DragDropModule,\n    NgxEchartsModule.forChild()\n  ],\n  exports: [XuiAnalysisComponent]\n})\nexport class XuiAnalysisModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AnalysisService","i2","i3","i4","i5","i6.MetricsComponent","i7.ChartComponent"],"mappings":"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"}