{"version":3,"file":"ontimize-web-ngx-charts.mjs","sources":["../../projects/ontimize-web-ngx-charts/src/lib/models/options/ChartConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/ChartMarginConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/BulletChartConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/adapters/bullet-data-adapter.ts","../../projects/ontimize-web-ngx-charts/src/lib/adapters/ohlc-data-adapter.ts","../../projects/ontimize-web-ngx-charts/src/lib/adapters/candlestick-data-adapter.ts","../../projects/ontimize-web-ngx-charts/src/lib/adapters/discreteBar-data-adapter.ts","../../projects/ontimize-web-ngx-charts/src/lib/adapters/forceDirectedGraph-data-adapter.ts","../../projects/ontimize-web-ngx-charts/src/lib/adapters/gauge-data-adapter.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/GaugeSimpleChartConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/adapters/gauge-simple-data-adapter.ts","../../projects/ontimize-web-ngx-charts/src/lib/adapters/generic-data-adapter.ts","../../projects/ontimize-web-ngx-charts/src/lib/adapters/lineplusbar-data-adapter.ts","../../projects/ontimize-web-ngx-charts/src/lib/adapters/multibar-data-adapter.ts","../../projects/ontimize-web-ngx-charts/src/lib/adapters/multibar-horizontal-data-adapter.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/ParallelCoordinatesChartConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/adapters/parallel-coordinates-data-adapter.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/ChartLegendConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/PieChartConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/adapters/pie-data-adapter.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/RadarChartConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/adapters/radar-data-adapter.ts","../../projects/ontimize-web-ngx-charts/src/lib/adapters/scatter-data-adapter.ts","../../projects/ontimize-web-ngx-charts/src/lib/adapters/stacked-area-data-adapter.ts","../../projects/ontimize-web-ngx-charts/src/lib/adapters/data-adapter-utils.ts","../../projects/ontimize-web-ngx-charts/src/lib/types/chart-preferences.type.ts","../../projects/ontimize-web-ngx-charts/src/lib/util/constants.ts","../../projects/ontimize-web-ngx-charts/src/lib/util/utils.ts","../../projects/ontimize-web-ngx-charts/src/lib/components/chart-on-demand/load-preferences-dialog/load-preferences-dialog.component.ts","../../projects/ontimize-web-ngx-charts/src/lib/components/chart-on-demand/load-preferences-dialog/load-preferences-dialog.component.html","../../projects/ontimize-web-ngx-charts/src/lib/models/options/ChartAxisConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/ChartZoomConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/ChartControlConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/StackedAreaChartConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/OHLCChartConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/CandlestickChartConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/ForceDirectedGraphConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/LinePlusBarFocusChartConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/ScatterChartConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/MultiBarHorizontalChartConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/MultiBarChartConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/DiscreteBarChartConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/DonutChartConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/LineChartConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/chart-configuration-utils.ts","../../projects/ontimize-web-ngx-charts/src/lib/components/chart-on-demand/o-chart-on-demand-utils.ts","../../projects/ontimize-web-ngx-charts/src/lib/components/chart-on-demand/save-preferences-dialog/save-preferences-dialog.component.ts","../../projects/ontimize-web-ngx-charts/src/lib/components/chart-on-demand/save-preferences-dialog/save-preferences-dialog.component.html","../../projects/ontimize-web-ngx-charts/src/lib/services/chart.service.ts","../../projects/ontimize-web-ngx-charts/src/lib/adapters/line-data-adapter.ts","../../projects/ontimize-web-ngx-charts/src/lib/components/chart/o-chart-data-adapter.factory.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/AbstractChartOptions.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/BubbleChartConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/BubbleChartOptions.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/BulletChartOptions.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/CandlestickChartOptions.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/DiscreteBarChartOptions.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/PieChartOptions.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/DonutChartOptions.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/ForceDirectedGraphOptions.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/GaugeDashboardChartConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/GaugeDashboardChartOptions.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/GaugeSimpleChartOptions.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/GaugeSlimChartConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/GaugeSlimChartOptions.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/GaugeSpaceChartConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/GaugeSpaceChartOptions.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/LineChartOptions.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/LinePlusBarFocusChartOptions.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/MultiBarChartOptions.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/MultiBarHorizontalChartOptions.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/OHLCChartOptions.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/ParallelCoordinatesChartOptions.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/RadarChartOptions.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/RadialPercentChartConfiguration.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/RadialPercentChartOptions.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/ScatterChartOption.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/models/options/StackedAreaChartOptions.class.ts","../../projects/ontimize-web-ngx-charts/src/lib/components/chart/o-chart.factory.ts","../../projects/ontimize-web-ngx-charts/src/lib/components/chart/o-chart.component.ts","../../projects/ontimize-web-ngx-charts/src/lib/components/chart/o-chart.component.html","../../projects/ontimize-web-ngx-charts/src/lib/components/chart-on-demand/o-chart-on-demand.component.ts","../../projects/ontimize-web-ngx-charts/src/lib/components/chart-on-demand/o-chart-on-demand.component.html","../../projects/ontimize-web-ngx-charts/src/lib/services/chart-on-demand.service.ts","../../projects/ontimize-web-ngx-charts/src/lib/components/chart/o-chart.module.ts","../../projects/ontimize-web-ngx-charts/src/lib/components/chart-on-demand/o-chart-on-demand.module.ts","../../projects/ontimize-web-ngx-charts/src/lib/o-components.ts","../../projects/ontimize-web-ngx-charts/src/lib/i18n/i18n.ts","../../projects/ontimize-web-ngx-charts/src/lib/services/translate-chart.service.ts","../../projects/ontimize-web-ngx-charts/src/lib/o-services.ts","../../projects/ontimize-web-ngx-charts/src/lib/ontimize-web-ngx-charts.module.ts"],"sourcesContent":["import { OTranslateService } from 'ontimize-web-ngx';\n\nexport class ChartConfiguration {\n\n  public type: string;\n  public height: number;\n  public width: number;\n\n  public xLabel: string;\n  public yLabel: string;\n\n  public xDataType: any;\n  public yDataType: any;\n\n  public xAxis: string;\n  public yAxis: string[];\n\n  public translateService: OTranslateService;\n\n  public data: Object;\n\n  public showTooltip: boolean;\n\n  public showLegend: boolean;\n\n  public color: {\n    domain: string[]\n  };\n  // Message to display if no data is provided\n  public noDataMessage: string;\n\n  public callback: () => void;\n\n}\n","export class ChartMarginConfiguration {\n\n  public top: number = 30;\n  public bottom: number = 40;\n  public right: number = 40;\n  public left: number = 60;\n\n  public getMarginOptions(): Object {\n    const opt = {\n      top: this.top,\n      bottom: this.bottom,\n      right: this.right,\n      left: this.left\n    };\n    return opt;\n  }\n\n}\n","import { ChartConfiguration } from './ChartConfiguration.class';\nimport { ChartMarginConfiguration } from './ChartMarginConfiguration.class';\n\nexport class BulletChartConfiguration extends ChartConfiguration {\n  readonly type: string = 'bulletChart';\n\n  ticks: number = null;\n  tickFormat: any = null;\n  orient: string = 'left';\n  duration: number = 500;\n\n  title: string = '';\n  subtitle: string = '';\n\n  margin: ChartMarginConfiguration;\n\n  markersAxis: string;\n  measuresAxis: string;\n  rangesAxis: string;\n\n  constructor() {\n    super();\n    this.margin = new ChartMarginConfiguration();\n  }\n}","import { ChartDataAdapter } from '../interfaces/ChartDataAdapterFactory.interface';\nimport { ChartConfiguration } from '../models/ChartConfiguration.class';\nimport { BulletChartConfiguration } from '../models/options/BulletChartConfiguration.class';\n\nexport class BulletDataAdapter implements ChartDataAdapter {\n\n  protected chartConf: ChartConfiguration;\n  protected rangesAxis: string;\n  protected markersAxis: string;\n  protected measuresAxis: string;\n\n  constructor(chartConf: ChartConfiguration) {\n    if (chartConf) {\n      this.chartConf = chartConf;\n      if (chartConf instanceof BulletChartConfiguration) {\n        this.rangesAxis = chartConf.rangesAxis ? chartConf.rangesAxis : 'range';\n        this.markersAxis = chartConf.markersAxis ? chartConf.markersAxis : 'marker';\n        this.measuresAxis = chartConf.measuresAxis ? chartConf.measuresAxis : 'measure';\n      }\n    }\n  }\n\n  adaptResult(data: Array<any>) {\n    let result = {};\n    let markers = [];\n    let ranges = [];\n    let measures = [];\n\n\n    data.forEach((item: any, _index: number) => {\n      if (item[this.markersAxis]) {\n        markers.push(item[this.markersAxis]);\n      }\n      else if (item[this.rangesAxis]) {\n        ranges.push(item[this.rangesAxis]);\n      }\n      else if (item[this.measuresAxis]) {\n        measures.push(item[this.measuresAxis]);\n      }\n    });\n\n    if (this.chartConf instanceof BulletChartConfiguration) {\n      result['title'] = this.chartConf.title ? this.chartConf.title : '';\n      result['subtitle'] = this.chartConf.subtitle ? this.chartConf.subtitle : '';\n    }\n\n    ranges.sort((a, b) => (a > b) ? 1 : (b > a) ? -1 : 0);\n    markers.sort((a, b) => (a > b) ? 1 : (b > a) ? -1 : 0);\n\n    result['markers'] = markers;\n    result['measures'] = measures;\n    result['ranges'] = ranges;\n\n    return result;\n  }\n\n}\n","import { ChartDataAdapter } from '../interfaces/ChartDataAdapterFactory.interface';\nimport { ChartConfiguration } from '../models/ChartConfiguration.class';\nimport { OHLCChartConfiguration } from '../models/options/OHLCChartConfiguration.class';\n\nexport class OhlcDataAdapter implements ChartDataAdapter {\n\n  protected chartConf: ChartConfiguration;\n\n  adaptResult(data: any): Object {\n    let values = [];\n    let params = this.chartConf as OHLCChartConfiguration;\n    data.forEach((item: any, _index: number) => {\n      let val = {\n        date: item[params.xColumn],\n        open: item[params.openAxis],\n        close: item[params.closeAxis],\n        high: item[params.highAxis],\n        low: item[params.lowAxis]\n      }\n      values.push(val);\n    });\n\n    values.sort((a, b) => (a.date > b.date) ? 1 : (b.date > a.date) ? -1 : 0);\n    let dataAdapt = {\n      'values': values\n    }\n    return dataAdapt;\n  }\n\n  constructor(chartconf: ChartConfiguration) {\n    this.chartConf = chartconf;\n  }\n\n}\n","import { CandlestickChartConfiguration } from '../models/options/CandlestickChartConfiguration.class';\nimport { OhlcDataAdapter } from './ohlc-data-adapter';\n\nexport class CandlestickDataAdapter extends OhlcDataAdapter {\n\n  adaptResult(data: any): Object {\n    let values = [];\n    let params = this.chartConf as CandlestickChartConfiguration;\n    data.forEach((item: any, _index: number) => {\n      let val = {\n        date: item[params.xColumn],\n        open: item[params.openAxis],\n        close: item[params.closeAxis],\n        high: item[params.highAxis],\n        low: item[params.lowAxis]\n      }\n      values.push(val)\n    });\n\n    values.sort((a, b) => (a.date > b.date) ? 1 : (b.date > a.date) ? -1 : 0);\n\n    let dataAdapt = {\n      'values': values\n    }\n    return dataAdapt;\n  }\n\n}\n","import { ChartDataAdapter } from '../interfaces/ChartDataAdapterFactory.interface';\nimport { ChartConfiguration } from '../models/ChartConfiguration.class';\nimport { DiscreteBarChartConfiguration } from '../models/options/DiscreteBarChartConfiguration.class';\n\ninterface ChartDataPoint {\n  name: string;\n  value: number;\n}\n\nexport class DiscreteBarDataAdapter implements ChartDataAdapter {\n\n  protected chartConf: ChartConfiguration;\n  protected xAxis: string;\n  protected yAxis: string;\n\n  constructor(chartConf: ChartConfiguration) {\n    if (chartConf) {\n      this.chartConf = chartConf;\n      this.xAxis = this.chartConf.xAxis ? this.chartConf.xAxis : '';\n      let yAxis = this.chartConf.yAxis;\n      this.yAxis = yAxis && yAxis.length ? yAxis[0] : '';\n    }\n  }\n\n  adaptResult(data: Array<any>): ChartDataPoint[] {\n    const values: ChartDataPoint[] = [];\n    const self = this;\n    const params = this.chartConf as DiscreteBarChartConfiguration;\n    data.forEach((item: any, _index: number) => {\n      let itemLabel = item[self.xAxis];\n      if (self.chartConf.translateService) {\n        itemLabel = self.chartConf.translateService.get(itemLabel);\n      }\n      const filtered = self.filterCategory(itemLabel, values);\n      if (params.agroup) {\n        if (filtered && filtered.length === 0) {\n          const val: ChartDataPoint = {\n            'name': itemLabel,\n            'value': item[self.yAxis]\n          };\n          values.push(val);\n        } else {\n          filtered[0]['value'] += item[self.yAxis];\n        }\n      } else {\n        const val: ChartDataPoint = {\n          'name': itemLabel,\n          'value': item[self.yAxis]\n        };\n        values.push(val);\n      }\n    });\n\n    return values;\n  }\n\n  filterCategory(category: string, values: ChartDataPoint[]): ChartDataPoint[] {\n    let filtered: ChartDataPoint[] = [];\n    if (values && values.length) {\n      filtered = values.filter((val: ChartDataPoint) => val.name === category);\n    }\n    return filtered;\n  }\n}\n","import { ChartDataAdapter } from '../interfaces/ChartDataAdapterFactory.interface';\nimport { ChartConfiguration } from '../models/ChartConfiguration.class';\nimport { ForceDirectedGraphConfiguration } from '../models/options/ForceDirectedGraphConfiguration.class';\n\nexport class ForceDirectedGraphDataAdapter implements ChartDataAdapter {\n\n  protected chartConf: ForceDirectedGraphConfiguration;\n\n  constructor(chartConf: ChartConfiguration) {\n    this.chartConf = chartConf as ForceDirectedGraphConfiguration;\n  }\n\n  adaptResult(_data: Array<any>): Object {\n    let result;\n    result = {\n      nodes: this.chartConf.nodes,\n      links: this.chartConf.links\n    };\n    return result;\n  }\n\n}\n","import { ChartDataAdapter } from '../interfaces/ChartDataAdapterFactory.interface';\nimport { ChartConfiguration } from '../models/ChartConfiguration.class';\n\nexport class GaugeDataAdapter implements ChartDataAdapter {\n\n  protected chartConf: ChartConfiguration;\n  protected xAxis: string;\n  protected yAxis: string;\n\n  constructor(chartConf: ChartConfiguration) {\n    if (chartConf) {\n      this.chartConf = chartConf;\n      this.xAxis = this.chartConf.xAxis ? this.chartConf.xAxis : 'x';\n      if (this.chartConf.yAxis && this.chartConf.yAxis[0])\n        this.yAxis = this.chartConf.yAxis[0];\n    }\n  }\n\n  adaptResult(data: Array<any>) {\n    let values = [];\n    if (data.length === 1) {\n      let item = data.pop();\n      let value;\n      if (item[this.yAxis])\n        value = item[this.yAxis];\n      let other = 100 - value;\n      values.push({\n        'x': item[this.xAxis],\n        'y': value\n      });\n      values.push({\n        'x': 'other',\n        'y': other\n      });\n    }\n    else if (data.length === 2) {\n      let item1 = data.pop();\n      let item2 = data.pop();\n      let value1;\n      let value2;\n      let label1;\n      let label2;\n      if (item1[this.xAxis]) {\n        value1 = item1[this.xAxis];\n      }\n      if (item2[this.xAxis]) {\n        value2 = item2[this.xAxis];\n      }\n      if (item1[this.yAxis]) {\n        label1 = item1[this.yAxis];\n      }\n      if (item2[this.yAxis]) {\n        label2 = item2[this.yAxis];\n      }\n      if (value1 && value2 && label1 && label2) {\n        if ((item1 + item2) === 1) {\n          item1 = item1 * 100;\n          item2 = item2 * 100;\n        }\n        if ((item1 + item2) === 100) {\n          values.push({\n            'x': label1,\n            'y': value1\n          });\n          values.push({\n            'x': label2,\n            'y': value2\n          });\n        }\n      }\n    }\n\n    return values;\n  }\n\n}\n\n","import { ChartConfiguration } from './ChartConfiguration.class';\n\nexport class GaugeSimpleChartConfiguration extends ChartConfiguration {\n  readonly type: string = 'gaugeSimpleChart';\n\n  public color= { domain: ['#88ac67', '#f78f20', '#db4e4e'] };\n  title: string = '';\n  showMinMaxLabels: boolean = false;\n  min: number = 0;\n  max: number = 100;\n  zoneLimit1: number = 0.6;\n  zoneLimit2: number = 0.8;\n  duration: number = 500;\n}","import { ChartDataAdapter } from '../interfaces/ChartDataAdapterFactory.interface';\nimport { ChartConfiguration } from '../models/ChartConfiguration.class';\nimport { GaugeSimpleChartConfiguration } from '../models/options/GaugeSimpleChartConfiguration.class';\n\nexport class GaugeSimpleDataAdapter implements ChartDataAdapter {\n\n  protected chartConf: ChartConfiguration;\n  protected xAxis: string;\n  protected yAxis: string;\n\n  constructor(chartConf: ChartConfiguration) {\n    if (chartConf) {\n      this.chartConf = chartConf;\n      this.xAxis = this.chartConf.xAxis ? this.chartConf.xAxis : 'x';\n      this.yAxis = this.chartConf.yAxis ? this.chartConf.yAxis.pop() : 'y';\n    }\n  }\n\n  adaptResult(data: Array<any>) {\n    let dataAdapt = [];\n    data.forEach((item: any, _index: number) => {\n      if (item[this.yAxis]) {\n        dataAdapt.push(item[this.yAxis]);\n      }\n    });\n    if (dataAdapt.length > 1)\n      dataAdapt = [];\n    if (this.chartConf instanceof GaugeSimpleChartConfiguration && this.chartConf.max) {\n      if (dataAdapt[0] > this.chartConf.max) {\n        dataAdapt = [];\n      }\n    }\n    if (this.chartConf instanceof GaugeSimpleChartConfiguration && this.chartConf.min) {\n      if (dataAdapt[0] < this.chartConf.min) {\n        dataAdapt = [];\n      }\n    }\n    return dataAdapt;\n  }\n\n}\n\n","import { ChartSeries } from '../interfaces/ChartData.interface';\nimport { ChartDataAdapter } from '../interfaces/ChartDataAdapterFactory.interface';\nimport { ChartConfiguration } from '../models/ChartConfiguration.class';\n\nexport class GenericDataAdapter implements ChartDataAdapter {\n\n  protected chartConf: ChartConfiguration;\n\n  protected xAxis: string;\n  protected yAxis: Array<string>;\n\n  constructor(chartConf: ChartConfiguration) {\n    if (chartConf) {\n      this.chartConf = chartConf;\n      this.xAxis = this.chartConf.xAxis ? this.chartConf.xAxis : '';\n      let yAxis = this.chartConf.yAxis;\n      this.yAxis = yAxis && yAxis.length ? yAxis : [];\n    }\n  }\n\n\n  adaptResult(data: Array<any>): Array<ChartSeries> {\n    let result: Array<ChartSeries> = [];\n    if (data && data.length) {\n      let seriesvalues = this.processSeriesValues(data);\n      var self = this;\n      this.yAxis.forEach((axis: string, _index: number) => {\n        let serie: ChartSeries = {\n          'key': 'series',\n          'values': []\n        };\n        let key = axis;\n        if (self.chartConf.translateService) {\n          key = self.chartConf.translateService.get(key);\n        }\n        serie['key'] = key;\n        serie['values'] = seriesvalues[axis];\n\n        result.push(serie);\n      });\n    }\n    return result;\n  }\n\n  processSeriesValues(data: Array<Object>): Object {\n    let seriesvalues = {};\n    var self = this;\n    data.forEach((item: any, _index: number) => {\n\n      self.yAxis.forEach((axis: string, _axisIndex: number) => {\n        if (seriesvalues[axis] === undefined) {\n          seriesvalues[axis] = [];\n        }\n        let val = {\n          'x': item[self.xAxis],\n          'y': item[axis]\n        };\n        seriesvalues[axis].push(val);\n      });\n    });\n    return seriesvalues;\n  }\n\n}\n","import { ChartPoint, ChartSeries } from '../interfaces/ChartData.interface';\nimport { ChartDataAdapter } from '../interfaces/ChartDataAdapterFactory.interface';\nimport { ChartConfiguration } from '../models/ChartConfiguration.class';\nimport { LinePlusBarFocusChartConfiguration } from '../models/options/LinePlusBarFocusChartConfiguration.class';\n\n\nexport class LinePlusBarDataAdapter implements ChartDataAdapter {\n\n  protected chartConf: ChartConfiguration;\n\n  protected xAxis: string;\n  protected yAxis: Array<string>;\n\n  constructor(chartConf: ChartConfiguration) {\n    if (chartConf) {\n      this.chartConf = chartConf;\n      this.xAxis = this.chartConf.xAxis ? this.chartConf.xAxis : '';\n      let yAxis = this.chartConf.yAxis;\n      this.yAxis = yAxis && yAxis.length ? yAxis : [];\n    }\n  }\n\n  adaptResult(data: Array<any>): Array<ChartSeries> {\n    let result: Array<ChartSeries> = [];\n    const params = this.chartConf as LinePlusBarFocusChartConfiguration;\n    if (data && data.length) {\n      let seriesvalues = this.processSeriesValues(data);\n      var self = this;\n      this.yAxis.forEach((axis: string, _index: number) => {\n        let serie: ChartSeries = {\n          'key': 'series',\n          'bar': false,\n          'values': []\n        };\n        if (params.bars && params.bars[_index]) {\n          serie['bar'] = params.bars[_index];\n        }\n        let key = axis;\n        if (self.chartConf.translateService) {\n          key = self.chartConf.translateService.get(key);\n        }\n        serie['key'] = key;\n        seriesvalues[axis].sort((a, b) => (a.x > b.x) ? 1 : (b.x > a.x) ? -1 : 0);\n        if ((this.chartConf as LinePlusBarFocusChartConfiguration).to_zero && (this.chartConf as LinePlusBarFocusChartConfiguration).to_zero[_index]) {\n          serie['values'] = this.beautyResult(seriesvalues[axis], true);\n        } else if ((this.chartConf as LinePlusBarFocusChartConfiguration).to_previusValue && (this.chartConf as LinePlusBarFocusChartConfiguration).to_previusValue[_index]) {\n          serie['values'] = this.beautyResult(seriesvalues[axis], false);\n        } else {\n          serie['values'] = seriesvalues[axis];\n        }\n\n        result.push(serie);\n      });\n    }\n    return result;\n  }\n\n  processSeriesValues(data: Array<Object>): Object {\n    let seriesvalues = {};\n    var self = this;\n    data.forEach((item: any, _index: number) => {\n\n      self.yAxis.forEach((axis: string, _axisIndex: number) => {\n        if (seriesvalues[axis] === undefined) {\n          seriesvalues[axis] = [];\n        }\n        let val = {\n          'x': item[self.xAxis],\n          'y': item[axis]\n        };\n        seriesvalues[axis].push(val);\n      });\n    });\n    return seriesvalues;\n  }\n\n  // Function to create equispaced point in the chart\n  beautyResult(data: Array<any>, zeros: boolean): ChartPoint[] {\n    let values = [];\n    let day = 24 * 60 * 60 * 1000, previusPoint = data[0]['x'], previusValue = 0;\n    data.forEach((element) => {\n      while ((element['x'] - previusPoint) > day) {\n        previusPoint += day;\n        if (zeros)\n          values.push({ x: previusPoint, y: 0 });\n        else\n          values.push({ x: previusPoint, y: previusValue });\n      }\n      values.push(element);\n      previusPoint = element['x'];\n      previusValue = element['y'];\n    });\n    return values;\n  }\n\n}\n","import { ChartDataAdapter } from '../interfaces/ChartDataAdapterFactory.interface';\nimport { ChartConfiguration } from '../models/ChartConfiguration.class';\nimport { MultiBarChartConfiguration } from '../models/options/MultiBarChartConfiguration.class';\n\nexport class MultiBarDataAdapter implements ChartDataAdapter {\n\n  protected chartConf: ChartConfiguration;\n\n  protected xAxis: string;\n  protected yAxis: string[];\n\n  constructor(chartConf: ChartConfiguration) {\n    if (chartConf) {\n      this.chartConf = chartConf;\n      this.xAxis = this.chartConf.xAxis ? this.chartConf.xAxis : '';\n      const yAxis = this.chartConf.yAxis;\n      this.yAxis = yAxis && yAxis.length ? yAxis : [];\n    }\n  }\n\n  public adaptResult(data: any[]): any[] {\n    const result: any[] = [];\n    const params = this.chartConf as MultiBarChartConfiguration;\n\n    if (data && data.length) {\n      const seriesvalues = this.processSeriesValues(data);\n\n      for (const date in seriesvalues) {\n        if (seriesvalues.hasOwnProperty(date)) {\n          const item = seriesvalues[date];\n          const entry: any = {\n            name: Number(date),\n            series: []\n          };\n\n          for (const axis of this.yAxis) {\n            const value = item[axis] || 0;\n            entry.series.push({ name: axis, value: value });\n          }\n\n          result.push(entry);\n        }\n      }\n    }\n    return result;\n  }\n\n  public processSeriesValues(data: Object[]): Object {\n    const seriesvalues = {};\n    data.forEach((item: any, _index: number) => {\n      const date = item[this.xAxis];\n      if (!seriesvalues[date]) {\n        seriesvalues[date] = {};\n      }\n      this.yAxis.forEach((axis: string, _axisIndex: number) => {\n        seriesvalues[date][axis] = item[axis];\n      });\n    });\n    return seriesvalues;\n  }\n\n}\n","import { ChartDataAdapter } from '../interfaces/ChartDataAdapterFactory.interface';\nimport { ChartConfiguration } from '../models/ChartConfiguration.class';\n\ninterface ChartDataPoint {\n  name: string;\n  value: number;\n}\n\nexport class MultiBarHorizontalDataAdapter implements ChartDataAdapter {\n  private chartConf: ChartConfiguration;\n\n  constructor(chartConf: ChartConfiguration) {\n    this.chartConf = chartConf;\n  }\n\n  adaptResult(data: Array<any>): Array<ChartDataPoint> {\n    if (!data || data.length === 0) {\n      return [];\n    }\n\n    return data.map(item => {\n      const name = this.capitalizeFirstLetter(item[this.chartConf.xAxis]);\n      return {\n        name: name,\n        value: item[this.chartConf.yAxis[0]]\n      };\n    });\n  }\n\n  private capitalizeFirstLetter(str: string): string {\n    return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();\n  }\n}\n","import { ChartConfiguration } from './ChartConfiguration.class';\n\nexport class ParallelCoordinatesChartConfiguration extends ChartConfiguration {\n  readonly type: string = 'parallelCoordinatesChart';\n  dimensionData: Array<Object>;\n  undefinedValueLabel: string = 'Undefined Value';\n  lineTension: number = 1;\n  public color: {\n    domain: []\n  };\n}","import { ChartDataAdapter } from '../interfaces/ChartDataAdapterFactory.interface';\nimport { ChartConfiguration } from '../models/ChartConfiguration.class';\nimport { ParallelCoordinatesChartConfiguration } from '../models/options/ParallelCoordinatesChartConfiguration.class';\n\nexport class ParallelCoordinatesDataAdapter implements ChartDataAdapter {\n\n  private chartConf: ChartConfiguration;\n\n  constructor(chartConf: ChartConfiguration) {\n    this.chartConf = chartConf;\n  }\n\n  adaptResult(data: any) {\n    let values = [];\n    let conf = this.chartConf instanceof ParallelCoordinatesChartConfiguration ? this.chartConf : null;\n    if (conf === null) {\n      return values;\n    }\n\n    let dimensions = conf.dimensionData;\n\n    data.forEach((item: any, _index: number) => {\n      let val: { [k: string]: any } = {};;\n      dimensions.forEach((dimension: string) => {\n        val[dimension['key']] = item[dimension['key']];\n      });\n      values.push(val);\n    });\n\n    return values;\n  }\n\n}\n","import { ChartMarginConfiguration } from './ChartMarginConfiguration.class';\n\nexport class ChartLegendConfiguration {\n\n  public width: string = 'auto';\n  public height: string = 'auto';\n  public align: boolean = true;\n  public rightAlign: boolean = true;\n  public maxKeyLength: number = 20;\n  public padding: number = 40;\n  public updateState: boolean = true;\n  public radioButtonMode: boolean = false;\n  public expanded: boolean = false;\n  public vers: string = 'classic';\n  public margin: ChartMarginConfiguration;\n\n  constructor() {\n    this.margin = new ChartMarginConfiguration();\n    this.margin.top = 0;\n    this.margin.right = 0;\n    this.margin.bottom = 0;\n    this.margin.left = 0;\n  }\n\n  public getLegendOptions(): any {\n    const legend = {\n      width: this.width,\n      height: this.height,\n      align: this.align,\n      rightAlign: this.rightAlign,\n      maxKeyLength: this.maxKeyLength,\n      padding: this.padding,\n      updateState: this.updateState,\n      radioButtonMode: this.radioButtonMode,\n      expanded: this.expanded,\n      vers: this.vers,\n      margin: this.margin\n    };\n    return legend;\n  }\n\n}\n","import { OColorData } from '../../types/color-data.type';\nimport { ChartConfiguration } from './ChartConfiguration.class';\nimport { ChartLegendConfiguration } from './ChartLegendConfiguration.class';\nimport { ChartMarginConfiguration } from './ChartMarginConfiguration.class';\n\nexport class PieChartConfiguration extends ChartConfiguration {\n\n  public readonly type: string = 'pie';\n  public readonly donut: boolean = false;\n  public readonly donutRatio: number = 0;\n  public legend: ChartLegendConfiguration;\n\n  /** Position of the legend (top or right) */\n  public legendPosition: 'bellow' | 'right' | 'bottom' = 'bellow';\n  public duration: number = 500;\n  public cornerRadius: number = 0;\n  public margin: ChartMarginConfiguration;\n  /** Display pie labels */\n  public showLabels: boolean = true;\n  /** Configure what type of data to show in the label. It can be \"key\", \"value\" or \"percent\" */\n  public labelType: 'key' | 'value' | 'percent' = 'key';\n  /** Configure the minimum slice size for labels to show up */\n  public labelThreshold: number = 0.01;\n  public labelSunbeamLayout: boolean = true;\n  /** Whether pie chart labels should be outside the slices instead of inside them */\n  public labelsOutside: boolean = false;\n  public color: {\n    domain: []\n  };\n  /** Formats value(s) */\n  public valueType: string;\n  /** Enables or disabled the tooltip */\n  public showTooltip: boolean = true;\n  /** List of colors for each value in the Y axis of the chart */\n  public colorData: OColorData[];\n  /** Function used to manage the starting angle of the pie/donut chart */\n  public startAngle: (d) => number;\n  /** Function used to manage the ending angle of the pie/donut chart */\n  public endAngle: (d) => number;\n\n  constructor() {\n    super();\n    this.margin = new ChartMarginConfiguration();\n    this.legend = new ChartLegendConfiguration();\n  }\n\n}\n","import { AdaptedDataItem } from '../interfaces/ChartData.interface';\nimport { ChartDataAdapter } from '../interfaces/ChartDataAdapterFactory.interface';\nimport { ChartConfiguration } from '../models/ChartConfiguration.class';\nimport { PieChartConfiguration } from '../models/options/PieChartConfiguration.class';\n\nexport class PieDataAdapter<T extends ChartConfiguration> implements ChartDataAdapter {\n\n  protected chartConf: T;\n  protected xAxis: string;\n  protected yAxis: string;\n\n  constructor(chartConf: T) {\n    if (chartConf) {\n      this.chartConf = chartConf;\n      this.xAxis = this.chartConf.xAxis ? this.chartConf.xAxis : '';\n      const yAxis = this.chartConf.yAxis;\n      this.yAxis = yAxis && yAxis.length ? yAxis[0] : '';\n    }\n  }\n\n  public adaptResult(data: any[]): AdaptedDataItem[] {\n    const adaptedData: AdaptedDataItem[] = [];\n    const self = this;\n    data.forEach((item: any, _index: number) => {\n      let itemLabel = item[self.xAxis];\n      if (self.chartConf.translateService) {\n        itemLabel = self.chartConf.translateService.get(itemLabel);\n      }\n\n      const filtered = self.filterCategory(itemLabel, adaptedData);\n      const value = Math.abs(item[self.yAxis]);\n\n      if (filtered && filtered.length === 0) {\n        const adaptedItem: AdaptedDataItem = {\n          name: itemLabel,\n          value: value\n        };\n\n        // Specify color for each value\n        if (self.chartConf instanceof PieChartConfiguration) {\n          const config = (self.chartConf as PieChartConfiguration);\n          if (config.colorData && config.colorData.length) {\n            const colorDataItem = config.colorData.find(c => c.value.toLowerCase() === item[self.xAxis].toLowerCase());\n            if (colorDataItem) {\n              adaptedItem.color = colorDataItem.color;\n            }\n          }\n        }\n\n        adaptedData.push(adaptedItem);\n      } else {\n        filtered[0].value += value;\n      }\n    });\n    return adaptedData;\n  }\n\n  public filterCategory(category: string, data: AdaptedDataItem[]): AdaptedDataItem[] {\n    return data.filter((item: AdaptedDataItem) => item.name === category);\n  }\n}\n","import { ChartConfiguration } from './ChartConfiguration.class';\nimport { ChartLegendConfiguration } from './ChartLegendConfiguration.class';\n\nexport class RadarChartConfiguration extends ChartConfiguration {\n  readonly type: string = 'radarChart';\n  public color: {\n    domain: []\n  };\n  min: number = 0;\n  max: number = 1;\n  stepSize: number = 0.1;\n  factor: number = 1;\n  opacityArea: number = 0.5;\n\n  key: string;\n  dimensions: Array<string>;\n\n  legend: ChartLegendConfiguration;\n  showLegend: boolean = true;\n\n  constructor() {\n    super();\n    this.legend = new ChartLegendConfiguration();\n  }\n}","import { ChartDataAdapter } from '../interfaces/ChartDataAdapterFactory.interface';\nimport { ChartConfiguration } from '../models/ChartConfiguration.class';\nimport { RadarChartConfiguration } from '../models/options/RadarChartConfiguration.class';\n\nexport class RadarDataAdapter implements ChartDataAdapter {\n\n  chartConf: ChartConfiguration;\n\n  constructor(chartConf: ChartConfiguration) {\n    this.chartConf = chartConf;\n  }\n\n  adaptResult(data: any) {\n    let result = [];\n    const conf = this.chartConf instanceof RadarChartConfiguration ? this.chartConf : null;\n    if (conf === null)\n      return result;\n    let dimensions = conf.dimensions;\n    let key = conf.key;\n\n    data.forEach((item: any, _index: number) => {\n      let val = [];\n      dimensions.forEach((dimension: string) => {\n        val.push({ axis: dimension, value: item[dimension] });\n      });\n\n      result.push({\n        key: item[key],\n        values: val\n      })\n\n    });\n\n    return result;\n  }\n\n}\n","import { ChartSeries } from '../interfaces/ChartData.interface';\nimport { ChartDataAdapter } from '../interfaces/ChartDataAdapterFactory.interface';\nimport { ChartConfiguration } from '../models/ChartConfiguration.class';\nimport { ScatterChartConfiguration } from '../models/options/ScatterChartConfiguration.class';\n\nexport class ScatterDataAdapter implements ChartDataAdapter {\n\n  protected chartConf: ChartConfiguration;\n  protected xAxis: string;\n  protected yAxis: string[];\n\n  constructor(chartConf: ChartConfiguration) {\n    if (chartConf) {\n      this.chartConf = chartConf;\n      this.xAxis = this.chartConf.xAxis ? this.chartConf.xAxis : '';\n      const yAxis = this.chartConf.yAxis;\n      this.yAxis = yAxis && yAxis.length ? yAxis : [];\n    }\n  }\n\n  public adaptResult(data: any[]): ChartSeries[] {\n    const result: ChartSeries[] = [];\n    if (data && data.length) {\n      const seriesvalues = this.processSeriesValues(data);\n      const self = this;\n      this.yAxis.forEach((axis: string, _index: number) => {\n        const serie: ChartSeries = {\n          key: 'series',\n          values: []\n        };\n        let key = axis;\n        if (self.chartConf.translateService) {\n          key = self.chartConf.translateService.get(key);\n        }\n        serie.key = key;\n        serie.values = seriesvalues[axis];\n\n        result.push(serie);\n      });\n    }\n    return result;\n  }\n\n  public processSeriesValues(data: Object[]): Object {\n    const seriesvalues = {};\n    const self = this;\n    const params = this.chartConf as ScatterChartConfiguration;\n    data.forEach((item: any, _index: number) => {\n\n      self.yAxis.forEach((axis: string, _axisIndex: number) => {\n        if (seriesvalues[axis] === undefined) {\n          seriesvalues[axis] = [];\n        }\n        const val: any = {\n          x: item[self.xAxis],\n          y: item[axis]\n        };\n        if (params.shape && params.shape[_axisIndex]) {\n          val.shape = params.shape[_axisIndex];\n        }\n        if (params.size && params.size[_axisIndex]) {\n          val.size = params.size[_axisIndex];\n        }\n        if (params.color && params.color[_axisIndex]) {\n          val.color = params.color[_axisIndex];\n        }\n        seriesvalues[axis].push(val);\n      });\n    });\n    return seriesvalues;\n  }\n\n}\n","import { ChartDataAdapter } from '../interfaces/ChartDataAdapterFactory.interface';\nimport { ChartConfiguration } from '../models/ChartConfiguration.class';\nimport { StackedAreaChartConfiguration } from '../models/options/StackedAreaChartConfiguration.class';\n\ninterface ChartDataPoint {\n  name: string;\n  value: number;\n}\n\ninterface ChartSeries {\n  name: string;\n  series: ChartDataPoint[];\n  color?: string;\n}\n\nexport class StackedAreaDataAdapter implements ChartDataAdapter {\n  protected chartConf: ChartConfiguration;\n  protected xAxis: string;\n  protected yAxis: Array<string>;\n\n  constructor(chartConf: ChartConfiguration) {\n    if (chartConf) {\n      this.chartConf = chartConf;\n      this.xAxis = this.chartConf.xAxis ? this.chartConf.xAxis : '';\n      let yAxis = this.chartConf.yAxis;\n      this.yAxis = yAxis && yAxis.length ? yAxis : [];\n    }\n  }\n\n  adaptResult(data: Array<any>): Array<ChartSeries> {\n    let result: Array<ChartSeries> = [];\n    let config = this.chartConf as StackedAreaChartConfiguration;\n    if (data && data.length) {\n      let seriesValues = this.processSeriesValues(data);\n      this.yAxis.forEach((axis: string, _index: number) => {\n        let serie: ChartSeries = {\n          name: axis,\n          series: seriesValues[axis] || [], // Use the processed data for the series\n        };\n        if (config.color && config.color[_index]) {\n          serie.color = config.color[_index];\n        }\n        let key = axis;\n        if (config.translateService) {\n          key = config.translateService.get(key);\n        }\n        serie.name = key;\n        result.push(serie);\n      });\n    }\n    return result;\n  }\n\n  processSeriesValues(data: Array<any>): { [key: string]: ChartDataPoint[] } {\n    let seriesValues: { [key: string]: ChartDataPoint[] } = {};\n\n    data.forEach((item: any, _index: number) => {\n      this.yAxis.forEach((axis: string, _indexAxis: number) => {\n        if (seriesValues[axis] === undefined) {\n          seriesValues[axis] = [];\n        }\n        if (item[axis] !== undefined) {\n          const dataPoint: ChartDataPoint = {\n            name: item[this.xAxis] || '', // Use the correct property name and handle undefined\n            value: item[axis] || 0, // Use 0 as the default value for undefined\n          };\n          seriesValues[axis].push(dataPoint);\n        }\n      });\n    });\n    return seriesValues;\n  }\n}\n","import { BulletDataAdapter } from '../adapters/bullet-data-adapter';\nimport { CandlestickDataAdapter } from '../adapters/candlestick-data-adapter';\nimport { DiscreteBarDataAdapter } from '../adapters/discreteBar-data-adapter';\nimport { ForceDirectedGraphDataAdapter } from '../adapters/forceDirectedGraph-data-adapter';\nimport { GaugeDataAdapter } from '../adapters/gauge-data-adapter';\nimport { GaugeSimpleDataAdapter } from '../adapters/gauge-simple-data-adapter';\nimport { GenericDataAdapter } from '../adapters/generic-data-adapter';\nimport { LineDataAdapter } from '../adapters/line-data-adapter';\nimport { LinePlusBarDataAdapter } from '../adapters/lineplusbar-data-adapter';\nimport { MultiBarDataAdapter } from '../adapters/multibar-data-adapter';\nimport { MultiBarHorizontalDataAdapter } from '../adapters/multibar-horizontal-data-adapter';\nimport { OhlcDataAdapter } from '../adapters/ohlc-data-adapter';\nimport { ParallelCoordinatesDataAdapter } from '../adapters/parallel-coordinates-data-adapter';\nimport { PieDataAdapter } from '../adapters/pie-data-adapter';\nimport { RadarDataAdapter } from '../adapters/radar-data-adapter';\nimport { ScatterDataAdapter } from '../adapters/scatter-data-adapter';\nimport { StackedAreaDataAdapter } from '../adapters/stacked-area-data-adapter';\nimport { ChartDataAdapter } from '../interfaces/ChartDataAdapterFactory.interface';\nimport { ChartConfiguration } from '../models/ChartConfiguration.class';\n\nexport class DataAdapterUtils {\n\n  constructor() { }\n\n  public static createDataAdapter(chartConf: ChartConfiguration): ChartDataAdapter {\n    let adapter: ChartDataAdapter = null;\n    switch (chartConf.type) {\n      case 'line':\n        adapter = new StackedAreaDataAdapter(chartConf);\n        break;\n      case 'discreteBar':\n        adapter = new DiscreteBarDataAdapter(chartConf);\n        break;\n      case 'pie':\n      case 'donutChart':\n        adapter = new PieDataAdapter(chartConf);\n        break;\n      case 'multiBar':\n        adapter = new MultiBarDataAdapter(chartConf);\n        break;\n      case 'scatterChart':\n        adapter = new ScatterDataAdapter(chartConf);\n        break;\n      case 'candlestickBarChart':\n        adapter = new CandlestickDataAdapter(chartConf);\n        break;\n      case 'ohlcBarChart':\n        adapter = new OhlcDataAdapter(chartConf);\n        break;\n      case 'boxPlotChart':\n        break;\n      case 'multibarHorizontalChart':\n        adapter = new MultiBarHorizontalDataAdapter(chartConf);\n        break;\n      case 'linePlusBarWithFocusChart':\n        adapter = new LinePlusBarDataAdapter(chartConf);\n        break;\n      case 'forceDirectedGraph':\n        adapter = new ForceDirectedGraphDataAdapter(chartConf);\n        break;\n      case 'bulletChart':\n        adapter = new BulletDataAdapter(chartConf);\n        break;\n      case 'gaugeDashboardChart':\n      case 'radialPercentChart':\n      case 'gaugeSpaceChart':\n      case 'gaugeSlimChart':\n        adapter = new GaugeDataAdapter(chartConf);\n        break;\n      case 'gaugeSimpleChart':\n        adapter = new GaugeSimpleDataAdapter(chartConf);\n        break;\n      case 'stackedAreaChart':\n        adapter = new StackedAreaDataAdapter(chartConf);\n        break;\n      case 'radarChart':\n        adapter = new RadarDataAdapter(chartConf);\n        break;\n      case 'parallelCoordinatesChart':\n        adapter = new ParallelCoordinatesDataAdapter(chartConf);\n        break;\n      default:\n        adapter = new GenericDataAdapter(chartConf);\n        break;\n    }\n    return adapter;\n  }\n\n}\n","import { SQLTypes } from 'ontimize-web-ngx';\n\n\nexport type OChartPreferences = {\n  title: string\n  subtitle: string,\n  entity: string,\n  service: string,\n  selectedXAxis: string,\n  selectedYAxis: string[],\n  selectedTypeChart: any,\n  selectedDataTypeChart: any,\n  selectedXAxisType: number,\n  selectedYAxisType: number,\n  selectedXDataType: string,\n  selectedYDataType: string,\n  selectedPalette: {\n    domain: []\n  }\n}\nexport class DefaultOChartPreferences implements OChartPreferences {\n  public title: string;\n  public subtitle: string;\n  public entity: string;\n  public service: string;\n  public selectedXAxis: string;\n  public selectedYAxis: string[];\n  public selectedTypeChart: any;\n  public selectedDataTypeChart: any;\n  public selectedXAxisType: number;\n  public selectedYAxisType: number;\n  selectedXDataType: string;\n  selectedYDataType: string;\n  public selectedPalette: {\n    domain: []\n  };\n  constructor() {\n    this.title = '';\n    this.subtitle = '';\n    this.entity = '';\n    this.service = '';\n    this.selectedXAxis = undefined;\n    this.selectedYAxis = [];\n    this.selectedXAxisType = SQLTypes.OTHER;\n    this.selectedYAxisType = SQLTypes.OTHER;\n    this.selectedXDataType = \"\";\n    this.selectedYDataType = \"\";\n    this.selectedDataTypeChart = 1;\n  }\n}\n\n\n","export class Constants {\n  public static DEFAULT_WIDTH_DIALOG = '70%';\n  public static DEFAULT_HEIGHT_DIALOG = '90%';\n}\n","import { MatDialog } from \"@angular/material/dialog\";\nimport { Constants } from \"./constants\";\n\nexport class Utils {\n  static setFullscreenDialog(fullscreen: boolean, dialogRef: any): void {\n    if (!fullscreen) {\n      dialogRef.updateSize(\"100%\", \"100%\");\n    } else {\n      dialogRef.updateSize(Constants.DEFAULT_WIDTH_DIALOG, Constants.DEFAULT_HEIGHT_DIALOG);\n    }\n  }\n\n  static openModalVisor(dialog: MatDialog, component: any, data: object) {\n    dialog.open(component, {\n      maxWidth: '100vw',\n      maxHeight: '100vh',\n      height: Constants.DEFAULT_HEIGHT_DIALOG,\n      width: Constants.DEFAULT_WIDTH_DIALOG,\n      panelClass: ['o-dialog-class', 'o-table-dialog', 'o-report'],\n      data: data\n    });\n  }\n  static adaptColorScheme(colorScheme: string[]): { domain: string[] } {\n    return { domain: colorScheme };\n  }\n}\n","import { SelectionModel } from '@angular/cdk/collections';\nimport { Component, Inject, OnInit, Optional, ViewChild } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { MatListOption, MatSelectionList } from '@angular/material/list';\nimport { DialogService, OntimizePreferencesService, OPreference, Util } from 'ontimize-web-ngx';\n\n\n@Component({\n  selector: 'load-preferences-dialog',\n  templateUrl: './load-preferences-dialog.component.html'\n})\n\nexport class LoadPreferencesDialogComponent implements OnInit {\n  @ViewChild(MatSelectionList, { static: true })\n  protected configurationList: MatSelectionList;\n\n  public configurationListData: OPreference[] = [];\n  public selectedConfiguration: OPreference;\n  constructor(\n    private dialogService: DialogService,\n    private readonly preferencesService: OntimizePreferencesService,\n    public dialogo: MatDialogRef<LoadPreferencesDialogComponent>,\n    @Optional() @Inject(MAT_DIALOG_DATA) public data: any) {\n    this.preferencesService.configureService(this.preferencesService.getDefaultServiceConfiguration('preferences'));\n    this.getConfigurations();\n  }\n  ngOnInit(): void {\n    this.configurationList.selectedOptions = new SelectionModel<MatListOption>(false);\n  }\n\n  loadConfiguration(): void {\n    this.dialogo.close(this.selectedConfiguration);\n  }\n\n  remove(): void {\n    this.dialogService.confirm('CONFIRM', 'TABLE.DIALOG.CONFIRM_REMOVE_CONFIGURATION').then(result => {\n      if (result) {\n        this.preferencesService.deletePreferences(this.selectedConfiguration.PREFERENCEID).subscribe(res => {\n          if (res && res.code === 0) {\n            this.getConfigurations();\n          }\n        });\n      }\n    });\n  }\n  onClickConfigurationList(option) {\n    this.selectedConfiguration = option;\n  }\n\n  getConfigurations() {\n    this.preferencesService.getPreferences(this.data.entity, this.data.service, 'CHART').subscribe(resp => {\n      if (resp.isSuccessful()) {\n        this.setDataArray(resp.data);\n      }\n    });\n  }\n\n  setDataArray(data: any) {\n    if (Util.isArray(data)) {\n      this.configurationListData = data;\n    } else {\n      this.configurationListData = []\n    }\n  }\n}\n","<span mat-dialog-title>{{ 'CHART_ON_DEMAND.BUTTONS.APPLY_CONFIGURATION' | oTranslate }}</span>\n<mat-dialog-content fxLayout=\"column\">\n  <div mat-subheader *ngIf=\"configurationListData?.length > 0\">{{ 'CHART_ON_DEMAND.DIALOG.APPLY_CONFIGURATION' | oTranslate }}</div>\n  <div mat-subheader *ngIf=\"configurationListData?.length==0\">{{ 'CHART_ON_DEMAND.DIALOG.NO_CONFIGURATION' | oTranslate }}</div>\n  <mat-selection-list #configurationList class=\"apply-configuration-dialog-list\">\n    <mat-list-option (click)=\"onClickConfigurationList(configuration)\" checkboxPosition=\"before\" *ngFor=\"let configuration of configurationListData\"\n      [value]=\"configuration\">\n      <span matListItemTitle>{{ configuration.PREFERENCENAME }}</span>\n      <span matListItemLine>{{ configuration.PREFERENCEDESCRIPTION }}</span>\n    </mat-list-option>\n  </mat-selection-list>\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\">\n  <button type=\"button\" (click)=\"remove()\" mat-stroked-button [disabled]=\"configurationList.selectedOptions.selected.length!==1\"\n    class=\"o-button-danger\">\n    {{ 'DELETE' | oTranslate }}\n  </button>\n  <span fxFlex></span>\n  <button type=\"button\" mat-stroked-button [mat-dialog-close]=\"false\" class=\"o-button-default\">{{ 'CANCEL' | oTranslate }}</button>\n  <button type=\"button\" (click)=\"loadConfiguration()\" mat-stroked-button [mat-dialog-close]=\"true\"\n    [disabled]=\"configurationList.selectedOptions.selected.length!==1\" class=\"o-button-primary\">{{ 'OK' | oTranslate}}</button>\n</mat-dialog-actions>\n","export class ChartAxisConfiguration {\n\n  public axisLabel: string = '';\n  public axisLabelDistance: number = 0;\n  public staggerLabels: boolean = false;\n  public rotateLabels: number = 0;\n  public rotateYLabel: boolean = true;\n  public showMaxMin: boolean = true;\n\n  public duration: number = 250;\n  public orient: string = 'bottom';\n  public fontSize: number = 12;\n\n  public tickFormat: any = null;\n  public tickValues: number[] = null;\n  public ticks: number = null;\n  public tickPadding: number;\n\n  public getAxisOptions(): Object {\n    const axis = {\n      axisLabel: this.axisLabel,\n      axisLabelDistance: this.axisLabelDistance,\n      staggerLabels: this.staggerLabels,\n      rotateLabels: this.rotateLabels,\n      rotateYLabel: this.rotateYLabel,\n      showMaxMin: this.showMaxMin,\n      duration: this.duration,\n      orient: this.orient,\n      fontSize: this.fontSize,\n      tickFormat: this.tickFormat,\n      ticks: this.ticks,\n      ticksValues: this.tickValues,\n      tickPadding: this.tickPadding\n    };\n    return axis;\n  }\n\n}\n","export class ChartZoomConfiguration {\n  enabled: boolean = true;\n  scaleExtend: [number, number] = [1, 10];\n  useFixedDomain: boolean = false;\n  useNiceScale: boolean = false;\n  horizontalOff: boolean = false;\n  verticalOff: boolean = false;\n  unzoomEventType: string = 'dblclick.zoom';\n\n\n  public getZoomOptions() {\n    let zoom = {\n      enabled: this.enabled,\n      scaleExtend: this.scaleExtend,\n      useFixedDomain: this.useFixedDomain,\n      useNiceScale: this.useNiceScale,\n      horizontalOff: this.horizontalOff,\n      verticalOff: this.verticalOff,\n      unzoomEventType: this.unzoomEventType\n    };\n    return zoom;\n  }\n}\n","export class ChartControlConfiguration {\n  align: boolean = true;\n  rightAlign: boolean = false;\n\n  maxKeyLenght: number = 20;\n\n  radioButtonMode: boolean = false;\n  expanded: boolean = false;\n\n  padding: number = 32;\n\n  getChartControlConfiguration() {\n    return {\n      align: this.align,\n      rightAlign: this.rightAlign,\n      maxKeyLenght: this.maxKeyLenght,\n      radioButtonMode: this.radioButtonMode,\n      expanded: this.expanded,\n      padding: this.padding\n    }\n  }\n}","import { ChartConfiguration } from './ChartConfiguration.class';\nimport { ChartAxisConfiguration } from './ChartAxisConfiguration.class';\nimport { ChartZoomConfiguration } from './ChartZoomConfiguration.class';\nimport { ChartLegendConfiguration } from './ChartLegendConfiguration.class';\nimport { ChartControlConfiguration } from './ChartControlConfiguration.class';\n\nexport class StackedAreaChartConfiguration extends ChartConfiguration {\n  readonly type: string = 'stackedAreaChart';\n\n  x1Axis: ChartAxisConfiguration;\n  showXAxis: boolean = true;\n  y1Axis: ChartAxisConfiguration;\n  showYAxis: boolean = true;\n  rightAlignYAxis: boolean = false;\n\n  legend: ChartLegendConfiguration;\n  showLegend: boolean = true;\n\n  control: ChartControlConfiguration;\n  showControls: boolean = true;\n\n  zoom: ChartZoomConfiguration;\n\n  useInteractiveGuideline: boolean = true;\n  style: string = 'stack';\n  interactive: boolean = true;\n  useVoronoi: boolean = true;\n  showVoronoi: boolean = false;\n\n  color: {\n    domain: []\n  };\n\n  constructor() {\n    super();\n    this.x1Axis = new ChartAxisConfiguration();\n    this.y1Axis = new ChartAxisConfiguration();\n    this.legend = new ChartLegendConfiguration();\n    this.control = new ChartControlConfiguration();\n    this.zoom = new ChartZoomConfiguration();\n  }\n}","import { ChartConfiguration } from './ChartConfiguration.class';\nimport { ChartAxisConfiguration } from './ChartAxisConfiguration.class';\nimport { ChartLegendConfiguration } from './ChartLegendConfiguration.class';\nimport { ChartZoomConfiguration } from './ChartZoomConfiguration.class';\n\nexport class OHLCChartConfiguration extends ChartConfiguration {\n  readonly type: string = 'ohlcBarChart';\n\n  x1Axis: ChartAxisConfiguration;\n  showXAxis: boolean = true;\n  y1Axis: ChartAxisConfiguration;\n  showYAxis: boolean = true;\n  rightAlignYAxis: boolean = false;\n\n  legend: ChartLegendConfiguration;\n  showLegend: boolean = false;\n\n  zoom: ChartZoomConfiguration;\n\n  low: any;\n  high: any;\n\n  useInteractiveGuideline: boolean = true;\n  padData: boolean = false;\n  clidEdge: boolean = true;\n\n  //Properties for select the values of date, open,\n  // close, high and low in data adapter\n  xColumn: string;\n  openAxis: string;\n  closeAxis: string;\n  highAxis: string;\n  lowAxis: string;\n\n  constructor() {\n    super();\n    this.x1Axis = new ChartAxisConfiguration();\n    this.y1Axis = new ChartAxisConfiguration();\n    this.legend = new ChartLegendConfiguration();\n    this.zoom = new ChartZoomConfiguration();\n  }\n}\n","import { OHLCChartConfiguration } from './OHLCChartConfiguration.class';\n\nexport class CandlestickChartConfiguration extends OHLCChartConfiguration {\n  readonly type: string = 'candlestickBarChart';\n\n}\n","import { ChartMarginConfiguration } from './ChartMarginConfiguration.class';\nimport { ChartConfiguration } from './ChartConfiguration.class';\nimport { ForceDirectedGraphNode } from './ForceDirectedGraphNode.class';\nimport { ForceDirectedGraphLink } from './ForceDirectedGraphLink.class';\n\nexport class ForceDirectedGraphConfiguration extends ChartConfiguration {\n  readonly type: string = 'forceDirectedGraph';\n\n  margin: ChartMarginConfiguration;\n\n  linkStrength: number = 0.1;\n  friction: number = 0.9;\n  linkDist: number = 30;\n  charge: number = -120;\n  gravity: number = 0.1;\n  theta: number = 0.8;\n  alpha: number = 0.1;\n  radius: number = 5;\n\n  nodes: Array<ForceDirectedGraphNode>;\n  links: Array<ForceDirectedGraphLink>;\n\n\n  constructor() {\n    super();\n    this.margin = new ChartMarginConfiguration();\n  }\n\n  get _nodes() {\n    return this.nodes;\n  }\n\n  get _links() {\n    return this.links;\n  }\n}\n","import { ChartAxisConfiguration } from './ChartAxisConfiguration.class';\nimport { ChartConfiguration } from './ChartConfiguration.class';\nimport { ChartLegendConfiguration } from './ChartLegendConfiguration.class';\nimport { ChartMarginConfiguration } from './ChartMarginConfiguration.class';\n\nexport class LinePlusBarFocusChartConfiguration extends ChartConfiguration {\n\n  public readonly type: string = 'linePlusBarWithFocusChart';\n\n  public x1Axis: ChartAxisConfiguration;\n  public y1Axis: ChartAxisConfiguration;\n  public y2Axis: ChartAxisConfiguration;\n  public switchYAxisOrder: boolean = false;\n\n  public showLabels: boolean = false;\n  public showLegend: boolean = true;\n  public legend: ChartLegendConfiguration;\n\n  public duration: number = 350;\n  public margin: ChartMarginConfiguration;\n  public isArea: any;\n  public interactive: boolean = true;\n\n  public focusEnable: boolean = true;\n  public focusShowAxisX: boolean = true;\n  public focusShowAxisY: boolean = false;\n\n  public forceX: number[];\n  public forceY: number[];\n\n  // Parameter for select chart with bars or line\n  public bars: boolean[];\n  // Parameters for select the chart colors\n  public color: {\n    domain: []\n  };\n\n  // Parameters for create equispaced points in chart to_zero is priority in the case of two parameters are activated\n  public to_zero: boolean[];\n  public to_previusValue: boolean[];\n\n  constructor() {\n    super();\n    this.x1Axis = new ChartAxisConfiguration();\n    this.y1Axis = new ChartAxisConfiguration();\n    this.y2Axis = new ChartAxisConfiguration();\n    this.legend = new ChartLegendConfiguration();\n    this.isArea = this.functionIsArea();\n    this.margin = new ChartMarginConfiguration();\n  }\n\n  protected functionIsArea(): Function {\n    return d => d.area;\n  }\n\n}\n","import { ChartAxisConfiguration } from './ChartAxisConfiguration.class';\nimport { ChartConfiguration } from './ChartConfiguration.class';\nimport { ChartLegendConfiguration } from './ChartLegendConfiguration.class';\nimport { ChartMarginConfiguration } from './ChartMarginConfiguration.class';\n\nexport class ScatterChartConfiguration extends ChartConfiguration {\n\n  public readonly type: string = 'scatterChart';\n\n  public showDistX: boolean = true;\n  public showDistY: boolean = true;\n  public showXAxis: boolean = true;\n  public showYAxis: boolean = true;\n\n  public showLegend: boolean = true;\n  public legend: ChartLegendConfiguration;\n\n  public duration: number = 350;\n  public margin: ChartMarginConfiguration;\n  public clipEdge: boolean = false;\n\n  public rightAlignYAxis: boolean = false;\n  public x1Axis: ChartAxisConfiguration;\n  public y1Axis: ChartAxisConfiguration;\n\n  public color: {\n    domain: []\n  };\n  public shape: string[] = null;\n  public size: number[] = null;\n\n  constructor() {\n    super();\n    this.x1Axis = new ChartAxisConfiguration();\n    this.y1Axis = new ChartAxisConfiguration();\n    this.margin = new ChartMarginConfiguration();\n    this.legend = new ChartLegendConfiguration();\n  }\n\n}\n","import { ChartAxisConfiguration } from './ChartAxisConfiguration.class';\nimport { ChartConfiguration } from './ChartConfiguration.class';\nimport { ChartLegendConfiguration } from './ChartLegendConfiguration.class';\nimport { ChartMarginConfiguration } from './ChartMarginConfiguration.class';\n\nexport class MultiBarHorizontalChartConfiguration extends ChartConfiguration {\n\n  public readonly type: string = 'multiBarHorizontalChart';\n\n  public legend: ChartLegendConfiguration;\n  /** Allow user to switch between \"Grouped\" and \"Stacked\" mode */\n  public showControls: boolean = true;\n  /** Show bar value next to each bar */\n  public showValues: boolean = true;\n  public margin: ChartMarginConfiguration;\n  public valuePadding: number = 60;\n  public groupSpacing: number = 0.1;\n  public duration: number = 500;\n  public stacked: boolean = false;\n  public showXAxis: boolean = true;\n  public showYAxis: boolean = true;\n  public x1Axis: ChartAxisConfiguration;\n  public y1Axis: ChartAxisConfiguration;\n  public color: {\n    domain: []\n  };\n  /** Formats value(s) */\n  public valueType: string;\n  /** Enables or disabled the tooltip */\n  public showTooltip: boolean = true;\n\n  constructor() {\n    super();\n    this.legend = new ChartLegendConfiguration();\n    this.margin = new ChartMarginConfiguration();\n    this.x1Axis = new ChartAxisConfiguration();\n    this.y1Axis = new ChartAxisConfiguration();\n  }\n\n}\n","import { ChartAxisConfiguration } from './ChartAxisConfiguration.class';\nimport { ChartConfiguration } from './ChartConfiguration.class';\nimport { ChartControlConfiguration } from './ChartControlConfiguration.class';\nimport { ChartLegendConfiguration } from './ChartLegendConfiguration.class';\nimport { ChartMarginConfiguration } from './ChartMarginConfiguration.class';\n\nexport class MultiBarChartConfiguration extends ChartConfiguration {\n\n  public readonly type: string = 'multiBar';\n\n  public margin: ChartMarginConfiguration;\n\n  public legend: ChartLegendConfiguration;\n\n  public duration: number = 500;\n  public stacked: boolean = true;\n  public hideable: boolean = false;\n  public groupSpacing: number = 0.1;\n  public reduceXTicks: boolean = true;\n\n  public showControls: boolean = true;\n  public control: ChartControlConfiguration;\n\n  public rotateLabels: number = 0;\n  public wrapLabels: boolean = false;\n\n  public showXAxis: boolean = true;\n  public showYAxis: boolean = true;\n  public rightAlignYAxis: boolean = false;\n  public x1Axis: ChartAxisConfiguration;\n  public y1Axis: ChartAxisConfiguration;\n\n  public color: {\n    domain: []\n  } = null;\n\n  constructor() {\n    super();\n    this.margin = new ChartMarginConfiguration();\n    this.legend = new ChartLegendConfiguration();\n    this.x1Axis = new ChartAxisConfiguration();\n    this.y1Axis = new ChartAxisConfiguration();\n    this.control = new ChartControlConfiguration();\n  }\n\n}\n","import { ChartConfiguration } from './ChartConfiguration.class';\nimport { ChartLegendConfiguration } from './ChartLegendConfiguration.class';\nimport { ChartAxisConfiguration } from './ChartAxisConfiguration.class';\nimport { ChartMarginConfiguration } from './ChartMarginConfiguration.class';\n\nexport class DiscreteBarChartConfiguration extends ChartConfiguration {\n  readonly type: string = 'discreteBar';\n\n  showValues: boolean = true;\n  duration: number = 500;\n\n  showLegend: boolean = false;\n  legend: ChartLegendConfiguration;\n\n  staggerLabels: boolean = false;\n  rotateLabels: number = 0;\n  wrapLabels: boolean = true;\n\n  showXAxis: boolean = true;\n  showYAxis: boolean = true;\n  rightAlingYAxis: boolean = false;\n  x1Axis: ChartAxisConfiguration;\n  y1Axis: ChartAxisConfiguration;\n\n  margin: ChartMarginConfiguration;\n\n  agroup: boolean = false;\n  public color: {\n    domain: []\n  } = null;\n\n  constructor() {\n    super();\n    this.legend = new ChartLegendConfiguration();\n    this.x1Axis = new ChartAxisConfiguration();\n    this.y1Axis = new ChartAxisConfiguration();\n    this.margin = new ChartMarginConfiguration();\n  }\n}\n","import { PieChartConfiguration } from './PieChartConfiguration.class';\n\nexport class DonutChartConfiguration extends PieChartConfiguration {\n\n  public readonly type: string = 'donutChart';\n  public readonly donut: boolean = true;\n\n  public donutRatio: number = 0.35;\n\n  constructor() {\n    super();\n  }\n\n}\n","import { ChartAxisConfiguration } from './ChartAxisConfiguration.class';\nimport { ChartConfiguration } from './ChartConfiguration.class';\nimport { ChartLegendConfiguration } from './ChartLegendConfiguration.class';\nimport { ChartMarginConfiguration } from './ChartMarginConfiguration.class';\n\nexport class LineChartConfiguration extends ChartConfiguration {\n\n  public readonly type: string = 'line';\n\n  public legend: ChartLegendConfiguration;\n  public legendPosition: string = 'top';\n\n\n  public duration: number = 500;\n  public useInteractiveGuideline: boolean = true;\n  public interactive: boolean = true;\n  public margin: ChartMarginConfiguration;\n\n  public isArea: boolean[] = null;\n  public strokeWidth: number[] = null;\n  public classed: string[] = null;\n  public color: {\n    domain: []\n  } = null;\n\n  public showXAxis: boolean = true;\n  public showYAxis: boolean = true;\n  public x1Axis: ChartAxisConfiguration;\n  public y1Axis: ChartAxisConfiguration;\n  public rightAlignYAxis: boolean = false;\n\n  public forceX: number[] = null;\n  public forceY: number[] = null;\n\n  public focusEnable: boolean = false;\n  public focusShowAxisX: boolean = false;\n  public focusShowAxisY: boolean = false;\n\n  constructor() {\n    super();\n    this.legend = new ChartLegendConfiguration();\n    this.x1Axis = new ChartAxisConfiguration();\n    this.y1Axis = new ChartAxisConfiguration();\n    this.margin = new ChartMarginConfiguration();\n  }\n\n}\n","import { ParallelCoordinatesChartConfiguration } from './options/ParallelCoordinatesChartConfiguration.class';\nimport { RadarChartConfiguration } from './options/RadarChartConfiguration.class';\nimport { StackedAreaChartConfiguration } from './options/StackedAreaChartConfiguration.class';\nimport { BubbleChartConfiguration } from './options/BubbleChartConfiguration.class';\nimport { GaugeSimpleChartConfiguration } from './options/GaugeSimpleChartConfiguration.class';\nimport { RadialPercentChartConfiguration } from './options/RadialPercentChartConfiguration.class';\nimport { GaugeSpaceChartConfiguration } from './options/GaugeSpaceChartConfiguration.class';\nimport { GaugeSlimChartConfiguration } from './options/GaugeSlimChartConfiguration.class';\nimport { GaugeDashboardChartConfiguration } from './options/GaugeDashboardChartConfiguration.class';\nimport { BulletChartConfiguration } from './options/BulletChartConfiguration.class';\nimport { OHLCChartConfiguration } from './options/OHLCChartConfiguration.class';\nimport { CandlestickChartConfiguration } from './options/CandlestickChartConfiguration.class';\nimport { ForceDirectedGraphConfiguration } from './options/ForceDirectedGraphConfiguration.class';\nimport { LinePlusBarFocusChartConfiguration } from './options/LinePlusBarFocusChartConfiguration.class';\nimport { ScatterChartConfiguration } from './options/ScatterChartConfiguration.class';\nimport { MultiBarHorizontalChartConfiguration } from './options/MultiBarHorizontalChartConfiguration.class';\nimport { MultiBarChartConfiguration } from './options/MultiBarChartConfiguration.class';\nimport { DiscreteBarChartConfiguration } from './options/DiscreteBarChartConfiguration.class';\nimport { DonutChartConfiguration } from './options/DonutChartConfiguration.class';\nimport { PieChartConfiguration } from './options/PieChartConfiguration.class';\nimport { LineChartConfiguration } from './options/LineChartConfiguration.class';\nimport { ChartConfiguration } from './options/ChartConfiguration.class';\n\nexport class ChartConfigurationUtils {\n\n  public static getConfigurationForType(type: string): ChartConfiguration {\n    let chartConf: ChartConfiguration;\n    switch (type) {\n      case 'line':\n        chartConf = new LineChartConfiguration();\n        break;\n      case 'pie':\n        chartConf = new PieChartConfiguration();\n        break;\n      case 'donutChart':\n        chartConf = new DonutChartConfiguration();\n        break;\n      case 'discreteBar':\n        chartConf = new DiscreteBarChartConfiguration();\n        break;\n      case 'multiBar':\n        chartConf = new MultiBarChartConfiguration();\n        break;\n      case 'multiBarHorizontalChart':\n        chartConf = new MultiBarHorizontalChartConfiguration();\n        break;\n      case 'scatterChart':\n        chartConf = new ScatterChartConfiguration();\n        break;\n      case 'linePlusBarWithFocusChart':\n        chartConf = new LinePlusBarFocusChartConfiguration();\n        break;\n      case 'forceDirectedGraph':\n        chartConf = new ForceDirectedGraphConfiguration();\n        break;\n      case 'candlestickBarChart':\n        chartConf = new CandlestickChartConfiguration();\n        break;\n      case 'ohlcBarChart':\n        chartConf = new OHLCChartConfiguration();\n        break;\n      case 'bulletChart':\n        chartConf = new BulletChartConfiguration();\n        break;\n      case 'stackedAreaChart':\n        chartConf = new StackedAreaChartConfiguration();\n        break;\n      // case 'gaugeDashboardChart':\n      //   chartConf = new GaugeDashboardChartConfiguration();\n      //   break;\n      // case 'gaugeSlimChart':\n      //   chartConf = new GaugeSlimChartConfiguration();\n      //   break;\n      // case 'gaugeSpaceChart':\n      //   chartConf = new GaugeSpaceChartConfiguration();\n      //   break;\n      // case 'radialPercentChart':\n      //   chartConf = new RadialPercentChartConfiguration();\n      //   break;\n      // case 'gaugeSimpleChart':\n      //   chartConf = new GaugeSimpleChartConfiguration();\n      //   break;\n      // case 'bubbleChart':\n      //   chartConf = new BubbleChartConfiguration();\n      //   break;\n      // case 'stackedAreaChart':\n      //   chartConf = new StackedAreaChartConfiguration();\n      //   break;\n      // case 'radarChart':\n      //   chartConf = new RadarChartConfiguration();\n      //   break;\n      // case 'parallelCoordinatesChart':\n      //   chartConf = new ParallelCoordinatesChartConfiguration();\n      //   break;\n      default:\n        chartConf = new ChartConfiguration();\n        break;\n    }\n    return chartConf;\n  }\n}","import { OTableOptions, SQLTypes } from 'ontimize-web-ngx';\nimport { LineChartConfiguration } from '../../models/options/LineChartConfiguration.class';\nimport { MultiBarChartConfiguration } from '../../models/options/MultiBarChartConfiguration.class';\nimport { StackedAreaChartConfiguration } from '../../models/options/StackedAreaChartConfiguration.class';\n\nimport { ChartConfigurationUtils } from './../../models/chart-configuration-utils';\nimport { ChartConfiguration } from './../../models/options/ChartConfiguration.class';\nimport { DiscreteBarChartConfiguration } from './../../models/options/DiscreteBarChartConfiguration.class';\nimport { PieChartConfiguration } from './../../models/options/PieChartConfiguration.class';\nimport { OChartPreferences } from './../../types/chart-preferences.type';\n\n\nexport class OChartOnDemandUtils {\n\n  public static configureChart(preferences: OChartPreferences, oTableOptions: OTableOptions): ChartConfiguration {\n    let chartConf: ChartConfiguration = ChartConfigurationUtils.getConfigurationForType(preferences.selectedTypeChart);\n    if (chartConf != undefined) {\n      chartConf.xAxis = preferences.selectedXAxis;\n      chartConf.yAxis = preferences.selectedYAxis;\n      chartConf.xLabel = preferences.selectedXAxis;\n      chartConf.yLabel = preferences.selectedYAxis.toString();\n      chartConf.color = preferences.selectedPalette;\n      chartConf.xDataType = preferences.selectedXDataType;\n      chartConf.yDataType = preferences.selectedYDataType;\n      // chartConf.xDataType=preferences.selectedXAxisType\n      // chartConf.yDataType=preferences.selectedYAxisType\n      switch (preferences.selectedTypeChart) {\n        case 'line':\n          this.configureLineChart(chartConf as LineChartConfiguration, preferences, oTableOptions);\n          break;\n        case 'discreteBar':\n          this.configureDiscreteBarChart(chartConf as DiscreteBarChartConfiguration, preferences, oTableOptions);\n          break;\n        case 'multiBar':\n          this.configureMultiBarChart(chartConf as MultiBarChartConfiguration, preferences, oTableOptions);\n          break;\n        case 'stackedAreaChart':\n          this.configureAreaChart(chartConf as StackedAreaChartConfiguration, preferences, oTableOptions);\n          break;\n        case 'pie':\n        case 'donutChart':\n          this.configurePieChart(chartConf as PieChartConfiguration, preferences, oTableOptions);\n          break;\n      }\n    }\n\n    return chartConf;\n  }\n\n  protected static configureLineChart(chartConf: LineChartConfiguration, preferences: OChartPreferences, oTableOptions: OTableOptions): void {\n    chartConf.color = preferences.selectedPalette;\n    this.configureAxisFormat(chartConf, preferences, oTableOptions);\n  }\n  protected static configureDiscreteBarChart(chartConf: DiscreteBarChartConfiguration, preferences: OChartPreferences, oTableOptions: OTableOptions): void {\n    chartConf.agroup = true;\n    chartConf.showLegend = false;\n    chartConf.color = preferences.selectedPalette;\n    this.configureAxisFormat(chartConf, preferences, oTableOptions);\n  }\n  protected static configureMultiBarChart(chartConf: MultiBarChartConfiguration, preferences: OChartPreferences, oTableOptions: OTableOptions): void {\n    chartConf.color = preferences.selectedPalette;\n    this.configureAxisFormat(chartConf, preferences, oTableOptions);\n  }\n  protected static configureAreaChart(chartConf: StackedAreaChartConfiguration, preferences: OChartPreferences, oTableOptions: OTableOptions): void {\n    chartConf.color = preferences.selectedPalette;\n    this.configureAxisFormat(chartConf, preferences, oTableOptions);\n  }\n  protected static configurePieChart(chartConf: PieChartConfiguration, preferences: OChartPreferences, oTableOptions: OTableOptions): void {\n    chartConf.labelType = 'value';\n    chartConf.color = preferences.selectedPalette;\n    const formatCallback = OChartOnDemandUtils.getAxisFormatCallback(preferences.selectedYAxisType, preferences.selectedYAxis[0], oTableOptions);\n    if (formatCallback != undefined) {\n      chartConf.valueType = formatCallback;\n    }\n  }\n\n  private static configureAxisFormat(chartConf: ChartConfiguration, preferences: OChartPreferences, oTableOptions: OTableOptions): void {\n    let formatCallback = OChartOnDemandUtils.getAxisFormatCallback(preferences.selectedXAxisType, preferences.selectedXAxis, oTableOptions);\n    if (formatCallback != undefined) {\n      chartConf.xDataType = formatCallback;\n    }\n    formatCallback = OChartOnDemandUtils.getAxisFormatCallback(preferences.selectedYAxisType, preferences.selectedYAxis[0], oTableOptions);\n    if (formatCallback != undefined) {\n      chartConf.yDataType = formatCallback;\n    }\n  }\n  public static getAxisFormatCallback(axisType: number, axisName: string, oTableOptions: OTableOptions): any {\n    //TODO review integer and decimal format...\n    if (this.isInteger(axisType)) {\n      return \"intGrouped\";\n    } else if (this.isDecimal(axisType)) {\n      if (this.isCurrency(axisName, oTableOptions)) {\n        return \"currency\";\n      } else if (this.isPercentage(axisName, oTableOptions)) {\n        return \"percentage\";\n      }\n      return \"float\";\n    } else if (this.isDate(axisType)) {\n      return \"time\";\n    }\n  }\n\n  public static isDate(arg: number): boolean {\n    return [\n      SQLTypes.DATE,\n      SQLTypes.TIME,\n      SQLTypes.TIMESTAMP\n    ].indexOf(arg) !== -1;\n  }\n\n  public static isInteger(arg: number): boolean {\n    return [\n      SQLTypes.TINYINT,\n      SQLTypes.SMALLINT,\n      SQLTypes.INTEGER,\n      SQLTypes.BIGINT\n    ].indexOf(arg) !== -1;\n  }\n\n  public static isDecimal(arg: number): boolean {\n    return [\n      SQLTypes.FLOAT,\n      SQLTypes.REAL,\n      SQLTypes.DOUBLE,\n      SQLTypes.NUMERIC,\n      SQLTypes.DECIMAL\n    ].indexOf(arg) !== -1;\n  }\n\n  public static isCurrency(column: string, oTableOptions: OTableOptions): boolean {\n    return oTableOptions.columns.filter(oCol => oCol.type === \"currency\" && oCol.attr === column).length == 1;\n  }\n\n  public static isPercentage(column: string, oTableOptions: OTableOptions): boolean {\n    return oTableOptions.columns.filter(oCol => oCol.type === \"percentage\" && oCol.attr === column).length == 1;\n  }\n\n}","import { Component, Injector } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { OTableBaseDialogClass } from 'ontimize-web-ngx';\n\n@Component({\n  selector: 'app-save-preferences-dialog',\n  templateUrl: './save-preferences-dialog.component.html'\n})\n\nexport class SavePreferencesDialogComponent extends OTableBaseDialogClass {\n  public name: string;\n  public description: string;\n\n  public formGroup: UntypedFormGroup = new UntypedFormGroup({\n    name: new UntypedFormControl('', [\n      Validators.required\n    ]),\n    description: new UntypedFormControl('')\n  });\n\n  constructor(\n    public dialogo: MatDialogRef<SavePreferencesDialogComponent>,\n    protected injector: Injector) {\n    super(injector);\n    this.setFormControl(this.formGroup.get('name'));\n  }\n\n  save(): void {\n    this.dialogo.close({ \"name\": this.name, \"description\": this.description });\n  }\n}\n","<span mat-dialog-title>{{ 'TABLE.BUTTONS.SAVE_CONFIGURATION' | oTranslate }}</span>\n\n<mat-dialog-content>\n  <div mat-subheader>{{ 'TABLE.DIALOG.SAVE_CONFIGURATION' | oTranslate }}</div>\n  <form #form [formGroup]=\"formGroup\" fxLayout=\"column\">\n    <mat-form-field>\n      <input [(ngModel)]=\"name\" matInput placeholder=\"{{ 'TABLE.DIALOG.CONFIGURATION_NAME' | oTranslate }}\" formControlName=\"name\" required>\n      <mat-error *oMatError=\"hasError(formGroup.controls['name'], 'required')\">{{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}</mat-error>\n    </mat-form-field>\n\n    <mat-form-field>\n      <textarea [(ngModel)]=\"description\" matInput placeholder=\"{{ 'TABLE.DIALOG.CONFIGURATION_DESCRIPTION' | oTranslate }}\"\n        formControlName=\"description\" rows=\"4\" cols=\"50\"></textarea>\n    </mat-form-field>\n\n  </form>\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\">\n  <button type=\"button\" mat-stroked-button class=\"mat-primary\" [mat-dialog-close]=\"false\" class=\"o-button-default\">\n    {{ 'CANCEL' | oTranslate }}</button>\n  <button type=\"button\" mat-stroked-button class=\"mat-primary\" (click)=\"save()\" [mat-dialog-close]=\"true\" [disabled]=\"formGroup.invalid\">\n    {{ 'SAVE' | oTranslate }}</button>\n</mat-dialog-actions>\n","import { Injectable } from '@angular/core';\n\nimport { ChartMarginConfiguration } from '../models/options/ChartMarginConfiguration.class';\n\n@Injectable()\nexport class ChartService {\n  private _chart: any;\n  private _chartWrapper;\n\n  public get chart() {\n    return this._chart;\n  }\n\n  public get chartWrapper() {\n    return this._chartWrapper;\n  }\n\n  public set chartWrapper(chart) {\n    this._chartWrapper = chart;\n    if (this._chartWrapper) {\n      this._chart = (this._chartWrapper as any).chart;\n    }\n  }\n\n  /**\n   * Returns all configured options of chart.\n   * @returns Object\n   */\n  public getChartOptions(): Object {\n    if (this._chartWrapper) {\n      return this._chartWrapper.options['chart'];\n    }\n    return {};\n  }\n\n  public setXAxisLabel(text: string) {\n    let opts = this.getChartOptions();\n    if (opts && opts['xAxis']) {\n      opts['xAxis']['axisLabel'] = text;\n    }\n  }\n\n  public setXAxisLabelDistance(distance: number) {\n    let opts = this.getChartOptions();\n    if (opts && opts['xAxis']) {\n      opts['xAxis']['axisLabelDistance'] = distance;\n    }\n  }\n\n  public setYAxisLabel(text: string) {\n    let opts = this.getChartOptions();\n    if (opts && opts['yAxis']) {\n      opts['yAxis']['axisLabel'] = text;\n    }\n  }\n\n  public setYAxisLabelDistance(distance: number) {\n    let opts = this.getChartOptions();\n    if (opts && opts['yAxis']) {\n      opts['yAxis']['axisLabelDistance'] = distance;\n    }\n  }\n\n  setMargin(margin: ChartMarginConfiguration) {\n    let opts = this.getChartOptions();\n    if (opts && margin) {\n      opts['margin'] = margin;\n    }\n  }\n\n}\n","import { ChartDataAdapter } from '../interfaces/ChartDataAdapterFactory.interface';\nimport { ChartConfiguration } from '../models/ChartConfiguration.class';\nimport { LineChartConfiguration } from '../models/options/LineChartConfiguration.class';\n\ninterface CustomLineChartSeries extends LineChartSeries {\n  area?: boolean;\n  color?: string;\n  strokeWidth?: number;\n  classed?: string;\n}\n\ninterface LineChartSeries {\n  name: string;\n  series: ChartDataPoint[];\n}\n\ninterface ChartDataPoint {\n  name?: Date;\n  value?: number;\n  x?: Date;\n  y?: number;\n}\n\nexport class LineDataAdapter implements ChartDataAdapter {\n  protected chartConf: ChartConfiguration;\n  protected xAxis: string;\n  protected yAxis: string[];\n\n  constructor(chartConf: ChartConfiguration) {\n    if (chartConf) {\n      this.chartConf = chartConf;\n      this.xAxis = this.chartConf.xAxis ? this.chartConf.xAxis : '';\n      const yAxis = this.chartConf.yAxis;\n      this.yAxis = yAxis && yAxis.length ? yAxis : [];\n    }\n  }\n\n  public adaptResult(data: any[]): CustomLineChartSeries[] {\n    const result: CustomLineChartSeries[] = [];\n    const config = this.chartConf as LineChartConfiguration;\n    if (data && data.length) {\n      const adaptedData = this.adaptDataFormat(data);\n      adaptedData.forEach(({ name, series }) => {\n        const lineChartSeries: CustomLineChartSeries = {\n          name: name,\n          series: series.map(({ name: x, value: y }) => ({ x, y }))\n        };\n\n        const index = this.yAxis.indexOf(name);\n        if (config.isArea?.[index]) {\n          lineChartSeries.area = config.isArea[index];\n        }\n        if (config.color?.[index]) {\n          lineChartSeries.color = config.color[index];\n        }\n        if (config.strokeWidth?.[index]) {\n          lineChartSeries.strokeWidth = config.strokeWidth[index];\n        }\n        if (config.classed?.[index]) {\n          lineChartSeries.classed = config.classed[index];\n        }\n        let key = name;\n        if (config.translateService) {\n          key = config.translateService.get(key);\n        }\n        lineChartSeries.name = key;\n\n        result.push(lineChartSeries);\n      });\n    }\n    return result;\n  }\n\n  private adaptDataFormat(data: any[]): { name: string; series: ChartDataPoint[] }[] {\n    const seriesValues: { [key: string]: ChartDataPoint[] } = {};\n    const self = this;\n    data.forEach((item: any, _index: number) => {\n      self.yAxis.forEach((axis: string, _indexAxis: number) => {\n        if (!seriesValues[axis]) {\n          seriesValues[axis] = [];\n        }\n        if (item[axis] !== undefined) {\n          const dataPoint: ChartDataPoint = {\n            name: new Date(item[self.xAxis]),\n            value: item[axis]\n          };\n          seriesValues[axis].push(dataPoint);\n        }\n      });\n    });\n\n    return Object.keys(seriesValues).map(name => ({\n      name,\n      series: seriesValues[name]\n    }));\n  }\n}\n","import { BulletDataAdapter } from '../../adapters/bullet-data-adapter';\nimport { CandlestickDataAdapter } from '../../adapters/candlestick-data-adapter';\nimport { DiscreteBarDataAdapter } from '../../adapters/discreteBar-data-adapter';\nimport { ForceDirectedGraphDataAdapter } from '../../adapters/forceDirectedGraph-data-adapter';\nimport { GaugeDataAdapter } from '../../adapters/gauge-data-adapter';\nimport { GaugeSimpleDataAdapter } from '../../adapters/gauge-simple-data-adapter';\nimport { GenericDataAdapter } from '../../adapters/generic-data-adapter';\nimport { LineDataAdapter } from '../../adapters/line-data-adapter';\nimport { LinePlusBarDataAdapter } from '../../adapters/lineplusbar-data-adapter';\nimport { MultiBarDataAdapter } from '../../adapters/multibar-data-adapter';\nimport { MultiBarHorizontalDataAdapter } from '../../adapters/multibar-horizontal-data-adapter';\nimport { OhlcDataAdapter } from '../../adapters/ohlc-data-adapter';\nimport { ParallelCoordinatesDataAdapter } from '../../adapters/parallel-coordinates-data-adapter';\nimport { PieDataAdapter } from '../../adapters/pie-data-adapter';\nimport { RadarDataAdapter } from '../../adapters/radar-data-adapter';\nimport { ScatterDataAdapter } from '../../adapters/scatter-data-adapter';\nimport { StackedAreaDataAdapter } from '../../adapters/stacked-area-data-adapter';\nimport { ChartDataAdapter, ChartDataAdapterFactory } from '../../interfaces/ChartDataAdapterFactory.interface';\nimport { ChartConfiguration } from '../../models/ChartConfiguration.class';\n\nexport class OChartDataAdapterFactory implements ChartDataAdapterFactory {\n\n  protected chartConf: ChartConfiguration;\n\n  constructor(chartConf: ChartConfiguration) {\n    this.chartConf = chartConf;\n  }\n\n  getAdapter(chartType: string): ChartDataAdapter {\n    let adapter: ChartDataAdapter;\n    switch (chartType) {\n      case 'line':\n        adapter = this.createStackedAreaDataAdapter();\n        break;\n      case 'discreteBar':\n        adapter = this.createDiscreteBarDataAdapter();\n        break;\n      case 'pie':\n        adapter = this.createPieDataAdapter();\n        break;\n      case 'multiBar':\n        adapter = this.createMultiBarDataAdapter();\n        break;\n      case 'multiBarHorizontalChart':\n        adapter = this.createMultiBarHorizontalDataAdapter();\n        break;\n      case 'scatterChart':\n        adapter = this.createScatterDataAdapter();\n        break;\n      case 'donutChart':\n        adapter = this.createPieDataAdapter();\n        break;\n      case 'linePlusBarWithFocusChart':\n        adapter = this.createLinePlusBarDataAdapter();\n        break;\n      case 'forceDirectedGraph':\n        adapter = this.createForceDirectedGraphDataAdapter();\n        break;\n      case 'candlestickBarChart':\n        adapter = this.createCandlestickDataAdapter();\n        break;\n      case 'ohlcBarChart':\n        adapter = this.createOhlcDataAdapter();\n        break;\n      case 'bulletChart':\n        adapter = this.createBulletDataAdapter();\n        break;\n      case 'gaugeDashboardChart':\n      case 'gaugeSlimChart':\n      case 'gaugeSpaceChart':\n      case 'radialPercentChart':\n        adapter = this.createGaugeDataAdapter();\n        break;\n      case 'gaugeSimpleChart':\n        adapter = this.createGaugeSimpleDataAdapter();\n        break;\n      case 'stackedAreaChart':\n        adapter = this.createStackedAreaDataAdapter();\n        break;\n      case 'radarChart':\n        adapter = this.createRadarDataAdapter();\n        break;\n      case 'parallelCoordinatesChart':\n        adapter = this.createParallelCoordinatesDataAdapter();\n        break;\n    }\n    return adapter;\n  }\n\n  public createGenericDataAdapter(): ChartDataAdapter {\n    return new GenericDataAdapter(this.chartConf);\n  }\n\n  public createPieDataAdapter(): ChartDataAdapter {\n    return new PieDataAdapter(this.chartConf);\n  }\n\n  public createLineDataAdapter(): ChartDataAdapter {\n    return new LineDataAdapter(this.chartConf);\n  }\n\n  public createScatterDataAdapter(): ChartDataAdapter {\n    return new ScatterDataAdapter(this.chartConf);\n  }\n\n  public createDiscreteBarDataAdapter(): ChartDataAdapter {\n    return new DiscreteBarDataAdapter(this.chartConf);\n  }\n\n  public createMultiBarDataAdapter(): ChartDataAdapter {\n    return new MultiBarDataAdapter(this.chartConf);\n  }\n\n  public createMultiBarHorizontalDataAdapter(): ChartDataAdapter {\n    return new MultiBarHorizontalDataAdapter(this.chartConf);\n  }\n\n  public createLinePlusBarDataAdapter(): ChartDataAdapter {\n    return new LinePlusBarDataAdapter(this.chartConf);\n  }\n\n  public createForceDirectedGraphDataAdapter(): ChartDataAdapter {\n    return new ForceDirectedGraphDataAdapter(this.chartConf);\n  }\n\n  public createCandlestickDataAdapter(): ChartDataAdapter {\n    return new CandlestickDataAdapter(this.chartConf);\n  }\n\n  public createOhlcDataAdapter(): ChartDataAdapter {\n    return new OhlcDataAdapter(this.chartConf);\n  }\n\n  public createBulletDataAdapter(): ChartDataAdapter {\n    return new BulletDataAdapter(this.chartConf);\n  }\n\n  public createGaugeDataAdapter(): ChartDataAdapter {\n    return new GaugeDataAdapter(this.chartConf);\n  }\n\n  public createGaugeSimpleDataAdapter(): ChartDataAdapter {\n    return new GaugeSimpleDataAdapter(this.chartConf);\n  }\n\n  public createStackedAreaDataAdapter(): ChartDataAdapter {\n    return new StackedAreaDataAdapter(this.chartConf);\n  }\n\n  public createRadarDataAdapter(): ChartDataAdapter {\n    return new RadarDataAdapter(this.chartConf);\n  }\n\n  public createParallelCoordinatesDataAdapter(): ChartDataAdapter {\n    return new ParallelCoordinatesDataAdapter(this.chartConf);\n  }\n\n}\n","import { OTranslateService } from 'ontimize-web-ngx';\nimport { ChartConfiguration } from './ChartConfiguration.class';\n\n\nexport class AbstractChartOptions {\n\n  protected chartConf: ChartConfiguration;\n  protected type: string;\n\n  constructor(chartConf: ChartConfiguration, protected translate: OTranslateService) {\n    this.chartConf = chartConf;\n    this.init(chartConf);\n  }\n\n  public init(chartConf: ChartConfiguration): void {\n    if (!chartConf) {\n      console.error('Chart configuration not found!');\n      return;\n    }\n    this.type = chartConf.type;\n  }\n\n  public getOptions(): Object {\n    return {\n      chart: this.getChartOptions(),\n    };\n  }\n\n  protected getChartOptions(): Object {\n    return {\n      type: this.getChartType(),\n      height: this.getChartHeight(),\n      x: this.getXValue(),\n      y: this.getYValue(),\n      xAxis: this.getXAxisConfiguration(),\n      yAxis: this.getYAxisConfiguration(),\n      noData : this.chartConf.noDataMessage\n    };\n  }\n\n  protected getChartType(): string {\n    return this.type + 'Chart';\n  }\n\n  protected getChartHeight(): number {\n    return this.chartConf.height ? this.chartConf.height : 450;\n  }\n\n  protected getXValue(): Function {\n    return d => d.x;\n  }\n\n  protected getYValue(): Function {\n    return d => d.y;\n  }\n\n  protected isArea(): Function {\n    return d => d.area;\n  }\n\n  protected getXAxisConfiguration(): Object {\n    return {\n      axisLabel: this.chartConf.xLabel ? this.chartConf.xLabel : ''\n    };\n  }\n\n  protected getYAxisConfiguration(): Object {\n    return {\n      axisLabel: this.chartConf.yLabel ? this.chartConf.yLabel : ''\n    };\n  }\n\n  getTickFormatter(type: string): any {\n    switch (type) {\n      case 'intGrouped':\n        return d => d.toLocaleString();\n      case 'floatGrouped':\n        return d => d.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n      case 'int':\n        return d => Math.round(d).toLocaleString();\n      case 'float':\n        return d => d.toFixed(2);\n      case 'currency':\n        return d => d.toLocaleString('en-US', { style: 'currency', currency: 'USD', minimumFractionDigits: 2, maximumFractionDigits: 2 });\n      case 'time':\n        return d => new Date(d).toLocaleDateString();\n      case 'timeDay':\n        return d => new Date(d).toLocaleTimeString();\n      case 'timeDetail':\n        return d => new Date(d).toLocaleString();\n      case 'percentage':\n        return d => (d * 100).toFixed(0) + '%';\n      default:\n        if (typeof type === 'function') {\n          return type;\n        }\n        return void 0;\n    }\n  }\n\n}\n","import { ChartConfiguration } from './ChartConfiguration.class';\n\nexport class BubbleChartConfiguration extends ChartConfiguration {\n  readonly type: string = 'bubbleChart';\n  public color: {\n    domain: []\n  };\n}","import { AbstractChartOptions } from './AbstractChartOptions.class';\nimport { BubbleChartConfiguration } from './BubbleChartConfiguration.class';\n\nexport class BubbleChartOptions extends AbstractChartOptions {\n\n  getChartType() {\n    return 'packedBubbleChart';\n  }\n\n  getChartOptions() {\n    let conf = (this.chartConf instanceof BubbleChartConfiguration) ? this.chartConf : new BubbleChartConfiguration();\n\n    let chart = {\n      type: this.getChartType(),\n      height: this.getChartHeight(),\n      width: this.chartConf.width,\n      duration: 500,\n      color: conf.color,\n      noData: conf.noDataMessage\n    }\n\n    return chart;\n  }\n}","import { AbstractChartOptions } from './AbstractChartOptions.class';\nimport { BulletChartConfiguration } from './BulletChartConfiguration.class';\n\nexport class BulletChartOptions extends AbstractChartOptions {\n\n  protected getChartType(): string {\n    return 'bulletChart';\n  }\n\n  protected getChartOptions(): Object {\n    let conf = (this.chartConf instanceof BulletChartConfiguration) ? this.chartConf : new BulletChartConfiguration();\n    conf.tickFormat = (conf.xDataType) ? this.getTickFormatter(conf.xDataType) : null;\n\n    let chart = {\n      type: this.getChartType(),\n      height: this.getChartHeight(),\n      width: this.chartConf.width,\n      margin: conf.margin.getMarginOptions(),\n      duration: conf.duration,\n      ticks: conf.ticks,\n      tickFormat: conf.tickFormat,\n      orient: conf.orient,\n      ranges: this.getRanges(),\n      measures: this.getMeasure(),\n      markers: this.getMarkers(),\n      noData: conf.noDataMessage\n    }\n    return chart;\n  }\n\n\n  getRanges() {\n    return function (d) {\n      return d.ranges\n    };\n  }\n\n  getMeasure() {\n    return function (d) {\n      return d.measures\n    }\n  }\n\n  getMarkers() {\n    return function (d) {\n      return d.markers ? d.markers : []\n    }\n  }\n}","import { AbstractChartOptions } from './AbstractChartOptions.class';\nimport { CandlestickChartConfiguration } from './CandlestickChartConfiguration.class';\n\nexport class CandlestickChartOptions extends AbstractChartOptions {\n\n  getChartOptions() {\n    let conf = this.chartConf instanceof CandlestickChartConfiguration ? this.chartConf : new CandlestickChartConfiguration;\n    conf.x1Axis.tickFormat = conf.xDataType ? this.getTickFormatter(conf.xDataType) : null;\n    conf.y1Axis.tickFormat = conf.yDataType ? this.getTickFormatter(conf.yDataType) : null;\n\n    let chart = {\n      type: this.getChartType(),\n      height: conf.height,\n      width: conf.width,\n      x: this.getXValue(),\n      y: this.getYValue(),\n      low: this.getLow(),\n      high: this.getHigh(),\n      xAxis: conf.x1Axis.getAxisOptions(),\n      yAxis: conf.y1Axis.getAxisOptions(),\n      showXAxis: conf.showXAxis,\n      showYAxis: conf.showYAxis,\n      rightAlignYAxis: conf.rightAlignYAxis,\n      legend: conf.legend.getLegendOptions(),\n      showLegend: conf.showLegend,\n      zoom: conf.zoom.getZoomOptions(),\n      useInteractiveGuideline: conf.useInteractiveGuideline,\n      padData: conf.padData,\n      clipEdge: conf.clidEdge,\n      noData: conf.noDataMessage\n    };\n\n    return chart;\n  }\n\n  getChartType() {\n    return 'candlestickBarChart';\n  }\n\n  getLow() {\n    return function (d) { return d.low; };\n  }\n\n  getHigh() {\n    return function (d) { return d.high; };\n  }\n\n  getXValue() {\n    return function (d) { return d['date']; };\n  }\n\n  getYValue() {\n    return function (d) { return d['close']; };\n  }\n}\n","import { AbstractChartOptions } from './AbstractChartOptions.class';\nimport { DiscreteBarChartConfiguration } from './DiscreteBarChartConfiguration.class';\n\nexport class DiscreteBarChartOptions extends AbstractChartOptions {\n\n  protected getChartType(): string {\n    return 'discreteBarChart';\n  }\n\n  protected getChartOptions(): Object {\n    let conf = this.chartConf instanceof DiscreteBarChartConfiguration ? this.chartConf : new DiscreteBarChartConfiguration;\n    conf.x1Axis.tickFormat = conf.xDataType ? this.getTickFormatter(conf.xDataType) : null;\n    conf.y1Axis.tickFormat = conf.yDataType ? this.getTickFormatter(conf.yDataType) : null;\n\n    let options = {\n      type: this.getChartType(),\n      height: this.getChartHeight(),\n      width: conf.width,\n      margin: conf.margin.getMarginOptions(),\n      x: this.getXValue(),\n      y: this.getYValue(),\n      duration: conf.duration,\n      showValues: conf.showValues,\n      staggerLabels: conf.staggerLabels,\n      rotateLabels: conf.rotateLabels,\n      wrapLabels: conf.wrapLabels,\n      showXAxis: conf.showXAxis,\n      showYAxis: conf.showYAxis,\n      showLegend: conf.showLegend,\n      rightAlignYAxis: conf.rightAlingYAxis,\n      legend: conf.legend.getLegendOptions(),\n      xAxis: conf.x1Axis.getAxisOptions(),\n      yAxis: conf.y1Axis.getAxisOptions(),\n      noData: conf.noDataMessage,\n      color: conf.color\n    };\n    if (conf.y1Axis.tickFormat) {\n      options['valueFormat'] = conf.y1Axis.tickFormat;\n    }\n    return options;\n  }\n\n}\n","import { AbstractChartOptions } from './AbstractChartOptions.class';\nimport { PieChartConfiguration } from './PieChartConfiguration.class';\n\nexport class PieChartOptions extends AbstractChartOptions {\n\n  protected getChartType(): string {\n    return 'pieChart';\n  }\n\n  protected getChartOptions(): Object {\n    const conf = this.chartConf instanceof PieChartConfiguration ? this.chartConf : new PieChartConfiguration();\n    const valueFormatter = this.getTickFormatter(conf.valueType) || conf.valueType;\n\n    const chart = {\n      type: this.getChartType(),\n      height: this.getChartHeight(),\n      width: conf.width,\n      margin: conf.margin.getMarginOptions(),\n      duration: conf.duration,\n      showLabels: conf.showLabels,\n      labelType: conf.labelType,\n      labelThreshold: conf.labelThreshold,\n      labelSunbeamLayout: conf.labelSunbeamLayout,\n      labelsOutside: conf.labelsOutside,\n      legendPosition: conf.legendPosition,\n      legend: conf.legend.getLegendOptions(),\n      cornerRadius: conf.cornerRadius,\n      donut: conf.donut,\n      donutRatio: conf.donutRatio,\n      color: conf.color,\n      valueFormat: valueFormatter,\n      tooltip: {\n        enabled: conf.showTooltip,\n        valueFormatter: valueFormatter\n      },\n      callback: conf.callback,\n      startAngle: conf.startAngle,\n      endAngle: conf.endAngle,\n      noData: conf.noDataMessage\n    };\n    return chart;\n  }\n\n}\n","import { OTranslateService } from 'ontimize-web-ngx';\n\nimport { ChartConfiguration } from './ChartConfiguration.class';\nimport { PieChartOptions } from './PieChartOptions.class';\n\nexport class DonutChartOptions extends PieChartOptions {\n\n  constructor(chartConf: ChartConfiguration, protected translate: OTranslateService) {\n    super(chartConf, translate);\n  }\n\n}\n","import { AbstractChartOptions } from './AbstractChartOptions.class';\nimport { ForceDirectedGraphConfiguration } from './ForceDirectedGraphConfiguration.class';\n\n\nexport class ForceDirectedGraphOptions extends AbstractChartOptions {\n\n  public getChartType(): string {\n    return 'forceDirectedGraph';\n  }\n\n  public getChartOptions(): Object {\n    let conf = this.chartConf instanceof ForceDirectedGraphConfiguration ? this.chartConf : new ForceDirectedGraphConfiguration();\n\n    let chart = {\n      type: this.getChartType(),\n      height: conf.height,\n      width: conf.width,\n      margin: conf.margin.getMarginOptions(),\n      linkStrenght: conf.linkStrength,\n      friction: conf.friction,\n      linkDist: conf.linkDist,\n      charge: conf.charge,\n      gravity: conf.gravity,\n      theta: conf.theta,\n      alpha: conf.alpha,\n      radius: conf.radius,\n      noData: conf.noDataMessage\n    };\n    return chart;\n  }\n\n\n}\n","import { ChartConfiguration } from './ChartConfiguration.class';\nimport { ChartMarginConfiguration } from './ChartMarginConfiguration.class';\n\nexport class GaugeDashboardChartConfiguration extends ChartConfiguration {\n  readonly type: string = 'gaugeDashboardChart';\n  readonly donut: boolean = true;\n  readonly donutRatio: number = 0.5;\n  readonly showLabels: boolean = false;\n  readonly showLegend: boolean = false;\n  duration: number = 500;\n  titleOffset: number = -25;\n  title: string = '';\n  public color: {\n    domain: []\n  };\n\n  margin: ChartMarginConfiguration;\n\n  constructor() {\n    super();\n    this.margin = new ChartMarginConfiguration();\n  }\n\n}","import { AbstractChartOptions } from './AbstractChartOptions.class';\nimport { GaugeDashboardChartConfiguration } from './GaugeDashboardChartConfiguration.class';\n\nexport class GaugeDashboardChartOptions extends AbstractChartOptions {\n\n  protected getChartType(): string {\n    return 'pieChart';\n  }\n\n  protected getChartOptions(): Object {\n    let conf = this.chartConf instanceof GaugeDashboardChartConfiguration ? this.chartConf : new GaugeDashboardChartConfiguration;\n\n\n    let chart = {\n      type: this.getChartType(),\n      height: this.getChartHeight(),\n      width: this.chartConf.width,\n      duration: conf.duration,\n      donut: conf.donut,\n      donutRatio: conf.donutRatio,\n      showLabels: conf.showLabels,\n      showLegend: conf.showLegend,\n      titleOffset: conf.titleOffset,\n      title: conf.title,\n      color: conf.color,\n      x: function (d) { return d.x; },\n      y: function (d) { return d.y; },\n      pie: {\n        startAngle: function (d) { return d.startAngle / 2 - Math.PI / 2 },\n        endAngle: function (d) { return d.endAngle / 2 - Math.PI / 2 }\n      },\n      noData: conf.noDataMessage\n    }\n\n    return chart;\n  }\n}","import { AbstractChartOptions } from './AbstractChartOptions.class';\nimport { GaugeSimpleChartConfiguration } from './GaugeSimpleChartConfiguration.class';\n\nexport class GaugeSimpleChartOptions extends AbstractChartOptions {\n\n  protected getChartType(): string {\n    return 'gaugeChart';\n  }\n\n\n  protected getChartOptions(): Object {\n    let conf = this.chartConf instanceof GaugeSimpleChartConfiguration ? this.chartConf : new GaugeSimpleChartConfiguration();\n\n    let chart = {\n      type: this.getChartType(),\n      height: this.getChartHeight(),\n      width: this.chartConf.width,\n      duration: conf.duration,\n      color: conf.color,\n      title: conf.title,\n      showMinMaxLabels: conf.showMinMaxLabels,\n      min: conf.min,\n      max: conf.max,\n      zoneLimit1: conf.zoneLimit1,\n      zoneLimit2: conf.zoneLimit2,\n      noData: conf.noDataMessage\n    }\n\n    return chart;\n  }\n}","import { ChartConfiguration } from './ChartConfiguration.class';\n\nexport class GaugeSlimChartConfiguration extends ChartConfiguration {\n  readonly type: string = 'gaugeSlimChart';\n  readonly donut: boolean = true;\n  arcsRadius: number = 0.1;\n  readonly showLabels: boolean = false;\n  showLegend: boolean = false;\n  legendPosition: string = 'top';\n  title: string = '';\n  titleOffset: number = 0;\n  public color = {\n    domain: ['#1A5276', '#A3E4D7']\n  };\n  duration: number = 500;\n  growOnHover: boolean = false;\n}","import { AbstractChartOptions } from './AbstractChartOptions.class';\nimport { GaugeSlimChartConfiguration } from './GaugeSlimChartConfiguration.class';\n\nexport class GaugeSlimChartOptions extends AbstractChartOptions {\n \n  protected getChartType(): string {\n    return 'pieChart';\n  }\n\n  protected getChartOptions(): Object {\n    let conf = this.chartConf instanceof GaugeSlimChartConfiguration ? this.chartConf : new GaugeSlimChartConfiguration();\n    const outer = 1;\n    const inner = 1 - conf.arcsRadius;\n    let arcsRadius = [\n      { 'inner': inner, 'outer': outer },\n      { 'inner': inner, 'outer': outer }];\n    let chart = {\n      type: this.getChartType(),\n      height: this.getChartHeight(),\n      width: this.chartConf.width,\n      duration: conf.duration,\n      donut: conf.donut,\n      arcsRadius: arcsRadius,\n      showLabels: conf.showLabels,\n      showLegend: conf.showLegend,\n      titleOffset: conf.titleOffset,\n      title: conf.title,\n      growOnHover: conf.growOnHover,\n      x: function (d) { return d.x; },\n      y: function (d) { return d.y; },\n      color: conf.color,\n      noData: conf.noDataMessage\n    }\n\n    return chart;\n  }\n}","import { ChartConfiguration } from './ChartConfiguration.class';\n\nexport class GaugeSpaceChartConfiguration extends ChartConfiguration {\n  readonly type: string = 'gaugeSpaceChart';\n  readonly donut: boolean = true;\n  arcsRadius: number = 0.1;\n  readonly showLabels: boolean = false;\n  showLegend: boolean = false;\n  legendPosition: string = 'top';\n  title: string = '';\n  titleOffset: number = 0;\n  duration: number = 500;\n  growOnHover: boolean = false;\n}","import { AbstractChartOptions } from './AbstractChartOptions.class';\nimport { GaugeSpaceChartConfiguration } from './GaugeSpaceChartConfiguration.class';\n\nexport class GaugeSpaceChartOptions extends AbstractChartOptions {\n\n  protected getChartType(): string {\n    return 'pieChart';\n  }\n\n  protected getChartOptions(): Object {\n    let conf = this.chartConf instanceof GaugeSpaceChartConfiguration ? this.chartConf : new GaugeSpaceChartConfiguration();\n    const outer = 1;\n    const inner = 1 - conf.arcsRadius;\n    let arcsRadius = [\n      { 'inner': inner, 'outer': outer },\n      { 'inner': 1, 'outer': 1 }];\n    let chart = {\n      type: this.getChartType(),\n      height: this.getChartHeight(),\n      width: this.chartConf.width,\n      duration: conf.duration,\n      donut: conf.donut,\n      arcsRadius: arcsRadius,\n      showLabels: conf.showLabels,\n      showLegend: conf.showLegend,\n      titleOffset: conf.titleOffset,\n      title: conf.title,\n      growOnHover: conf.growOnHover,\n      x: function (d) { return d.x; },\n      y: function (d) { return d.y; },\n      color: [conf.color],\n      noData: conf.noDataMessage\n    }\n\n    return chart;\n  }\n}","import { AbstractChartOptions } from './AbstractChartOptions.class';\nimport { LineChartConfiguration } from './LineChartConfiguration.class';\n\nexport class LineChartOptions extends AbstractChartOptions {\n\n  protected getChartType(): string {\n    return 'lineChart';\n  }\n\n  protected getChartOptions(): Object {\n    let conf = this.chartConf instanceof LineChartConfiguration ? this.chartConf : new LineChartConfiguration;\n    conf.x1Axis.tickFormat = conf.xDataType ? this.getTickFormatter(conf.xDataType) : null;\n    conf.y1Axis.tickFormat = conf.yDataType ? this.getTickFormatter(conf.yDataType) : null;\n\n    let chart = {\n      type: this.getChartType(),\n      x: this.getXValue(),\n      y: this.getYValue(),\n      xAxis: conf.x1Axis.getAxisOptions(),\n      x2Axis: conf.x1Axis.getAxisOptions(),\n      yAxis: conf.y1Axis.getAxisOptions(),\n      y2Axis: conf.y1Axis.getAxisOptions(),\n      forceX: conf.forceX,\n      forceY: conf.forceY,\n      height: this.getChartHeight(),\n      width: conf.width,\n      margin: conf.margin.getMarginOptions(),\n      duration: conf.duration,\n      useInteractiveGuideline: conf.useInteractiveGuideline,\n      interactive: conf.interactive,\n      isArea: this.isArea(),\n      legend: conf.legend,\n      legendPosition: conf.legendPosition,\n      showLegend: conf.showLegend,\n      showXAxis: conf.showXAxis,\n      showYAxis: conf.showYAxis,\n      rightAlignYAxis: conf.rightAlignYAxis,\n      focusEnable: conf.focusEnable,\n      focusShowAxisX: conf.focusShowAxisX,\n      focusShowAxisY: conf.focusShowAxisY,\n      noData: conf.noDataMessage\n    };\n    return chart;\n  }\n\n}\n","import { AbstractChartOptions } from './AbstractChartOptions.class';\nimport { LinePlusBarFocusChartConfiguration } from './LinePlusBarFocusChartConfiguration.class';\n\nexport class LinePlusBarFocusChartOptions extends AbstractChartOptions {\n\n  protected getChartType(): string {\n    return 'linePlusBarChart';\n  }\n\n  protected getChartOptions(): Object {\n    const conf = this.chartConf instanceof LinePlusBarFocusChartConfiguration ? this.chartConf : new LinePlusBarFocusChartConfiguration();\n    conf.x1Axis.tickFormat = this.getTickFormatter(conf.xDataType) || conf.xDataType;\n    conf.y1Axis.tickFormat = this.getTickFormatter(conf.yDataType) || conf.yDataType;\n\n    const chart = {\n      type: this.getChartType(),\n      height: conf.height,\n      width: conf.width,\n      x: this.getXValue(),\n      y: this.getYValue(),\n      color: conf.color,\n      xAxis: conf.x1Axis.getAxisOptions(),\n      x2Axis: conf.x1Axis.getAxisOptions(),\n      y1Axis: conf.y1Axis.getAxisOptions(),\n      y2Axis: conf.y2Axis.getAxisOptions(),\n      forceX: conf.forceX,\n      forceY: conf.forceY,\n      duration: conf.duration,\n      margin: conf.margin.getMarginOptions(),\n      switchYAxisOrder: conf.switchYAxisOrder,\n      showLabels: conf.showLabels,\n      showLegend: conf.showLegend,\n      legend: conf.legend.getLegendOptions(),\n      isArea: conf.isArea,\n      interactive: conf.interactive,\n      focusEnable: conf.focusEnable,\n      focusShowAxisX: conf.focusShowAxisX,\n      focusShowAxisY: conf.focusShowAxisY,\n      noData: conf.noDataMessage\n    };\n    return chart;\n  }\n\n}\n","import { AbstractChartOptions } from './AbstractChartOptions.class';\nimport { MultiBarChartConfiguration } from './MultiBarChartConfiguration.class';\n\nexport class MultiBarChartOptions extends AbstractChartOptions {\n\n  protected getChartType(): string {\n    return 'multiBarChart';\n  }\n\n  protected getChartOptions(): Object {\n    let conf = this.chartConf instanceof MultiBarChartConfiguration ? this.chartConf : new MultiBarChartConfiguration();\n    conf.x1Axis.tickFormat = conf.xDataType ? this.getTickFormatter(conf.xDataType) : null;\n    conf.y1Axis.tickFormat = conf.yDataType ? this.getTickFormatter(conf.yDataType) : null;\n\n    let chart = {\n      type: this.getChartType(),\n      x: this.getXValue(),\n      y: this.getYValue(),\n      height: this.getChartHeight(),\n      width: conf.width,\n      margin: conf.margin.getMarginOptions(),\n      legend: conf.legend.getLegendOptions(),\n      xAxis: conf.x1Axis.getAxisOptions(),\n      yAxis: conf.y1Axis.getAxisOptions(),\n      duration: conf.duration,\n      stacked: conf.stacked,\n      hideable: conf.hideable,\n      groupSpacing: conf.groupSpacing,\n      showLegend: conf.showLegend,\n      showControls: conf.showControls,\n      control: conf.control.getChartControlConfiguration(),\n      showXAxis: conf.showXAxis,\n      showYAxis: conf.showYAxis,\n      reduceXTicks: conf.reduceXTicks,\n      rotateLabels: conf.rotateLabels,\n      wrapLabels: conf.wrapLabels,\n      rightAlignYAxis: conf.rightAlignYAxis,\n      noData: conf.noDataMessage\n    };\n    return chart;\n  }\n\n}\n","import { AbstractChartOptions } from './AbstractChartOptions.class';\nimport { MultiBarHorizontalChartConfiguration } from './MultiBarHorizontalChartConfiguration.class';\n\nexport class MultiBarHorizontalChartOptions extends AbstractChartOptions {\n\n  protected getChartType(): string {\n    return 'multiBarHorizontalChart';\n  }\n\n  protected getChartOptions(): Object {\n    const conf = this.chartConf instanceof MultiBarHorizontalChartConfiguration ? this.chartConf : new MultiBarHorizontalChartConfiguration();\n    conf.x1Axis.tickFormat = conf.xDataType ? this.getTickFormatter(conf.xDataType) : null;\n    conf.y1Axis.tickFormat = conf.yDataType ? this.getTickFormatter(conf.yDataType) : null;\n    const valueFormat = this.getTickFormatter(conf.valueType) || conf.valueType;\n\n    conf.x1Axis.orient = 'left';\n\n    const chart = {\n      type: this.getChartType(),\n      height: conf.height,\n      width: conf.width,\n      margin: conf.margin.getMarginOptions(),\n      legend: conf.legend.getLegendOptions(),\n      x: this.getXValue(),\n      y: this.getYValue(),\n      xAxis: conf.x1Axis.getAxisOptions(),\n      yAxis: conf.y1Axis.getAxisOptions(),\n      showControls: conf.showControls,\n      showValues: conf.showValues,\n      duration: conf.duration,\n      stacked: conf.stacked,\n      valueFormat: valueFormat,\n      valuePadding: conf.valuePadding,\n      groupSpacing: conf.groupSpacing,\n      showLegend: conf.showLegend,\n      showXAxis: conf.showXAxis,\n      showYAxis: conf.showYAxis,\n      barColor: (conf.color?.domain.length) ? (_d: any, i: number) => conf.color[i % conf.color.domain.length] : [],\n      tooltip: {\n        enabled: conf.showTooltip\n      },\n      callback: conf.callback\n    };\n    return chart;\n  }\n\n  protected getXValue(): Function {\n    return d => d.label;\n  }\n\n  protected getYValue(): Function {\n    return d => d.value;\n  }\n\n}\n","import { AbstractChartOptions } from './AbstractChartOptions.class';\nimport { OHLCChartConfiguration } from './OHLCChartConfiguration.class';\n\nexport class OHLCChartOptions extends AbstractChartOptions {\n\n  getChartType() {\n    return 'ohlcBarChart';\n  }\n\n  getChartOptions() {\n    let conf = this.chartConf instanceof OHLCChartConfiguration ? this.chartConf : new OHLCChartConfiguration();\n    conf.x1Axis.tickFormat = conf.xDataType ? this.getTickFormatter(conf.xDataType) : null;\n    conf.y1Axis.tickFormat = conf.yDataType ? this.getTickFormatter(conf.yDataType) : null;\n\n    let chart = {\n      type: this.getChartType(),\n      height: conf.height,\n      width: conf.width,\n      x: this.getXValue(),\n      y: this.getYValue(),\n      low: this.getLow(),\n      high: this.getHigh(),\n      xAxis: conf.x1Axis.getAxisOptions(),\n      yAxis: conf.y1Axis.getAxisOptions(),\n      showXAxis: conf.showXAxis,\n      showYAxis: conf.showYAxis,\n      rightAlignYAxis: conf.rightAlignYAxis,\n      legend: conf.legend.getLegendOptions(),\n      showLegend: conf.showLegend,\n      zoom: conf.zoom.getZoomOptions(),\n      useInteractiveGuideline: conf.useInteractiveGuideline,\n      padData: conf.padData,\n      clipEdge: conf.clidEdge,\n      noData: conf.noDataMessage\n    };\n    return chart;\n  }\n\n  getLow() {\n    return function (d) { return d.low; };\n  }\n\n  getHigh() {\n    return function (d) { return d.high; };\n  }\n\n  getXValue() {\n    return function (d) { return d.date; };\n  }\n\n  getYValue() {\n    return function (d) { return d.close; };\n  }\n}\n","import { AbstractChartOptions } from './AbstractChartOptions.class';\nimport { ParallelCoordinatesChartConfiguration } from './ParallelCoordinatesChartConfiguration.class';\n\nexport class ParallelCoordinatesChartOptions extends AbstractChartOptions {\n\n  getChartOptions() {\n    let conf = (this.chartConf instanceof ParallelCoordinatesChartConfiguration) ? this.chartConf : new ParallelCoordinatesChartConfiguration();\n    let chart = {\n      type: conf.type,\n      height: this.getChartHeight(),\n      width: conf.width,\n      duration: 500,\n      dimensionData: conf.dimensionData,\n      undefinedValuesLabel: conf.undefinedValueLabel,\n      color: conf.color,\n      lineTension: conf.lineTension,\n      noData: conf.noDataMessage\n    }\n    return chart;\n  }\n}","import { AbstractChartOptions } from './AbstractChartOptions.class';\nimport { RadarChartConfiguration } from './RadarChartConfiguration.class';\n\n\n\nexport class RadarChartOptions extends AbstractChartOptions {\n\n  getChartOptions() {\n    let conf = (this.chartConf instanceof RadarChartConfiguration) ? this.chartConf : new RadarChartConfiguration;\n    let chart = {\n      type: conf.type,\n      height: this.getChartHeight(),\n      width: this.chartConf.width,\n      duration: 500,\n      color: conf.color,\n      min: conf.min,\n      max: conf.max,\n      stepSize: conf.stepSize,\n      factor: conf.factor,\n      opacityArea: conf.opacityArea,\n      legend: conf.legend.getLegendOptions(),\n      showLegend: conf.showLegend,\n      noData: conf.noDataMessage\n    }\n    return chart;\n  }\n\n  getColor() {\n\n  }\n}","import { ChartConfiguration } from './ChartConfiguration.class';\n\nexport class RadialPercentChartConfiguration extends ChartConfiguration {\n  readonly type: string = 'radialPercentChart';\n  readonly donut: boolean = true;\n  readonly arcsRadius: Array<Object> = [\n    { inner: 0.7, outer: 1 },\n    { inner: 0.8, outer: 0.9}\n  ];\n  readonly showLabels: boolean = false;\n  showLegend: boolean = false;\n  legendPosition: string = 'top';\n  title: string = '';\n  titleOffset: number = 0;\n  public color: {\n    domain: []\n  };\n  duration: number = 500;\n  growOnHover: boolean = false;\n}","import { AbstractChartOptions } from './AbstractChartOptions.class';\nimport { RadialPercentChartConfiguration } from './RadialPercentChartConfiguration.class';\n\nexport class RadialPercentChartOptions extends AbstractChartOptions {\n\n  protected getChartType(): string {\n    return 'pieChart';\n  }\n\n  protected getChartOptions(): Object {\n    let conf = this.chartConf instanceof RadialPercentChartConfiguration ? this.chartConf : new RadialPercentChartConfiguration();\n\n    let chart = {\n      type: this.getChartType(),\n      height: this.getChartHeight(),\n      width: this.chartConf.width,\n      duration: conf.duration,\n      donut: conf.donut,\n      arcsRadius: conf.arcsRadius,\n      showLabels: conf.showLabels,\n      showLegend: conf.showLegend,\n      titleOffset: conf.titleOffset,\n      title: conf.title,\n      growOnHover: conf.growOnHover,\n      x: this.getXValue(),\n      y: this.getYValue(),\n      color: conf.color,\n      noData: conf.noDataMessage\n    }\n\n    return chart;\n  }\n}","import { AbstractChartOptions } from './AbstractChartOptions.class';\nimport { ScatterChartConfiguration } from './ScatterChartConfiguration.class';\n\nexport class ScatterChartOptions extends AbstractChartOptions {\n\n  protected getChartType(): string {\n    return 'scatterChart';\n  }\n\n  protected getChartOptions(): Object {\n    const conf = this.chartConf instanceof ScatterChartConfiguration ? this.chartConf : new ScatterChartConfiguration();\n    conf.x1Axis.tickFormat = conf.xDataType ? this.getTickFormatter(conf.xDataType) : null;\n    conf.y1Axis.tickFormat = conf.yDataType ? this.getTickFormatter(conf.yDataType) : null;\n\n    const chart = {\n      type: this.getChartType(),\n      x: this.getXValue(),\n      y: this.getYValue(),\n      height: conf.height,\n      showDistX: conf.showDistX,\n      showDistY: conf.showDistY,\n      duration: conf.duration,\n      xAxis: conf.x1Axis.getAxisOptions(),\n      yAxis: conf.y1Axis.getAxisOptions(),\n      legend: conf.legend.getLegendOptions(),\n      rightAlignYAxis: conf.rightAlignYAxis,\n      showXAxis: conf.showXAxis,\n      showYAxis: conf.showYAxis,\n      showLegend: conf.showLegend,\n      margin: conf.margin.getMarginOptions(),\n      clipEdge: conf.clipEdge,\n      color: conf.color,\n      noData: conf.noDataMessage\n    };\n    return chart;\n  }\n\n}\n","import { AbstractChartOptions } from './AbstractChartOptions.class';\nimport { StackedAreaChartConfiguration } from './StackedAreaChartConfiguration.class';\n\nexport class StackedAreaChartOptions extends AbstractChartOptions {\n\n  protected getChartType() {\n    return 'stackedAreaChart';\n  }\n\n  protected getChartOptions() {\n    let conf = this.chartConf instanceof StackedAreaChartConfiguration ? this.chartConf : new StackedAreaChartConfiguration();\n    conf.x1Axis.tickFormat = conf.xDataType ? this.getTickFormatter(conf.xDataType) : null;\n    conf.y1Axis.tickFormat = conf.yDataType ? this.getTickFormatter(conf.yDataType) : null;\n\n    let chart = {\n      type: this.getChartType(),\n      duration: 500,\n      height: this.getChartHeight(),\n      width: this.chartConf.width,\n      x: this.getXValue(),\n      y: this.getYValue(),\n      xAxis: conf.x1Axis.getAxisOptions(),\n      showXAxis: conf.showXAxis,\n      yAxis: conf.y1Axis.getAxisOptions(),\n      showYAxis: conf.showYAxis,\n      rightAlignYAxis: conf.rightAlignYAxis,\n      legend: conf.legend.getLegendOptions(),\n      showLegend: conf.showLegend,\n      control: conf.control.getChartControlConfiguration(),\n      showControls: conf.showControls,\n      zoom: conf.zoom.getZoomOptions(),\n      useInteractiveGuideline: conf.useInteractiveGuideline,\n      style: conf.style,\n      interactive: conf.interactive,\n      useVoronoi: conf.useVoronoi,\n      showVoronoi: conf.showVoronoi,\n      noData: conf.noDataMessage\n    };\n\n    return chart;\n  }\n}","import { OTranslateService } from 'ontimize-web-ngx';\n\nimport { ChartFactory } from '../../interfaces/ChartFactory.interface';\nimport { BubbleChartOptions } from '../../models/options/BubbleChartOptions.class';\nimport { BulletChartOptions } from '../../models/options/BulletChartOptions.class';\nimport { CandlestickChartOptions } from '../../models/options/CandlestickChartOptions.class';\nimport { ChartConfiguration } from '../../models/options/ChartConfiguration.class';\nimport { DiscreteBarChartOptions } from '../../models/options/DiscreteBarChartOptions.class';\nimport { DonutChartOptions } from '../../models/options/DonutChartOptions.class';\nimport { ForceDirectedGraphOptions } from '../../models/options/ForceDirectedGraphOptions.class';\nimport { GaugeDashboardChartOptions } from '../../models/options/GaugeDashboardChartOptions.class';\nimport { GaugeSimpleChartOptions } from '../../models/options/GaugeSimpleChartOptions.class';\nimport { GaugeSlimChartOptions } from '../../models/options/GaugeSlimChartOptions.class';\nimport { GaugeSpaceChartOptions } from '../../models/options/GaugeSpaceChartOptions.class';\nimport { LineChartOptions } from '../../models/options/LineChartOptions.class';\nimport { LinePlusBarFocusChartOptions } from '../../models/options/LinePlusBarFocusChartOptions.class';\nimport { MultiBarChartOptions } from '../../models/options/MultiBarChartOptions.class';\nimport { MultiBarHorizontalChartOptions } from '../../models/options/MultiBarHorizontalChartOptions.class';\nimport { OHLCChartOptions } from '../../models/options/OHLCChartOptions.class';\nimport { ParallelCoordinatesChartOptions } from '../../models/options/ParallelCoordinatesChartOptions.class';\nimport { PieChartOptions } from '../../models/options/PieChartOptions.class';\nimport { RadarChartOptions } from '../../models/options/RadarChartOptions.class';\nimport { RadialPercentChartOptions } from '../../models/options/RadialPercentChartOptions.class';\nimport { ScatterChartOptions } from '../../models/options/ScatterChartOption.class';\nimport { StackedAreaChartOptions } from '../../models/options/StackedAreaChartOptions.class';\n\nexport class OChartFactory implements ChartFactory {\n\n  constructor(protected translate: OTranslateService) {\n    // nothing to do\n  }\n\n  public createChartOptions(chartConf: ChartConfiguration): Object {\n    let chartOpts;\n    switch (chartConf.type) {\n      case 'line':\n        chartOpts = this.createLineChartOptions(chartConf);\n        break;\n      case 'discreteBar':\n        chartOpts = this.createDiscreteBarChartOptions(chartConf);\n        break;\n      case 'pie':\n        chartOpts = this.createPieChartOptions(chartConf);\n        break;\n      case 'multiBar':\n        chartOpts = this.createMultiBarChartOptions(chartConf);\n        break;\n      case 'multiBarHorizontalChart':\n        chartOpts = this.createMultiBarHorizontalChartOptions(chartConf);\n        break;\n      case 'scatterChart':\n        chartOpts = this.createScatterChartOptions(chartConf);\n        break;\n      case 'donutChart':\n        chartOpts = this.createDonutChartOptions(chartConf);\n        break;\n      case 'linePlusBarWithFocusChart':\n        chartOpts = this.createLinePlusBarOptions(chartConf);\n        break;\n      case 'forceDirectedGraph':\n        chartOpts = this.createForceDirectedGraph(chartConf);\n        break;\n      case 'candlestickBarChart':\n        chartOpts = this.createCandlestickBarChart(chartConf);\n        break;\n      case 'ohlcBarChart':\n        chartOpts = this.createOhlcBarChart(chartConf);\n        break;\n      case 'bulletChart':\n        chartOpts = this.createBulletChartOptions(chartConf);\n        break;\n      case 'gaugeDashboardChart':\n        chartOpts = this.createGaugeDashboardChartOptions(chartConf);\n        break;\n      case 'gaugeSlimChart':\n        chartOpts = this.createGaugeSlimChartOptions(chartConf);\n        break;\n      case 'gaugeSpaceChart':\n        chartOpts = this.createGaugeSpaceChartOptions(chartConf);\n        break;\n      case 'radialPercentChart':\n        chartOpts = this.createRadialPercentChartOptions(chartConf);\n        break;\n      case 'gaugeSimpleChart':\n        chartOpts = this.createGaugeSimpleChartOptions(chartConf);\n        break;\n      case 'bubbleChart':\n        chartOpts = this.createBubbleChartOptions(chartConf);\n        break;\n      case 'stackedAreaChart':\n        chartOpts = this.createStackedAreaChartOptions(chartConf);\n        break;\n      case 'radarChart':\n        chartOpts = this.createRadarChartOptions(chartConf);\n        break;\n      case 'parallelCoordinatesChart':\n        chartOpts = this.createParallelCoordinatesChartOptions(chartConf);\n        break;\n\n    }\n    return chartOpts;\n  }\n\n  public createLineChartOptions(chartConf: ChartConfiguration): any {\n    const lineChartOpts = new LineChartOptions(chartConf, this.translate);\n    return lineChartOpts.getOptions();\n  }\n\n  public createDiscreteBarChartOptions(chartConf: ChartConfiguration): any {\n    const discreteBarChartOpts = new DiscreteBarChartOptions(chartConf, this.translate);\n    return discreteBarChartOpts.getOptions();\n  }\n\n  public createPieChartOptions(chartConf: ChartConfiguration): any {\n    const pieChartOpts = new PieChartOptions(chartConf, this.translate);\n    return pieChartOpts.getOptions();\n  }\n\n  public createMultiBarChartOptions(chartConf: ChartConfiguration): any {\n    const multiBarChartOpts = new MultiBarChartOptions(chartConf, this.translate);\n    return multiBarChartOpts.getOptions();\n  }\n\n  public createMultiBarHorizontalChartOptions(chartConf: ChartConfiguration): any {\n    const multiBarHorChartOpts = new MultiBarHorizontalChartOptions(chartConf, this.translate);\n    return multiBarHorChartOpts.getOptions();\n  }\n\n  public createScatterChartOptions(chartConf: ChartConfiguration): any {\n    const scatterChartOpts = new ScatterChartOptions(chartConf, this.translate);\n    return scatterChartOpts.getOptions();\n  }\n\n  public createDonutChartOptions(chartConf: ChartConfiguration): any {\n    const donutChartOptions = new DonutChartOptions(chartConf, this.translate);\n    return donutChartOptions.getOptions();\n  }\n\n  public createLinePlusBarOptions(chartConf: ChartConfiguration): any {\n    const linePlusBarOptions = new LinePlusBarFocusChartOptions(chartConf, this.translate);\n    return linePlusBarOptions.getOptions();\n  }\n\n  public createForceDirectedGraph(chartConf: ChartConfiguration): any {\n    const directedGraphOptions = new ForceDirectedGraphOptions(chartConf, this.translate);\n    return directedGraphOptions.getOptions();\n  }\n\n  public createCandlestickBarChart(chartConf: ChartConfiguration): any {\n    const candlestickOptions = new CandlestickChartOptions(chartConf, this.translate);\n    return candlestickOptions.getOptions();\n  }\n\n  public createOhlcBarChart(chartConf: ChartConfiguration): any {\n    const ohlcOptions = new OHLCChartOptions(chartConf, this.translate);\n    return ohlcOptions.getOptions();\n  }\n\n  public createBulletChartOptions(chartConf: ChartConfiguration): any {\n    const bulletOptions = new BulletChartOptions(chartConf, this.translate);\n    return bulletOptions.getOptions();\n  }\n\n  public createGaugeDashboardChartOptions(chartConf: ChartConfiguration): any {\n    const gaugeOptions = new GaugeDashboardChartOptions(chartConf, this.translate);\n    return gaugeOptions.getOptions();\n  }\n\n  public createGaugeSlimChartOptions(chartConf: ChartConfiguration): any {\n    const gaugeOptions = new GaugeSlimChartOptions(chartConf, this.translate);\n    return gaugeOptions.getOptions();\n  }\n\n  public createGaugeSpaceChartOptions(chartConf: ChartConfiguration): any {\n    const gaugeOptions = new GaugeSpaceChartOptions(chartConf, this.translate);\n    return gaugeOptions.getOptions();\n  }\n\n  public createRadialPercentChartOptions(chartConf: ChartConfiguration): any {\n    const radialPercentOptions = new RadialPercentChartOptions(chartConf, this.translate);\n    return radialPercentOptions.getOptions();\n  }\n\n  public createGaugeSimpleChartOptions(chartConf: ChartConfiguration): any {\n    const gaugeSimpleOptions = new GaugeSimpleChartOptions(chartConf, this.translate);\n    return gaugeSimpleOptions.getOptions();\n  }\n\n  public createBubbleChartOptions(chartConf: ChartConfiguration): any {\n    const bubbleOptions = new BubbleChartOptions(chartConf, this.translate);\n    return bubbleOptions.getOptions();\n  }\n\n  public createStackedAreaChartOptions(chartConf: ChartConfiguration): any {\n    const stackedAreaOptions = new StackedAreaChartOptions(chartConf, this.translate);\n    return stackedAreaOptions.getOptions();\n  }\n\n  public createRadarChartOptions(chartConf: ChartConfiguration): any {\n    const radarChartOptions = new RadarChartOptions(chartConf, this.translate);\n    return radarChartOptions.getOptions();\n  }\n\n  public createParallelCoordinatesChartOptions(chartConf: ChartConfiguration): any {\n    const parallelCoordinatesChartOptions = new ParallelCoordinatesChartOptions(chartConf, this.translate);\n    return parallelCoordinatesChartOptions.getOptions();\n  }\n\n}\n\n","import { ChangeDetectorRef, Component, ContentChild, ElementRef, EventEmitter, forwardRef, Inject, Injector, OnInit, Optional, Output, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\nimport {\n  AreaChartStackedComponent,\n  BarHorizontalComponent,\n  BarVerticalComponent,\n  BarVerticalStackedComponent,\n  LineChartComponent,\n  PieChartComponent\n} from '@swimlane/ngx-charts';\nimport {\n  AppearanceService,\n  BooleanInputConverter,\n  ComponentStateServiceProvider,\n  CurrencyUtil,\n  DefaultComponentStateService,\n  NumberInputConverter,\n  O_COMPONENT_STATE_SERVICE,\n  OColumn,\n  OFormComponent,\n  OntimizeServiceProvider,\n  OServiceBaseComponent,\n  OTranslateService,\n  Util\n} from 'ontimize-web-ngx';\nimport { Subscription } from 'rxjs';\n\nimport { ChartDataAdapter } from '../../interfaces/ChartDataAdapterFactory.interface';\nimport { ChartFactory } from '../../interfaces/ChartFactory.interface';\nimport { BulletChartConfiguration } from '../../models/options/BulletChartConfiguration.class';\nimport { CandlestickChartConfiguration } from '../../models/options/CandlestickChartConfiguration.class';\nimport { ChartConfiguration } from '../../models/options/ChartConfiguration.class';\nimport { OHLCChartConfiguration } from '../../models/options/OHLCChartConfiguration.class';\nimport { ChartService } from '../../services/chart.service';\nimport { ChartConfigurationUtils } from './../../models/chart-configuration-utils';\nimport { OChartDataAdapterFactory } from './o-chart-data-adapter.factory';\nimport { OChartFactory } from './o-chart.factory';\nimport { CurrencyType } from '../../types/currency.type';\nimport moment from 'moment';\n\n\nexport const CHART_TYPES = [\n  'bubbleChart',\n  'bulletChart',\n  'candlestickBarChart',\n  'discreteBar',\n  'donutChart',\n  'forceDirectedGraph',\n  'gaugeDashboardChart',\n  'gaugeSimpleChart',\n  'gaugeSlimChart',\n  'gaugeSpaceChart',\n  'line',\n  'linePlusBarWithFocusChart',\n  'multiBar',\n  'multiBarHorizontalChart',\n  'ohlcBarChart',\n  'parallelCoordinatesChart',\n  'pie',\n  'radarChart',\n  'radialPercentChart',\n  'scatterChart',\n  'stackedAreaChart'\n];\n\nexport const DEFAULT_INPUTS_O_CHART: any = [\n  // attr [string]: list identifier. It is mandatory if data are provided through the data attribute. Default: entity (if set).\n  'oattr: attr',\n\n  // service [string]: JEE service path. Default: no value.\n  'service',\n\n  'serviceType : service-type',\n\n  // entity [string]: entity of the service. Default: no value.\n  'entity',\n\n  // query-on-init [no|yes]: query on init. Default: yes.\n  'queryOnInit: query-on-init',\n\n  // query-on-init [no|yes]: query on bind. Default: yes.\n  'queryOnBind: query-on-bind',\n\n  'queryOnEvent: query-on-event',\n\n  'pageable',\n\n  // columns [string]: columns of the entity, separated by ';'. Default: no value.\n  'columns',\n\n  // keys [string]: entity keys, separated by ';'. Default: no value.\n  'keys',\n\n  // parent-keys [string]: parent keys to filter, separated by ';'. Default: no value.\n  'parentKeys: parent-keys',\n\n  // static-data [Array<any>] : way to populate with static data. Default: no value.\n  'staticData: static-data',\n\n  // query-method [string]: name of the service method to perform queries. Default: query.\n  'queryMethod: query-method',\n\n  // paginated-query-method [string]: name of the service method to perform paginated queries. Default: advancedQuery.\n  'paginatedQueryMethod : paginated-query-method',\n\n  // query-rows [number]: number of rows per page. Default: 10.\n  'oQueryRows: query-rows',\n\n  // insert-method [string]: name of the service method to perform inserts. Default: insert.\n  'insertMethod: insert-method',\n\n  // update-method [string]: name of the service method to perform updates. Default: update.\n  'updateMethod: update-method',\n\n  // delete-method [string]: name of the service method to perform deletions. Default: delete.\n  'deleteMethod: delete-method',\n\n  'storeState: store-state',\n\n  // query-with-null-parent-keys [string][yes|no|true|false]: Indicates whether or not to trigger query method when parent-keys filter is null. Default: false\n  'queryWithNullParentKeys: query-with-null-parent-keys',\n\n  // [function]: function to execute on query error. Default: no value.\n  'queryFallbackFunction: query-fallback-function',\n  // ,\n\n  // 'insertFallbackFunction: insert-fallback-function',\n\n  // 'updateFallbackFunction: update-fallback-function',\n\n  // 'deleteFallbackFunction: delete-fallback-function',\n\n  'cHeight: chart-height',\n  'cWidth: chart-width',\n  // type [string]: Defines the type of graph to be painted (Line, Pie, ...)\n  'type',\n  'xAxis: x-axis',\n  'yAxis: y-axis',\n  'xAxisLabel: x-label',\n  'yAxisLabel: y-label',\n  // x-axis-type [string][int | float | time ]. Default 'int'\n  'xAxisDataType: x-data-type',\n  'yAxisDataType: y-data-type',\n  'data',\n  'chartParameters: chart-parameters',\n  'color',\n  'showGridLines: show-grid-lines',\n  'showDataLabel:show-data-label',\n  'showLegend:show-legend',\n  'legendPosition:legend-position',\n  'legendTitle:legend-title',\n  'xFormatting:x-formatting',\n  'yFormatting:y-formatting',\n  'showXAxisLabel:show-x-axis-label',\n  'showYAxisLabel:show-y-axis-label',\n  'autoScale: auto-scale',\n  'showTooltip:show-tooltip'\n];\n\n@Component({\n  selector: 'o-chart',\n  templateUrl: './o-chart.component.html',\n  styleUrls: ['./o-chart.component.scss'],\n  inputs: DEFAULT_INPUTS_O_CHART,\n  providers: [\n    OntimizeServiceProvider,\n    ComponentStateServiceProvider,\n    { provide: O_COMPONENT_STATE_SERVICE, useClass: DefaultComponentStateService },\n  ],\n  encapsulation: ViewEncapsulation.None\n})\nexport class OChartComponent extends OServiceBaseComponent implements OnInit {\n\n  public static DEFAULT_INPUTS_O_CHART = DEFAULT_INPUTS_O_CHART;\n  public static CHART_TYPES = CHART_TYPES;\n  @ViewChild('pieChart') pieChart: PieChartComponent;\n  @ViewChild('donutChart') donutChart: PieChartComponent;\n  @ViewChild('horizontalBarChart') horizontalBarChart: BarHorizontalComponent;\n  @ViewChild('lineChart') lineChart: LineChartComponent;\n  @ViewChild('stackedAreaChart') stackedAreaChart: AreaChartStackedComponent;\n  @ViewChild('multiBarChart') multiBarChart: BarVerticalStackedComponent;\n  @ViewChild('discreteBarChart') discreteBarChart: BarVerticalComponent;\n\n\n  /* Inputs */\n  type: string;\n  xAxis: string;\n  yAxis: string;\n  xAxisLabel: string;\n  yAxisLabel: string;\n  xAxisDataType: string;\n  xFormatting: any;\n  yFormatting: any;\n  yAxisDataType: string;\n  @BooleanInputConverter()\n  showGridLines: boolean = false;\n  @BooleanInputConverter()\n  showDataLabel: boolean = true;\n  @BooleanInputConverter()\n  showXAxisLabel: boolean = true;\n  @BooleanInputConverter()\n  showYAxisLabel: boolean = true;\n  @BooleanInputConverter()\n  autoScale: boolean = false;\n  @BooleanInputConverter()\n  showTooltip: boolean = false;\n  protected chartParameters: ChartConfiguration;\n  xColumn: OColumn;\n  yColumn: OColumn;\n  @NumberInputConverter()\n  cHeight: number = undefined;\n\n  @NumberInputConverter()\n  cWidth: number = undefined;\n  @BooleanInputConverter()\n  showLegend: boolean = false;\n  legendPosition: string;\n  legendTitle: string;\n\n\n  protected _options: any;\n  dataArray: Object[] = [];\n  protected dataService: any;\n  protected yAxisArray: Array<string> = [];\n  color: Object = \"air\";\n  protected ChartOptions: any;\n\n  protected formDataSubcribe;\n\n  @Output('onTap') onTap = new EventEmitter();\n  @Output('onDoubleTap') onDoubleTap = new EventEmitter();\n  @Output('onPress') onPress = new EventEmitter();\n  @Output('onSwipe') onSwipe = new EventEmitter();\n  @Output('onRotate') onRotate = new EventEmitter();\n  @Output('onPinch') onPinch = new EventEmitter();\n\n  @Output('onSelect') onSelect = new EventEmitter();\n  @Output('onActivate') onActivate = new EventEmitter();\n  @Output('onDeactivate') onDeactivate = new EventEmitter();\n  @Output('onDataLoaded') onDataLoaded: EventEmitter<object> = new EventEmitter<object>();\n\n\n  protected langSubscription: Subscription;\n\n  protected clickEvtEmitter: EventEmitter<any> = new EventEmitter();\n  protected chartService: ChartService;\n  protected translateService: OTranslateService;\n  cd: ChangeDetectorRef;\n  chartData: any[] = [];\n  isDarkMode: boolean;\n  constructor(\n    @Optional() @Inject(forwardRef(() => OFormComponent)) protected form: OFormComponent,\n    protected elRef: ElementRef,\n    protected injector: Injector,\n    private appearanceService: AppearanceService,\n    private _translateService: OTranslateService,\n  ) {\n    super(injector);\n\n    this.translateService = this.injector.get(OTranslateService);\n    this.chartService = this.injector.get(ChartService);\n    this.cd = this.injector.get(ChangeDetectorRef);\n    this.getAdaptData();\n  }\n  @ContentChild('tooltip', { static: false }) tooltipTemplateRef!: TemplateRef<any>;\n  @ContentChild('seriesTooltip', { static: false }) seriesTooltipTemplateRef!: TemplateRef<any>;\n\n  ngOnInit(): void {\n    this.xFormatting = this.xFormatting !== undefined ? this.xFormatting : this.getTickFormatter(this.xAxisDataType);\n    this.yFormatting = this.yFormatting !== undefined ? this.yFormatting : this.getTickFormatter(this.yAxisDataType);\n    this.chartData = this.getAdaptData();\n    super.initialize();\n    this.yAxisArray = Util.parseArray(this.yAxis);\n    if (Util.isDefined(this.state['type'])) {\n      this.type = this.state['type'];\n    }\n    this.configureChart();\n    this.bindChartEvents();\n\n    this.langSubscription = this.translateService.onLanguageChanged.subscribe(_event => {\n      this.configureChart();\n    });\n    this.appearanceService.isDarkMode$.subscribe((isDarkMode) => {\n      this.isDarkMode = isDarkMode;\n    });\n  }\n  get chartClass(): string {\n    return this.isDarkMode ? 'dark-chart' : '';\n  }\n  ngAfterViewInit(): void {\n    const chartComponents = [\n      \"pieChart\",\n      \"discreteBarChart\",\n      \"multiBarChart\",\n      \"stackedAreaChart\",\n      \"lineChart\",\n      \"horizontalBarChart\",\n      \"donutChart\"\n    ];\n\n    if (this.queryOnInit && this.dataService !== undefined) {\n      this.queryData();\n    }\n\n    chartComponents.forEach(chart => {\n      if (Util.isDefined(this[chart])) {\n        this[chart].margins = [0, 0, 0, 0];\n        this[chart].update();\n      }\n    });\n\n    this.cd.detectChanges();\n  }\n  getDateTickFormatter(dateFormat: string) {\n    return d => (d !== undefined) ? moment(d).locale(this._translateService.getCurrentLang()).format(dateFormat) : '';\n  }\n  isDateType(type: string): boolean {\n    return (\n      type === 'time' ||\n      type === 'TIME' ||\n      type === 'TIMESTAMP' ||\n      type === 'DATE' ||\n      type === 'timeDay' ||\n      type === 'timeDetail'\n    );\n  }\n\n  selectChart(event: any) {\n    this.onSelect.emit(event);\n  }\n  activateChart(event: any) {\n    this.onActivate.emit(event);\n  }\n  deactivateChart(event: any) {\n    this.onDeactivate.emit(event);\n  }\n  getTickFormatter(type: string, currency?: CurrencyType): any {\n    const language = this.getLanguage(currency);\n    const currencyCode = this.getCurrencyCode(language, currency);\n\n    switch (type) {\n      case 'intGrouped':\n        return this.formatIntGrouped;\n      case 'floatGrouped':\n        return this.formatFloatGrouped;\n      case 'int':\n        return this.formatInt;\n      case 'float':\n        return this.formatFloat;\n      case 'currency':\n        return this.formatCurrency(language, currencyCode);\n      case 'time':\n      case 'TIME':\n      case 'TIMESTAMP':\n      case 'DATE':\n        return this.auxFormatDate;\n      case 'timeDay':\n        return this.formatTime;\n      case 'timeDetail':\n        return this.formatDateTime;\n      case 'percentage':\n        return this.formatPercentage;\n      default:\n        return typeof type === 'function' ? type : undefined;\n    }\n  }\n\n  private getLanguage(currency?: CurrencyType): string {\n    if (currency) {\n      return currency?.symbolPosition === 'left' ? 'en' : 'es';\n    }\n    else {\n      return this._translateService.getCurrentLang();\n    }\n\n  }\n\n  private getCurrencyCode(language: string, currency?: CurrencyType): string {\n    if (currency) {\n      return CurrencyUtil.getCurrencyCodeFromSymbol(currency.symbol);\n    }\n    else {\n      return CurrencyUtil.getCurrencyCode(language);\n    }\n  }\n\n  private formatIntGrouped(d: number): string {\n    return (d !== undefined) ? d.toLocaleString() : '';\n  }\n\n  private formatFloatGrouped(d: number): string {\n    return (d !== undefined) ? d.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 }) : '';\n  }\n\n  private formatInt(d: number): string {\n    return (d !== undefined) ? Math.round(d).toLocaleString() : '';\n  }\n\n  private formatFloat(d: number): string {\n    return (d !== undefined) ? d.toFixed(2) : '';\n  }\n\n  private formatCurrency(language: string, currencyCode: string): (d: number) => string {\n    return (d: number) => d.toLocaleString(language, {\n      style: 'currency',\n      currency: currencyCode,\n      minimumFractionDigits: 2,\n      maximumFractionDigits: 2\n    });\n  }\n\n  private auxFormatDate(d: number): string {\n    return (d !== undefined) ? new Date(d).toLocaleDateString() : '';\n  }\n\n  private formatTime(d: number): string {\n    return (d !== undefined) ? new Date(d).toLocaleTimeString() : '';\n  }\n\n  private formatDateTime(d: number): string {\n    return (d !== undefined) ? new Date(d).toLocaleString() : '';\n  }\n\n  private formatPercentage(d: number): string {\n    return (d !== undefined) ? (d * 100).toFixed(0) + '%' : '';\n  }\n\n  formatTimestamp(timestamp: number): string {\n    const date = new Date(timestamp);\n    const day = date.getUTCDate().toString().padStart(2, '0');\n    const month = (date.getUTCMonth() + 1).toString().padStart(2, '0');\n    const year = date.getUTCFullYear().toString();\n\n    return `${day}/${month}/${year}`;\n  }\n  formatDate(date: number): string {\n    const formattedDate = new Date(date).toLocaleDateString('es-ES', { day: '2-digit', month: '2-digit', year: 'numeric' });\n    return formattedDate;\n  }\n\n  // ngAfterViewChecked(): void {\n  //   let color: string;\n  //   switch (this.type) {\n  //     case 'gaugeDashboardChart':\n  //       color = this.chartParameters && (this.chartParameters as GaugeDashboardChartConfiguration).color ? (this.chartParameters as GaugeDashboardChartConfiguration).color[0] : 'black';\n  //       break;\n  //     case 'gaugeSlimChart':\n  //       color = this.chartParameters && (this.chartParameters as GaugeSlimChartConfiguration).color ? (this.chartParameters as GaugeSlimChartConfiguration).color[0] : 'black';\n  //       break;\n  //     case 'gaugeSpaceChart':\n  //       color = this.chartParameters && (this.chartParameters as GaugeSpaceChartConfiguration).color ? (this.chartParameters as GaugeSpaceChartConfiguration).color : 'black';\n  //       break;\n  //     case 'radialPercentChart':\n  //       color = this.chartParameters && (this.chartParameters as RadialPercentChartConfiguration).color ? (this.chartParameters as RadialPercentChartConfiguration).color[0] : 'black';\n  //       break;\n  //     default:\n  //       break;\n  //   }\n  //   if (color) {\n  //     const elements = document.getElementsByClassName('nv-pie-title');\n  //     for (let i = 0; i < elements.length; i++) {\n  //       (elements.item(i) as SVGTextElement).style.fill = color;\n  //     }\n  //   }\n  // }\n\n  ngOnDestroy(): void {\n    super.destroy();\n    if (this.formDataSubcribe) {\n      this.formDataSubcribe.unsubscribe();\n    }\n    const elements = document.getElementsByClassName('nvtooltip xy-tooltip');\n    for (let i = 0; i < elements.length; i++) {\n      elements.item(i).remove();\n    }\n  }\n\n  set data(value: any) {\n    if (value) {\n      this.setDataArray(value);\n    }\n  }\n\n  get options(): any {\n    return this._options;\n  }\n\n  set options(value: any) {\n    this._options = value;\n  }\n\n  getChartConfiguration(): ChartConfiguration {\n    let chartConf: ChartConfiguration;\n    if (this.chartParameters) {\n      chartConf = this.chartParameters;\n      chartConf.showTooltip = this.showTooltip;\n      chartConf.height = chartConf.height ? chartConf.height : (this.cHeight !== -1) ? this.cHeight : null;\n      chartConf.width = chartConf.width ? chartConf.width : (this.cWidth !== -1) ? this.cWidth : null;\n      chartConf.xLabel = chartConf.xLabel ? chartConf.xLabel : this.xAxisLabel ? this.xAxisLabel : '';\n      chartConf.yLabel = chartConf.yLabel ? chartConf.yLabel : this.yAxisLabel ? this.yAxisLabel : '';\n      chartConf.xDataType = chartConf.xDataType ? chartConf.xDataType : this.xAxisDataType ? this.xAxisDataType : null;\n      chartConf.yDataType = chartConf.yDataType ? chartConf.yDataType : this.yAxisDataType ? this.yAxisDataType : null;\n      chartConf.xAxis = chartConf.xAxis ? chartConf.xAxis : this.xAxis ? this.xAxis : null;\n      chartConf.yAxis = chartConf.yAxis ? chartConf.yAxis : this.yAxisArray ? this.yAxisArray : null;\n\n      chartConf.translateService = this.translateService;\n      chartConf.data = this.dataArray ? this.dataArray : null;\n    } else {\n      chartConf = ChartConfigurationUtils.getConfigurationForType(this.type);\n      chartConf.showTooltip = this.showTooltip;\n      chartConf.height = this.cHeight !== -1 ? this.cHeight : 0;\n      chartConf.width = this.cWidth !== -1 ? this.cWidth : 0;\n\n      chartConf.xLabel = this.xAxisLabel;\n      chartConf.yLabel = this.yAxisLabel;\n\n      chartConf.xDataType = this.xAxisDataType;\n      chartConf.yDataType = this.yAxisDataType;\n\n      chartConf.xAxis = this.xAxis;\n      chartConf.yAxis = this.yAxisArray;\n\n      chartConf.translateService = this.translateService;\n\n      chartConf.data = this.dataArray;\n    }\n\n    return chartConf;\n  }\n\n  public setChartConfiguration(conf: ChartConfiguration): void {\n    this.chartParameters = conf;\n    this.configureChart();\n  }\n\n  getAdaptData(): any {\n    let data;\n    if (this.type === 'forceDirectedGraph' || this.type === 'bulletChart') {\n      if (this.dataArray && this.dataArray[0]) {\n        data = this.cleanArray(this.dataArray[0]);\n\n      } else {\n        data = [];\n      }\n    } else {\n      data = this.cleanArray(this.dataArray);\n\n    }\n    this.onDataLoaded.emit(data);\n    this.configureParams();\n    return data\n  }\n\n  cleanArray(arr) {\n    for (let i = 0; i < arr.length; i++) {\n      if (arr[i].name === undefined) {\n        arr[i].name = '';\n      }\n      if (arr[i].series) {\n        for (let j = 0; j < arr[i].series.length; j++) {\n          if (arr[i].series[j].name === undefined) {\n            arr[i].series[j].name = '';\n          }\n          if (arr[i].series[j].value === undefined) {\n            arr[i].series[j].value = '';\n          }\n        }\n      } else if (arr[i].value === undefined) {\n        arr[i].value = '';\n      }\n    }\n    if (this.type == 'stackedAreaChart' && Util.isDefined(this.xColumn) && (this.xColumn.type == 'date' || this.yColumn.type == 'date')) {\n      arr = this.filterArray(arr);\n    }\n    return arr;\n  }\n  filterArray(data) {\n    data[0].series = data[0].series.filter(serie => serie.name !== \"\" && serie.value !== \"\");\n\n    return data;\n  }\n\n  getChartFactory(): ChartFactory {\n    return new OChartFactory(this.translateService);\n  }\n\n  getChartDataAdapterFactory(): OChartDataAdapterFactory {\n    return new OChartDataAdapterFactory(this.getChartConfiguration());\n  }\n\n  /**\n   * Configures the chart depending on input parameters\n   */\n  protected configureChart(): void {\n\n\n    const chartConf: ChartConfiguration = this.getChartConfiguration();\n    this.options = this.getChartFactory().createChartOptions(chartConf);\n  }\n\n  public getChartService(): ChartService {\n    return this.chartService;\n  }\n\n  protected onFormDataBind(bindedData: Object): void {\n    let filter = {};\n    const keys = Object.keys(this._pKeysEquiv);\n    if (keys && keys.length > 0 && bindedData) {\n      keys.forEach(item => {\n        const value = bindedData[item];\n        if (value) {\n          filter[this._pKeysEquiv[item]] = value;\n        }\n      });\n    }\n    filter = (this.type === 'ohlcBarChart') ? {} : (this.type === 'candlestickBarChart') ? {} : filter;\n    this.queryData(filter);\n  }\n\n  public setData(data: any, _sqlTypes?: any, _replace?: boolean): void {\n    const factory = this.getChartDataAdapterFactory();\n    const adapter: ChartDataAdapter = factory.getAdapter(this.type);\n    const adaptedResult = adapter.adaptResult(data);\n    this.setDataArray(adaptedResult);\n\n    this.configureChart();\n\n    this.configureParams();\n\n    this.cd.detectChanges();\n  }\n  getCurrency(column: OColumn): CurrencyType {\n    let currency: CurrencyType;\n    const symbol: string = column.renderer['currencySymbol'];\n    const symbolPosition: string = column.renderer['currencySymbolPosition'];\n    currency = { symbol, symbolPosition };\n    return currency;\n  }\n  configureParams() {\n    let chart = this.getChartByType();\n    if (!chart) return;\n\n    let config = this.getChartConfiguration();\n    if (!config) return;\n\n    this.setChartView(chart, config);\n    this.setChartLabelsAndLegend(chart, config);\n    this.setChartTooltip(chart, config);\n    this.setChartColorScheme(chart, config);\n    this.setChartGridLines(chart);\n\n    if (Util.isDefined(config['xDataType'])) {\n      if (this.type != 'pie' && this.type != 'donutChart') {\n        this.setChartAxisFormatting(chart, 'xAxisTickFormatting', config['xDataType'], this.xColumn);\n      } else {\n        this.setChartAxisFormatting(chart, 'labelFormatting', config['xDataType'], this.xColumn);\n      }\n    }\n\n    if (Util.isDefined(config['yDataType'])) {\n      if (this.type != 'pie' && this.type != 'donutChart') {\n        this.setChartAxisFormatting(chart, 'yAxisTickFormatting', config['yDataType'], this.yColumn);\n      }\n    }\n  }\n\n  getChartByType() {\n    switch (this.type) {\n      case 'pie': return this.pieChart;\n      case 'donutChart': return this.donutChart;\n      case 'stackedAreaChart': return this.stackedAreaChart;\n      case 'multiBarHorizontalChart': return this.horizontalBarChart;\n      case 'line': return this.lineChart;\n      case 'discreteBar': return this.discreteBarChart;\n      case 'multiBar': return this.multiBarChart;\n      default: return null;\n    }\n  }\n\n  setChartView(chart, config) {\n    if (this.isDefinedAndGreaterThanZero(config.width, config.height) || this.isDefinedAndGreaterThanZero(this.cWidth, this.cHeight)) {\n      chart.view = [config.width || this.cWidth, config.height || this.cHeight];\n    }\n  }\n\n  setChartLabelsAndLegend(chart, config) {\n    chart.labels = config['showLabels'];\n    chart.legend = this.showLegend || config?.showLegend;\n    chart.legendPosition = this.legendPosition ?? config['legendPosition'];\n    chart.legendTitle = this.legendTitle;\n    chart.showXAxisLabel = this.showXAxisLabel;\n    chart.showYAxisLabel = this.showYAxisLabel;\n    chart.xAxisLabel = this.xAxisLabel;\n    chart.yAxisLabel = this.yAxisLabel;\n  }\n\n  setChartTooltip(chart, config) {\n    chart['tooltipDisabled'] = !config['showTooltip'];\n  }\n\n  setChartColorScheme(chart, config) {\n    if (Util.isDefined(config['color'])) {\n      chart['scheme'] = config['color'];\n    }\n  }\n  setChartGridLines(chart) {\n    if (chart.type != \"pie\" && chart.type != \"donutChart\") {\n      chart.showGridLines = this.showGridLines;\n    }\n  }\n\n  setChartAxisFormatting(chart, axis, dataType, column) {\n    if (Util.isDefined(dataType) && column != null && column.renderer && column.renderer['currencySymbol']) {\n      chart[axis] = this.getTickFormatter(dataType, this.getCurrency(column));\n    } else if (this.isDateType(dataType) && column != null && column.renderer && column.renderer['format']) {\n      chart[axis] = this.getDateTickFormatter(column.renderer['format']);\n    } else {\n      chart[axis] = this.getTickFormatter(dataType);\n    }\n  }\n\n  isDefinedAndGreaterThanZero(width: number, height: number): boolean {\n    return Util.isDefined(width) && Util.isDefined(height) && width != 0 && height != 0;\n  }\n  getAttributesValuesToQuery(): Array<string> {\n    let columns = super.getAttributesValuesToQuery();\n    if (this.yAxisArray && this.yAxisArray.length) {\n      this.yAxisArray.forEach((item: any, _index: number) => {\n        if (columns.filter((val: Object) => (val === item))) {\n          columns.push(item);\n        }\n      });\n    }\n    if (this.xAxis && this.xAxis.length) {\n      if (columns.filter((val: Object) => (val === this.xAxis))) {\n        columns.push(this.xAxis);\n      }\n    }\n    switch (this.type) {\n      case 'ohlcBarChart':\n        columns = [];\n        const OHLCParams = this.chartParameters as OHLCChartConfiguration;\n        columns.push(OHLCParams.xColumn);\n        columns.push(OHLCParams.openAxis);\n        columns.push(OHLCParams.closeAxis);\n        columns.push(OHLCParams.highAxis);\n        columns.push(OHLCParams.lowAxis);\n        break;\n      case 'candlestickBarChart':\n        columns = [];\n        const candlestickParams = this.chartParameters as CandlestickChartConfiguration;\n        columns.push(candlestickParams.xColumn);\n        columns.push(candlestickParams.openAxis);\n        columns.push(candlestickParams.closeAxis);\n        columns.push(candlestickParams.highAxis);\n        columns.push(candlestickParams.lowAxis);\n        break;\n      case 'bulletChart':\n        columns = [];\n        const bulletParams = this.chartParameters as BulletChartConfiguration;\n        columns.push(bulletParams.markersAxis);\n        columns.push(bulletParams.measuresAxis);\n        columns.push(bulletParams.rangesAxis);\n        break;\n      default:\n        break;\n    }\n    return columns;\n  }\n\n  /**\n   *  Binds chart events.\n   * @returns void\n   */\n  bindChartEvents(): void {\n    const chart = this.getChartService().chart;\n    if (chart && chart.on) {\n      chart.on('click', (evt: any) => this.clickEvtEmitter.emit(evt));\n    }\n  }\n\n  onClickEvent(onNext: (value: any) => void): Object {\n    return this.clickEvtEmitter.subscribe(onNext);\n  }\n\n  tapChart(event: any) {\n    this.onTap.emit(event);\n  }\n\n  doubleTapChart(event: any) {\n    this.onDoubleTap.emit(event);\n  }\n\n  pressChart(event: any) {\n    this.onPress.emit(event);\n  }\n\n  swipeChart(event: any) {\n    this.onSwipe.emit(event);\n  }\n\n  rotateChart(event: any) {\n    this.onRotate.emit(event);\n  }\n\n  pinchChart(event: any) {\n    this.onPinch.emit(event);\n  }\n  updateOptions(options: any, type: string, xColumn: OColumn, yColumn: OColumn) {\n    this.xColumn = xColumn;\n    this.yColumn = yColumn;\n    if (type === this.type) {\n      this.forceRerender(type);\n    } else {\n      this.setChartConfiguration(options);\n      this.type = type;\n      this.configureParams();\n    }\n    setTimeout(() => {\n      this.setChartConfiguration(options);\n      this.type = type;\n      this.configureParams();\n    }, 10);\n  }\n\n  forceRerender(type: string) {\n    this.type = '';\n    setTimeout(() => {\n      this.type = type;\n    }, 0);\n  }\n\n\n}\n","<div>\n  <ng-container [ngSwitch]=\"type\">\n\n    <ngx-charts-pie-chart #pieChart *ngSwitchCase=\"'pie'\" fxFlexFill class=\"chart\" [results]=\"getAdaptData()\" [labels]=\"true\" [explodeSlices]=\"false\"\n      [doughnut]=\"false\" [scheme]=\"color\" [labelFormatting]=\"xFormatting\" [ngClass]=\"chartClass\" (select)=\"selectChart($event)\"\n      (activate)=\"activateChart($event)\" (deactivate)=\"deactivateChart($event)\">\n\n      <ng-template #tooltipTemplate let-model=\"model\" *ngIf=\"tooltipTemplateRef\">\n        <ng-container *ngTemplateOutlet=\"tooltipTemplateRef; context: { model: model }\"></ng-container>\n      </ng-template>\n\n      <ng-template #seriesTooltipTemplate let-model=\"model\" *ngIf=\"seriesTooltipTemplateRef\">\n        <ng-container *ngTemplateOutlet=\"seriesTooltipTemplateRef; context: { model: model }\"></ng-container>\n      </ng-template>\n    </ngx-charts-pie-chart>\n\n    <ngx-charts-pie-chart #donutChart *ngSwitchCase=\"'donutChart'\" fxFlexFill class=\"chart\" [results]=\"getAdaptData()\" [labels]=\"true\"\n      [explodeSlices]=\"false\" [doughnut]=\"true\" [ngClass]=\"chartClass\" [scheme]=\"color\" [labelFormatting]=\"xFormatting\" (select)=\"selectChart($event)\"\n      (activate)=\"activateChart($event)\" (deactivate)=\"deactivateChart($event)\">\n\n      <ng-template #tooltipTemplate let-model=\"model\" *ngIf=\"tooltipTemplateRef\">\n        <ng-container *ngTemplateOutlet=\"tooltipTemplateRef; context: { model: model }\"></ng-container>\n      </ng-template>\n\n      <ng-template #seriesTooltipTemplate let-model=\"model\" *ngIf=\"seriesTooltipTemplateRef\">\n        <ng-container *ngTemplateOutlet=\"seriesTooltipTemplateRef; context: { model: model }\"></ng-container>\n      </ng-template>\n    </ngx-charts-pie-chart>\n\n    <ngx-charts-bar-horizontal #horizontalBarChart *ngSwitchCase=\"'multiBarHorizontalChart'\" [showDataLabel]=\"showDataLabel\" [xAxisLabel]=\"xAxisLabel\"\n      [yAxisLabel]=\"yAxisLabel\" [xAxis]=\"showXAxisLabel\" [yAxis]=\"showYAxisLabel\" [results]=\"getAdaptData()\" [scheme]=\"color\"\n      [xAxisTickFormatting]=\"xFormatting\" [yAxisTickFormatting]=\"yFormatting\" [ngClass]=\"chartClass\" (select)=\"selectChart($event)\"\n      (activate)=\"activateChart($event)\" (deactivate)=\"deactivateChart($event)\">\n\n      <ng-template #tooltipTemplate let-model=\"model\" *ngIf=\"tooltipTemplateRef\">\n        <ng-container *ngTemplateOutlet=\"tooltipTemplateRef; context: { model: model }\"></ng-container>\n      </ng-template>\n\n      <ng-template #seriesTooltipTemplate let-model=\"model\" *ngIf=\"seriesTooltipTemplateRef\">\n        <ng-container *ngTemplateOutlet=\"seriesTooltipTemplateRef; context: { model: model }\"></ng-container>\n      </ng-template>\n    </ngx-charts-bar-horizontal>\n\n    <ngx-charts-bar-vertical #discreteBarChart *ngSwitchCase=\"'discreteBar'\" [showDataLabel]=\"showDataLabel\" [xAxisLabel]=\"xAxisLabel\"\n      [yAxisLabel]=\"yAxisLabel\" [xAxis]=\"showXAxisLabel\" [yAxis]=\"showYAxisLabel\" [results]=\"getAdaptData()\" [scheme]=\"color\"\n      [xAxisTickFormatting]=\"xFormatting\" [yAxisTickFormatting]=\"yFormatting\" [ngClass]=\"chartClass\" (select)=\"selectChart($event)\"\n      (activate)=\"activateChart($event)\" (deactivate)=\"deactivateChart($event)\">\n\n      <ng-template #tooltipTemplate let-model=\"model\" *ngIf=\"tooltipTemplateRef\">\n        <ng-container *ngTemplateOutlet=\"tooltipTemplateRef; context: { model: model }\"></ng-container>\n      </ng-template>\n\n      <ng-template #seriesTooltipTemplate let-model=\"model\" *ngIf=\"seriesTooltipTemplateRef\">\n        <ng-container *ngTemplateOutlet=\"seriesTooltipTemplateRef; context: { model: model }\"></ng-container>\n      </ng-template>\n    </ngx-charts-bar-vertical>\n\n    <ngx-charts-line-chart #lineChart *ngSwitchCase=\"'line'\" [xAxisLabel]=\"xAxisLabel\" [yAxisLabel]=\"yAxisLabel\" [xAxis]=\"showXAxisLabel\"\n      [yAxis]=\"showYAxisLabel\" [autoScale]=\"autoScale\" [results]=\"getAdaptData()\" [scheme]=\"color\" [xAxisTickFormatting]=\"xFormatting\"\n      [yAxisTickFormatting]=\"yFormatting\" [ngClass]=\"chartClass\" (select)=\"selectChart($event)\" (activate)=\"activateChart($event)\"\n      (deactivate)=\"deactivateChart($event)\">\n\n      <ng-template #tooltipTemplate let-model=\"model\" *ngIf=\"tooltipTemplateRef\">\n        <ng-container *ngTemplateOutlet=\"tooltipTemplateRef; context: { model: model }\"></ng-container>\n      </ng-template>\n\n      <ng-template #seriesTooltipTemplate let-model=\"model\" *ngIf=\"seriesTooltipTemplateRef\">\n        <ng-container *ngTemplateOutlet=\"seriesTooltipTemplateRef; context: { model: model }\"></ng-container>\n      </ng-template>\n\n    </ngx-charts-line-chart>\n\n    <ngx-charts-area-chart-stacked #stackedAreaChart *ngSwitchCase=\"'stackedAreaChart'\" [xAxisLabel]=\"xAxisLabel\" [yAxisLabel]=\"yAxisLabel\"\n      [xAxis]=\"showXAxisLabel\" [yAxis]=\"showYAxisLabel\" [results]=\"getAdaptData()\" [scheme]=\"color\" [xAxisTickFormatting]=\"xFormatting\"\n      [yAxisTickFormatting]=\"yFormatting\" [ngClass]=\"chartClass\" (select)=\"selectChart($event)\" (activate)=\"activateChart($event)\"\n      (deactivate)=\"deactivateChart($event)\">\n\n      <ng-template #tooltipTemplate let-model=\"model\" *ngIf=\"tooltipTemplateRef\">\n        <ng-container *ngTemplateOutlet=\"tooltipTemplateRef; context: { model: model }\"></ng-container>\n      </ng-template>\n\n      <ng-template #seriesTooltipTemplate let-model=\"model\" *ngIf=\"seriesTooltipTemplateRef\">\n        <ng-container *ngTemplateOutlet=\"seriesTooltipTemplateRef; context: { model: model }\"></ng-container>\n      </ng-template>\n    </ngx-charts-area-chart-stacked>\n\n    <ngx-charts-bar-vertical-stacked #multiBarChart *ngSwitchCase=\"'multiBar'\" [showDataLabel]=\"showDataLabel\" [xAxisLabel]=\"xAxisLabel\"\n      [yAxisLabel]=\"yAxisLabel\" [xAxis]=\"showXAxisLabel\" [yAxis]=\"showYAxisLabel\" [results]=\"getAdaptData()\" [scheme]=\"color\"\n      [xAxisTickFormatting]=\"xFormatting\" [yAxisTickFormatting]=\"yFormatting\" [ngClass]=\"chartClass\" (select)=\"selectChart($event)\"\n      (activate)=\"activateChart($event)\" (deactivate)=\"deactivateChart($event)\">\n\n      <ng-template #tooltipTemplate let-model=\"model\" *ngIf=\"tooltipTemplateRef\">\n        <ng-container *ngTemplateOutlet=\"tooltipTemplateRef; context: { model: model }\"></ng-container>\n      </ng-template>\n\n      <ng-template #seriesTooltipTemplate let-model=\"model\" *ngIf=\"seriesTooltipTemplateRef\">\n        <ng-container *ngTemplateOutlet=\"seriesTooltipTemplateRef; context: { model: model }\"></ng-container>\n      </ng-template>\n    </ngx-charts-bar-vertical-stacked>\n\n  </ng-container>\n</div>\n","import { AfterViewInit, ChangeDetectorRef, Component, Inject, Injector, Input, OnDestroy, Type, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { MatRadioGroup } from '@angular/material/radio';\nimport { MatSidenav } from '@angular/material/sidenav';\nimport domtoimage from 'dom-to-image';\nimport {\n  AppConfig,\n  AppearanceService,\n  BaseRequestArgument,\n  DialogService,\n  FactoryUtil,\n  OColumn,\n  OConfigureServiceArgs,\n  OFormComponent,\n  OntimizeMatIconRegistry,\n  OntimizePreferencesService,\n  OntimizeRequestArgumentsAdapter,\n  OntimizeService,\n  OPreference,\n  OQueryParams,\n  OTableComponent,\n  OTranslateService,\n  OValueChangeEvent,\n  SnackBarService,\n  SQLTypes,\n  Util\n} from 'ontimize-web-ngx';\nimport { Subscription } from 'rxjs';\n\nimport { DataAdapterUtils } from '../../adapters/data-adapter-utils';\nimport { DefaultOChartPreferences, OChartPreferences } from '../../types/chart-preferences.type';\nimport { Utils } from '../../util/utils';\nimport { OChartComponent } from '../chart/o-chart.component';\nimport { LoadPreferencesDialogComponent } from './load-preferences-dialog/load-preferences-dialog.component';\nimport { OChartOnDemandUtils } from './o-chart-on-demand-utils';\nimport { SavePreferencesDialogComponent } from './save-preferences-dialog/save-preferences-dialog.component';\n\nconst svgIcons = ['palette1', 'palette2', 'palette3', 'palette4'];\n\n\n@Component({\n  selector: 'o-chart-on-demand',\n  templateUrl: './o-chart-on-demand.component.html',\n  styleUrls: ['./o-chart-on-demand.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    '[class.o-chart-on-demand]': 'true'\n  }\n\n})\n\nexport class OChartOnDemandComponent implements AfterViewInit, OnDestroy {\n\n  public appliedConfiguration: boolean = false;\n\n  protected snackBarService: SnackBarService;\n  public currentPreference: OChartPreferences;\n  public currentConfiguration: OPreference;\n  public preferencesService: OntimizePreferencesService;\n\n  showPlaceholder: boolean = true;\n  dateXAxis: boolean = false;\n  dateYAxis: boolean = false;\n  multiSelectionCombo: boolean = false;\n  dataTypes = this.getDataType();\n  types = this.getDataArrayRadioGraphics();\n  comboData: Array<Object>;\n  comboPalette = [\n    {\n      value: 'palette1', colors: { domain: ['#003CC4', '#0058D2', '#006BDB', '#2681E0', '#4D97E6', '#80B5ED', '#B3D3F4', '#E0EDFB'] }\n    },\n    {\n      value: 'palette2', colors: { domain: ['#063679', '#0E5293', '#1464A5', '#377BB3', '#5B93C0', '#8AB2D2', '#B9D1E4', '#E3ECF4'] }\n    },\n    {\n      value: 'palette3', colors: { domain: ['#20217B', '#373995', '#4649A6', '#6264B3', '#7E80C1', '#A3A4D3', '#B9D1E4', '#E9E9F4'] }\n    },\n    {\n      value: 'palette4', colors: { domain: ['#04122E', '#0A2348', '#0E2F59', '#324E72', '#566D8B', '#8797AC', '#B7C1CD', '#E2E6EB'] }\n    }]\n    ;\n\n  @ViewChild('sidenav') sidenav: MatSidenav;\n  @ViewChild('chart') chart: OChartComponent;\n  @ViewChild('formChart') formChart: OFormComponent;\n  @ViewChild('radioType') radioType: MatRadioGroup;\n  @ViewChild('radioDataType') radioDataType: MatRadioGroup;\n  opened: boolean = true;\n  fullscreen: boolean = false;\n\n  private _arrayColumns = [];\n  arrayYAxis = [];\n  sqlTypes = {};\n  isDarkMode: boolean;\n\n  @Input() description: string = '';\n  @Input() buttonText: string = '';\n\n  protected langSubscription: Subscription;\n  protected translateService: OTranslateService;\n  protected dialogService: DialogService;\n  protected appConfig: AppConfig;\n  protected queryRequestAdapter: BaseRequestArgument;\n  protected querySubscription: Subscription;\n  constructor(\n    private ontimizeService: OntimizeService,\n    private cd: ChangeDetectorRef,\n    private dialogRef: MatDialogRef<any>,\n    public dialog: MatDialog,\n    protected injector: Injector,\n    private ontimizeMatIconRegistry: OntimizeMatIconRegistry,\n    @Inject(MAT_DIALOG_DATA) public tableComp: OTableComponent,\n    private appearanceService: AppearanceService\n  ) {\n    this.dialogService = this.injector.get<DialogService>(DialogService as Type<DialogService>);\n    this.currentPreference = new DefaultOChartPreferences();\n    this.currentPreference.entity = this.tableComp.entity;\n    this.currentPreference.service = this.tableComp.service;\n    this.sqlTypes = this.tableComp.getSqlTypes();\n    this.preferencesService = this.injector.get<OntimizePreferencesService>(OntimizePreferencesService);\n    this.ontimizeService.configureService(this.ontimizeService.getDefaultServiceConfiguration(this.currentPreference.service));\n    this.translateService = this.injector.get(OTranslateService);\n    this.snackBarService = this.injector.get(SnackBarService);\n    this.appConfig = this.injector.get(AppConfig);\n\n    this.configurePrefereceService();\n    this.configureAdapter();\n  }\n\n  public configurePrefereceService(): void {\n    let configureServiceArgs: OConfigureServiceArgs = { injector: this.injector, baseService: OntimizePreferencesService, entity: 'preferences', service: 'preferences', serviceType: null };\n    this.preferencesService = FactoryUtil.configureService(configureServiceArgs);\n  }\n\n  public configureAdapter() {\n    this.queryRequestAdapter = this.injector.get(OntimizeRequestArgumentsAdapter);\n  }\n\n  ngOnInit(): void {\n    this.langSubscription = this.translateService.onLanguageChanged.subscribe(_event => {\n      this.configureChart();\n    });\n    if (this.ontimizeMatIconRegistry) {\n      svgIcons.forEach(current => {\n        this.ontimizeMatIconRegistry.addOntimizeSvgIcon(current, 'assets/' + current + '.svg');\n      })\n\n    }\n    this.appearanceService.isDarkMode$.subscribe((isDarkMode) => {\n      this.isDarkMode = isDarkMode;\n    });\n  }\n\n  ngAfterViewInit(): void {\n    let dataArray = this.parseColumnsVisible();\n    let columnTitles = [];\n    dataArray.forEach((element, index) => {\n      columnTitles.push({\n        'key': index,\n        'value': element,\n      });\n    });\n    this.comboData = columnTitles;\n    this.currentConfiguration = { PREFERENCEENTITY: this.currentPreference.entity };\n    this.cd.detectChanges();\n  }\n\n\n  protected parseColumnsVisible() {\n    const columnsArray = Util.parseArray(this.tableComp.columns);\n    return this.tableComp.oTableOptions.columns.filter(oCol => oCol.type !== \"image\" && oCol.visible && columnsArray.findIndex(column => column === oCol.attr) > -1).map(\n      (x: OColumn) => x.attr\n    )\n  }\n\n  captureValueYAxis(event: any) {\n    //multiple selection is not available, right now it is creating an array to be able to store data into ChartConfiguration interface\n    this.currentPreference.selectedYAxis = [];\n    this.currentPreference.selectedYAxis = [event.value];\n    let type = this.sqlTypes[this.currentPreference.selectedYAxis[0]];\n    this.currentPreference.selectedYAxisType = type != undefined ? type : SQLTypes.OTHER;\n    this.currentPreference.selectedYDataType = SQLTypes.getSQLTypeKey(type);\n  }\n\n  captureValueXAxis(event: any) {\n    this.currentPreference.selectedXAxis = event.value;\n    let type = this.sqlTypes[this.currentPreference.selectedXAxis];\n    this.currentPreference.selectedXAxisType = type != undefined ? type : SQLTypes.OTHER;\n    this.currentPreference.selectedXDataType = SQLTypes.getSQLTypeKey(type);\n  }\n  captureValuePalette(event: any) {\n    this.currentPreference.selectedPalette = event.value;\n  }\n\n  captureTypeChart(event: OValueChangeEvent) {\n    this.currentPreference.selectedTypeChart = event.newValue;\n  }\n\n  captureDataTypeChart(adapter) {\n    let data = [];\n    switch (this.currentPreference.selectedDataTypeChart) {\n      case 1:\n        // Independently if it is pageable or not, it has to be returned getValue().\n        data = this.tableComp.getValue();\n        break;\n      case 2:\n        if (this.tableComp.pageable) {\n          this.showPlaceholder = true;\n          let filter: object = {};\n          const queryArgs = this.getQueryArgumentsByFilterData(filter);\n          this.querySubscription = this.ontimizeService['query'](...this.ontimizeService.requestArgumentAdapter.parseQueryParameters(queryArgs))\n            .subscribe(response => {\n              this.chart.setDataArray(adapter.adaptResult(response.data));\n              this.showPlaceholder = false;\n            });\n        } else {\n          data = this.tableComp.getAllValues();\n        } break;\n      case 3:\n\n        if (this.tableComp.pageable) {\n          this.showPlaceholder = true;\n          const queryArgs = this.getQueryArgumentsByAllData();\n          this.querySubscription = this.ontimizeService['query'](...this.ontimizeService.requestArgumentAdapter.parseQueryParameters(queryArgs))\n            .subscribe(response => {\n              this.chart.setDataArray(adapter.adaptResult(response.data));\n              this.showPlaceholder = false;\n            });\n        }\n        else {\n          data = this.tableComp.getDataArray();\n        } break;\n    }\n    if (data != undefined) {\n      this.chart.setDataArray(adapter.adaptResult(data));\n      this.showPlaceholder = false;\n    }\n  }\n\n  getQueryArgumentsByFilterData(filter: object) {\n    const queryArgs = this.tableComp.getQueryArguments(filter);\n    queryArgs.columns = this.getColumnsToQuery();\n    return queryArgs;\n  }\n\n  getQueryArgumentsByAllData(): OQueryParams {\n    return {\n      filter: this.tableComp.getParentKeysValues(),\n      columns: this.getColumnsToQuery(),\n      entity: this.currentPreference.entity,\n      sqlTypes: this.tableComp.getSqlTypes(),\n    };\n  }\n\n  private getColumnsToQuery(): string[] {\n    return [this.currentPreference.selectedXAxis, ...this.currentPreference.selectedYAxis];\n  }\n\n  showChart() {\n    if (this.currentPreference.selectedXAxis != undefined) {\n      if (this.currentPreference.selectedYAxis != undefined && this.currentPreference.selectedYAxis.length != 0) {\n        if (this.currentPreference.selectedTypeChart != undefined) {\n          this.configureChart();\n        }\n      }\n    } else {\n      this.hideChart();\n    }\n  }\n\n\n  hideChart() {\n    this.showPlaceholder = true;\n  }\n\n\n\n  configureChart() {\n    const chartParameters = OChartOnDemandUtils.configureChart(this.currentPreference, this.tableComp.oTableOptions);\n    if (chartParameters) {\n      chartParameters.translateService = this.translateService;\n    }\n    const adapter = DataAdapterUtils.createDataAdapter(chartParameters);\n    this.captureDataTypeChart(adapter);\n    this.chart.updateOptions(chartParameters, this.currentPreference.selectedTypeChart, this.tableComp.getOColumn(this.currentPreference.selectedXAxis), this.tableComp.getOColumn(this.currentPreference.selectedYAxis[0]));\n  }\n\n\n  get arrayColumns(): Array<Object> {\n    return this._arrayColumns;\n  }\n\n  array: Array<Object> = [];\n\n  getDataArrayRadioGraphics() {\n    this.array = [];\n    this.array.push({\n      'key': 'line',\n      'value': 'CHART_ON_DEMAND.LINE'\n    });\n    this.array.push({\n      'key': 'discreteBar',\n      'value': 'CHART_ON_DEMAND.DISCRETE_BAR'\n    });\n    this.array.push({\n      'key': 'multiBar',\n      'value': 'CHART_ON_DEMAND.MULTI_BAR'\n    });\n    this.array.push({\n      'key': 'stackedAreaChart',\n      'value': 'CHART_ON_DEMAND.AREA'\n    });\n    this.array.push({\n      'key': 'pie',\n      'value': 'CHART_ON_DEMAND.PIE'\n    });\n    this.array.push({\n      'key': 'donutChart',\n      'value': 'CHART_ON_DEMAND.DONUT'\n    });\n    return this.array;\n  }\n  getDataType() {\n    this.array = [];\n    this.array.push({\n      'key': 1,\n      'value': 'CHART_ON_DEMAND.CURRENT_PAGE'\n    });\n    this.array.push({\n      'key': 2,\n      'value': 'CHART_ON_DEMAND.FILTER_DATA'\n    });\n    this.array.push({\n      'key': 3,\n      'value': 'CHART_ON_DEMAND.ALL_DATA'\n    });\n    return this.array;\n  }\n  getValueDao(): any[] {\n    return this.arrayColumns;\n  }\n\n  getData() {\n    return this.arrayColumns;\n  }\n\n  updatePreferences(): void {\n    if (Util.isDefined(this.currentConfiguration.PREFERENCEID)) {\n      this.savePreferences({ name: this.currentConfiguration.PREFERENCENAME, description: this.currentConfiguration.PREFERENCEDESCRIPTION }, true);\n    }\n  }\n  openSaveAsPreferencesDialog(): void {\n    this.dialog\n      .open(SavePreferencesDialogComponent, {\n        panelClass: ['o-dialog-class', 'o-table-dialog']\n      })\n      .afterClosed()\n      .subscribe((data: { name: string, description: string }) => {\n        if (Util.isDefined(data) && data) {\n          this.savePreferences(data, false);\n        }\n      });\n\n  }\n  savePreferences(data: any, update?: boolean) {\n    let preference = {\n      \"preferencename\": data.name,\n      \"preferencedescription\": data.description,\n      \"preferenceentity\": this.currentPreference.entity,\n      \"preferenceservice\": this.currentPreference.service,\n      \"preferencetype\": \"CHART\",\n      \"preferenceparameters\": {\n        \"title\": this.currentPreference.title,\n        \"subtitle\": this.currentPreference.subtitle, \"entity\": this.currentPreference.entity, \"service\": this.currentPreference.service, \"selectedXAxis\": this.currentPreference.selectedXAxis,\n        \"selectedYAxis\": this.currentPreference.selectedYAxis, \"selectedXAxisType\": this.currentPreference.selectedXAxisType, \"selectedYAxisType\": this.currentPreference.selectedYAxisType,\n        \"selectedTypeChart\": this.currentPreference.selectedTypeChart, \"selectedDataTypeChart\": this.currentPreference.selectedDataTypeChart, \"selectedPalette\":this.currentPreference.selectedPalette\n      }\n    }\n\n    if (update) {\n      this.preferencesService.savePreferences(this.currentConfiguration.PREFERENCEID, preference).subscribe(res => {\n        this.showConfirmOperatinInSnackBar(res);\n      });\n    } else {\n      this.preferencesService.saveAsPreferences(preference).subscribe(res => {\n        if (res && res.code === 0) {\n          this.showConfirmOperatinInSnackBar(res);\n        }\n      });\n    }\n  }\n\n  private showConfirmOperatinInSnackBar(res: any) {\n    if (res && res.code === 0) {\n      this.snackBarService.open('MESSAGES.SAVED', { icon: 'check_circle' });\n    }\n  }\n  public openLoadPreferencesDialog(): void {\n    this.dialog.open(LoadPreferencesDialogComponent, {\n      width: 'calc((75em - 100%) * 1000)',\n      maxWidth: '65vw',\n      minWidth: '30vw',\n      disableClose: true,\n      panelClass: ['o-dialog-class', 'o-table-dialog'],\n      data: { entity: this.currentPreference.entity, service: this.currentPreference.service },\n    }).afterClosed()\n      .subscribe({\n        next: (data: OPreference) => {\n          if (Util.isDefined(data) && data) {\n            this.applyConfiguration(data);\n            this.appliedConfiguration = true;\n          }\n        },\n        error: () => this.appliedConfiguration = false\n      });\n  }\n\n  applyConfiguration(configuration: any) {\n    this.currentConfiguration = configuration;\n    if (FactoryUtil.isJsonApiService(this.injector)) {\n      this.currentPreference = JSON.parse(atob(this.currentConfiguration.PREFERENCEPREFERENCES));\n    } else {\n      this.currentPreference = JSON.parse(this.currentConfiguration.PREFERENCEPREFERENCES);\n    }\n  }\n\n  setFullscreenDialog(): void {\n    Utils.setFullscreenDialog(this.fullscreen, this.dialogRef);\n    this.fullscreen = !this.fullscreen;\n    if (!this.showPlaceholder) {\n      this.configureChart();\n    }\n  }\n\n  refreshTitle(value) {\n    this.currentPreference.title = value.newValue;\n  }\n  refreshSubtitle(value) {\n    this.currentPreference.subtitle = value.newValue;\n  }\n  exportChart() {\n    let node = document.getElementById('sidenav-container-content');\n    let options = {\n      quality: 1\n    };\n    let fileName;\n    if (this.currentPreference.title != \"\") {\n      fileName = this.currentPreference.title;\n    }\n    else {\n      fileName = \"Chart on demand \" + new Date().getDate();\n    }\n    domtoimage.toJpeg(node, options).then((dataUrl) => {\n      const link = document.createElement(\"a\");\n      link.href = dataUrl;\n      link.download = `${fileName}.jpg`\n      link.click();\n    });\n  }\n  comparePalette = (o1: any, o2: any): boolean => {\n    return JSON.stringify(o1?.domain) === JSON.stringify(o2?.domain);\n  };\n\n  clearCurrentPreferences() {\n    this.currentPreference.entity = this.tableComp.entity;\n    this.currentPreference.service = this.tableComp.service;\n    this.currentPreference.title = \"\";\n    this.currentPreference.subtitle = \"\";\n    this.currentPreference.selectedDataTypeChart = 1;\n    this.currentPreference.selectedTypeChart = \"\";\n    this.currentPreference.selectedXAxis = undefined;\n    this.currentPreference.selectedYAxis = [];\n    this.currentPreference.selectedPalette = undefined;\n    this.hideChart();\n  }\n\n  enabledPreview() {\n    return (this.currentPreference.selectedXAxis != \"\" && this.currentPreference.selectedYAxis.length != 0 && this.currentPreference.selectedTypeChart && this.currentPreference.selectedDataTypeChart)\n\n  }\n  getPaletteIcon() {\n    const foundObject = this.comboPalette.find(\n      color => JSON.stringify(color.colors.domain) === JSON.stringify(this.currentPreference.selectedPalette.domain)\n    );\n    return \"ontimize:\" + foundObject.value + \"\";\n  }\n  get chartClass(): string {\n    return this.isDarkMode ? 'dark-sidenav-content' : 'title-sidenav-content';\n  }\n\n  ngOnDestroy(): void {\n    if (this.querySubscription) {\n      this.querySubscription.unsubscribe();\n    }\n  }\n}\n","<div mat-dialog-title class=\"dialog-title\" fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\n  {{ 'CHART_ON_DEMAND.CHART_ON_DEMAND_TITLE' | oTranslate }}\n  <div>\n    <mat-icon svgIcon=\"ontimize:settings\" #configurationMenuButton [matMenuTriggerFor]=\"menu\"></mat-icon>\n    <mat-icon aria-label=\"fullscreen dialog\" (click)=\"setFullscreenDialog()\">\n      <ng-container *ngIf=\"fullscreen\">fullscreen_exit</ng-container>\n      <ng-container *ngIf=\"!fullscreen\">fullscreen</ng-container>\n    </mat-icon>\n    <mat-icon svgIcon=\"ontimize:close\" [mat-dialog-close]=\"true\"></mat-icon>\n    <mat-menu #menu=\"matMenu\" class=\"o-mat-menu\">\n      <button mat-menu-item [disabled]=\"!appliedConfiguration\" (click)=\"updatePreferences()\">\n        <span>{{ 'CHART_ON_DEMAND.SAVE_CONFIGURATION_BUTTON' | oTranslate }}</span>\n      </button>\n      <button mat-menu-item (click)=\"openSaveAsPreferencesDialog()\">\n        <span>{{ 'CHART_ON_DEMAND.SAVE_AS_CONFIGURATION_BUTTON' | oTranslate }}</span>\n      </button>\n      <button mat-menu-item (click)=\"openLoadPreferencesDialog()\">\n        <span>{{ 'CHART_ON_DEMAND.LOAD_CONFIGURATION_BUTTON' | oTranslate }}</span>\n      </button>\n      <button mat-menu-item [disabled]=\"showPlaceholder\" (click)=\"exportChart()\">\n        <span>{{ 'CHART_ON_DEMAND.EXPORT_BUTTON' | oTranslate }}</span>\n      </button>\n    </mat-menu>\n  </div>\n</div>\n\n<div #dialog mat-dialog-content class=\"dialog-container\">\n  <mat-sidenav-container class=\"mat-sidenav-container\" [class.opened]=\"opened\" fxFill>\n    <mat-sidenav #sidenav [(opened)]=\"opened\" mode=\"side\" class=\"chart-on-demand-sidenav\">\n      <div fxLayout=\"column\" fxFill>\n        <o-button *ngIf=\"opened\" o-button (click)=\"opened=!opened\" (keyup)=\"opened=!opened\" icon=\"menu\" type=\"ICON\" label=\"\"\n          [matTooltip]=\"(sidenav.opened?'CHART_ON_DEMAND.HIDE_FILTERS':'CHART_ON_DEMAND.SHOW_FILTERS') | oTranslate\">\n        </o-button>\n        <div fxLayout=\"column\" *ngIf=\"opened\" class=\"container-title\" fxLayoutGap=\"10px\">\n          <mat-form-field>\n            <input [(ngModel)]=\"currentPreference.title\" matInput placeholder=\"{{ 'CHART_ON_DEMAND.CHART_TITLE' | oTranslate }}\">\n          </mat-form-field>\n          <mat-form-field>\n            <input [(ngModel)]=\"currentPreference.subtitle\" matInput placeholder=\"{{ 'CHART_ON_DEMAND.CHART_SUBTITLE' | oTranslate }}\">\n          </mat-form-field>\n        </div>\n        <div fxLayout=\"column\" *ngIf=\"opened\" class=\"data_options\" fxLayoutGap=\"10px\">\n          <span class=\"section-first-title\">{{ 'CHART_ON_DEMAND.CHART_TYPE' | oTranslate }}</span>\n          <mat-radio-group name=\"chartType\" [(ngModel)]=\"currentPreference.selectedTypeChart\" fxLayout=\"column\" fxLayoutGap=\"12px\">\n            <mat-radio-button *ngFor=\"let type of types\" name=\"chartType\" [value]=\"type.key\"\n              [checked]=\"currentPreference.selectedTypeChart === type.key\" (change)=\"captureTypeChart($event)\">\n              {{ type.value | oTranslate}}\n            </mat-radio-button>\n          </mat-radio-group>\n          <span class=\"section-title\">{{ 'CHART_ON_DEMAND.PALETTE' | oTranslate }}</span>\n          <mat-form-field>\n            <mat-label>{{'CHART_ON_DEMAND.SELECT_PALETTE' | oTranslate}}</mat-label>\n            <mat-select [(ngModel)]=\"currentPreference.selectedPalette\" (selectionChange)=\"captureValuePalette($event)\" [compareWith]=\"comparePalette\">\n              <mat-select-trigger *ngIf=\"currentPreference.selectedPalette\">\n                <mat-icon class=\"palette_icon\" [svgIcon]=\"getPaletteIcon()\"></mat-icon>\n              </mat-select-trigger>\n              <mat-option *ngFor=\"let option of comboPalette\" [value]=\"option.colors\">\n                <mat-icon class=\"palette_icon\" svgIcon=\"ontimize:{{option.value}}\"></mat-icon>\n              </mat-option>\n            </mat-select>\n\n          </mat-form-field>\n          <span class=\"section-title\">{{ 'CHART_ON_DEMAND.X_AXIS' | oTranslate }}</span>\n          <mat-form-field>\n            <mat-label>{{'CHART_ON_DEMAND.SELECT_X_AXIS' | oTranslate}}</mat-label>\n            <mat-select [(ngModel)]=\"currentPreference.selectedXAxis\" (selectionChange)=\"captureValueXAxis($event)\">\n              <mat-option *ngFor=\"let option of comboData\" [value]=\"option.value\">\n                {{option.value | oTranslate}}\n              </mat-option>\n            </mat-select>\n          </mat-form-field>\n          <span class=\"section-title\">{{ 'CHART_ON_DEMAND.Y_AXIS' | oTranslate }}</span>\n          <mat-form-field>\n            <mat-label>{{'CHART_ON_DEMAND.SELECT_Y_AXIS' | oTranslate}}</mat-label>\n            <mat-select [(ngModel)]=\"currentPreference.selectedYAxis[0]\" (selectionChange)=\"captureValueYAxis($event)\">\n              <mat-option *ngFor=\"let option of comboData\" [value]=\"option.value\">\n                {{option.value | oTranslate}}\n              </mat-option>\n            </mat-select>\n          </mat-form-field>\n          <span class=\"section-title\">{{ 'CHART_ON_DEMAND.CHART_DATA_TYPE' | oTranslate }}</span>\n          <mat-radio-group name=\"DataType\" [(ngModel)]=\"currentPreference.selectedDataTypeChart\" fxLayout=\"column\" fxLayoutGap=\"12px\">\n            <mat-radio-button *ngFor=\"let dataType of dataTypes\" name=\"DataType\" [value]=\"dataType.key\"\n              [checked]=\"currentPreference.selectedDataTypeChart === dataType.key\">\n              {{ dataType.value | oTranslate}}\n            </mat-radio-button>\n          </mat-radio-group>\n        </div>\n        <div mat-dialog-actions fxLayout=\"row\" fxLayoutAlign=\"center center\" *ngIf=\"opened\">\n          <button type=\"button\" mat-stroked-button class=\"chart-clear-button\" (click)=\"clearCurrentPreferences()\">\n            {{'CHART_ON_DEMAND.CLEAR' | oTranslate }}</button>\n          <button type=\"button\" mat-stroked-button class=\"mat-primary\" (click)=\"showChart()\" [disabled]=\"!enabledPreview()\">\n            {{'CHART_ON_DEMAND.PREVIEW' | oTranslate }}</button>\n        </div>\n      </div>\n    </mat-sidenav>\n    <mat-sidenav-content>\n      <div class=\"sidenav-container-content\" fxLayout=\"column\" fxFlex>\n        <div>\n          <o-button o-button *ngIf=\"!opened\" class=\"sidenav-toggle-button\" (click)=\"opened=!opened\" icon=\"menu\" type=\"ICON\" label=\"\"\n            [matTooltip]=\"(sidenav.opened?'CHART_ON_DEMAND.HIDE_FILTERS':'CHART_ON_DEMAND.SHOW_FILTERS') | oTranslate\"\n            matTooltipPosition=\"below\" (keyup)=\"opened=!opened\">\n          </o-button>\n        </div>\n        <div fxLayout=\"column\" id=\"sidenav-container-content\" fxFlex=\"1 1 auto\" [ngClass]=\"chartClass\" fxLayoutAlign=\"center center\">\n          <img *ngIf=\"showPlaceholder\" class=\"animation\" alt=\"graph image\" src=\"./assets/chart_animation.svg\" />\n          <div fxLayout=\"column\" fxLayoutAlign=\"center center\" *ngIf=\"!showPlaceholder\">\n            <h2 class=\"title\">{{currentPreference.title}}</h2>\n            <h5 class=\"subtitle\">{{currentPreference.subtitle}}</h5>\n          </div>\n          <div [ngClass]=\"{'chartDiv': !showPlaceholder}\" [style.display]=\"showPlaceholder ? 'none' : 'inherit'\" fxFlex=\"1 1 auto\"\n            fxLayoutAlign=\"center center\">\n            <o-chart #chart fxFlex type=\"currentPreference.selectedTypeChart\" query-on-bind=\"no\" query-on-init=\"no\" layout-padding class=\"chart\">\n            </o-chart>\n          </div>\n        </div>\n      </div>\n\n    </mat-sidenav-content>\n  </mat-sidenav-container>\n</div>\n","import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { DialogService, IChartOnDemandService } from 'ontimize-web-ngx';\n\nimport { OTableBase } from 'ontimize-web-ngx/lib/components/table/o-table-base.class';\nimport { OChartOnDemandComponent } from '../components/chart-on-demand/o-chart-on-demand.component';\nimport { Utils } from '../util/utils';\n\n@Injectable()\nexport class OChartOnDemandService implements IChartOnDemandService {\n\n  constructor(\n    protected dialogService: DialogService,\n    protected dialog: MatDialog\n  ) { }\n\n  openChartOnDemand(table:OTableBase) {\n    Utils.openModalVisor(this.dialog, OChartOnDemandComponent, table);\n\n  }\n\n}","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { OChartComponent } from './o-chart.component';\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\n\n@NgModule({\n  imports: [CommonModule, NgxChartsModule],\n  declarations: [OChartComponent],\n  exports: [OChartComponent]\n})\nexport class OChartComponentModule { }","import { CommonModule } from '@angular/common';\nimport { Injector, NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { O_CHART_ON_DEMAND_SERVICE, OntimizePreferencesService, OntimizeWebModule, preferencesServiceFactory } from 'ontimize-web-ngx';\n\nimport { OChartOnDemandService } from '../../services/chart-on-demand.service';\nimport { OChartComponentModule } from '../chart/o-chart.module';\nimport { LoadPreferencesDialogComponent } from './load-preferences-dialog/load-preferences-dialog.component';\nimport { OChartOnDemandComponent } from './o-chart-on-demand.component';\nimport { SavePreferencesDialogComponent } from './save-preferences-dialog/save-preferences-dialog.component';\n\n\n@NgModule({\n  declarations: [OChartOnDemandComponent, SavePreferencesDialogComponent, LoadPreferencesDialogComponent],\n  imports: [\n    CommonModule,\n    OntimizeWebModule,\n    FormsModule,\n    OChartComponentModule,\n  ],\n  exports: [OChartOnDemandComponent],\n  providers: [\n    { provide: O_CHART_ON_DEMAND_SERVICE, useClass: OChartOnDemandService },\n    { provide: OntimizePreferencesService, useFactory: preferencesServiceFactory, deps: [Injector] }\n  ]\n})\nexport class OChartOnDemandComponentModule {\n  constructor() { }\n}\n","import { OChartOnDemandComponentModule } from './components/chart-on-demand/o-chart-on-demand.module';\nimport { OChartComponentModule } from './components/chart/o-chart.module';\n\nexport * from './components/chart/o-chart.component';\nexport * from './components/chart/o-chart.factory';\nexport * from './components/chart-on-demand/o-chart-on-demand.component';\n\nexport const OCHART_MODULES: any = [\n  OChartComponentModule,\n  OChartOnDemandComponentModule\n];\n","export const MAP = {\n  // English\n  'en': {\n    'CHART_ON_DEMAND.CHART_ON_DEMAND_TITLE': 'Chart on demand',\n    'CHART_ON_DEMAND.CHART_TITLE': 'Title',\n    'CHART_ON_DEMAND.CHART_SUBTITLE': 'Subtitle',\n    'CHART_ON_DEMAND.SHOW_FILTERS': 'Show filters',\n    'CHART_ON_DEMAND.HIDE_FILTERS': 'Hide filters',\n    'CHART_ON_DEMAND.X_AXIS': 'X Axis',\n    'CHART_ON_DEMAND.SELECT_X_AXIS': 'Select X Axis',\n    'CHART_ON_DEMAND.SELECT_DATA_TYPE_X': 'Select type',\n    'CHART_ON_DEMAND.Y_AXIS': 'Y Axis',\n    'CHART_ON_DEMAND.SELECT_Y_AXIS': 'Select Y Axis',\n    'CHART_ON_DEMAND.SELECT_DATA_TYPE_Y': 'Select type',\n    'CHART_ON_DEMAND.CHART_TYPE': 'Chart Type',\n    'CHART_ON_DEMAND.CHART_BUTTON_GENERATE': 'Generate Chart',\n    'CHART_ON_DEMAND.SAVE_CONFIGURATION_BUTTON': 'Save configuration',\n    'CHART_ON_DEMAND.SAVE_AS_CONFIGURATION_BUTTON': 'Save configuration as',\n    'CHART_ON_DEMAND.LOAD_CONFIGURATION_BUTTON': 'Load configuration',\n    'CHART_ON_DEMAND.EXPORT_BUTTON': 'Export',\n    'CHART_ON_DEMAND.SAVE_PREFERENCES.TITLE': 'Save Configuration',\n    'CHART_ON_DEMAND.SAVE_PREFERENCES.INPUT_PLACEHOLDER': 'Name your configuration',\n    'CHART_ON_DEMAND.SAVE_PREFERENCES.INPUT_DESCRIPTION_PLACEHOLDER': 'Add a description',\n    'CHART_ON_DEMAND.SAVE_PREFERENCES.BUTTON_LABEL': 'Save',\n    'CHART_ON_DEMAND.LOAD_PREFERENCES.TITLE': 'Load Configuration',\n    'CHART_ON_DEMAND.LOAD_PREFERENCES.EMPTY_LIST': 'No configurations saved',\n    'CHART_ON_DEMAND.LOAD_PREFERENCES.BUTTON_LABEL': 'Load',\n    'CHART_ON_DEMAND.SELECT_PREFERENCE': 'Save configuration as',\n    'CHART_ON_DEMAND.SAVE_PREFERENCES_AS.TITLE': 'Save configuration as',\n    'CHART_ON_DEMAND.PREVIEW': 'Preview',\n    'CHART_ON_DEMAND.CLEAR': 'Clear',\n    'CHART_ON_DEMAND.LINE': 'Line',\n    'CHART_ON_DEMAND.DISCRETE_BAR': 'Discrete Bar',\n    'CHART_ON_DEMAND.MULTI_BAR': 'Multi Bar',\n    'CHART_ON_DEMAND.AREA': 'Area',\n    'CHART_ON_DEMAND.PIE': 'Pie',\n    'CHART_ON_DEMAND.DONUT': 'Donut',\n    'CHART_ON_DEMAND.CURRENT_PAGE': 'Current page',\n    'CHART_ON_DEMAND.FILTER_DATA': 'Filtered data',\n    'CHART_ON_DEMAND.ALL_DATA': 'All data',\n    'CHART_ON_DEMAND.CHART_DATA_TYPE': 'Data',\n    'CHART_ON_DEMAND.PALETTE': 'Color palette',\n    'CHART_ON_DEMAND.SELECT_PALETTE': 'Select the color palette',\n    'CHART_ON_DEMAND.BUTTONS.APPLY_CONFIGURATION': 'Load configuration',\n    'CHART_ON_DEMAND.DIALOG.APPLY_CONFIGURATION': 'Select a configuration to apply to the chart',\n    'CHART_ON_DEMAND.DIALOG.NO_CONFIGURATION': 'No hay configuraciones almacenadas'\n  },\n\n  // Spanish\n  'es': {\n    'CHART_ON_DEMAND.CHART_ON_DEMAND_TITLE': 'Gráficas a la carta',\n    'CHART_ON_DEMAND.CHART_TITLE': 'Título',\n    'CHART_ON_DEMAND.CHART_SUBTITLE': 'Subtítulo',\n    'CHART_ON_DEMAND.SHOW_FILTERS': 'Mostrar filtros',\n    'CHART_ON_DEMAND.HIDE_FILTERS': 'Ocultar filtros',\n    'CHART_ON_DEMAND.X_AXIS': 'Eje X',\n    'CHART_ON_DEMAND.SELECT_X_AXIS': 'Selecciona eje X',\n    'CHART_ON_DEMAND.SELECT_DATA_TYPE_X': 'Selecciona el tipo',\n    'CHART_ON_DEMAND.Y_AXIS': 'Eje Y',\n    'CHART_ON_DEMAND.SELECT_Y_AXIS': 'Selecciona eje Y',\n    'CHART_ON_DEMAND.SELECT_DATA_TYPE_Y': 'Selecciona el tipo',\n    'CHART_ON_DEMAND.CHART_TYPE': 'Tipo de gráfica',\n    'CHART_ON_DEMAND.CHART_BUTTON_GENERATE': 'Generar Gráfica',\n    'CHART_ON_DEMAND.SAVE_CONFIGURATION_BUTTON': 'Guardar configuración',\n    'CHART_ON_DEMAND.SAVE_AS_CONFIGURATION_BUTTON': 'Guardar configuración como',\n    'CHART_ON_DEMAND.LOAD_CONFIGURATION_BUTTON': 'Cargar configuración',\n    'CHART_ON_DEMAND.EXPORT_BUTTON': 'Exportar',\n    'CHART_ON_DEMAND.SAVE_PREFERENCES.TITLE': 'Guardar configuración',\n    'CHART_ON_DEMAND.SAVE_PREFERENCES.INPUT_PLACEHOLDER': 'Nombre de tu configuración',\n    'CHART_ON_DEMAND.SAVE_PREFERENCES.INPUT_DESCRIPTION_PLACEHOLDER': 'Añade una descripción',\n    'CHART_ON_DEMAND.SAVE_PREFERENCES.BUTTON_LABEL': 'Guardar',\n    'CHART_ON_DEMAND.LOAD_PREFERENCES.TITLE': 'Cargar configuración',\n    'CHART_ON_DEMAND.LOAD_PREFERENCES.EMPTY_LIST': 'No hay configuraciones guardadas',\n    'CHART_ON_DEMAND.LOAD_PREFERENCES.BUTTON_LABEL': 'Cargar',\n    'CHART_ON_DEMAND.SELECT_PREFERENCE': 'Guardar configuración como',\n    'CHART_ON_DEMAND.SAVE_PREFERENCES_AS.TITLE': 'Guardar configuración como',\n    'CHART_ON_DEMAND.PREVIEW': 'Previsualizar',\n    'CHART_ON_DEMAND.CLEAR': 'Limpiar',\n    'CHART_ON_DEMAND.LINE': 'Línea',\n    'CHART_ON_DEMAND.DISCRETE_BAR': 'Barras',\n    'CHART_ON_DEMAND.MULTI_BAR': 'Multi Bar',\n    'CHART_ON_DEMAND.AREA': 'Area',\n    'CHART_ON_DEMAND.PIE': 'Pie',\n    'CHART_ON_DEMAND.DONUT': 'Donut',\n    'CHART_ON_DEMAND.CURRENT_PAGE': 'Página actual',\n    'CHART_ON_DEMAND.FILTER_DATA': 'Datos filtrados',\n    'CHART_ON_DEMAND.ALL_DATA': 'Todos los datos',\n    'CHART_ON_DEMAND.CHART_DATA_TYPE': 'Datos',\n    'CHART_ON_DEMAND.PALETTE': 'Paleta de colores',\n    'CHART_ON_DEMAND.SELECT_PALETTE': 'Selecciona la paleta de colores',\n    'CHART_ON_DEMAND.BUTTONS.APPLY_CONFIGURATION': 'Aplicar configuración',\n    'CHART_ON_DEMAND.DIALOG.APPLY_CONFIGURATION': 'Seleccione una configuración para aplicar a la gráfica',\n    'CHART_ON_DEMAND.DIALOG.NO_CONFIGURATION': 'There are no stored settings'\n  }\n};\n","import { OTranslateService } from 'ontimize-web-ngx';\n\nimport { MAP } from '../i18n/i18n';\nimport { Injectable } from '@angular/core';\n@Injectable({\n  providedIn: 'root'\n})\nexport class TranslateChartService {\n  private static initialized = false;\n  constructor(\n    public translate: OTranslateService\n  ) {\n    this.translate.onLanguageChanged.subscribe((event: Event) => {\n      TranslateChartService.initialized = false;\n      this.loadTranslations();\n    });\n  }\n\n  loadTranslations() {\n    if (!TranslateChartService.initialized) {\n      const lang = this.translate.getCurrentLang();\n      this.translate.getNgxTranslateService().setTranslation(lang, MAP[lang], true); // `true` => merge\n      TranslateChartService.initialized = true;\n    }\n  }\n\n}\n","import { Injector } from '@angular/core';\n\nimport { ChartService } from './services/chart.service';\nimport { TranslateChartService } from './services/translate-chart.service';\n\nexport * from './services/chart.service';\nexport * from './services/chart-on-demand.service';\nexport * from './services/translate-chart.service'\n\nexport function getChartServiceProvider() {\n  return new ChartService();\n}\n\nexport const OCHART_PROVIDERS: any = [{\n  provide: ChartService,\n  useFactory: getChartServiceProvider,\n  deps: [Injector]\n}, TranslateChartService];\n","import { NgModule } from '@angular/core';\n\nimport { OCHART_MODULES } from './o-components';\nimport { OCHART_PROVIDERS } from './o-services';\nimport { OChartOnDemandService } from './services/chart-on-demand.service';\nimport { TranslateChartService } from './services/translate-chart.service';\n\n/**\n * Exports\n */\nexport * from './o-components';\nexport * from './o-models';\nexport * from './o-adapters';\nexport * from './o-interfaces';\nexport * from './o-services';\n\n@NgModule({\n  imports: OCHART_MODULES,\n  exports: OCHART_MODULES,\n  providers: [OCHART_PROVIDERS, OChartOnDemandService]\n})\n\nexport class OChartModule {\n\n  constructor(private readonly translationService: TranslateChartService) {\n     this.translationService.loadTranslations();\n  }\n }\n"],"names":["i3","i1","i2","i4","i6","i8","i5","i7","i10","i11","i17.OChartComponent","i1.TranslateChartService","i2.OChartComponentModule","i3.OChartOnDemandComponentModule"],"mappings":"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"}