{"version":3,"file":"vanavara-ngx-polar-chart.mjs","sources":["../../../projects/ngx-polar-chart/src/lib/models/ngx-group-chart.model.ts","../../../projects/ngx-polar-chart/src/lib/common/polar-chart-common.utils.ts","../../../projects/ngx-polar-chart/src/lib/services/polar-chart.service.ts","../../../projects/ngx-polar-chart/src/lib/builders/chart-builder.base.ts","../../../projects/ngx-polar-chart/src/lib/builders/group-builder/group-date-builder/chart.builder.ts","../../../projects/ngx-polar-chart/src/lib/builders/group-builder/group-date-builder/x-axis.builder.ts","../../../projects/ngx-polar-chart/src/lib/builders/group-builder/group-date-builder/y-axis.builder.ts","../../../projects/ngx-polar-chart/src/lib/builders/group-builder/group-date-builder/legend.builder.ts","../../../projects/ngx-polar-chart/src/lib/builders/group-builder/group-date-builder/builder.ts","../../../projects/ngx-polar-chart/src/lib/builders/group-builder/group-series-builder/chart.builder.ts","../../../projects/ngx-polar-chart/src/lib/builders/group-builder/group-series-builder/x-axis.builder.ts","../../../projects/ngx-polar-chart/src/lib/builders/group-builder/group-series-builder/y-axis.builder.ts","../../../projects/ngx-polar-chart/src/lib/builders/group-builder/group-series-builder/legend.builder.ts","../../../projects/ngx-polar-chart/src/lib/builders/group-builder/group-series-builder/builder.ts","../../../projects/ngx-polar-chart/src/lib/builders/stack-builder/stack-date-builder/chart.builder.ts","../../../projects/ngx-polar-chart/src/lib/builders/stack-builder/stack-date-builder/x-axis.builder.ts","../../../projects/ngx-polar-chart/src/lib/builders/stack-builder/stack-date-builder/y-axis.builder.ts","../../../projects/ngx-polar-chart/src/lib/builders/stack-builder/stack-date-builder/legend.builder.ts","../../../projects/ngx-polar-chart/src/lib/builders/stack-builder/stack-date-builder/builder.ts","../../../projects/ngx-polar-chart/src/lib/builders/stack-builder/stack-series-builder/chart.builder.ts","../../../projects/ngx-polar-chart/src/lib/builders/stack-builder/stack-series-builder/x-axis.builder.ts","../../../projects/ngx-polar-chart/src/lib/builders/stack-builder/stack-series-builder/y-axis.builder.ts","../../../projects/ngx-polar-chart/src/lib/builders/stack-builder/stack-series-builder/legend.builder.ts","../../../projects/ngx-polar-chart/src/lib/builders/stack-builder/stack-series-builder/builder.ts","../../../projects/ngx-polar-chart/src/lib/factory/polar-chart.factory.ts","../../../projects/ngx-polar-chart/src/lib/common/ngx-polar-chart-base.component.ts","../../../projects/ngx-polar-chart/src/lib/ngx-polar-chart-group/ngx-polar-chart-group.component.ts","../../../projects/ngx-polar-chart/src/lib/ngx-polar-chart-group/ngx-polar-chart-group.module.ts","../../../projects/ngx-polar-chart/src/lib/ngx-polar-chart-stack/ngx-polar-chart-stack.component.ts","../../../projects/ngx-polar-chart/src/lib/ngx-polar-chart-stack/ngx-polar-chart-stack.module.ts","../../../projects/ngx-polar-chart/src/lib/ngx-polar-chart.module.ts","../../../projects/ngx-polar-chart/src/public-api.ts","../../../projects/ngx-polar-chart/src/vanavara-ngx-polar-chart.ts"],"sourcesContent":["export interface NgxChart<T> {\r\n  key: T;\r\n  value: number;\r\n}\r\n\r\nexport interface NgxGroups<T> {\r\n  name: string;\r\n  items: NgxChart<T>[];\r\n}\r\n\r\nexport interface NgxDateGroup {\r\n  groups: NgxGroups<Date>[];\r\n  groupBy?: NgxGroupBy;\r\n}\r\n\r\nexport interface NgxSeriesGroup {\r\n  groups: NgxGroups<string>[];\r\n}\r\n\r\nexport enum NgxGroupBy {\r\n  day,\r\n  month,\r\n  year,\r\n}\r\n\r\nexport type NgxChartData = NgxDateGroup | NgxSeriesGroup;\r\n","import {ChartDataModel} from '../models/chart.model';\r\nimport {NgxChartData, NgxDateGroup, NgxSeriesGroup} from '../models/ngx-group-chart.model';\r\n\r\nexport function isNgxDate(chartData: NgxChartData): chartData is NgxDateGroup {\r\n  if (!chartData) return false;\r\n\r\n  const obj = chartData as NgxDateGroup;\r\n\r\n  if (!obj) {\r\n    return false;\r\n  }\r\n\r\n  return (\r\n    Array.isArray(obj.groups) &&\r\n    obj.groups\r\n      .map((g) => g.items)\r\n      .reduce(function (a, b) {\r\n        return a.concat(b);\r\n      }, [])\r\n      .every((t) => t.key instanceof Date)\r\n  );\r\n}\r\n\r\nexport function isNgxString(chartData: NgxChartData): chartData is NgxSeriesGroup {\r\n  if (!chartData) return false;\r\n\r\n  const obj = chartData as NgxSeriesGroup;\r\n\r\n  if (!obj) {\r\n    return false;\r\n  }\r\n\r\n  return (\r\n    Array.isArray(obj.groups) &&\r\n    obj.groups\r\n      .map((g) => g.items)\r\n      .reduce(function (a, b) {\r\n        return a.concat(b);\r\n      }, [])\r\n      .every((t) => typeof t.key === 'string')\r\n  );\r\n}\r\n\r\nexport function isDataEmpty(data: ChartDataModel[]): boolean {\r\n  return data.length === 0;\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {BehaviorSubject, Observable} from 'rxjs';\r\nimport {NgxChartData, NgxDateGroup, NgxGroupBy, NgxSeriesGroup} from '../models/ngx-group-chart.model';\r\nimport moment from 'moment';\r\nimport {\r\n  ChartDataSetModel,\r\n  ChartDataModel,\r\n  ChartStorageEntityModel,\r\n  ChartStorageAdditionInfoModel,\r\n} from '../models/chart.model';\r\nimport {NgxPolarChartSettings} from '../models/ngx-group-chart-settings.model';\r\nimport {isNgxDate, isNgxString} from '../common/polar-chart-common.utils';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class PolarChartService {\r\n  private $dateChartData: BehaviorSubject<NgxDateGroup> = new BehaviorSubject<NgxDateGroup>(null!);\r\n  private $seriesChartData: BehaviorSubject<NgxSeriesGroup> = new BehaviorSubject<NgxSeriesGroup>(null!);\r\n\r\n  private $chartSettings: BehaviorSubject<NgxPolarChartSettings> = new BehaviorSubject<NgxPolarChartSettings>(null!);\r\n\r\n  private readonly defaultLocale: string = 'en-US';\r\n  private readonly maxColor: number = 16777215;\r\n\r\n  public dateChartData: Observable<NgxDateGroup> = this.$dateChartData.asObservable();\r\n  public seriesChartData: Observable<NgxSeriesGroup> = this.$seriesChartData.asObservable();\r\n  public chartSettings: Observable<NgxPolarChartSettings> = this.$chartSettings.asObservable();\r\n\r\n  constructor() {}\r\n\r\n  public loadChartData(chartData: NgxChartData): void {\r\n    if (isNgxDate(chartData)) {\r\n      this.$dateChartData.next(chartData);\r\n    } else if (isNgxString(chartData)) {\r\n      this.$seriesChartData.next(chartData);\r\n    }\r\n  }\r\n\r\n  public loadDateData(chartData: NgxDateGroup): void {\r\n    this.$dateChartData.next(chartData);\r\n  }\r\n\r\n  public loadSeriesData(chartData: NgxSeriesGroup): void {\r\n    this.$seriesChartData.next(chartData);\r\n  }\r\n\r\n  public loadChartSettings(chartSettings: NgxPolarChartSettings): void {\r\n    this.$chartSettings.next(chartSettings);\r\n  }\r\n\r\n  public processDateGroup(data: NgxDateGroup, locale?: string): ChartDataSetModel {\r\n    moment.locale(locale ?? this.defaultLocale);\r\n\r\n    const keys: string[] = [];\r\n    const keyColors: string[] = [];\r\n\r\n    const storage: Map<string, ChartStorageEntityModel> = new Map<string, ChartStorageEntityModel>();\r\n    const sortedStorage: Map<string, ChartStorageEntityModel> = new Map<string, ChartStorageEntityModel>();\r\n\r\n    const monthTrackHash: Record<number, number> = {};\r\n    const yearTrackHash: Record<number, number> = {};\r\n\r\n    data.groups.forEach((groupItem, groupItemIndex) => {\r\n      keys.push(groupItem.name);\r\n      keyColors.push(\r\n        `#${Math.floor(Math.random() * this.maxColor)\r\n          .toString(16)\r\n          .padStart(6, '0')\r\n          .toUpperCase()}`,\r\n      );\r\n\r\n      groupItem.items.forEach((item) => {\r\n        const currentDate = moment(item.key);\r\n\r\n        yearTrackHash[+currentDate.format('YYYY')] = +currentDate.format('YYYY');\r\n        monthTrackHash[+currentDate.format('M')] = +currentDate.format('M');\r\n\r\n        switch (data.groupBy) {\r\n          case NgxGroupBy.year:\r\n            this.initializeStorage(\r\n              () => moment(item.key).format('YYYY'),\r\n              storage,\r\n              groupItemIndex,\r\n              data.groups.length,\r\n              item.value,\r\n              () => undefined,\r\n              (currentValues: number[]) => {\r\n                currentValues[groupItemIndex] += item.value;\r\n              },\r\n            );\r\n\r\n            break;\r\n          case NgxGroupBy.month:\r\n            this.initializeStorage(\r\n              () => moment(item.key).format('MMMM'),\r\n              storage,\r\n              groupItemIndex,\r\n              data.groups.length,\r\n              item.value,\r\n              () => undefined,\r\n              (currentValues: number[]) => {\r\n                currentValues[groupItemIndex] += item.value;\r\n              },\r\n            );\r\n\r\n            break;\r\n          case NgxGroupBy.day:\r\n          default:\r\n            this.initializeStorage(\r\n              () => moment(item.key).format('MMM`D'),\r\n              storage,\r\n              groupItemIndex,\r\n              data.groups.length,\r\n              item.value,\r\n              () => ({dayOfWeek: moment(item.key).weekday(), dayOfWeekName: moment(item.key).format('ddd')}),\r\n              (currentValues: number[]) => {\r\n                currentValues[groupItemIndex] = item.value;\r\n              },\r\n            );\r\n\r\n            break;\r\n        }\r\n      });\r\n    });\r\n\r\n    this.populateMissedKeysAndValues(\r\n      storage,\r\n      sortedStorage,\r\n      data.groups.length,\r\n      monthTrackHash,\r\n      yearTrackHash,\r\n      data.groupBy,\r\n    );\r\n\r\n    const flattenData = this.makeFlattenArray(sortedStorage, keys);\r\n\r\n    return {\r\n      data: flattenData,\r\n      settings: {\r\n        keyColors: keyColors,\r\n        keys: keys,\r\n      },\r\n    };\r\n  }\r\n\r\n  public processSeriesGroup(data: NgxSeriesGroup): ChartDataSetModel {\r\n    const keys: string[] = [];\r\n    const keyColors: string[] = [];\r\n\r\n    const storage: Map<string, ChartStorageEntityModel> = new Map<string, ChartStorageEntityModel>();\r\n\r\n    data.groups.forEach((groupItem, groupItemIndex) => {\r\n      keys.push(groupItem.name);\r\n      keyColors.push(\r\n        `#${Math.floor(Math.random() * this.maxColor)\r\n          .toString(16)\r\n          .padStart(6, '0')\r\n          .toUpperCase()}`,\r\n      );\r\n\r\n      groupItem.items.forEach((item) => {\r\n        this.initializeStorage(\r\n          () => item.key,\r\n          storage,\r\n          groupItemIndex,\r\n          data.groups.length,\r\n          item.value,\r\n          () => undefined,\r\n          (currentValues: number[]) => {\r\n            currentValues[groupItemIndex] += item.value;\r\n          },\r\n        );\r\n      });\r\n    });\r\n\r\n    const flattenData = this.makeFlattenArray(storage, keys);\r\n\r\n    return {\r\n      data: flattenData,\r\n      settings: {\r\n        keyColors: keyColors,\r\n        keys: keys,\r\n      },\r\n    };\r\n  }\r\n\r\n  private makeFlattenArray(storage: Map<string, ChartStorageEntityModel>, keys: string[]): ChartDataModel[] {\r\n    const flattenData: ChartDataModel[] = Array.from(storage, (entry) => {\r\n      const entity: ChartStorageEntityModel = entry[1];\r\n      const key: string = entry[0];\r\n\r\n      const resultObject: ChartDataModel = {\r\n        key: key,\r\n        dayOfWeek: entity.additionInfo?.dayOfWeek,\r\n        dayOfWeekName: entity.additionInfo?.dayOfWeekName,\r\n      };\r\n\r\n      keys.forEach((k, index) => {\r\n        Object.assign(resultObject, {\r\n          [k]: entity.values[index],\r\n        });\r\n      });\r\n\r\n      return resultObject;\r\n    });\r\n\r\n    return flattenData;\r\n  }\r\n\r\n  private populateMissedKeysAndValues(\r\n    storage: Map<string, ChartStorageEntityModel>,\r\n    sortedStorage: Map<string, ChartStorageEntityModel>,\r\n    totalGroupsCount: number,\r\n    monthTrackHash: Record<number, number>,\r\n    yearTrackHash: Record<number, number>,\r\n    groupBy?: NgxGroupBy,\r\n  ): void {\r\n    const month = (Object.keys(monthTrackHash) as Array<string>).map((y) => +y)[0];\r\n    const year = (Object.keys(yearTrackHash) as Array<string>).map((y) => +y)[0];\r\n\r\n    switch (groupBy) {\r\n      case NgxGroupBy.month:\r\n        const rangeOfMonths = moment.months();\r\n\r\n        rangeOfMonths.forEach((m) => {\r\n          this.initializeValuesForKey(m, totalGroupsCount, storage, sortedStorage, () => undefined);\r\n        });\r\n        break;\r\n      case NgxGroupBy.year:\r\n        const rangeYear = 2;\r\n        const years = (Object.keys(yearTrackHash) as Array<string>).map((y) => +y);\r\n\r\n        const minYear = Math.min(...years);\r\n        const maxYear = Math.max(...years);\r\n\r\n        for (let i = minYear - rangeYear; i <= maxYear + rangeYear; i++) {\r\n          const keyFormat = `${i}`;\r\n\r\n          this.initializeValuesForKey(keyFormat, totalGroupsCount, storage, sortedStorage, () => undefined);\r\n        }\r\n\r\n        break;\r\n      case NgxGroupBy.day:\r\n      default:\r\n        const endOfMonth = +moment(new Date(year, month - 1, 1))\r\n          .endOf('month')\r\n          .format('D');\r\n\r\n        for (let i = 1; i <= endOfMonth; i++) {\r\n          const currentDate = moment(new Date(year, month - 1, i));\r\n\r\n          const keyFormat = currentDate.format('MMM`D');\r\n\r\n          this.initializeValuesForKey(keyFormat, totalGroupsCount, storage, sortedStorage, () => ({\r\n            dayOfWeek: moment(new Date(year, month, i)).weekday(),\r\n            dayOfWeekName: moment(new Date(year, month, i)).format('dd'),\r\n          }));\r\n        }\r\n        break;\r\n    }\r\n  }\r\n\r\n  private initializeStorage(\r\n    getKey: () => string,\r\n    storage: Map<string, ChartStorageEntityModel>,\r\n    indexGroupItem: number,\r\n    totalGroupsCount: number,\r\n    value: number,\r\n    getAdditionInfo: () => ChartStorageAdditionInfoModel | undefined,\r\n    updateValuesForKey: (currentValues: number[]) => void,\r\n  ): void {\r\n    const key = getKey();\r\n\r\n    if (storage.has(key)) {\r\n      const storageEntity = storage.get(key)!;\r\n      const currentValues = storageEntity.values;\r\n\r\n      updateValuesForKey(currentValues);\r\n\r\n      storage.set(key, storageEntity);\r\n    }\r\n\r\n    this.initializeValuesForKey(key, totalGroupsCount, storage, null, getAdditionInfo, (items) => {\r\n      items[indexGroupItem] = value;\r\n    });\r\n  }\r\n\r\n  private initializeValuesForKey(\r\n    key: string,\r\n    totalGroupsCount: number,\r\n    storage: Map<string, ChartStorageEntityModel>,\r\n    sortedStorage: Map<string, ChartStorageEntityModel> | null,\r\n    getAdditionInfo: () => ChartStorageAdditionInfoModel | undefined,\r\n    setValue?: (items: number[]) => void,\r\n  ): void {\r\n    if (!!sortedStorage && storage.has(key)) {\r\n      const storageValue = storage.get(key);\r\n\r\n      sortedStorage.set(key, storageValue!);\r\n    } else if (!storage.has(key)) {\r\n      const currentValues: number[] = [...Array(totalGroupsCount)].map((_) => 0);\r\n\r\n      if (!!setValue) {\r\n        setValue(currentValues);\r\n      }\r\n\r\n      const storageEntity: ChartStorageEntityModel = {\r\n        values: currentValues,\r\n        additionInfo: getAdditionInfo(),\r\n      };\r\n\r\n      storage.set(key, storageEntity);\r\n\r\n      if (!!sortedStorage) {\r\n        sortedStorage.set(key, storageEntity);\r\n      }\r\n    }\r\n  }\r\n}\r\n","import {Injectable, ElementRef} from '@angular/core';\r\nimport {BuilderModel} from '../models/builder.model';\r\nimport * as d3 from 'd3';\r\nimport {ChartDataModel, ChartDataSettingsModel} from '../models/chart.model';\r\nimport {NgxPolarChartSettings} from '../models/ngx-group-chart-settings.model';\r\n\r\nexport interface IBuilder {\r\n  buildChart(\r\n    chartContainer: ElementRef | undefined,\r\n    chartId: string,\r\n    data: ChartDataModel[],\r\n    plotSettings: NgxPolarChartSettings,\r\n    chartDataSettings: ChartDataSettingsModel,\r\n  ): void;\r\n}\r\n\r\nexport interface IPolarChartBuilder {\r\n  build(buildModel: BuilderModel): void;\r\n  cleanup(): void;\r\n}\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport abstract class ChartBuilderBase implements IPolarChartBuilder {\r\n  private readonly margin = {top: 70};\r\n\r\n  private innerRadius: number = 180;\r\n  private outerRadius: number | undefined;\r\n  private maximum: number | undefined;\r\n  private average: number | undefined;\r\n  private minimum: number | undefined;\r\n\r\n  private x0: d3.ScaleBand<string> | undefined;\r\n  private y: d3.ScaleLinear<number, number, never> | undefined;\r\n  private z: d3.ScaleOrdinal<string, unknown, never> | undefined;\r\n\r\n  protected readonly sundayDay: number = 0;\r\n  protected readonly saturdayDay: number = 6;\r\n\r\n  protected getOuterRadius(buildModel: BuilderModel): number {\r\n    if (!this.outerRadius) {\r\n      const width = buildModel.chartSettings.width!;\r\n      const height = buildModel.chartSettings.height!;\r\n\r\n      this.outerRadius = Math.min(width, height) / 2 - this.margin.top;\r\n    }\r\n\r\n    return this.outerRadius;\r\n  }\r\n\r\n  protected getMaximum(buildModel: BuilderModel): number {\r\n    if (!this.maximum) {\r\n      this.maximum = this.getMaximumValue(buildModel);\r\n    }\r\n\r\n    return this.maximum;\r\n  }\r\n\r\n  protected getMaximumValue(buildModel: BuilderModel): number {\r\n    const keys = buildModel.chartDataSettings.keys;\r\n\r\n    return d3.max(buildModel.data, (d: ChartDataModel) => d3.max(keys, (k) => (d as any)[k])) || 0;\r\n  }\r\n\r\n  protected getAverage(buildModel: BuilderModel): number {\r\n    if (!this.average) {\r\n      this.average = this.getAverageValue(buildModel);\r\n    }\r\n\r\n    return this.average;\r\n  }\r\n\r\n  protected getAverageValue(buildModel: BuilderModel): number {\r\n    const keys = buildModel.chartDataSettings.keys;\r\n\r\n    return d3.mean(buildModel.data, (d: ChartDataModel) => d3.mean(keys, (k) => (d as any)[k])) || 0;\r\n  }\r\n\r\n  protected getMinimum(buildModel: BuilderModel): number {\r\n    if (!this.minimum) {\r\n      const keys = buildModel.chartDataSettings.keys;\r\n\r\n      this.minimum = d3.min(buildModel.data, (d: ChartDataModel) => d3.min(keys, (k: string) => (d as any)[k]));\r\n    }\r\n\r\n    return this.minimum || 0;\r\n  }\r\n\r\n  protected getX0(buildModel: BuilderModel): d3.ScaleBand<string> {\r\n    if (!this.x0) {\r\n      this.x0 = d3\r\n        .scaleBand()\r\n        .domain(buildModel.data.map((d: ChartDataModel) => d.key))\r\n        .range([0, 2 * Math.PI])\r\n        .align(0);\r\n    }\r\n\r\n    return this.x0;\r\n  }\r\n\r\n  protected getY(buildModel: BuilderModel): d3.ScaleLinear<number, number, never> {\r\n    if (!this.y) {\r\n      const innerRadius = this.getInnerRadius(buildModel);\r\n      const outerRadius = this.getOuterRadius(buildModel);\r\n\r\n      const domainRange = this.getYDomain(buildModel);\r\n\r\n      this.y = d3.scaleLinear().domain([0, domainRange]).range([innerRadius, outerRadius]);\r\n    }\r\n\r\n    return this.y;\r\n  }\r\n\r\n  protected getYDomain(buildModel: BuilderModel): number {\r\n    const keys = buildModel.chartDataSettings.keys;\r\n\r\n    return d3.max(buildModel.data, (d) => d3.max(keys, (k: string) => (d as any)[k])) || 0;\r\n  }\r\n\r\n  protected getZ(buildModel: BuilderModel): d3.ScaleOrdinal<string, unknown, never> {\r\n    if (!this.z) {\r\n      const keys = buildModel.chartDataSettings.keys;\r\n      const keysColors = buildModel.chartDataSettings.keyColors;\r\n\r\n      this.z = d3.scaleOrdinal().domain(keys).range(keysColors);\r\n    }\r\n\r\n    return this.z;\r\n  }\r\n\r\n  protected getInnerRadius(_: BuilderModel): number {\r\n    return this.innerRadius;\r\n  }\r\n\r\n  protected isWeekEndDay(day?: number): boolean {\r\n    return day === this.sundayDay || day === this.saturdayDay;\r\n  }\r\n\r\n  public abstract build(buildModel: BuilderModel): void;\r\n\r\n  cleanup(): void {\r\n    this.outerRadius = undefined;\r\n    this.average = undefined;\r\n    this.maximum = undefined;\r\n    this.minimum = undefined;\r\n    this.x0 = undefined;\r\n    this.y = undefined;\r\n    this.z = undefined;\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport * as d3 from 'd3';\r\nimport {BuilderGroupedDateItemModel, BuilderModel} from '../../../models/builder.model';\r\nimport {ChartBuilderBase, IPolarChartBuilder} from '../../chart-builder.base';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class ChartBuilder extends ChartBuilderBase implements IPolarChartBuilder {\r\n  build(buildModel: BuilderModel): void {\r\n    const innerRadius = this.getInnerRadius(buildModel);\r\n\r\n    const keys = buildModel.chartDataSettings.keys;\r\n\r\n    const arc = d3\r\n      .arc()\r\n      .innerRadius(innerRadius)\r\n      .outerRadius((d: any) => y(d.value))\r\n      .startAngle((d: any) => (x0(d.group) || 0) + (x1(d.key) || 0))\r\n      .endAngle((d: any) => (x0(d.group) || 0) + (x1(d.key) || 0) + x1.bandwidth())\r\n      .padAngle(0.01)\r\n      .padRadius(innerRadius);\r\n\r\n    const x0 = this.getX0(buildModel);\r\n    const x1 = d3.scaleBand().domain(keys).range([0, x0.bandwidth()]).align(0);\r\n\r\n    const y = this.getY(buildModel);\r\n\r\n    const z = this.getZ(buildModel);\r\n\r\n    const max = this.getMaximum(buildModel);\r\n    const min = this.getMinimum(buildModel);\r\n    const average = this.getAverage(buildModel);\r\n\r\n    buildModel.svg\r\n      .append('g')\r\n      .selectAll('g')\r\n      .data(buildModel.data)\r\n      .join('g')\r\n      .selectAll('path')\r\n      .data((d) =>\r\n        keys.map<BuilderGroupedDateItemModel>((key) => ({\r\n          key,\r\n          group: d.key,\r\n          value: (d as any)[key],\r\n          dayOfWeek: d.dayOfWeek,\r\n        })),\r\n      )\r\n      .join('path')\r\n      .attr('fill', (d: BuilderGroupedDateItemModel) => {\r\n        if (d.value === max && buildModel.chartSettings.barsSettings!.maximum!.showColorBar!) {\r\n          return buildModel.chartSettings.barsSettings!.maximum!.color!;\r\n        } else if (d.value === min && buildModel.chartSettings.barsSettings!.minimum!.showColorBar!) {\r\n          return buildModel.chartSettings.barsSettings!.minimum!.color!;\r\n        } else if (\r\n          d.value <= average &&\r\n          !this.isWeekEndDay(d.dayOfWeek) &&\r\n          buildModel.chartSettings.barsSettings!.average!.showColorBar!\r\n        ) {\r\n          return buildModel.chartSettings.barsSettings!.average!.color!;\r\n        } else if (this.isWeekEndDay(d.dayOfWeek) && buildModel.chartSettings.barsSettings!.weekend!.showColorBar!) {\r\n          return buildModel.chartSettings.barsSettings!.weekend!.color!;\r\n        }\r\n\r\n        return z(d.key) as string;\r\n      })\r\n      .attr('d', arc as any)\r\n      .append('title')\r\n      .text((d: BuilderGroupedDateItemModel) => (buildModel.chartSettings.showToolTip ? `${d.key}: ${d.value}` : ''));\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {ChartDataModel} from '../../../models/chart.model';\r\nimport {BuilderModel} from '../../../models/builder.model';\r\nimport {ChartBuilderBase, IPolarChartBuilder} from '../../chart-builder.base';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class XAxisBuilder extends ChartBuilderBase implements IPolarChartBuilder {\r\n  build(buildModel: BuilderModel): void {\r\n    const innerRadius = this.getInnerRadius(buildModel);\r\n    const outerRadius = this.getOuterRadius(buildModel);\r\n\r\n    const groupKey = 'key';\r\n\r\n    const x0 = this.getX0(buildModel);\r\n\r\n    var outsideLabels = buildModel.svg\r\n      .append('g')\r\n      .selectAll()\r\n      .data(buildModel.data)\r\n      .enter()\r\n      .append('g')\r\n      .attr('text-anchor', 'middle')\r\n      .attr(\r\n        'transform',\r\n        (d: ChartDataModel) => `\r\n        rotate(${(((x0(d[groupKey]) || 0) + x0.bandwidth() / 2) * 180) / Math.PI - 90})\r\n        translate(${outerRadius + 35},0)\r\n      `,\r\n      );\r\n\r\n    outsideLabels\r\n      .append('text')\r\n      .attr('transform', (d: ChartDataModel) =>\r\n        ((x0(d[groupKey]) || 0) + x0.bandwidth() / 2 + Math.PI / 2) % (2 * Math.PI) < Math.PI\r\n          ? 'rotate(90)translate(0,16)'\r\n          : 'rotate(-90)translate(0,-9)',\r\n      )\r\n      .style('font-size', `${buildModel.chartSettings.fontSettings!.fontSize}px`)\r\n      .text((d) => d[groupKey]);\r\n\r\n    var insideLabels = buildModel.svg\r\n      .append('g')\r\n      .selectAll('g')\r\n      .data(buildModel.data)\r\n      .enter()\r\n      .append('g')\r\n      .attr('text-anchor', 'middle')\r\n      .attr(\r\n        'transform',\r\n        (d: ChartDataModel) => `\r\n        rotate(${(((x0(d[groupKey]) || 0) + x0.bandwidth() / 2) * 180) / Math.PI - 90})\r\n        translate(${innerRadius},0)\r\n      `,\r\n      );\r\n\r\n    const lineWeekEndHeigh = -7;\r\n    const lineWeekDayHeigh = -4;\r\n\r\n    insideLabels\r\n      .append('line')\r\n      .attr('x2', (d: ChartDataModel) => {\r\n        if (\r\n          buildModel.chartSettings.labelSettings!.showWeekDays ||\r\n          buildModel.chartSettings.labelSettings!.showWeekEndDays\r\n        ) {\r\n          return this.isWeekEndDay(d.dayOfWeek) ? lineWeekEndHeigh : lineWeekDayHeigh;\r\n        }\r\n\r\n        return 0;\r\n      })\r\n      .attr('stroke', '#000');\r\n\r\n    insideLabels\r\n      .append('text')\r\n      .attr('transform', (d: ChartDataModel) =>\r\n        ((x0(d[groupKey]) || 0) + x0.bandwidth() / 2 + Math.PI / 2) % (2 * Math.PI) < Math.PI\r\n          ? 'rotate(90)translate(0,16)'\r\n          : 'rotate(-90)translate(0,-9)',\r\n      )\r\n      .style('font-size', `${buildModel.chartSettings.fontSettings!.fontSize}px`)\r\n      .text((d: ChartDataModel) => {\r\n        if (buildModel.chartSettings.labelSettings!.showWeekDays && !this.isWeekEndDay(d.dayOfWeek)) {\r\n          return d.dayOfWeekName || '';\r\n        } else if (buildModel.chartSettings.labelSettings!.showWeekEndDays && this.isWeekEndDay(d.dayOfWeek)) {\r\n          return d.dayOfWeekName || '';\r\n        }\r\n\r\n        return '';\r\n      });\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport * as d3 from 'd3';\r\nimport {BuilderModel} from '../../../models/builder.model';\r\nimport {ChartBuilderBase, IPolarChartBuilder} from '../../chart-builder.base';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class YAxisBuilder extends ChartBuilderBase implements IPolarChartBuilder {\r\n  build(buildModel: BuilderModel): void {\r\n    const max = this.getMaximum(buildModel);\r\n    const average = this.getAverage(buildModel);\r\n\r\n    const y = this.getY(buildModel);\r\n\r\n    const tickFormat = 5;\r\n    const yTicksValues = d3.ticks(0, max + 1, tickFormat);\r\n\r\n    const yAxis = buildModel.svg.append('g').attr('text-anchor', 'middle');\r\n\r\n    const yMeanTick = yAxis.append('g').datum([average]);\r\n\r\n    yMeanTick\r\n      .append('circle')\r\n      .attr('fill', 'none')\r\n      .attr('stroke', '#C0625E')\r\n      .attr('stroke-dasharray', '5 3')\r\n      .attr('r', <any>y);\r\n\r\n    const yTick = yAxis.selectAll('g').data(yTicksValues).enter().append('g');\r\n\r\n    if (buildModel.chartSettings.tickSettings!.showTicks) {\r\n      yTick.append('circle').attr('fill', 'none').attr('stroke', '#ccdcea').attr('r', y);\r\n    }\r\n\r\n    if (buildModel.chartSettings.tickSettings!.showTicksLabels) {\r\n      yTick\r\n        .append('text')\r\n        .attr('y', (d: number) => {\r\n          return -y(d);\r\n        })\r\n        .attr('dy', '0.35em')\r\n        .attr('fill', 'none')\r\n        .attr('stroke', '#fff')\r\n        .attr('stroke-width', 5)\r\n        .style('font-size', `${buildModel.chartSettings.fontSettings!.fontSize}px`)\r\n        .text(y.tickFormat(tickFormat, 's'));\r\n\r\n      yTick\r\n        .append('text')\r\n        .attr('y', (d: number) => {\r\n          return -y(d);\r\n        })\r\n        .attr('dy', '0.35em')\r\n        .style('font-size', `${buildModel.chartSettings.fontSettings!.fontSize}px`)\r\n        .text(y.tickFormat(5, 's'));\r\n    }\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {BuilderModel} from '../../../models/builder.model';\r\nimport {ChartBuilderBase, IPolarChartBuilder} from '../../chart-builder.base';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class LegendBuilder extends ChartBuilderBase implements IPolarChartBuilder {\r\n  build(buildModel: BuilderModel): void {\r\n    if (!buildModel.chartSettings.showLegend) {\r\n      return;\r\n    }\r\n\r\n    const keys = buildModel.chartDataSettings.keys;\r\n\r\n    const z = this.getZ(buildModel);\r\n\r\n    const legend = buildModel.svg\r\n      .append('g')\r\n      .selectAll('g')\r\n      .data(keys)\r\n      .enter()\r\n      .append('g')\r\n      .attr('transform', (_, i: number) => {\r\n        return 'translate(-50,' + (i - (keys.length - 1) / 2) * 25 + ')';\r\n      });\r\n\r\n    legend\r\n      .append('circle')\r\n      .attr('r', 8)\r\n      .attr('fill', <any>z);\r\n\r\n    legend\r\n      .append('text')\r\n      .attr('x', 15)\r\n      .attr('y', 0)\r\n      .attr('dy', '0.35em')\r\n      .text((d: string) => {\r\n        return d;\r\n      });\r\n\r\n    legend.selectAll('text').attr('dx', 15);\r\n  }\r\n}\r\n","import {ChartBuilder} from './chart.builder';\r\nimport {Injectable, ElementRef} from '@angular/core';\r\n\r\nimport * as d3 from 'd3';\r\nimport * as lodash from 'lodash';\r\n\r\nimport {ChartDataSettingsModel} from '../../../models/chart.model';\r\nimport {NgxPolarChartSettings} from '../../../models/ngx-group-chart-settings.model';\r\nimport {ChartDataModel} from '../../../models/chart.model';\r\nimport {BuilderModel} from '../../../models/builder.model';\r\nimport {XAxisBuilder} from './x-axis.builder';\r\nimport {YAxisBuilder} from './y-axis.builder';\r\nimport {LegendBuilder} from './legend.builder';\r\nimport {IPolarChartBuilder, IBuilder} from '../../chart-builder.base';\r\nimport {isDataEmpty} from '../../../common/polar-chart-common.utils';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class Builder implements IBuilder {\r\n  private builders: IPolarChartBuilder[] = [];\r\n\r\n  private defaultPlotSettings: NgxPolarChartSettings = {\r\n    width: 960,\r\n    height: 800,\r\n    fontSettings: {\r\n      fontFamily: 'sans-serif',\r\n      fontSize: 16,\r\n    },\r\n    showToolTip: true,\r\n    barsSettings: {\r\n      average: {\r\n        color: '#30983dd6',\r\n        showColorBar: true,\r\n      },\r\n      maximum: {\r\n        showColorBar: true,\r\n        color: '#983036',\r\n      },\r\n      minimum: {\r\n        showColorBar: true,\r\n        color: '#69b3a2',\r\n      },\r\n      weekend: {\r\n        showColorBar: true,\r\n        color: '#80ddc8',\r\n      },\r\n    },\r\n    labelSettings: {\r\n      showWeekDays: false,\r\n      showWeekEndDays: true,\r\n    },\r\n    tickSettings: {\r\n      showTicks: true,\r\n      showTicksLabels: true,\r\n    },\r\n    showLegend: true,\r\n  };\r\n\r\n  constructor(\r\n    chartBuilder: ChartBuilder,\r\n    xAxisBuilder: XAxisBuilder,\r\n    yAxisBuilder: YAxisBuilder,\r\n    legendBuilder: LegendBuilder,\r\n  ) {\r\n    this.builders.push(chartBuilder);\r\n    this.builders.push(xAxisBuilder);\r\n    this.builders.push(yAxisBuilder);\r\n    this.builders.push(legendBuilder);\r\n  }\r\n\r\n  public buildChart(\r\n    chartContainer: ElementRef | undefined,\r\n    chartId: string,\r\n    data: ChartDataModel[],\r\n    plotSettings: NgxPolarChartSettings,\r\n    chartDataSettings: ChartDataSettingsModel,\r\n  ): void {\r\n    if (!chartContainer) return;\r\n\r\n    d3.select(`#${chartId} svg`).remove();\r\n\r\n    if (isDataEmpty(data)) {\r\n      return;\r\n    }\r\n\r\n    const element = chartContainer!.nativeElement;\r\n    const plotSettingsCopy = this.copyPlotSettings(plotSettings) || {};\r\n\r\n    this.overridePlotSettings(plotSettingsCopy);\r\n    this.overrideGroupColorSettings(plotSettingsCopy, chartDataSettings);\r\n\r\n    const width = plotSettingsCopy.width!;\r\n    const height = plotSettingsCopy.height!;\r\n\r\n    const fontSize = plotSettingsCopy.fontSettings!.fontSize!;\r\n    const fontFamily = plotSettingsCopy.fontSettings!.fontFamily!;\r\n\r\n    const svg = d3\r\n      .select(element)\r\n      .append('svg')\r\n      .attr('viewBox', `${-width / 2} ${-height / 2} ${width} ${height}`)\r\n      .style('width', '100%')\r\n      .style('height', '100%')\r\n      .style('font', `${fontSize}px ${fontFamily}`);\r\n\r\n    const buildObject: BuilderModel = {\r\n      svg: svg,\r\n      chartDataSettings: chartDataSettings,\r\n      data: data,\r\n      chartSettings: plotSettingsCopy,\r\n    };\r\n\r\n    this.builders.forEach((b) => b.build(buildObject));\r\n    this.builders.forEach((b) => b.cleanup());\r\n  }\r\n\r\n  private overrideGroupColorSettings(\r\n    plotSettings: NgxPolarChartSettings,\r\n    chartDataSettings: ChartDataSettingsModel,\r\n  ): void {\r\n    if (chartDataSettings.keyColors.length === plotSettings.barsSettings?.groupColors?.length) {\r\n      chartDataSettings.keyColors = plotSettings.barsSettings?.groupColors;\r\n    }\r\n  }\r\n\r\n  private overridePlotSettings(plotSettings: NgxPolarChartSettings): void {\r\n    plotSettings.width ??= this.defaultPlotSettings.width;\r\n    plotSettings.height ??= this.defaultPlotSettings.height;\r\n\r\n    if (!plotSettings.fontSettings) {\r\n      plotSettings.fontSettings = {};\r\n    }\r\n\r\n    plotSettings.fontSettings.fontFamily ??= this.defaultPlotSettings.fontSettings!.fontFamily;\r\n    plotSettings.fontSettings.fontSize ??= this.defaultPlotSettings.fontSettings!.fontSize;\r\n\r\n    plotSettings.showToolTip ??= this.defaultPlotSettings.showToolTip;\r\n\r\n    if (!plotSettings.barsSettings) {\r\n      plotSettings.barsSettings = {};\r\n    }\r\n\r\n    if (!plotSettings.barsSettings.average) {\r\n      plotSettings.barsSettings.average = {};\r\n    }\r\n\r\n    plotSettings.barsSettings.average.color ??= this.defaultPlotSettings.barsSettings!.average!.color;\r\n    plotSettings.barsSettings.average.showColorBar ??= this.defaultPlotSettings.barsSettings!.average!.showColorBar;\r\n\r\n    if (!plotSettings.barsSettings.maximum) {\r\n      plotSettings.barsSettings.maximum = {};\r\n    }\r\n\r\n    plotSettings.barsSettings.maximum.color ??= this.defaultPlotSettings.barsSettings!.maximum!.color;\r\n    plotSettings.barsSettings.maximum.showColorBar ??= this.defaultPlotSettings.barsSettings!.maximum!.showColorBar;\r\n\r\n    if (!plotSettings.barsSettings.minimum) {\r\n      plotSettings.barsSettings.minimum = {};\r\n    }\r\n\r\n    plotSettings.barsSettings.minimum.color ??= this.defaultPlotSettings.barsSettings!.minimum!.color;\r\n    plotSettings.barsSettings.minimum.showColorBar ??= this.defaultPlotSettings.barsSettings!.minimum!.showColorBar;\r\n\r\n    if (!plotSettings.barsSettings.weekend) {\r\n      plotSettings.barsSettings.weekend = {};\r\n    }\r\n\r\n    plotSettings.barsSettings.weekend.color ??= this.defaultPlotSettings.barsSettings!.weekend!.color;\r\n    plotSettings.barsSettings.weekend.showColorBar ??= this.defaultPlotSettings.barsSettings!.weekend!.showColorBar;\r\n\r\n    if (!plotSettings.labelSettings) {\r\n      plotSettings.labelSettings = {};\r\n    }\r\n\r\n    plotSettings.labelSettings.showWeekDays ??= this.defaultPlotSettings.labelSettings!.showWeekDays;\r\n    plotSettings.labelSettings.showWeekEndDays ??= this.defaultPlotSettings.labelSettings!.showWeekEndDays;\r\n\r\n    if (!plotSettings.tickSettings) {\r\n      plotSettings.tickSettings = {};\r\n    }\r\n\r\n    plotSettings.tickSettings.showTicks ??= this.defaultPlotSettings.tickSettings!.showTicks;\r\n    plotSettings.tickSettings.showTicksLabels ??= this.defaultPlotSettings.tickSettings!.showTicksLabels;\r\n\r\n    plotSettings.showLegend ??= this.defaultPlotSettings.showLegend!;\r\n  }\r\n\r\n  private copyPlotSettings(plotSettings: NgxPolarChartSettings): NgxPolarChartSettings {\r\n    return lodash.cloneDeep(plotSettings);\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport * as d3 from 'd3';\r\nimport {BuilderGroupedDateItemModel, BuilderModel} from '../../../models/builder.model';\r\nimport {ChartBuilderBase, IPolarChartBuilder} from '../../chart-builder.base';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class ChartBuilder extends ChartBuilderBase implements IPolarChartBuilder {\r\n  build(buildModel: BuilderModel): void {\r\n    const innerRadius = this.getInnerRadius(buildModel);\r\n\r\n    const keys = buildModel.chartDataSettings.keys;\r\n\r\n    const arc = d3\r\n      .arc()\r\n      .innerRadius(innerRadius)\r\n      .outerRadius((d: any) => y(d.value))\r\n      .startAngle((d: any) => (x0(d.group) || 0) + (x1(d.key) || 0))\r\n      .endAngle((d: any) => (x0(d.group) || 0) + (x1(d.key) || 0) + x1.bandwidth())\r\n      .padAngle(0.01)\r\n      .padRadius(innerRadius);\r\n\r\n    const x0 = this.getX0(buildModel);\r\n    const x1 = d3.scaleBand().domain(keys).range([0, x0.bandwidth()]).align(0);\r\n\r\n    const y = this.getY(buildModel);\r\n\r\n    const z = this.getZ(buildModel);\r\n\r\n    const max = this.getMaximum(buildModel);\r\n    const min = this.getMinimum(buildModel);\r\n    const average = this.getAverage(buildModel);\r\n\r\n    buildModel.svg\r\n      .append('g')\r\n      .selectAll('g')\r\n      .data(buildModel.data)\r\n      .join('g')\r\n      .selectAll('path')\r\n      .data((d) =>\r\n        keys.map<BuilderGroupedDateItemModel>((key) => ({\r\n          key,\r\n          group: d.key,\r\n          value: (d as any)[key],\r\n          dayOfWeek: d.dayOfWeek,\r\n        })),\r\n      )\r\n      .join('path')\r\n      .attr('fill', (d: BuilderGroupedDateItemModel) => {\r\n        if (d.value === max && buildModel.chartSettings.barsSettings!.maximum!.showColorBar!) {\r\n          return buildModel.chartSettings.barsSettings!.maximum!.color!;\r\n        } else if (d.value === min && buildModel.chartSettings.barsSettings!.minimum!.showColorBar!) {\r\n          return buildModel.chartSettings.barsSettings!.minimum!.color!;\r\n        } else if (d.value <= average && buildModel.chartSettings.barsSettings!.average!.showColorBar!) {\r\n          return buildModel.chartSettings.barsSettings!.average!.color!;\r\n        }\r\n\r\n        return z(d.key) as string;\r\n      })\r\n      .attr('d', arc as any)\r\n      .append('title')\r\n      .text((d: BuilderGroupedDateItemModel) => (buildModel.chartSettings.showToolTip ? `${d.key}: ${d.value}` : ''));\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {ChartDataModel} from '../../../models/chart.model';\r\nimport {BuilderModel} from '../../../models/builder.model';\r\nimport {ChartBuilderBase, IPolarChartBuilder} from '../../chart-builder.base';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class XAxisBuilder extends ChartBuilderBase implements IPolarChartBuilder {\r\n  build(buildModel: BuilderModel): void {\r\n    const innerRadius = this.getInnerRadius(buildModel);\r\n    const outerRadius = this.getOuterRadius(buildModel);\r\n\r\n    const groupKey = 'key';\r\n\r\n    const x0 = this.getX0(buildModel);\r\n\r\n    var outsideLabels = buildModel.svg\r\n      .append('g')\r\n      .selectAll()\r\n      .data(buildModel.data)\r\n      .enter()\r\n      .append('g')\r\n      .attr('text-anchor', 'middle')\r\n      .attr(\r\n        'transform',\r\n        (d: ChartDataModel) => `\r\n        rotate(${(((x0(d[groupKey]) || 0) + x0.bandwidth() / 2) * 180) / Math.PI - 90})\r\n        translate(${outerRadius + 35},0)\r\n      `,\r\n      );\r\n\r\n    outsideLabels\r\n      .append('text')\r\n      .attr('transform', (d: ChartDataModel) =>\r\n        ((x0(d[groupKey]) || 0) + x0.bandwidth() / 2 + Math.PI / 2) % (2 * Math.PI) < Math.PI\r\n          ? 'rotate(90)translate(0,16)'\r\n          : 'rotate(-90)translate(0,-9)',\r\n      )\r\n      .style('font-size', `${buildModel.chartSettings.fontSettings!.fontSize}px`)\r\n      .text((d) => d[groupKey]);\r\n\r\n    var insideLabels = buildModel.svg\r\n      .append('g')\r\n      .selectAll('g')\r\n      .data(buildModel.data)\r\n      .enter()\r\n      .append('g')\r\n      .attr('text-anchor', 'middle')\r\n      .attr(\r\n        'transform',\r\n        (d: ChartDataModel) => `\r\n        rotate(${(((x0(d[groupKey]) || 0) + x0.bandwidth() / 2) * 180) / Math.PI - 90})\r\n        translate(${innerRadius},0)\r\n      `,\r\n      );\r\n\r\n    const lineHeigh = -4;\r\n\r\n    insideLabels\r\n      .append('line')\r\n      .attr('x2', (_: ChartDataModel) => {\r\n        return lineHeigh;\r\n      })\r\n      .attr('stroke', '#000');\r\n\r\n    insideLabels\r\n      .append('text')\r\n      .attr('transform', (d: ChartDataModel) =>\r\n        ((x0(d[groupKey]) || 0) + x0.bandwidth() / 2 + Math.PI / 2) % (2 * Math.PI) < Math.PI\r\n          ? 'rotate(90)translate(0,16)'\r\n          : 'rotate(-90)translate(0,-9)',\r\n      )\r\n      .style('font-size', `${buildModel.chartSettings.fontSettings!.fontSize}px`);\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport * as d3 from 'd3';\r\nimport {BuilderModel} from '../../../models/builder.model';\r\nimport {ChartBuilderBase, IPolarChartBuilder} from '../../chart-builder.base';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class YAxisBuilder extends ChartBuilderBase implements IPolarChartBuilder {\r\n  build(buildModel: BuilderModel): void {\r\n    const max = this.getMaximum(buildModel);\r\n    const average = this.getAverage(buildModel);\r\n\r\n    const y = this.getY(buildModel);\r\n\r\n    const tickFormat = 5;\r\n    const yTicksValues = d3.ticks(0, max + 1, tickFormat);\r\n\r\n    const yAxis = buildModel.svg.append('g').attr('text-anchor', 'middle');\r\n\r\n    const yMeanTick = yAxis.append('g').datum([average]);\r\n\r\n    yMeanTick\r\n      .append('circle')\r\n      .attr('fill', 'none')\r\n      .attr('stroke', '#C0625E')\r\n      .attr('stroke-dasharray', '5 3')\r\n      .attr('r', <any>y);\r\n\r\n    const yTick = yAxis.selectAll('g').data(yTicksValues).enter().append('g');\r\n\r\n    if (buildModel.chartSettings.tickSettings!.showTicks) {\r\n      yTick.append('circle').attr('fill', 'none').attr('stroke', '#ccdcea').attr('r', y);\r\n    }\r\n\r\n    if (buildModel.chartSettings.tickSettings!.showTicksLabels) {\r\n      yTick\r\n        .append('text')\r\n        .attr('y', (d: number) => {\r\n          return -y(d);\r\n        })\r\n        .attr('dy', '0.35em')\r\n        .attr('fill', 'none')\r\n        .attr('stroke', '#fff')\r\n        .attr('stroke-width', 5)\r\n        .style('font-size', `${buildModel.chartSettings.fontSettings!.fontSize}px`)\r\n        .text(y.tickFormat(tickFormat, 's'));\r\n\r\n      yTick\r\n        .append('text')\r\n        .attr('y', (d: number) => {\r\n          return -y(d);\r\n        })\r\n        .attr('dy', '0.35em')\r\n        .style('font-size', `${buildModel.chartSettings.fontSettings!.fontSize}px`)\r\n        .text(y.tickFormat(5, 's'));\r\n    }\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {BuilderModel} from '../../../models/builder.model';\r\nimport {ChartBuilderBase, IPolarChartBuilder} from '../../chart-builder.base';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class LegendBuilder extends ChartBuilderBase implements IPolarChartBuilder {\r\n  build(buildModel: BuilderModel): void {\r\n    if (!buildModel.chartSettings.showLegend) {\r\n      return;\r\n    }\r\n\r\n    const keys = buildModel.chartDataSettings.keys;\r\n\r\n    const z = this.getZ(buildModel);\r\n\r\n    const legend = buildModel.svg\r\n      .append('g')\r\n      .selectAll('g')\r\n      .data(keys)\r\n      .enter()\r\n      .append('g')\r\n      .attr('transform', (_, i: number) => {\r\n        return 'translate(-50,' + (i - (keys.length - 1) / 2) * 25 + ')';\r\n      });\r\n\r\n    legend\r\n      .append('circle')\r\n      .attr('r', 8)\r\n      .attr('fill', <any>z);\r\n\r\n    legend\r\n      .append('text')\r\n      .attr('x', 15)\r\n      .attr('y', 0)\r\n      .attr('dy', '0.35em')\r\n      .text((d: string) => {\r\n        return d;\r\n      });\r\n\r\n    legend.selectAll('text').attr('dx', 15);\r\n  }\r\n}\r\n","import {ChartBuilder} from './chart.builder';\r\nimport {Injectable, ElementRef} from '@angular/core';\r\n\r\nimport * as d3 from 'd3';\r\nimport * as lodash from 'lodash';\r\n\r\nimport {ChartDataSettingsModel} from '../../../models/chart.model';\r\nimport {NgxPolarChartSettings} from '../../../models/ngx-group-chart-settings.model';\r\nimport {ChartDataModel} from '../../../models/chart.model';\r\nimport {BuilderModel} from '../../../models/builder.model';\r\nimport {XAxisBuilder} from './x-axis.builder';\r\nimport {YAxisBuilder} from './y-axis.builder';\r\nimport {LegendBuilder} from './legend.builder';\r\nimport {IPolarChartBuilder, IBuilder} from '../../chart-builder.base';\r\nimport {isDataEmpty} from '../../../common/polar-chart-common.utils';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class Builder implements IBuilder {\r\n  private builders: IPolarChartBuilder[] = [];\r\n\r\n  private defaultPlotSettings: NgxPolarChartSettings = {\r\n    width: 960,\r\n    height: 800,\r\n    fontSettings: {\r\n      fontFamily: 'sans-serif',\r\n      fontSize: 16,\r\n    },\r\n    showToolTip: true,\r\n    barsSettings: {\r\n      average: {\r\n        color: '#30983dd6',\r\n        showColorBar: true,\r\n      },\r\n      maximum: {\r\n        showColorBar: true,\r\n        color: '#983036',\r\n      },\r\n      minimum: {\r\n        showColorBar: true,\r\n        color: '#69b3a2',\r\n      },\r\n    },\r\n    tickSettings: {\r\n      showTicks: true,\r\n      showTicksLabels: true,\r\n    },\r\n    showLegend: true,\r\n  };\r\n\r\n  constructor(\r\n    chartBuilder: ChartBuilder,\r\n    xAxisBuilder: XAxisBuilder,\r\n    yAxisBuilder: YAxisBuilder,\r\n    legendBuilder: LegendBuilder,\r\n  ) {\r\n    this.builders.push(chartBuilder);\r\n    this.builders.push(xAxisBuilder);\r\n    this.builders.push(yAxisBuilder);\r\n    this.builders.push(legendBuilder);\r\n  }\r\n\r\n  public buildChart(\r\n    chartContainer: ElementRef | undefined,\r\n    chartId: string,\r\n    data: ChartDataModel[],\r\n    plotSettings: NgxPolarChartSettings,\r\n    chartDataSettings: ChartDataSettingsModel,\r\n  ): void {\r\n    if (!chartContainer) return;\r\n\r\n    d3.select(`#${chartId} svg`).remove();\r\n\r\n    if (isDataEmpty(data)) {\r\n      return;\r\n    }\r\n\r\n    const element = chartContainer!.nativeElement;\r\n    const plotSettingsCopy = this.copyPlotSettings(plotSettings) || {};\r\n\r\n    this.overridePlotSettings(plotSettingsCopy);\r\n    this.overrideGroupColorSettings(plotSettingsCopy, chartDataSettings);\r\n\r\n    const width = plotSettingsCopy.width!;\r\n    const height = plotSettingsCopy.height!;\r\n\r\n    const fontSize = plotSettingsCopy.fontSettings!.fontSize!;\r\n    const fontFamily = plotSettingsCopy.fontSettings!.fontFamily!;\r\n\r\n    const svg = d3\r\n      .select(element)\r\n      .append('svg')\r\n      .attr('viewBox', `${-width / 2} ${-height / 2} ${width} ${height}`)\r\n      .style('width', '100%')\r\n      .style('height', '100%')\r\n      .style('font', `${fontSize}px ${fontFamily}`);\r\n\r\n    const buildObject: BuilderModel = {\r\n      svg: svg,\r\n      chartDataSettings: chartDataSettings,\r\n      data: data,\r\n      chartSettings: plotSettingsCopy,\r\n    };\r\n\r\n    this.builders.forEach((b) => b.build(buildObject));\r\n    this.builders.forEach((b) => b.cleanup());\r\n  }\r\n\r\n  private overrideGroupColorSettings(\r\n    plotSettings: NgxPolarChartSettings,\r\n    chartDataSettings: ChartDataSettingsModel,\r\n  ): void {\r\n    if (chartDataSettings.keyColors.length === plotSettings.barsSettings?.groupColors?.length) {\r\n      chartDataSettings.keyColors = plotSettings.barsSettings?.groupColors;\r\n    }\r\n  }\r\n\r\n  private overridePlotSettings(plotSettings: NgxPolarChartSettings): void {\r\n    plotSettings.width ??= this.defaultPlotSettings.width;\r\n    plotSettings.height ??= this.defaultPlotSettings.height;\r\n\r\n    if (!plotSettings.fontSettings) {\r\n      plotSettings.fontSettings = {};\r\n    }\r\n\r\n    plotSettings.fontSettings.fontFamily ??= this.defaultPlotSettings.fontSettings!.fontFamily;\r\n    plotSettings.fontSettings.fontSize ??= this.defaultPlotSettings.fontSettings!.fontSize;\r\n\r\n    plotSettings.showToolTip ??= this.defaultPlotSettings.showToolTip;\r\n\r\n    if (!plotSettings.barsSettings) {\r\n      plotSettings.barsSettings = {};\r\n    }\r\n\r\n    if (!plotSettings.barsSettings.average) {\r\n      plotSettings.barsSettings.average = {};\r\n    }\r\n\r\n    plotSettings.barsSettings.average.color ??= this.defaultPlotSettings.barsSettings!.average!.color;\r\n    plotSettings.barsSettings.average.showColorBar ??= this.defaultPlotSettings.barsSettings!.average!.showColorBar;\r\n\r\n    if (!plotSettings.barsSettings.maximum) {\r\n      plotSettings.barsSettings.maximum = {};\r\n    }\r\n\r\n    plotSettings.barsSettings.maximum.color ??= this.defaultPlotSettings.barsSettings!.maximum!.color;\r\n    plotSettings.barsSettings.maximum.showColorBar ??= this.defaultPlotSettings.barsSettings!.maximum!.showColorBar;\r\n\r\n    if (!plotSettings.barsSettings.minimum) {\r\n      plotSettings.barsSettings.minimum = {};\r\n    }\r\n\r\n    plotSettings.barsSettings.minimum.color ??= this.defaultPlotSettings.barsSettings!.minimum!.color;\r\n    plotSettings.barsSettings.minimum.showColorBar ??= this.defaultPlotSettings.barsSettings!.minimum!.showColorBar;\r\n\r\n    if (!plotSettings.tickSettings) {\r\n      plotSettings.tickSettings = {};\r\n    }\r\n\r\n    plotSettings.tickSettings.showTicks ??= this.defaultPlotSettings.tickSettings!.showTicks;\r\n    plotSettings.tickSettings.showTicksLabels ??= this.defaultPlotSettings.tickSettings!.showTicksLabels;\r\n\r\n    plotSettings.showLegend ??= this.defaultPlotSettings.showLegend!;\r\n  }\r\n\r\n  private copyPlotSettings(plotSettings: NgxPolarChartSettings): NgxPolarChartSettings {\r\n    return lodash.cloneDeep(plotSettings);\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport * as d3 from 'd3';\r\nimport {BuilderModel} from '../../../models/builder.model';\r\nimport {ChartBuilderBase, IPolarChartBuilder} from '../../chart-builder.base';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class ChartBuilder extends ChartBuilderBase implements IPolarChartBuilder {\r\n  build(buildModel: BuilderModel): void {\r\n    const innerRadius = this.getInnerRadius(buildModel);\r\n\r\n    const arc = d3\r\n      .arc()\r\n      .innerRadius(function (d: any) {\r\n        return y(d[0]);\r\n      })\r\n      .outerRadius(function (d: any) {\r\n        return y(d[1]);\r\n      })\r\n      .startAngle(function (d: any) {\r\n        return x0(d.data.key) || 0;\r\n      })\r\n      .endAngle(function (d: any) {\r\n        return (x0(d.data.key) || 0) + x0.bandwidth();\r\n      })\r\n      .padAngle(0.01)\r\n      .padRadius(innerRadius);\r\n\r\n    const x0 = this.getX0(buildModel);\r\n    const y = this.getY(buildModel);\r\n    const z = this.getZ(buildModel);\r\n\r\n    buildModel.svg\r\n      .append('g')\r\n      .selectAll('g')\r\n      .data((d3.stack().keys(buildModel.chartDataSettings.keys) as any)(buildModel.data))\r\n      .enter()\r\n      .append('g')\r\n      .attr('fill', (d: any) => {\r\n        return z(d.key) as string;\r\n      })\r\n      .selectAll('path')\r\n      .data((d: any) => {\r\n        return d.map((v: any) => ((v.key = d.key), v));\r\n      })\r\n      .enter()\r\n      .append('path')\r\n      .attr('d', <any>arc)\r\n      .append('title')\r\n      .text((d: any) => (buildModel.chartSettings.showToolTip ? `${d.key}: ${d.data[d.key]}` : ''));\r\n  }\r\n\r\n  protected override getYDomain(buildModel: BuilderModel): number {\r\n    const keys = buildModel.chartDataSettings.keys;\r\n\r\n    return (\r\n      d3.max(buildModel.data, (d: any) => {\r\n        let sumOfCurrentKey = 0;\r\n        keys.forEach((k) => (sumOfCurrentKey += d[k]));\r\n        return sumOfCurrentKey;\r\n      }) || 0\r\n    );\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {ChartDataModel} from '../../../models/chart.model';\r\nimport {BuilderModel} from '../../../models/builder.model';\r\nimport {ChartBuilderBase, IPolarChartBuilder} from '../../chart-builder.base';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class XAxisBuilder extends ChartBuilderBase implements IPolarChartBuilder {\r\n  build(buildModel: BuilderModel): void {\r\n    const innerRadius = this.getInnerRadius(buildModel);\r\n    const outerRadius = this.getOuterRadius(buildModel);\r\n\r\n    const groupKey = 'key';\r\n\r\n    const x0 = this.getX0(buildModel);\r\n\r\n    var outsideLabels = buildModel.svg\r\n      .append('g')\r\n      .selectAll()\r\n      .data(buildModel.data)\r\n      .enter()\r\n      .append('g')\r\n      .attr('text-anchor', 'middle')\r\n      .attr(\r\n        'transform',\r\n        (d: ChartDataModel) => `\r\n        rotate(${(((x0(d[groupKey]) || 0) + x0.bandwidth() / 2) * 180) / Math.PI - 90})\r\n        translate(${outerRadius + 35},0)\r\n      `,\r\n      );\r\n\r\n    outsideLabels\r\n      .append('text')\r\n      .attr('transform', (d: ChartDataModel) =>\r\n        ((x0(d[groupKey]) || 0) + x0.bandwidth() / 2 + Math.PI / 2) % (2 * Math.PI) < Math.PI\r\n          ? 'rotate(90)translate(0,16)'\r\n          : 'rotate(-90)translate(0,-9)',\r\n      )\r\n      .style('font-size', `${buildModel.chartSettings.fontSettings!.fontSize}px`)\r\n      .text((d) => d[groupKey]);\r\n\r\n    var insideLabels = buildModel.svg\r\n      .append('g')\r\n      .selectAll('g')\r\n      .data(buildModel.data)\r\n      .enter()\r\n      .append('g')\r\n      .attr('text-anchor', 'middle')\r\n      .attr(\r\n        'transform',\r\n        (d: ChartDataModel) => `\r\n        rotate(${(((x0(d[groupKey]) || 0) + x0.bandwidth() / 2) * 180) / Math.PI - 90})\r\n        translate(${innerRadius},0)\r\n      `,\r\n      );\r\n\r\n    const lineWeekEndHeigh = -7;\r\n    const lineWeekDayHeigh = -4;\r\n\r\n    insideLabels\r\n      .append('line')\r\n      .attr('x2', (d: ChartDataModel) => {\r\n        if (\r\n          buildModel.chartSettings.labelSettings!.showWeekDays ||\r\n          buildModel.chartSettings.labelSettings!.showWeekEndDays\r\n        ) {\r\n          return this.isWeekEndDay(d.dayOfWeek) ? lineWeekEndHeigh : lineWeekDayHeigh;\r\n        }\r\n\r\n        return 0;\r\n      })\r\n      .attr('stroke', '#000');\r\n\r\n    insideLabels\r\n      .append('text')\r\n      .attr('transform', (d: ChartDataModel) =>\r\n        ((x0(d[groupKey]) || 0) + x0.bandwidth() / 2 + Math.PI / 2) % (2 * Math.PI) < Math.PI\r\n          ? 'rotate(90)translate(0,16)'\r\n          : 'rotate(-90)translate(0,-9)',\r\n      )\r\n      .style('font-size', `${buildModel.chartSettings.fontSettings!.fontSize}px`)\r\n      .text((d: ChartDataModel) => {\r\n        if (buildModel.chartSettings.labelSettings!.showWeekDays && !this.isWeekEndDay(d.dayOfWeek)) {\r\n          return d.dayOfWeekName || '';\r\n        } else if (buildModel.chartSettings.labelSettings!.showWeekEndDays && this.isWeekEndDay(d.dayOfWeek)) {\r\n          return d.dayOfWeekName || '';\r\n        }\r\n\r\n        return '';\r\n      });\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport * as d3 from 'd3';\r\nimport {BuilderModel} from '../../../models/builder.model';\r\nimport {ChartBuilderBase, IPolarChartBuilder} from '../../chart-builder.base';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class YAxisBuilder extends ChartBuilderBase implements IPolarChartBuilder {\r\n  build(buildModel: BuilderModel): void {\r\n    const max = this.getMaximum(buildModel);\r\n    const average = this.getAverage(buildModel);\r\n\r\n    const y = this.getY(buildModel);\r\n\r\n    const tickFormat = 5;\r\n    const yTicksValues = d3.ticks(0, max + 1, tickFormat);\r\n\r\n    const yAxis = buildModel.svg.append('g').attr('text-anchor', 'middle');\r\n\r\n    const yMeanTick = yAxis.append('g').datum([average]);\r\n\r\n    yMeanTick\r\n      .append('circle')\r\n      .attr('fill', 'none')\r\n      .attr('stroke', '#C0625E')\r\n      .attr('stroke-dasharray', '5 3')\r\n      .attr('r', <any>y);\r\n\r\n    const yTick = yAxis.selectAll('g').data(yTicksValues).enter().append('g');\r\n\r\n    if (buildModel.chartSettings.tickSettings!.showTicks) {\r\n      yTick.append('circle').attr('fill', 'none').attr('stroke', '#ccdcea').attr('r', y);\r\n    }\r\n\r\n    if (buildModel.chartSettings.tickSettings!.showTicksLabels) {\r\n      yTick\r\n        .append('text')\r\n        .attr('y', (d: number) => {\r\n          return -y(d);\r\n        })\r\n        .attr('dy', '0.35em')\r\n        .attr('fill', 'none')\r\n        .attr('stroke', '#fff')\r\n        .attr('stroke-width', 5)\r\n        .style('font-size', `${buildModel.chartSettings.fontSettings!.fontSize}px`)\r\n        .text(y.tickFormat(tickFormat, 's'));\r\n\r\n      yTick\r\n        .append('text')\r\n        .attr('y', (d: number) => {\r\n          return -y(d);\r\n        })\r\n        .attr('dy', '0.35em')\r\n        .style('font-size', `${buildModel.chartSettings.fontSettings!.fontSize}px`)\r\n        .text(y.tickFormat(5, 's'));\r\n    }\r\n  }\r\n\r\n  protected override getYDomain(buildModel: BuilderModel): number {\r\n    const keys = buildModel.chartDataSettings.keys;\r\n\r\n    return (\r\n      d3.max(buildModel.data, (d: any) => {\r\n        let sumOfCurrentKey = 0;\r\n        keys.forEach((k) => (sumOfCurrentKey += d[k]));\r\n        return sumOfCurrentKey;\r\n      }) || 0\r\n    );\r\n  }\r\n\r\n  protected override getMaximumValue(buildModel: BuilderModel): number {\r\n    const keys = buildModel.chartDataSettings.keys;\r\n\r\n    return d3.max(buildModel.data, (d: any) => d3.sum(keys, (k) => (d as any)[k])) || 0;\r\n  }\r\n\r\n  protected override getAverageValue(buildModel: BuilderModel): number {\r\n    const keys = buildModel.chartDataSettings.keys;\r\n\r\n    return d3.mean(buildModel.data, (d: any) => d3.sum(keys, (k) => (d as any)[k])) || 0;\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {BuilderModel} from '../../../models/builder.model';\r\nimport {ChartBuilderBase, IPolarChartBuilder} from '../../chart-builder.base';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class LegendBuilder extends ChartBuilderBase implements IPolarChartBuilder {\r\n  build(buildModel: BuilderModel): void {\r\n    if (!buildModel.chartSettings.showLegend) {\r\n      return;\r\n    }\r\n\r\n    const keys = buildModel.chartDataSettings.keys;\r\n\r\n    const z = this.getZ(buildModel);\r\n\r\n    const legend = buildModel.svg\r\n      .append('g')\r\n      .selectAll('g')\r\n      .data(keys)\r\n      .enter()\r\n      .append('g')\r\n      .attr('transform', (_, i: number) => {\r\n        return 'translate(-50,' + (i - (keys.length - 1) / 2) * 25 + ')';\r\n      });\r\n\r\n    legend\r\n      .append('circle')\r\n      .attr('r', 8)\r\n      .attr('fill', <any>z);\r\n\r\n    legend\r\n      .append('text')\r\n      .attr('x', 15)\r\n      .attr('y', 0)\r\n      .attr('dy', '0.35em')\r\n      .text((d: string) => {\r\n        return d;\r\n      });\r\n\r\n    legend.selectAll('text').attr('dx', 15);\r\n  }\r\n}\r\n","import {ChartBuilder} from './chart.builder';\r\nimport {Injectable, ElementRef} from '@angular/core';\r\n\r\nimport * as d3 from 'd3';\r\nimport * as lodash from 'lodash';\r\n\r\nimport {ChartDataSettingsModel} from '../../../models/chart.model';\r\nimport {NgxPolarChartSettings} from '../../../models/ngx-group-chart-settings.model';\r\nimport {ChartDataModel} from '../../../models/chart.model';\r\nimport {BuilderModel} from '../../../models/builder.model';\r\nimport {XAxisBuilder} from './x-axis.builder';\r\nimport {YAxisBuilder} from './y-axis.builder';\r\nimport {LegendBuilder} from './legend.builder';\r\nimport {IPolarChartBuilder, IBuilder} from '../../chart-builder.base';\r\nimport {isDataEmpty} from '../../../common/polar-chart-common.utils';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class Builder implements IBuilder {\r\n  private builders: IPolarChartBuilder[] = [];\r\n\r\n  private defaultPlotSettings: NgxPolarChartSettings = {\r\n    width: 960,\r\n    height: 800,\r\n    fontSettings: {\r\n      fontFamily: 'sans-serif',\r\n      fontSize: 16,\r\n    },\r\n    showToolTip: true,\r\n    labelSettings: {\r\n      showWeekDays: false,\r\n      showWeekEndDays: true,\r\n    },\r\n    tickSettings: {\r\n      showTicks: true,\r\n      showTicksLabels: true,\r\n    },\r\n    showLegend: true,\r\n  };\r\n\r\n  constructor(\r\n    chartBuilder: ChartBuilder,\r\n    xAxisBuilder: XAxisBuilder,\r\n    yAxisBuilder: YAxisBuilder,\r\n    legendBuilder: LegendBuilder,\r\n  ) {\r\n    this.builders.push(chartBuilder);\r\n    this.builders.push(xAxisBuilder);\r\n    this.builders.push(yAxisBuilder);\r\n    this.builders.push(legendBuilder);\r\n  }\r\n\r\n  public buildChart(\r\n    chartContainer: ElementRef | undefined,\r\n    chartId: string,\r\n    data: ChartDataModel[],\r\n    plotSettings: NgxPolarChartSettings,\r\n    chartDataSettings: ChartDataSettingsModel,\r\n  ): void {\r\n    if (!chartContainer) return;\r\n\r\n    d3.select(`#${chartId} svg`).remove();\r\n\r\n    if (isDataEmpty(data)) {\r\n      return;\r\n    }\r\n\r\n    const element = chartContainer!.nativeElement;\r\n    const plotSettingsCopy = this.copyPlotSettings(plotSettings) || {};\r\n\r\n    this.overridePlotSettings(plotSettingsCopy);\r\n    this.overrideGroupColorSettings(plotSettingsCopy, chartDataSettings);\r\n\r\n    const width = plotSettingsCopy.width!;\r\n    const height = plotSettingsCopy.height!;\r\n\r\n    const fontSize = plotSettingsCopy.fontSettings!.fontSize!;\r\n    const fontFamily = plotSettingsCopy.fontSettings!.fontFamily!;\r\n\r\n    const svg = d3\r\n      .select(element)\r\n      .append('svg')\r\n      .attr('viewBox', `${-width / 2} ${-height / 2} ${width} ${height}`)\r\n      .style('width', '100%')\r\n      .style('height', '100%')\r\n      .style('font', `${fontSize}px ${fontFamily}`);\r\n\r\n    const buildObject: BuilderModel = {\r\n      svg: svg,\r\n      chartDataSettings: chartDataSettings,\r\n      data: data,\r\n      chartSettings: plotSettingsCopy,\r\n    };\r\n\r\n    this.builders.forEach((b) => b.build(buildObject));\r\n    this.builders.forEach((b) => b.cleanup());\r\n  }\r\n\r\n  private overrideGroupColorSettings(\r\n    plotSettings: NgxPolarChartSettings,\r\n    chartDataSettings: ChartDataSettingsModel,\r\n  ): void {\r\n    if (chartDataSettings.keyColors.length === plotSettings.barsSettings?.groupColors?.length) {\r\n      chartDataSettings.keyColors = plotSettings.barsSettings?.groupColors;\r\n    }\r\n  }\r\n\r\n  private overridePlotSettings(plotSettings: NgxPolarChartSettings): void {\r\n    plotSettings.width ??= this.defaultPlotSettings.width;\r\n    plotSettings.height ??= this.defaultPlotSettings.height;\r\n\r\n    if (!plotSettings.fontSettings) {\r\n      plotSettings.fontSettings = {};\r\n    }\r\n\r\n    plotSettings.fontSettings.fontFamily ??= this.defaultPlotSettings.fontSettings!.fontFamily;\r\n    plotSettings.fontSettings.fontSize ??= this.defaultPlotSettings.fontSettings!.fontSize;\r\n\r\n    plotSettings.showToolTip ??= this.defaultPlotSettings.showToolTip;\r\n\r\n    if (!plotSettings.labelSettings) {\r\n      plotSettings.labelSettings = {};\r\n    }\r\n\r\n    plotSettings.labelSettings.showWeekDays ??= this.defaultPlotSettings.labelSettings!.showWeekDays;\r\n    plotSettings.labelSettings.showWeekEndDays ??= this.defaultPlotSettings.labelSettings!.showWeekEndDays;\r\n\r\n    if (!plotSettings.tickSettings) {\r\n      plotSettings.tickSettings = {};\r\n    }\r\n\r\n    plotSettings.tickSettings.showTicks ??= this.defaultPlotSettings.tickSettings!.showTicks;\r\n    plotSettings.tickSettings.showTicksLabels ??= this.defaultPlotSettings.tickSettings!.showTicksLabels;\r\n\r\n    plotSettings.showLegend ??= this.defaultPlotSettings.showLegend!;\r\n  }\r\n\r\n  private copyPlotSettings(plotSettings: NgxPolarChartSettings): NgxPolarChartSettings {\r\n    return lodash.cloneDeep(plotSettings);\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport * as d3 from 'd3';\r\nimport {BuilderModel} from '../../../models/builder.model';\r\nimport {ChartBuilderBase, IPolarChartBuilder} from '../../chart-builder.base';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class ChartBuilder extends ChartBuilderBase implements IPolarChartBuilder {\r\n  build(buildModel: BuilderModel): void {\r\n    const innerRadius = this.getInnerRadius(buildModel);\r\n\r\n    const arc = d3\r\n      .arc()\r\n      .innerRadius(function (d: any) {\r\n        return y(d[0]);\r\n      })\r\n      .outerRadius(function (d: any) {\r\n        return y(d[1]);\r\n      })\r\n      .startAngle(function (d: any) {\r\n        return x0(d.data.key) || 0;\r\n      })\r\n      .endAngle(function (d: any) {\r\n        return (x0(d.data.key) || 0) + x0.bandwidth();\r\n      })\r\n      .padAngle(0.01)\r\n      .padRadius(innerRadius);\r\n\r\n    const x0 = this.getX0(buildModel);\r\n    const y = this.getY(buildModel);\r\n    const z = this.getZ(buildModel);\r\n\r\n    buildModel.svg\r\n      .append('g')\r\n      .selectAll('g')\r\n      .data((d3.stack().keys(buildModel.chartDataSettings.keys) as any)(buildModel.data))\r\n      .enter()\r\n      .append('g')\r\n      .attr('fill', (d: any) => {\r\n        return z(d.key) as string;\r\n      })\r\n      .selectAll('path')\r\n      .data((d: any) => {\r\n        return d.map((v: any) => ((v.key = d.key), v));\r\n      })\r\n      .enter()\r\n      .append('path')\r\n      .attr('d', <any>arc)\r\n      .append('title')\r\n      .text((d: any) => (buildModel.chartSettings.showToolTip ? `${d.key}: ${d.data[d.key]}` : ''));\r\n  }\r\n\r\n  protected override getYDomain(buildModel: BuilderModel): number {\r\n    const keys = buildModel.chartDataSettings.keys;\r\n\r\n    return (\r\n      d3.max(buildModel.data, (d: any) => {\r\n        let sumOfCurrentKey = 0;\r\n        keys.forEach((k) => (sumOfCurrentKey += d[k]));\r\n        return sumOfCurrentKey;\r\n      }) || 0\r\n    );\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {ChartDataModel} from '../../../models/chart.model';\r\nimport {BuilderModel} from '../../../models/builder.model';\r\nimport {ChartBuilderBase, IPolarChartBuilder} from '../../chart-builder.base';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class XAxisBuilder extends ChartBuilderBase implements IPolarChartBuilder {\r\n  build(buildModel: BuilderModel): void {\r\n    const innerRadius = this.getInnerRadius(buildModel);\r\n    const outerRadius = this.getOuterRadius(buildModel);\r\n\r\n    const groupKey = 'key';\r\n\r\n    const x0 = this.getX0(buildModel);\r\n\r\n    var outsideLabels = buildModel.svg\r\n      .append('g')\r\n      .selectAll()\r\n      .data(buildModel.data)\r\n      .enter()\r\n      .append('g')\r\n      .attr('text-anchor', 'middle')\r\n      .attr(\r\n        'transform',\r\n        (d: ChartDataModel) => `\r\n        rotate(${(((x0(d[groupKey]) || 0) + x0.bandwidth() / 2) * 180) / Math.PI - 90})\r\n        translate(${outerRadius + 35},0)\r\n      `,\r\n      );\r\n\r\n    outsideLabels\r\n      .append('text')\r\n      .attr('transform', (d: ChartDataModel) =>\r\n        ((x0(d[groupKey]) || 0) + x0.bandwidth() / 2 + Math.PI / 2) % (2 * Math.PI) < Math.PI\r\n          ? 'rotate(90)translate(0,16)'\r\n          : 'rotate(-90)translate(0,-9)',\r\n      )\r\n      .style('font-size', `${buildModel.chartSettings.fontSettings!.fontSize}px`)\r\n      .text((d) => d[groupKey]);\r\n\r\n    var insideLabels = buildModel.svg\r\n      .append('g')\r\n      .selectAll('g')\r\n      .data(buildModel.data)\r\n      .enter()\r\n      .append('g')\r\n      .attr('text-anchor', 'middle')\r\n      .attr(\r\n        'transform',\r\n        (d: ChartDataModel) => `\r\n        rotate(${(((x0(d[groupKey]) || 0) + x0.bandwidth() / 2) * 180) / Math.PI - 90})\r\n        translate(${innerRadius},0)\r\n      `,\r\n      );\r\n\r\n    const lineHeight = -4;\r\n\r\n    insideLabels\r\n      .append('line')\r\n      .attr('x2', (_: ChartDataModel) => {\r\n        return lineHeight;\r\n      })\r\n      .attr('stroke', '#000');\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport * as d3 from 'd3';\r\nimport {BuilderModel} from '../../../models/builder.model';\r\nimport {ChartBuilderBase, IPolarChartBuilder} from '../../chart-builder.base';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class YAxisBuilder extends ChartBuilderBase implements IPolarChartBuilder {\r\n  build(buildModel: BuilderModel): void {\r\n    const max = this.getMaximum(buildModel);\r\n    const average = this.getAverage(buildModel);\r\n\r\n    const y = this.getY(buildModel);\r\n\r\n    const tickFormat = 5;\r\n    const yTicksValues = d3.ticks(0, max + 1, tickFormat);\r\n\r\n    const yAxis = buildModel.svg.append('g').attr('text-anchor', 'middle');\r\n\r\n    const yMeanTick = yAxis.append('g').datum([average]);\r\n\r\n    yMeanTick\r\n      .append('circle')\r\n      .attr('fill', 'none')\r\n      .attr('stroke', '#C0625E')\r\n      .attr('stroke-dasharray', '5 3')\r\n      .attr('r', <any>y);\r\n\r\n    const yTick = yAxis.selectAll('g').data(yTicksValues).enter().append('g');\r\n\r\n    if (buildModel.chartSettings.tickSettings!.showTicks) {\r\n      yTick.append('circle').attr('fill', 'none').attr('stroke', '#ccdcea').attr('r', y);\r\n    }\r\n\r\n    if (buildModel.chartSettings.tickSettings!.showTicksLabels) {\r\n      yTick\r\n        .append('text')\r\n        .attr('y', (d: number) => {\r\n          return -y(d);\r\n        })\r\n        .attr('dy', '0.35em')\r\n        .attr('fill', 'none')\r\n        .attr('stroke', '#fff')\r\n        .attr('stroke-width', 5)\r\n        .style('font-size', `${buildModel.chartSettings.fontSettings!.fontSize}px`)\r\n        .text(y.tickFormat(tickFormat, 's'));\r\n\r\n      yTick\r\n        .append('text')\r\n        .attr('y', (d: number) => {\r\n          return -y(d);\r\n        })\r\n        .attr('dy', '0.35em')\r\n        .style('font-size', `${buildModel.chartSettings.fontSettings!.fontSize}px`)\r\n        .text(y.tickFormat(5, 's'));\r\n    }\r\n  }\r\n\r\n  protected override getYDomain(buildModel: BuilderModel): number {\r\n    const keys = buildModel.chartDataSettings.keys;\r\n\r\n    return (\r\n      d3.max(buildModel.data, (d: any) => {\r\n        let sumOfCurrentKey = 0;\r\n        keys.forEach((k) => (sumOfCurrentKey += d[k]));\r\n        return sumOfCurrentKey;\r\n      }) || 0\r\n    );\r\n  }\r\n\r\n  protected override getMaximumValue(buildModel: BuilderModel): number {\r\n    const keys = buildModel.chartDataSettings.keys;\r\n\r\n    return d3.max(buildModel.data, (d: any) => d3.sum(keys, (k) => (d as any)[k])) || 0;\r\n  }\r\n\r\n  protected override getAverageValue(buildModel: BuilderModel): number {\r\n    const keys = buildModel.chartDataSettings.keys;\r\n\r\n    return d3.mean(buildModel.data, (d: any) => d3.sum(keys, (k) => (d as any)[k])) || 0;\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {BuilderModel} from '../../../models/builder.model';\r\nimport {ChartBuilderBase, IPolarChartBuilder} from '../../chart-builder.base';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class LegendBuilder extends ChartBuilderBase implements IPolarChartBuilder {\r\n  build(buildModel: BuilderModel): void {\r\n    if (!buildModel.chartSettings.showLegend) {\r\n      return;\r\n    }\r\n\r\n    const keys = buildModel.chartDataSettings.keys;\r\n\r\n    const z = this.getZ(buildModel);\r\n\r\n    const legend = buildModel.svg\r\n      .append('g')\r\n      .selectAll('g')\r\n      .data(keys)\r\n      .enter()\r\n      .append('g')\r\n      .attr('transform', (_, i: number) => {\r\n        return 'translate(-50,' + (i - (keys.length - 1) / 2) * 25 + ')';\r\n      });\r\n\r\n    legend\r\n      .append('circle')\r\n      .attr('r', 8)\r\n      .attr('fill', <any>z);\r\n\r\n    legend\r\n      .append('text')\r\n      .attr('x', 15)\r\n      .attr('y', 0)\r\n      .attr('dy', '0.35em')\r\n      .text((d: string) => {\r\n        return d;\r\n      });\r\n\r\n    legend.selectAll('text').attr('dx', 15);\r\n  }\r\n}\r\n","import {ChartBuilder} from './chart.builder';\r\nimport {Injectable, ElementRef} from '@angular/core';\r\n\r\nimport * as d3 from 'd3';\r\nimport * as lodash from 'lodash';\r\n\r\nimport {ChartDataSettingsModel} from '../../../models/chart.model';\r\nimport {NgxPolarChartSettings} from '../../../models/ngx-group-chart-settings.model';\r\nimport {ChartDataModel} from '../../../models/chart.model';\r\nimport {BuilderModel} from '../../../models/builder.model';\r\nimport {XAxisBuilder} from './x-axis.builder';\r\nimport {YAxisBuilder} from './y-axis.builder';\r\nimport {LegendBuilder} from './legend.builder';\r\nimport {IPolarChartBuilder, IBuilder} from '../../chart-builder.base';\r\nimport {isDataEmpty} from '../../../common/polar-chart-common.utils';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class Builder implements IBuilder {\r\n  private builders: IPolarChartBuilder[] = [];\r\n\r\n  private defaultPlotSettings: NgxPolarChartSettings = {\r\n    width: 960,\r\n    height: 800,\r\n    fontSettings: {\r\n      fontFamily: 'sans-serif',\r\n      fontSize: 16,\r\n    },\r\n    showToolTip: true,\r\n    labelSettings: {\r\n      showWeekDays: false,\r\n      showWeekEndDays: true,\r\n    },\r\n    tickSettings: {\r\n      showTicks: true,\r\n      showTicksLabels: true,\r\n    },\r\n    showLegend: true,\r\n  };\r\n\r\n  constructor(\r\n    chartBuilder: ChartBuilder,\r\n    xAxisBuilder: XAxisBuilder,\r\n    yAxisBuilder: YAxisBuilder,\r\n    legendBuilder: LegendBuilder,\r\n  ) {\r\n    this.builders.push(chartBuilder);\r\n    this.builders.push(xAxisBuilder);\r\n    this.builders.push(yAxisBuilder);\r\n    this.builders.push(legendBuilder);\r\n  }\r\n\r\n  public buildChart(\r\n    chartContainer: ElementRef | undefined,\r\n    chartId: string,\r\n    data: ChartDataModel[],\r\n    plotSettings: NgxPolarChartSettings,\r\n    chartDataSettings: ChartDataSettingsModel,\r\n  ): void {\r\n    if (!chartContainer) return;\r\n\r\n    d3.select(`#${chartId} svg`).remove();\r\n\r\n    if (isDataEmpty(data)) {\r\n      return;\r\n    }\r\n\r\n    const element = chartContainer!.nativeElement;\r\n    const plotSettingsCopy = this.copyPlotSettings(plotSettings) || {};\r\n\r\n    this.overridePlotSettings(plotSettingsCopy);\r\n    this.overrideGroupColorSettings(plotSettingsCopy, chartDataSettings);\r\n\r\n    const width = plotSettingsCopy.width!;\r\n    const height = plotSettingsCopy.height!;\r\n\r\n    const fontSize = plotSettingsCopy.fontSettings!.fontSize!;\r\n    const fontFamily = plotSettingsCopy.fontSettings!.fontFamily!;\r\n\r\n    const svg = d3\r\n      .select(element)\r\n      .append('svg')\r\n      .attr('viewBox', `${-width / 2} ${-height / 2} ${width} ${height}`)\r\n      .style('width', '100%')\r\n      .style('height', '100%')\r\n      .style('font', `${fontSize}px ${fontFamily}`);\r\n\r\n    const buildObject: BuilderModel = {\r\n      svg: svg,\r\n      chartDataSettings: chartDataSettings,\r\n      data: data,\r\n      chartSettings: plotSettingsCopy,\r\n    };\r\n\r\n    this.builders.forEach((b) => b.build(buildObject));\r\n    this.builders.forEach((b) => b.cleanup());\r\n  }\r\n\r\n  private overrideGroupColorSettings(\r\n    plotSettings: NgxPolarChartSettings,\r\n    chartDataSettings: ChartDataSettingsModel,\r\n  ): void {\r\n    if (chartDataSettings.keyColors.length === plotSettings.barsSettings?.groupColors?.length) {\r\n      chartDataSettings.keyColors = plotSettings.barsSettings?.groupColors;\r\n    }\r\n  }\r\n\r\n  private overridePlotSettings(plotSettings: NgxPolarChartSettings): void {\r\n    plotSettings.width ??= this.defaultPlotSettings.width;\r\n    plotSettings.height ??= this.defaultPlotSettings.height;\r\n\r\n    if (!plotSettings.fontSettings) {\r\n      plotSettings.fontSettings = {};\r\n    }\r\n\r\n    plotSettings.fontSettings.fontFamily ??= this.defaultPlotSettings.fontSettings!.fontFamily;\r\n    plotSettings.fontSettings.fontSize ??= this.defaultPlotSettings.fontSettings!.fontSize;\r\n\r\n    plotSettings.showToolTip ??= this.defaultPlotSettings.showToolTip;\r\n\r\n    if (!plotSettings.labelSettings) {\r\n      plotSettings.labelSettings = {};\r\n    }\r\n\r\n    plotSettings.labelSettings.showWeekDays ??= this.defaultPlotSettings.labelSettings!.showWeekDays;\r\n    plotSettings.labelSettings.showWeekEndDays ??= this.defaultPlotSettings.labelSettings!.showWeekEndDays;\r\n\r\n    if (!plotSettings.tickSettings) {\r\n      plotSettings.tickSettings = {};\r\n    }\r\n\r\n    plotSettings.tickSettings.showTicks ??= this.defaultPlotSettings.tickSettings!.showTicks;\r\n    plotSettings.tickSettings.showTicksLabels ??= this.defaultPlotSettings.tickSettings!.showTicksLabels;\r\n\r\n    plotSettings.showLegend ??= this.defaultPlotSettings.showLegend!;\r\n  }\r\n\r\n  private copyPlotSettings(plotSettings: NgxPolarChartSettings): NgxPolarChartSettings {\r\n    return lodash.cloneDeep(plotSettings);\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n\r\nimport {IBuilder} from '../builders/chart-builder.base';\r\nimport {Builder as GroupDateBuilder} from '../builders/group-builder/group-date-builder/builder';\r\nimport {Builder as GroupSeriesBuilder} from '../builders/group-builder/group-series-builder/builder';\r\nimport {Builder as StackDateBuilder} from '../builders/stack-builder/stack-date-builder/builder';\r\nimport {Builder as StackSeriesBuilder} from '../builders/stack-builder/stack-series-builder/builder';\r\nimport {NgxChartData} from '../models/ngx-group-chart.model';\r\nimport {isNgxDate, isNgxString} from '../common/polar-chart-common.utils';\r\n\r\nexport enum PolarChartIdentity {\r\n  Group,\r\n  Stack,\r\n}\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class PolarChartFactory {\r\n  constructor(\r\n    private groupDateBuilder: GroupDateBuilder,\r\n    private groupSeriesBuilder: GroupSeriesBuilder,\r\n    private stackDateBuilder: StackDateBuilder,\r\n    private stackSeriesBuilder: StackSeriesBuilder,\r\n  ) {}\r\n\r\n  public getBuilder(chartData: NgxChartData, chartIdentity: PolarChartIdentity): IBuilder | null {\r\n    switch (chartIdentity) {\r\n      case PolarChartIdentity.Group:\r\n        if (isNgxDate(chartData)) {\r\n          return this.groupDateBuilder;\r\n        }\r\n\r\n        if (isNgxString(chartData)) {\r\n          return this.groupSeriesBuilder;\r\n        }\r\n        return null;\r\n      case PolarChartIdentity.Stack:\r\n        if (isNgxDate(chartData)) {\r\n          return this.stackDateBuilder;\r\n        }\r\n\r\n        if (isNgxString(chartData)) {\r\n          return this.stackSeriesBuilder;\r\n        }\r\n        return null;\r\n      default:\r\n        return null;\r\n    }\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  AfterViewInit,\r\n  OnInit,\r\n  ElementRef,\r\n  Input,\r\n  ViewChild,\r\n  ViewEncapsulation,\r\n  ChangeDetectorRef,\r\n  ChangeDetectionStrategy,\r\n  OnDestroy,\r\n} from '@angular/core';\r\nimport {NgxChartData} from '../models/ngx-group-chart.model';\r\nimport {Subscription, combineLatest} from 'rxjs';\r\nimport {tap} from 'rxjs/operators';\r\nimport {ChartDataModel, ChartDataSettingsModel} from '../models/chart.model';\r\nimport {NgxPolarChartSettings} from '../models/ngx-group-chart-settings.model';\r\nimport {PolarChartService} from '../services/polar-chart.service';\r\nimport {PolarChartFactory, PolarChartIdentity} from '../factory/polar-chart.factory';\r\n\r\n@Component({\r\n  selector: 'ngx-polar-chart-base',\r\n  template: `<div></div>`,\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [PolarChartService],\r\n  styles: [],\r\n})\r\nexport abstract class NgxPolarChartBaseComponent implements AfterViewInit, OnInit, OnDestroy {\r\n  protected data: ChartDataModel[] = [];\r\n  protected dataSet: NgxChartData = null!;\r\n  protected dataSettings: ChartDataSettingsModel = null!;\r\n  protected settings: NgxPolarChartSettings = null!;\r\n\r\n  private subscriptions: Subscription[] = [];\r\n\r\n  protected polarChartId: string = '';\r\n\r\n  @ViewChild('polarChart')\r\n  public chartContainer?: ElementRef;\r\n\r\n  @Input()\r\n  set chartData(chartData: NgxChartData) {\r\n    this.polarChartService.loadChartData(chartData);\r\n  }\r\n\r\n  @Input()\r\n  set chartSettings(chartSettings: NgxPolarChartSettings) {\r\n    this.polarChartService.loadChartSettings(chartSettings);\r\n  }\r\n\r\n  constructor(\r\n    private changeDetector: ChangeDetectorRef,\r\n    private polarChartService: PolarChartService,\r\n    private polarChartFactory: PolarChartFactory,\r\n  ) {\r\n    this.polarChartId = `polarChart-${crypto.randomUUID()}`;\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n    this.createChart();\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.subscriptions.push(\r\n      combineLatest([this.polarChartService.dateChartData, this.polarChartService.chartSettings])\r\n        .pipe(tap(() => this.changeDetector.markForCheck()))\r\n        .subscribe(([chartData, chartSettings]) => {\r\n          if (!!chartData) {\r\n            const groupedData = this.polarChartService.processDateGroup(chartData, chartSettings?.locale);\r\n\r\n            this.data = groupedData.data;\r\n            this.dataSettings = groupedData.settings;\r\n            this.dataSet = chartData;\r\n            this.settings = chartSettings;\r\n\r\n            this.createChart();\r\n          }\r\n        }),\r\n      combineLatest([this.polarChartService.seriesChartData, this.polarChartService.chartSettings])\r\n        .pipe(tap(() => this.changeDetector.markForCheck()))\r\n        .subscribe(([chartData, chartSettings]) => {\r\n          if (!!chartData) {\r\n            const groupedData = this.polarChartService.processSeriesGroup(chartData);\r\n\r\n            this.data = groupedData.data;\r\n            this.dataSettings = groupedData.settings;\r\n            this.dataSet = chartData;\r\n            this.settings = chartSettings;\r\n\r\n            this.createChart();\r\n          }\r\n        }),\r\n    );\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.subscriptions.forEach((s) => s.unsubscribe());\r\n  }\r\n\r\n  public abstract getChartIdentity(): PolarChartIdentity;\r\n\r\n  private createChart(): void {\r\n    const builder = this.polarChartFactory.getBuilder(this.dataSet, this.getChartIdentity());\r\n\r\n    if (!!builder) {\r\n      builder.buildChart(this.chartContainer, this.polarChartId, this.data, this.settings, this.dataSettings);\r\n    }\r\n  }\r\n}\r\n","import {Component, ViewEncapsulation, ChangeDetectionStrategy} from '@angular/core';\r\nimport {PolarChartService} from '../services/polar-chart.service';\r\nimport {PolarChartIdentity} from '../factory/polar-chart.factory';\r\nimport {NgxPolarChartBaseComponent} from '../common/ngx-polar-chart-base.component';\r\n\r\n@Component({\r\n  selector: 'ngx-polar-chart-group',\r\n  template: `<div [attr.id]=\"polarChartId\" #polarChart></div>`,\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [PolarChartService],\r\n  styles: [],\r\n})\r\nexport class NgxPolarChartGroupComponent extends NgxPolarChartBaseComponent {\r\n  public override getChartIdentity(): PolarChartIdentity {\r\n    return PolarChartIdentity.Group;\r\n  }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {NgxPolarChartGroupComponent} from './ngx-polar-chart-group.component';\r\n\r\n@NgModule({\r\n  declarations: [NgxPolarChartGroupComponent],\r\n  imports: [],\r\n  exports: [NgxPolarChartGroupComponent],\r\n})\r\nexport class NgxPolarChartGroupModule {}\r\n","import {Component, ViewEncapsulation, ChangeDetectionStrategy} from '@angular/core';\r\nimport {PolarChartService} from '../services/polar-chart.service';\r\nimport {PolarChartIdentity} from '../factory/polar-chart.factory';\r\nimport {NgxPolarChartBaseComponent} from '../common/ngx-polar-chart-base.component';\r\n\r\n@Component({\r\n  selector: 'ngx-polar-chart-stack',\r\n  template: `<div [attr.id]=\"polarChartId\" #polarChart></div>`,\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [PolarChartService],\r\n  styles: [],\r\n})\r\nexport class NgxPolarChartStackComponent extends NgxPolarChartBaseComponent {\r\n  public override getChartIdentity(): PolarChartIdentity {\r\n    return PolarChartIdentity.Stack;\r\n  }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {NgxPolarChartStackComponent} from './ngx-polar-chart-stack.component';\r\n\r\n@NgModule({\r\n  declarations: [NgxPolarChartStackComponent],\r\n  imports: [],\r\n  exports: [NgxPolarChartStackComponent],\r\n})\r\nexport class NgxPolarChartStackModule {}\r\n","import {NgModule} from '@angular/core';\r\n\r\nimport {NgxPolarChartGroupModule} from './ngx-polar-chart-group/ngx-polar-chart-group.module';\r\nimport {NgxPolarChartStackModule} from './ngx-polar-chart-stack/ngx-polar-chart-stack.module';\r\n\r\n@NgModule({\r\n  exports: [NgxPolarChartGroupModule, NgxPolarChartStackModule],\r\n})\r\nexport class NgxPolarChartModule {}\r\n","/*\r\n * Public API Surface of ngx-polar-chart\r\n */\r\n\r\nexport * from './lib/ngx-polar-chart.module';\r\n\r\nexport * from './lib/models/ngx-group-chart.model';\r\nexport * from './lib/models/ngx-group-chart-settings.model';\r\n\r\nexport * from './lib/ngx-polar-chart-group/ngx-polar-chart-group.component';\r\nexport * from './lib/ngx-polar-chart-group/ngx-polar-chart-group.module';\r\n\r\nexport * from './lib/ngx-polar-chart-stack/ngx-polar-chart-stack.component';\r\nexport * from './lib/ngx-polar-chart-stack/ngx-polar-chart-stack.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ChartBuilder","XAxisBuilder","YAxisBuilder","LegendBuilder","Builder","i1.ChartBuilder","i2.XAxisBuilder","i3.YAxisBuilder","i4.LegendBuilder","i1.Builder","i2.Builder","i3.Builder","i4.Builder","i1.PolarChartService","i2.PolarChartFactory"],"mappings":"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"}