igniteui-angular-extras 21.2.6 → 22.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"igniteui-angular-extras.mjs","sources":["../../../projects/igniteui-angular-extras/src/lib/directives/chart-integration/chart-types.ts","../../../projects/igniteui-angular-extras/src/lib/directives/chart-integration/initializers.ts","../../../projects/igniteui-angular-extras/src/lib/directives/chart-integration/chart-integration.directive.ts","../../../projects/igniteui-angular-extras/src/lib/directives/conditional-formatting/conditional-formatting.directive.ts","../../../projects/igniteui-angular-extras/src/images/charts.ts","../../../projects/igniteui-angular-extras/src/lib/pipes/svg.pipe.ts","../../../projects/igniteui-angular-extras/src/lib/context-menu/chart-dialog/chart-dialog.component.ts","../../../projects/igniteui-angular-extras/src/lib/context-menu/chart-dialog/chart-dialog.component.html","../../../projects/igniteui-angular-extras/src/images/conditions.ts","../../../projects/igniteui-angular-extras/src/lib/context-menu/context-menu.component.ts","../../../projects/igniteui-angular-extras/src/lib/context-menu/context-menu.component.html","../../../projects/igniteui-angular-extras/src/lib/context-menu/igx-context-menu.directive.ts","../../../projects/igniteui-angular-extras/src/public-api.ts","../../../projects/igniteui-angular-extras/src/igniteui-angular-extras.ts"],"sourcesContent":["export enum CHART_TYPE {\n Pie = 'Pie',\n ColumnGrouped = 'ColumnGrouped',\n AreaGrouped = 'AreaGrouped',\n LineGrouped = 'LineGrouped',\n BarGrouped = 'BarGrouped',\n ColumnStacked = 'ColumnStacked',\n AreaStacked = 'AreaStacked',\n LineStacked = 'LineStacked',\n BarStacked = 'BarStacked',\n Column100Stacked = 'Column100Stacked',\n Area100Stacked = 'Area100Stacked',\n Line100Stacked = 'Line100Stacked',\n Bar100Stacked = 'Bar100Stacked',\n ScatterPoint = 'ScatterPoint',\n ScatterBubble = 'ScatterBubble',\n ScatterLine = 'ScatterLine'\n}\n\nexport enum OPTIONS_TYPE {\n Chart = 'chartOptions',\n Series = 'seriesModel',\n XAxis = 'xAxisOptions',\n YAxis = 'yAxisOptions',\n StackedSeries = 'stackedFragmentOptions'\n}\n","// tslint:disable: max-line-length\nimport { EventEmitter, Type } from '@angular/core';\nimport {\n IgxBarSeriesComponent, IgxBubbleSeriesComponent, IgxCategoryXAxisComponent,\n IgxCategoryYAxisComponent, IgxDataChartComponent, IgxNumericXAxisComponent,\n IgxNumericYAxisComponent, IgxPieChartComponent, IgxScatterLineSeriesComponent,\n IgxScatterSeriesComponent, IgxStacked100BarSeriesComponent, IgxStackedBarSeriesComponent,\n IgxStackedFragmentSeriesComponent\n} from 'igniteui-angular-charts';\n\nclass SeriesFactory {\n public create<T>(type: (new () => T)): T {\n return new type();\n }\n}\n\nexport interface IOptions {\n [key: string]: any;\n}\n\nexport interface IChartComponentOptions {\n chartOptions?: IOptions;\n seriesOptions?: IOptions[];\n xAxisOptions?: IOptions;\n seriesModel?: IOptions;\n yAxisOptions?: IOptions;\n stackedFragmentOptions?: IOptions;\n}\n\nexport abstract class ChartInitializer {\n protected yAxis;\n protected xAxis;\n protected seriesFactory = new SeriesFactory();\n constructor() { }\n\n public applyOptions(target: any, options: IOptions) {\n if (options) {\n Object.keys(options).forEach(key => {\n if (target[key] instanceof EventEmitter) {\n target[key].subscribe(options[key]);\n } else {\n target[key] = options[key];\n }\n });\n }\n }\n\n public abstract initChart(chart: any, options?: IChartComponentOptions): any;\n}\n\nexport class IgxPieChartInitializer extends ChartInitializer {\n constructor() {\n super();\n }\n\n public initChart(chart: IgxPieChartComponent, options: IChartComponentOptions) {\n this.applyOptions(chart, options.chartOptions);\n return chart;\n }\n}\n\nexport class IgxDataChartInitializer extends ChartInitializer {\n public seriesType: Type<any>;\n\n constructor(seriesType: Type<any>) {\n super();\n switch (seriesType) {\n case IgxBarSeriesComponent:\n this.xAxis = new IgxNumericXAxisComponent();\n this.yAxis = new IgxCategoryYAxisComponent();\n break;\n case IgxScatterSeriesComponent:\n case IgxBubbleSeriesComponent:\n case IgxScatterLineSeriesComponent:\n this.xAxis = new IgxNumericXAxisComponent();\n this.yAxis = new IgxNumericYAxisComponent();\n break;\n default:\n this.xAxis = new IgxCategoryXAxisComponent();\n this.yAxis = new IgxNumericYAxisComponent();\n }\n\n this.seriesType = seriesType;\n }\n\n public initChart(chart: IgxDataChartComponent, options: IChartComponentOptions): IgxDataChartComponent {\n if (chart.series.count) {\n chart.series.clear();\n }\n if (chart.axes.count) {\n chart.axes.clear();\n }\n options.seriesOptions.forEach((option) => {\n const series = this.seriesFactory.create(this.seriesType);\n series.xAxis = this.xAxis;\n series.yAxis = this.yAxis;\n this.applyOptions(series, option);\n chart.series.add(series);\n });\n this.applyOptions(chart, options.chartOptions);\n this.applyOptions(this.xAxis, options.xAxisOptions);\n this.applyOptions(this.yAxis, options.yAxisOptions);\n chart.axes.add(this.xAxis);\n chart.axes.add(this.yAxis);\n return chart;\n }\n}\n\nexport class IgxStackedDataChartInitializer extends ChartInitializer {\n public seriesType: Type<any>;\n\n constructor(seriesType: Type<any>) {\n super();\n if (seriesType === IgxStackedBarSeriesComponent || seriesType === IgxStacked100BarSeriesComponent) {\n this.xAxis = new IgxNumericXAxisComponent();\n this.yAxis = new IgxCategoryYAxisComponent();\n } else {\n this.xAxis = new IgxCategoryXAxisComponent();\n this.yAxis = new IgxNumericYAxisComponent();\n }\n this.seriesType = seriesType;\n }\n public initChart(chart: IgxDataChartComponent, options?: IChartComponentOptions): IgxDataChartComponent {\n if (chart.series.count) {\n chart.series.clear();\n }\n if (chart.axes.count) {\n chart.axes.clear();\n }\n\n const series = this.seriesFactory.create(this.seriesType);\n series.xAxis = this.xAxis;\n series.yAxis = this.yAxis;\n options.stackedFragmentOptions.forEach(fragOpt => {\n const frag = new IgxStackedFragmentSeriesComponent();\n this.applyOptions(frag, fragOpt);\n series.series.add(frag);\n });\n this.applyOptions(series, options.seriesOptions);\n this.applyOptions(chart, options.chartOptions);\n this.applyOptions(this.xAxis, options.xAxisOptions);\n this.applyOptions(this.yAxis, options.yAxisOptions);\n chart.series.add(series);\n chart.axes.add(this.xAxis);\n chart.axes.add(this.yAxis);\n return chart;\n }\n}\n","import {\n ComponentRef, Directive,\n EventEmitter, Input, Output, Type, ViewContainerRef\n} from '@angular/core';\nimport {\n IgxAreaSeriesComponent, IgxBarSeriesComponent, IgxBubbleSeriesComponent, IgxColumnSeriesComponent,\n IgxDataChartComponent, IgxItemLegendComponent, IgxLegendComponent, IgxLineSeriesComponent, IgxPieChartComponent,\n IgxScatterLineSeriesComponent, IgxScatterSeriesComponent, IgxSizeScaleComponent, IgxStacked100AreaSeriesComponent,\n IgxStacked100BarSeriesComponent, IgxStacked100ColumnSeriesComponent, IgxStacked100LineSeriesComponent,\n IgxStackedAreaSeriesComponent, IgxStackedBarSeriesComponent, IgxStackedColumnSeriesComponent,\n IgxStackedLineSeriesComponent\n} from 'igniteui-angular-charts';\nimport { CHART_TYPE, OPTIONS_TYPE } from './chart-types';\nimport {\n ChartInitializer, IChartComponentOptions, IgxDataChartInitializer,\n IgxPieChartInitializer, IgxStackedDataChartInitializer, IOptions\n} from './initializers';\n\nexport interface IDeterminedChartTypesArgs {\n chartsAvailability: Map<CHART_TYPE, boolean>;\n chartsForCreation: CHART_TYPE[];\n}\n\n@Directive({\n selector: '[igxChartIntegration]',\n})\nexport class IgxChartIntegrationDirective {\n @Input()\n public get chartData() {\n return this._chartData;\n }\n\n public set chartData(selectedData: any[]) {\n const charts = new Set(this._dataChartTypes);\n const dataModel = selectedData.length ? selectedData[0] : {};\n this._labelMemberPaths = Object.keys(dataModel).filter(key => typeof dataModel[key] === 'string');\n this._valueMemberPaths = Object.keys(dataModel).filter(key => typeof dataModel[key] === 'number');\n this._chartData = selectedData.map((dataRecord, index) => this.addIndexMemberPath(dataRecord, index + 1));\n const args: IDeterminedChartTypesArgs = {\n chartsAvailability: new Map<CHART_TYPE, boolean>(),\n chartsForCreation: []\n };\n\n if (selectedData.length === 0 || this._valueMemberPaths.length === 0) {\n this.chartTypesDetermined.emit(args);\n return;\n }\n if (selectedData.length === 1) {\n charts.forEach((chart, _, set) => {\n const isColumnChart = chart.indexOf('Column') !== -1;\n const isBarChart = chart.indexOf('Bar') !== -1;\n const isPieChart = chart.indexOf('Pie') !== -1;\n if (!(isColumnChart || isBarChart || isPieChart)) {\n set.delete(chart);\n }\n });\n }\n // Config pie chart\n const cannotCreatePieChart = selectedData.some(record => record[this._valueMemberPaths[0]] <= 0);\n if (cannotCreatePieChart) {\n charts.delete(CHART_TYPE.Pie);\n }\n // Config scatter chart member paths\n const canCreateScatterChart = this._valueMemberPaths.length >= 2;\n const canCreateBubbleChart = this._valueMemberPaths.length >= 3;\n if (!canCreateScatterChart) {\n charts.delete(CHART_TYPE.ScatterBubble);\n charts.delete(CHART_TYPE.ScatterLine);\n charts.delete(CHART_TYPE.ScatterPoint);\n }\n if (!canCreateBubbleChart) {\n charts.delete(CHART_TYPE.ScatterBubble);\n }\n\n args.chartsAvailability = this.chartTypesAvailability;\n args.chartsForCreation = [...charts];\n this.chartTypesDetermined.emit(args);\n }\n\n @Output()\n public chartTypesDetermined = new EventEmitter<IDeterminedChartTypesArgs>();\n\n @Output()\n public chartCreationDone = new EventEmitter<any>();\n\n @Input()\n public useLegend = true;\n\n @Input()\n public defaultLabelMemberPath: string = undefined;\n\n @Input()\n public set scatterChartYAxisValueMemberPath(path: string) {\n this._scatterChartYAxisValueMemberPath = path;\n }\n\n public get scatterChartYAxisValueMemberPath() {\n return this._scatterChartYAxisValueMemberPath &&\n this._valueMemberPaths.indexOf(this._scatterChartYAxisValueMemberPath) !== -1 ?\n this._scatterChartYAxisValueMemberPath : this._valueMemberPaths[0];\n }\n\n @Input()\n public set bubbleChartRadiusMemberPath(path: string) {\n this._bubbleChartRadiusMemberPath = path;\n }\n\n public get bubbleChartRadiusMemberPath() {\n return this._bubbleChartRadiusMemberPath &&\n this._valueMemberPaths.indexOf(this._bubbleChartRadiusMemberPath) !== -1 ?\n this._bubbleChartRadiusMemberPath : this._valueMemberPaths[1];\n }\n\n private chartTypesAvailability = new Map<CHART_TYPE, boolean>();\n private customChartComponentOptions = new Map<CHART_TYPE, IChartComponentOptions>();\n private dataCharts = new Map<string, Type<any>>();\n private _scatterChartYAxisValueMemberPath = undefined;\n private _bubbleChartRadiusMemberPath = undefined;\n private _valueMemberPaths = [];\n private _labelMemberPaths = [];\n private _chartData: any[];\n private _sizeScale = new IgxSizeScaleComponent();\n private _dataChartTypes = new Set<CHART_TYPE>();\n private get _labelMemberPath(): string {\n return this.defaultLabelMemberPath && this._chartData.some(r => r[this.defaultLabelMemberPath] !== undefined) ?\n this.defaultLabelMemberPath : this._labelMemberPaths.length > 0 ? this._labelMemberPaths[0] : 'Index';\n }\n\n private get pieChartOptions(): IOptions {\n return {\n width: '85%',\n height: '75%',\n dataSource: this.chartData,\n valueMemberPath: this._valueMemberPaths[0],\n legendLabelMemberPath: this._labelMemberPath,\n labelMemberPath: this._labelMemberPath,\n };\n }\n\n private dataChartSeriesOptionsModel: IOptions = {\n isHighlightingEnabled: true,\n areaFillOpacity: .4,\n markerType: 3,\n showDefaultTooltip: true\n };\n\n private scatterChartSeriesOptionsModel: IOptions = {\n markerType: 3,\n showDefaultTooltip: true\n };\n\n private bubbleChartSeriesOptionsModel: IOptions = {\n radiusScale: this._sizeScale\n };\n\n private get dataChartOptions(): IOptions {\n return {\n width: '100%',\n height: '85%',\n autoMarginWidth: 50,\n isVerticalZoomEnabled: true,\n isHorizontalZoomEnabled: true,\n dataSource: this.chartData\n };\n }\n\n constructor() {\n this.dataCharts.set(CHART_TYPE.ColumnGrouped, IgxColumnSeriesComponent);\n this.dataCharts.set(CHART_TYPE.AreaGrouped, IgxAreaSeriesComponent);\n this.dataCharts.set(CHART_TYPE.LineGrouped, IgxLineSeriesComponent);\n this.dataCharts.set(CHART_TYPE.BarGrouped, IgxBarSeriesComponent);\n\n this.dataCharts.set(CHART_TYPE.ColumnStacked, IgxStackedColumnSeriesComponent);\n this.dataCharts.set(CHART_TYPE.AreaStacked, IgxStackedAreaSeriesComponent);\n this.dataCharts.set(CHART_TYPE.LineStacked, IgxStackedLineSeriesComponent);\n this.dataCharts.set(CHART_TYPE.BarStacked, IgxStackedBarSeriesComponent);\n\n this.dataCharts.set(CHART_TYPE.Column100Stacked, IgxStacked100ColumnSeriesComponent);\n this.dataCharts.set(CHART_TYPE.Area100Stacked, IgxStacked100AreaSeriesComponent);\n this.dataCharts.set(CHART_TYPE.Line100Stacked, IgxStacked100LineSeriesComponent);\n this.dataCharts.set(CHART_TYPE.Bar100Stacked, IgxStacked100BarSeriesComponent);\n\n this.dataCharts.set(CHART_TYPE.ScatterPoint, IgxScatterSeriesComponent);\n this.dataCharts.set(CHART_TYPE.ScatterBubble, IgxBubbleSeriesComponent);\n this.dataCharts.set(CHART_TYPE.ScatterLine, IgxScatterLineSeriesComponent);\n\n this.dataCharts.set(CHART_TYPE.Pie, IgxPieChartComponent);\n const iterable = this.dataCharts.keys();\n for (let head = iterable.next().value; head !== undefined; head = iterable.next().value) {\n this._dataChartTypes.add(head);\n this.chartTypesAvailability.set(head, true);\n this.customChartComponentOptions.set(head, {});\n }\n }\n\n public getAllChartTypes() {\n return Array.from(this._dataChartTypes);\n }\n\n public getAvailableCharts() {\n const res = [];\n this.chartTypesAvailability.forEach((isAvailable, chartType) => {\n if (isAvailable) {\n res.push(chartType);\n }\n });\n return res;\n }\n\n public disableCharts(types: CHART_TYPE[]) {\n types.forEach(type => {\n if (this.chartTypesAvailability.get(type)) {\n this.chartTypesAvailability.set(type, false);\n }\n });\n }\n\n public enableCharts(types: CHART_TYPE[]) {\n types.forEach(type => {\n if (!this.chartTypesAvailability.get(type)) {\n this.chartTypesAvailability.set(type, true);\n }\n });\n }\n\n public chartFactory(type: CHART_TYPE, viewContainerRef?: ViewContainerRef, createdChart?: any) {\n if (!this.chartTypesAvailability.get(type)) {\n return;\n }\n const chartType = this.dataCharts.get(type);\n const options: IChartComponentOptions = this.getChartOptions(type);\n const initializer: ChartInitializer = this.getInitializer(type, chartType);\n let chart;\n if (viewContainerRef) {\n let componentRef: ComponentRef<any>;\n this._sizeScale.maximumValue = 60;\n this._sizeScale.minimumValue = 10;\n\n if (type === CHART_TYPE.Pie) {\n componentRef = viewContainerRef.createComponent(IgxPieChartComponent);\n } else {\n componentRef = viewContainerRef.createComponent(IgxDataChartComponent);\n }\n\n if (this.useLegend) {\n const legendType = type === CHART_TYPE.Pie ? IgxItemLegendComponent : IgxLegendComponent;\n const legendComponentRef: ComponentRef<any> = viewContainerRef.createComponent(legendType as any);\n options.chartOptions['legend'] = legendComponentRef.instance;\n }\n chart = initializer.initChart(componentRef.instance, options);\n } else if (createdChart) {\n chart = initializer.initChart(createdChart, options);\n }\n this.chartCreationDone.emit(chart);\n return chart;\n }\n\n private getInitializer(chartType: CHART_TYPE, componentClassRef): ChartInitializer {\n if (chartType.includes('Pie')) {\n return new IgxPieChartInitializer();\n } else if (chartType.includes('Stacked')) {\n return new IgxStackedDataChartInitializer(componentClassRef);\n } else {\n return new IgxDataChartInitializer(componentClassRef);\n }\n }\n\n private getChartOptions(type: CHART_TYPE): IChartComponentOptions {\n const chartComponentOptions: IChartComponentOptions = {};\n return type === CHART_TYPE.Pie ? this.addPieChartDataOptions(chartComponentOptions) :\n this.addDataChartDataOptions(type, chartComponentOptions, type.includes('Stacked'));\n }\n\n private addPieChartDataOptions(chartComponentOptions: IChartComponentOptions) {\n const customPieOptions = this.customChartComponentOptions.get(CHART_TYPE.Pie) || {};\n const customPieChartOptions = customPieOptions.chartOptions || {};\n chartComponentOptions.chartOptions = { ...this.pieChartOptions, ...customPieChartOptions };\n return chartComponentOptions;\n }\n\n private addDataChartDataOptions(type: CHART_TYPE, chartComponentOptions: IChartComponentOptions, stacked: boolean) {\n const customComponentOptions: IChartComponentOptions = this.customChartComponentOptions.get(type) || {};\n const customChartOptions = customComponentOptions.chartOptions || {};\n const customSeriesModel = customComponentOptions.seriesModel || {};\n chartComponentOptions.chartOptions = { ...this.dataChartOptions, ...customChartOptions };\n if (type.indexOf('Scatter') !== -1) {\n this.addScatterChartDataOptions(type, chartComponentOptions);\n } else {\n chartComponentOptions.seriesModel = { ...this.dataChartSeriesOptionsModel, ...customSeriesModel };\n this.setAxisLabelOption(type, chartComponentOptions);\n const options: IOptions[] = [];\n this._valueMemberPaths.forEach(valueMemberPath => {\n const dataOptions = {\n title: valueMemberPath,\n valueMemberPath\n };\n if (stacked) {\n options.push({ ...dataOptions });\n } else {\n options.push({ ...dataOptions, ...chartComponentOptions.seriesModel });\n }\n });\n if (stacked) {\n chartComponentOptions.stackedFragmentOptions = options;\n } else {\n chartComponentOptions.seriesOptions = options;\n }\n }\n return chartComponentOptions;\n }\n\n private addScatterChartDataOptions(scatterChart: CHART_TYPE, chartComponentOptions: IChartComponentOptions) {\n const scatterCustomOptions: IChartComponentOptions = this.customChartComponentOptions.get(scatterChart) || {};\n const scatterCustomSeriesModel = scatterCustomOptions.seriesModel || {};\n chartComponentOptions.seriesModel = { ...this.scatterChartSeriesOptionsModel, ...scatterCustomSeriesModel };\n chartComponentOptions.seriesModel['yMemberPath'] = this.scatterChartYAxisValueMemberPath;\n if (scatterChart === CHART_TYPE.ScatterBubble) {\n chartComponentOptions.seriesModel = Object.assign(chartComponentOptions.seriesModel, this.bubbleChartSeriesOptionsModel);\n chartComponentOptions.seriesModel['radiusMemberPath'] = this.bubbleChartRadiusMemberPath;\n }\n\n const model = chartComponentOptions.seriesModel;\n const seriesOptions: IOptions[] = [];\n this._valueMemberPaths.filter(v => !(v === model['yMemberPath'] ||\n v === model['radiusMemberPath'])).forEach(valueMemberPath => {\n const dataOptions = {\n title: `${model['yMemberPath']} vs ${valueMemberPath}`,\n xMemberPath: valueMemberPath,\n labelMemberPath: this._labelMemberPath\n };\n seriesOptions.push({ ...dataOptions, ...model });\n });\n chartComponentOptions.xAxisOptions = Object.assign({\n labelExtent: NaN,\n labelTextColor: null,\n }, scatterCustomOptions.xAxisOptions);\n chartComponentOptions.yAxisOptions = Object.assign({\n labelTextColor: null,\n labelExtent: NaN,\n }, scatterCustomOptions.yAxisOptions);\n chartComponentOptions.seriesOptions = seriesOptions;\n }\n\n private addIndexMemberPath(dataRecord, index) {\n dataRecord = { ...{ [this._labelMemberPath]: index }, ...dataRecord };\n return dataRecord;\n }\n\n private setAxisLabelOption(type: CHART_TYPE, options: IChartComponentOptions) {\n const customOptions = this.customChartComponentOptions.get(type) || {};\n if (type.indexOf('Bar') !== -1) {\n options.yAxisOptions = Object.assign({\n label: this._labelMemberPath,\n labelTextColor: null,\n labelExtent: NaN,\n }, customOptions.yAxisOptions);\n options.xAxisOptions = Object.assign({\n labelTextColor: null,\n labelExtent: NaN,\n }, customOptions.xAxisOptions);\n } else {\n options.xAxisOptions = Object.assign({\n label: this._labelMemberPath,\n labelTextColor: null,\n labelExtent: NaN,\n }, customOptions.xAxisOptions);\n options.yAxisOptions = Object.assign({\n labelTextColor: null,\n labelExtent: NaN,\n }, customOptions.yAxisOptions);\n }\n }\n\n public setChartComponentOptions(chart: CHART_TYPE, optionsType: OPTIONS_TYPE, options: IOptions) {\n if (!this.customChartComponentOptions.get(chart)[optionsType]) {\n this.customChartComponentOptions.get(chart)[optionsType] = {};\n }\n Object.keys(options).forEach(property => {\n this.customChartComponentOptions.get(chart)[optionsType][property] = options[property];\n });\n }\n}\n","import { AfterViewInit, Directive, EventEmitter, Input, OnDestroy, Output, inject } from '@angular/core';\nimport { IgxGridComponent } from 'igniteui-angular/grids/grid';\nimport { Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\nexport enum ConditionalFormattingType {\n DataBars = 'Data Bars',\n ColorScale = 'Color Scale',\n Top10 = 'Top 10',\n TextContains = 'Text Contains',\n Single = 'Duplicate Values',\n Unique = 'Unique Values',\n Empty = 'Empty'\n}\nexport interface IFormatColors {\n success: string;\n error: string;\n info: string;\n warning: string;\n text: string;\n}\n\n@Directive({\n selector: '[igxConditionalFormatting]',\n})\nexport class IgxConditionalFormattingDirective implements AfterViewInit, OnDestroy {\n @Input()\n public formatter: string | ConditionalFormattingType;\n\n @Input()\n public set formatColors(val: IFormatColors) {\n this._formatColors = val;\n }\n public get formatColors() {\n return this._formatColors;\n }\n\n @Output()\n public formattersReady = new EventEmitter<string[]>();\n\n public colorScale = {\n backgroundColor: (_rowData, colname, cellValue, rowIndex) => {\n if (!(typeof cellValue === 'number' && this.isWithInFormattedRange(rowIndex, colname))) {\n return;\n }\n return this.lowTresholdValue >= cellValue ? this.formatColors.error :\n this.middleTresholdValue >= cellValue ? this.formatColors.warning : this.formatColors.success;\n }\n };\n\n public dataBars = {\n backgroundImage: (_rowData, colname, cellValue, rowIndex) => {\n if (!(typeof cellValue === 'number' && this.isWithInFormattedRange(rowIndex, colname))) {\n return;\n }\n const treshold = this.threshold;\n let gradientPercents;\n if (cellValue < 0) {\n const negativeStartingPoint = 100 - treshold;\n gradientPercents = this.getNegativePercentage(cellValue);\n return `linear-gradient(to left, transparent 0% ${negativeStartingPoint}%,\n ${this.formatColors.error} ${negativeStartingPoint}% ${negativeStartingPoint + gradientPercents}%,\n transparent ${gradientPercents}% 100%)`;\n } else {\n gradientPercents = this.getPositivePercentage(cellValue);\n return `linear-gradient(to right, transparent 0% ${treshold}%,\n ${this.formatColors.success} ${treshold}% ${treshold + gradientPercents}%,\n transparent ${treshold + gradientPercents}% 100%)`;\n }\n },\n backgroundSize: '100% 80%',\n backgroundRepeat: 'no-repeat',\n backgroundPositionY: 'center'\n };\n\n public top10Percent = {\n backgroundColor: (_rowData, colname, cellValue, rowIndex) => {\n if (typeof cellValue === 'number' && this.isWithInFormattedRange(rowIndex, colname)\n && cellValue > this.top10PercentTreshold) {\n return this.formatColors.info;\n }\n },\n color: (_rowData, colname, cellValue, rowIndex) => {\n if (typeof cellValue === 'number' && this.isWithInFormattedRange(rowIndex, colname)\n && cellValue > this.top10PercentTreshold) {\n return this.formatColors.text;\n }\n }\n };\n\n public greaterThan = {\n backgroundColor: (_rowData, colname, cellValue, rowIndex) => {\n if (typeof cellValue === 'number' && this.isWithInFormattedRange(rowIndex, colname)\n && cellValue > this.avgValue) {\n return this.formatColors.info;\n }\n },\n color: (_rowData, colname, cellValue, rowIndex) => {\n if (typeof cellValue === 'number' && this.isWithInFormattedRange(rowIndex, colname)\n && cellValue > this.avgValue) {\n return this.formatColors.text;\n }\n }\n };\n\n public empty = {\n backgroundColor: (_rowData, colname, cellValue, rowIndex) => {\n if (this.isWithInFormattedRange(rowIndex, colname) && cellValue === undefined) {\n return this.formatColors.info;\n }\n },\n color: (_rowData, colname, cellValue, rowIndex) => {\n if (this.isWithInFormattedRange(rowIndex, colname) && cellValue === undefined) {\n return this.formatColors.text;\n }\n }\n };\n\n public duplicates = {\n backgroundColor: (_rowData, colname, cellValue, rowIndex) => {\n if (!this.isWithInFormattedRange(rowIndex, colname)) {\n return;\n }\n const arr: any[] = typeof cellValue === 'number' ? this.numericData : this.textData;\n return arr.indexOf(cellValue) !== arr.lastIndexOf(cellValue) ? this.formatColors.info : '';\n\n },\n color: (_rowData, colname, cellValue, rowIndex) => {\n if (!this.isWithInFormattedRange(rowIndex, colname)) {\n return;\n }\n const arr: any[] = typeof cellValue === 'number' ? this.numericData : this.textData;\n return arr.indexOf(cellValue) !== arr.lastIndexOf(cellValue) ? this.formatColors.text : '';\n }\n };\n\n public textContains = {\n backgroundColor: (_rowData, colname, cellValue, rowIndex) => {\n if (typeof cellValue === 'string' && this.isWithInFormattedRange(rowIndex, colname) &&\n cellValue.toLowerCase().indexOf(this._valueForComparison.toLowerCase()) !== -1) {\n return this.formatColors.info;\n }\n },\n color: (_rowData, colname, cellValue, rowIndex) => {\n if (typeof cellValue === 'string' && this.isWithInFormattedRange(rowIndex, colname) &&\n cellValue.toLowerCase().indexOf(this._valueForComparison.toLowerCase()) !== -1) {\n return this.formatColors.text;\n }\n }\n };\n\n public uniques = {\n backgroundColor: (_rowData, colname, cellValue, rowIndex) => {\n if (!this.isWithInFormattedRange(rowIndex, colname)) {\n return;\n }\n const arr: any[] = typeof cellValue === 'number' ? this.numericData : this.textData;\n return arr.indexOf(cellValue) === arr.lastIndexOf(cellValue) ? this.formatColors.info : '';\n },\n color: (_rowData, colname, cellValue, rowIndex) => {\n if (!this.isWithInFormattedRange(rowIndex, colname)) {\n return;\n }\n const arr: any[] = typeof cellValue === 'number' ? this.numericData : this.textData;\n return arr.indexOf(cellValue) === arr.lastIndexOf(cellValue) ? this.formatColors.text : '';\n }\n };\n\n private get selectedData() {\n this._selectedData = this.grid.getSelectedData().length ? this.toArray(this.grid.getSelectedData()) :\n this.toArray(this.grid.getSelectedColumnsData());\n return this._selectedData;\n }\n\n private get textData() {\n return this.selectedData.filter(val => typeof val === 'string');\n }\n\n private get numericData() {\n return this.selectedData.filter(val => typeof val === 'number');\n }\n private _formatColors: IFormatColors = {\n success: '#4EB862',\n error: '#FF134A',\n warning: '#FBB13C',\n info: '#1377D5',\n text: '#FFF'\n };\n private _numericFormatters = ['Data Bars', 'Color Scale', 'Top 10', 'Greater Than'];\n private _textFormatters = ['Text Contains'];\n private _commonFormattersName = ['Duplicate Values', 'Unique Values', 'Empty'];\n private _selectedData = [];\n private _minValue;\n private _maxValue;\n private _startColumn;\n private _endColumn;\n private _valueForComparison;\n private _formattersData = new Map<string, any>();\n private destroy$ = new Subject<any>();\n private formatedRange: Map<number, Set<number>> = new Map<number, Set<number>>();\n private readonly grid = inject(IgxGridComponent);\n\n constructor() {\n this._formattersData.set('Data Bars', this.dataBars);\n this._formattersData.set('Color Scale', this.colorScale);\n this._formattersData.set('Top 10', this.top10Percent);\n this._formattersData.set('Greater Than', this.greaterThan);\n this._formattersData.set('Text Contains', this.textContains);\n this._formattersData.set('Duplicate Values', this.duplicates);\n this._formattersData.set('Unique Values', this.uniques);\n this._formattersData.set('Empty', this.empty);\n }\n\n public ngAfterViewInit(): void {\n this.grid.rangeSelected.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.determineFormatters(false);\n });\n this.grid.columnSelectionChanging.pipe(takeUntil(this.destroy$), debounceTime(200)).subscribe(() => {\n this.determineFormatters(true);\n });\n this.grid.cellEdit.pipe(takeUntil(this.destroy$)).subscribe((args: any) => {\n if ((args.newValue === args.oldValue || !this.formatter)) {\n return;\n }\n if (this.isWithInFormattedRange(args.cellID.rowIndex, args.cellID.columnID - 1)) {\n const value = Number(args.newValue);\n this.selectedData.push(!Number.isNaN(value) && Number.isFinite(value) ? value : args.newValue);\n this.recalcCachedValues();\n this.formatCells(this.formatter, undefined, false);\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.complete();\n }\n\n public formatCells(formatterName, formatRange?: [], reset = true) {\n if (reset) {\n this.resetRange(formatRange);\n }\n this.clearFormatting();\n this.formatter = formatterName;\n let hasUpdatedColumn = false;\n this.grid.visibleColumns.forEach(c => {\n if (c.visibleIndex >= this._startColumn && c.visibleIndex <= this._endColumn) {\n c.cellStyles = this._formattersData.get(this.formatter);\n hasUpdatedColumn = true;\n }\n });\n if (hasUpdatedColumn) {\n this.grid.notifyChanges();\n }\n }\n\n public clearFormatting() {\n this.formatter = undefined;\n this.grid.visibleColumns.forEach(c => {\n c.cellStyles = undefined;\n });\n this.grid.cdr.detectChanges();\n }\n\n public determineFormatters(fromColumn) {\n const data = fromColumn ? this.grid.getSelectedColumnsData() : this.grid.getSelectedData();\n const numericData = this.toArray(data).some(rec => typeof rec === 'number');\n const textData = this.toArray(data).some(rec => typeof rec === 'string');\n const formatters = Array.of(...this._commonFormattersName);\n if (!(numericData) && textData) {\n formatters.splice(0, 0, ...this._textFormatters);\n } else if (numericData && !textData) {\n formatters.splice(0, 0, ...this._numericFormatters);\n } else {\n formatters.splice(0, 0, ...['Data Bars', 'Color Scale', 'Text Contains']);\n }\n this.formattersReady.emit(formatters);\n }\n\n public recalcCachedValues(clearAll = false) {\n if (clearAll) {\n if (this.grid.getSelectedRanges().length === 0) {\n const selectedColumns = this.grid.selectedColumns();\n if (selectedColumns.length === 1) {\n this._startColumn = this._endColumn = selectedColumns[0].visibleIndex;\n } else if (selectedColumns.length > 1) {\n this._startColumn = Math.min(...selectedColumns.map(c => c.visibleIndex));\n this._endColumn = Math.max(...selectedColumns.map(c => c.visibleIndex));\n } else {\n return;\n }\n } else {\n this._startColumn = Math.min(...this.grid.getSelectedRanges().map(r => Number(r.columnStart)));\n this._endColumn = Math.max(...this.grid.getSelectedRanges().map(r => Number(r.columnEnd)));\n }\n this._selectedData = [];\n }\n this._valueForComparison = this.textData[0];\n const hasNegativeValues = this.numericData.some(value => value < 0);\n this._maxValue = Math.max(...this.numericData);\n this._minValue = hasNegativeValues ? Math.min(...this.numericData.filter(value => value < 0)) : 0;\n }\n\n public isWithInFormattedRange(rowIndex, colID) {\n const visibleIndex = typeof colID === 'string' ? this.grid.getColumnByName(colID).visibleIndex : colID;\n if (!this.formatedRange.size) {\n return false;\n }\n return this.formatedRange.has(rowIndex) && this.formatedRange.get(rowIndex).has(visibleIndex);\n }\n\n private get middleTresholdValue() {\n return 0.66 * Math.ceil(this._maxValue);\n }\n\n private get lowTresholdValue() {\n return 0.33 * Math.ceil(this._maxValue);\n }\n\n private get top10PercentTreshold() {\n return 0.9 * Math.ceil(this._maxValue);\n }\n\n private get avgValue() {\n return Math.ceil((this.numericData.reduce((a, b) => a + b, 0)) / this.numericData.length);\n }\n\n private get threshold() {\n return Math.ceil(Math.abs(this._minValue) / (this._maxValue + Math.abs(this._minValue)) * 100);\n }\n\n private getPositivePercentage(val) {\n return Math.ceil(Math.ceil(val) / (this._maxValue + Math.abs(this._minValue)) * 100);\n }\n\n private getNegativePercentage(val) {\n return Math.ceil(Math.abs(val) / (this._maxValue + Math.abs(this._minValue)) * 100);\n }\n\n private resetRange(formatRange?: []) {\n this.formatedRange.clear();\n const selectedRanges = this.grid.getSelectedRanges();\n let customRange;\n\n // Column selection custom range\n if (selectedRanges.length === 0) {\n const selectedColumns = this.grid.selectedColumns();\n customRange = [];\n selectedColumns.forEach(c => {\n customRange.push({\n columnEnd: c.visibleIndex,\n columnStart: c.visibleIndex,\n rowEnd: this.grid.data.length - 1,\n rowStart: 0\n });\n });\n } else {\n customRange = formatRange ? formatRange : this.grid.getSelectedRanges();\n }\n customRange.forEach(range => {\n for (let ri = range.rowStart; ri <= Number(range.rowEnd); ri++) {\n for (let ci = Number(range.columnStart); ci <= Number(range.columnEnd); ci++) {\n this.addToCache(ri, ci);\n }\n }\n });\n this.recalcCachedValues(true);\n }\n\n private addToCache(rowIndex, colIndex) {\n if (this.formatedRange.has(rowIndex)) {\n this.formatedRange.get(rowIndex).add(colIndex);\n } else {\n this.formatedRange.set(rowIndex, new Set<number>()).get(rowIndex).add(colIndex);\n }\n }\n\n private toArray(data: any[]) {\n let result = [];\n data.forEach(rec => result = result.concat(Object.values(rec)));\n return result;\n }\n}\n","// tslint:disable: max-line-length\nexport const Area100Stacked = `\n <svg id=\"Layer_1\" data-name=\"Layer 1\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-Area100Stacked-1{fill:#ab4191;}.cls-Area100Stacked-2{fill:#f05951;}.cls-Area100Stacked-2,.cls-Area100Stacked-3,.cls-Area100Stacked-4{fill-rule:evenodd;}.cls-Area100Stacked-3{fill:#fa8d3d;}.cls-Area100Stacked-4{fill:#0f6860;}</style>\n </defs>\n <rect class=\"cls-Area100Stacked-1\" width=\"96\" height=\"95.7\"/>\n <polygon class=\"cls-Area100Stacked-2\" points=\"0 11.1 3.78 11.99 11.33 25.27 20.15 13.04 30.53 15.31 43.12 26.54 50.13 28.07 65.78 24.5 72.08 16.84 82.15 17.61 88.45 11.99 91.91 9.57 96 6.13 96 95.7 0 95.7 0 11.1\"/>\n <path class=\"cls-Area100Stacked-3\" d=\"M0,54V95.7H96V18.37l-3.79,6.51-3.79,18-3.16,6.51-5.68,3.06-2.84,3.45s-3.42,6-3.48,6.12-7.58,4.6-7.58,4.6L60,67l-2.21.77-7.9-4.6-3.78,1.15-7.58-3.44L34.42,62.4l-3.79-1.15-4.1,3.44-3.48-.76L15.16,53.21,7.26,54,3.47,49Z\"/>\n <polygon class=\"cls-Area100Stacked-4\" points=\"0 78.75 4.72 77.11 7.87 78.2 15.42 76.56 19.52 80.39 26.44 83.67 36.2 83.67 45.33 85.31 50.05 78.75 58.23 84.22 68.3 85.86 87.82 90.23 96 83.12 96 95.7 0 95.7 0 78.75\"/>\n</svg>\n`;\nexport const AreaGrouped = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-AreaGrouped-1{fill:#ab4191;}.cls-AreaGrouped-1,.cls-AreaGrouped-2,.cls-AreaGrouped-3,.cls-AreaGrouped-4{fill-rule:evenodd;}.cls-AreaGrouped-2{fill:#f05951;}.cls-AreaGrouped-3{fill:#fa8d3d;}.cls-AreaGrouped-4{fill:#0f6860;}</style>\n </defs>\n <g id=\"ChartNames\">\n <polygon class=\"cls-AreaGrouped-1\" points=\"96 69.18 96 13.76 80.22 37.03 64.11 42.35 48.34 63.44 32.56 72.38 16.45 70.78 0 86.13 0 96 96 96 96 69.18\"/>\n <polygon class=\"cls-AreaGrouped-2\" points=\"96 84.43 96 38.72 80.22 48.72 64.11 72.86 48.34 72.62 32.56 81.54 16.78 79.11 0 90.25 0 96 96 96 96 84.43\"/>\n <path class=\"cls-AreaGrouped-3\" d=\"M96,91V62.08L80.22,66.71l-16.11,15-15.77.9L32.56,88s-16.12-.84-16.11-.76S0,92.65,0,92.65V96H96Z\"/>\n <polygon class=\"cls-AreaGrouped-4\" points=\"96 93.77 96 77.49 80.22 81.31 64.11 91.54 48.34 93.13 32.56 94.09 0 95.37 0 96 96 96 96 93.77\"/>\n </g>\n</svg>\n`;\nexport const AreaStacked = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-AreaStacked-1{fill:#ab4191;}.cls-AreaStacked-1,.cls-AreaStacked-2,.cls-AreaStacked-3,.cls-AreaStacked-4{fill-rule:evenodd;}.cls-AreaStacked-2{fill:#f05951;}.cls-AreaStacked-3{fill:#fa8d3d;}.cls-AreaStacked-4{fill:#0f6860;}</style>\n </defs>\n <g id=\"ChartNames\">\n <path class=\"cls-AreaStacked-1\" d=\"M0,17.24,3.73,4.7l7.56,19.2,4.09-.78,7.87,11.75,3.46,1.57,3.78-3.13,4.41,2,3.46-2.75,4.72,2.35L45.91,38s4-.26,4.09-.39,7.45,4.57,7.56,4.7a35.11,35.11,0,0,0,3.77-1.57h4.41L72,43.49,82.11,28.21,88.4,10.32,91.86,0,96,12.15V96H0Z\"/>\n <path class=\"cls-AreaStacked-2\" d=\"M0,53.29V96H96V16.85l-3.79,6.66L88.38,41.93l-3.16,6.66-5.68,3.13-2.85,3.53s-3.42,6.14-3.47,6.27-7.58,4.7-7.58,4.7L60,66.61l-2.21.79-7.9-4.71-3.79,1.18-7.58-3.53-4.1,1.57-3.79-1.18-4.11,3.53L23,63.48l-7.89-11-7.9.78L3.43,48.2Z\"/>\n <polygon class=\"cls-AreaStacked-3\" points=\"0.14 78.65 4.85 76.97 7.99 78.09 15.54 76.41 19.62 80.33 26.53 83.69 36.27 83.69 45.38 85.37 50.09 78.65 58.26 84.25 68.31 85.93 87.79 90.4 95.96 83.12 95.96 96 0.14 96 0.14 78.65\"/>\n <polygon class=\"cls-AreaStacked-4\" points=\"0.14 96 95.96 96 95.96 74.45 92.19 79.15 80.56 83.07 69.25 91.3 58.57 91.69 54.17 92.08 49.78 90.12 45.38 91.3 38.47 91.3 28.73 91.69 23.7 91.3 18.99 92.86 13.96 92.08 0.14 93.65 0.14 96\"/>\n </g>\n</svg>\n`;\nexport const Bar100Stacked = `\n <svg id=\"Layer_1\" data-name=\"Layer 1\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-Bar100Stacked-1{fill:#ab4191;}.cls-Bar100Stacked-1,.cls-Bar100Stacked-2,.cls-Bar100Stacked-3,.cls-Bar100Stacked-4{fill-rule:evenodd;}.cls-Bar100Stacked-2{fill:#f05951;}.cls-Bar100Stacked-3{fill:#fa8d3d;}.cls-Bar100Stacked-4,.cls-Bar100Stacked-5{fill:#0f6860;}</style>\n </defs>\n <path class=\"cls-Bar100Stacked-1\" d=\"M96,7.84H45.71v11.1H96Zm0,13.38H47.67V32.33H96Zm0,13.39H42.45V46H96Zm0,13.72H48.33v11.1H96Zm0,13.38H43.43V72.82H96ZM96,75.1H42.12V86.2H96Z\"/>\n <path class=\"cls-Bar100Stacked-2\" d=\"M75.76,21.22H29.71V32.33H75.76ZM66,61.71H27.1V72.82H66Zm4.24-27.1h-48V46h48ZM56.82,48.33H30v11.1H56.82ZM73.47,75.1H25.8V86.2H73.47ZM60.73,7.84h-33v11.1h33Z\"/>\n <path class=\"cls-Bar100Stacked-3\" d=\"M47.67,21.22H8.16V32.33H47.67ZM39.51,61.71H5.88V72.82H39.51Zm3.59-27.1H1.63V46H43.1ZM31.35,48.33H8.16v11.1H31.35ZM45.71,75.1H4.57V86.2H45.71ZM34.61,7.84H6.2v11.1H34.61Z\"/>\n <path class=\"cls-Bar100Stacked-4\" d=\"M14,34.61H0V46H14Zm4.25,13.72H0v11.1H18.29ZM15,75.1H0V86.2H15ZM22.2,21.22H0V32.33H22.2ZM11.43,61.71H0V72.82H11.43Z\"/>\n <rect class=\"cls-Bar100Stacked-5\" y=\"7.84\" width=\"10.78\" height=\"11.1\"/>\n</svg>\n`;\nexport const BarGrouped = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-BarGrouped-1{fill:#f05951;}.cls-BarGrouped-2{fill:#ab4191;}.cls-BarGrouped-3{fill:#0f6860;}.cls-BarGrouped-4{fill:#fa8d3d;}</style>\n </defs>\n <g id=\"ChartNames\">\n <rect class=\"cls-BarGrouped-1\" y=\"77.13\" width=\"21.19\" height=\"6.29\"/>\n <rect class=\"cls-BarGrouped-1\" y=\"49.66\" width=\"48.99\" height=\"6.29\"/>\n <rect class=\"cls-BarGrouped-1\" y=\"22.18\" width=\"72.5\" height=\"6.29\"/>\n <rect class=\"cls-BarGrouped-2\" y=\"70.84\" width=\"81.43\" height=\"6.29\"/>\n <rect class=\"cls-BarGrouped-3\" y=\"89.71\" width=\"60.25\" height=\"6.29\"/>\n <rect class=\"cls-BarGrouped-2\" y=\"43.37\" width=\"96\" height=\"6.29\"/>\n <rect class=\"cls-BarGrouped-3\" y=\"62.23\" width=\"33.43\" height=\"6.29\"/>\n <rect class=\"cls-BarGrouped-2\" y=\"15.89\" width=\"55.61\" height=\"6.29\"/>\n <rect class=\"cls-BarGrouped-3\" y=\"34.76\" width=\"45.35\" height=\"6.29\"/>\n <rect class=\"cls-BarGrouped-4\" y=\"83.42\" width=\"89.38\" height=\"6.29\"/>\n <rect class=\"cls-BarGrouped-4\" y=\"55.94\" width=\"70.84\" height=\"6.29\"/>\n <rect class=\"cls-BarGrouped-4\" y=\"28.47\" width=\"33.43\" height=\"6.29\"/>\n </g>\n</svg>\n`;\nexport const BarStacked = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-BarStacked-1{fill:#ab4191;}.cls-BarStacked-1,.cls-BarStacked-2,.cls-BarStacked-3,.cls-BarStacked-4{fill-rule:evenodd;}.cls-BarStacked-2{fill:#f05951;}.cls-BarStacked-3{fill:#fa8d3d;}.cls-BarStacked-4{fill:#0f6860;}</style>\n </defs>\n <g id=\"ChartNames\">\n <path class=\"cls-BarStacked-1\" d=\"M53.9,8.85H14.58V19.66H53.9ZM86.33,22.28H21.46V33.09H86.33ZM71.26,35.71H14.91V46.85H71.26ZM53.57,49.47H11.63V60.29H53.57ZM95.84,62.91H21.46V73.72H95.84Zm-36,13.43H14.91V87.15H59.8Z\"/>\n <path class=\"cls-BarStacked-2\" d=\"M41.12,8.85H14.58V19.66H41.12ZM61.76,22.28H21.46V33.09h40.3ZM46.69,35.71H14.91V46.85H46.69ZM41.77,49.47H11.63V60.29H41.77ZM62.09,62.91H21.46V73.72H62.09ZM42.76,76.34H14.91V87.15H42.76Z\"/>\n <path class=\"cls-BarStacked-3\" d=\"M31.62,8.85h-17V19.66h17ZM45.38,22.28H21.46V33.09H45.38Zm-9.5,13.43h-21V46.85h21Zm-2.3,13.76H11.63V60.29H33.58Zm8.85,13.44h-21V73.72h21ZM31,76.34h-16V87.15H31Z\"/>\n <path class=\"cls-BarStacked-4\" d=\"M14.91,8.85H.16V19.66H14.91ZM27.36,22.28H.16V33.09h27.2ZM19.17,35.71H.16V46.85h19ZM15.56,49.47H.16V60.29h15.4ZM27.69,62.91H.16V73.72H27.69ZM16.22,76.34H.16V87.15H16.22Z\"/>\n </g>\n</svg>\n`;\nexport const Column100Stacked = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-Column100Stacked-1{fill:#ab4191;}.cls-Column100Stacked-1,.cls-Column100Stacked-2,.cls-Column100Stacked-3,.cls-Column100Stacked-4{fill-rule:evenodd;}.cls-Column100Stacked-2{fill:#f05951;}.cls-Column100Stacked-3{fill:#fa8d3d;}.cls-Column100Stacked-4{fill:#0f6860;}</style>\n </defs>\n <g id=\"ChartNames\">\n <path class=\"cls-Column100Stacked-1\" d=\"M0,0V50.28H13.81V0ZM16.44,0V48.44H30.25V0ZM32.88,0V53.51h13.8V0ZM49.32,0V47.78h13.8V0ZM65.75,0V52.68H79.56V0ZM82.19,0V54H96V0Z\"/>\n <path class=\"cls-Column100Stacked-2\" d=\"M16.44,20.35V66.43H30.25V20.35ZM65.75,30V68.74H79.56V30ZM32.88,25.73v48h13.8v-48ZM49.32,39.17V66.05h13.8V39.17ZM82.19,22.66V70.27H96V22.66ZM0,35.33v33H13.81v-33Z\"/>\n <path class=\"cls-Column100Stacked-3\" d=\"M16.44,48.38V87.94H30.25V48.38Zm49.31,8.07V90.24H79.56V56.45ZM32.88,53V94.46h13.8V53ZM49.32,64.51V87.94h13.8V64.51ZM82.19,50.3V91.39H96V50.3ZM0,61.44V89.86H13.81V61.44Z\"/>\n <path class=\"cls-Column100Stacked-4\" d=\"M32.88,82.11V96h13.8V82.11Zm16.44-4.45V96h13.8V77.66Zm32.87,3.41V96H96V81.07ZM16.44,73.73V96H30.25V73.73ZM65.75,84.47V96H79.56V84.47ZM0,85.08V96H13.81V85.08Z\"/>\n </g>\n</svg>\n`;\nexport const ColumnGrouped = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-ColumnGrouped-1{fill:#fa8d3d;}.cls-ColumnGrouped-2{fill:#f05951;}.cls-ColumnGrouped-3{fill:#0f6860;}.cls-ColumnGrouped-4{fill:#ab4191;}</style>\n </defs>\n <g id=\"ChartNames\">\n <rect class=\"cls-ColumnGrouped-1\" x=\"14.87\" y=\"30.42\" width=\"7.44\" height=\"65.58\"/>\n <rect class=\"cls-ColumnGrouped-1\" x=\"48\" y=\"8.11\" width=\"7.44\" height=\"87.89\"/>\n <rect class=\"cls-ColumnGrouped-1\" x=\"81.13\" y=\"38.2\" width=\"7.44\" height=\"57.8\"/>\n <rect class=\"cls-ColumnGrouped-2\" x=\"7.44\" y=\"43.61\" width=\"7.44\" height=\"52.39\"/>\n <rect class=\"cls-ColumnGrouped-3\" x=\"22.31\" y=\"52.06\" width=\"7.44\" height=\"43.94\"/>\n <rect class=\"cls-ColumnGrouped-2\" x=\"40.56\" y=\"34.48\" width=\"7.44\" height=\"61.52\"/>\n <rect class=\"cls-ColumnGrouped-3\" x=\"55.44\" y=\"19.27\" width=\"7.44\" height=\"76.73\"/>\n <rect class=\"cls-ColumnGrouped-2\" x=\"73.69\" y=\"12.17\" width=\"7.44\" height=\"83.83\"/>\n <rect class=\"cls-ColumnGrouped-4\" y=\"20.28\" width=\"7.44\" height=\"75.72\"/>\n <rect class=\"cls-ColumnGrouped-4\" x=\"33.13\" y=\"71.32\" width=\"7.44\" height=\"24.68\"/>\n <rect class=\"cls-ColumnGrouped-4\" x=\"66.25\" y=\"51.04\" width=\"7.44\" height=\"44.96\"/>\n <rect class=\"cls-ColumnGrouped-3\" x=\"88.56\" y=\"63.21\" width=\"7.44\" height=\"32.79\"/>\n </g>\n</svg>\n`;\nexport const ColumnStacked = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-ColumnStacked-1{fill:#ab4191;}.cls-ColumnStacked-1,.cls-ColumnStacked-2,.cls-ColumnStacked-3,.cls-ColumnStacked-4{fill-rule:evenodd;}.cls-ColumnStacked-2{fill:#f05951;}.cls-ColumnStacked-3{fill:#fa8d3d;}.cls-ColumnStacked-4{fill:#0f6860;}</style>\n </defs>\n <g id=\"ChartNames\">\n <path class=\"cls-ColumnStacked-1\" d=\"M0,44.4V78.55H13.81V44.4ZM16.44,9.87V78.55H30.25V9.87ZM32.88,25.8V78.55h13.8V25.8Zm16.44,19V82.34h13.8V44.77ZM65.75,0V78.55H79.56V0ZM82.19,37.94V86.13H96V37.94Z\"/>\n <path class=\"cls-ColumnStacked-2\" d=\"M16.44,36.05v42.5H30.25V36.05Zm49.31-.38V78.55H79.56V35.67ZM32.88,52V78.55h13.8V52ZM49.32,57.3v25h13.8v-25Zm32.87-1.14v30H96v-30ZM0,57.68V78.55H13.81V57.68Z\"/>\n <path class=\"cls-ColumnStacked-3\" d=\"M32.88,63.37V78.55h13.8V63.37Zm16.44,2.27v16.7h13.8V65.64Zm32.87,3V86.13H96V68.68ZM16.44,53.5v25H30.25v-25Zm49.31,3v22H79.56v-22ZM0,67.54v14H13.81v-14Z\"/>\n <path class=\"cls-ColumnStacked-4\" d=\"M16.44,71.72V96H30.25V71.72Zm49.31,1.51V96H79.56V73.23ZM32.88,77V96h13.8V77Zm16.44,3.79V96h13.8V80.82Zm32.87,3V96H96V83.86ZM0,81.2V96H13.81V81.2Z\"/>\n </g>\n</svg>\n`;\nexport const Line100Stacked = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-Line100Stacked-1,.cls-Line100Stacked-2,.cls-Line100Stacked-3,.cls-Line100Stacked-4{fill:none;stroke-miterlimit:10;stroke-width:2px;fill-rule:evenodd;}.cls-Line100Stacked-1{stroke:#ab4191;}.cls-Line100Stacked-2{stroke:#f05951;}.cls-Line100Stacked-3{stroke:#fa8d3d;}.cls-Line100Stacked-4{stroke:#0f6860;}</style>\n </defs>\n <g id=\"ChartNames\">\n <polyline class=\"cls-Line100Stacked-1\" points=\"0 29.37 17.34 19.88 38.74 29.52 58.65 32.18 80.42 28.87 96 24.56\"/>\n <polyline class=\"cls-Line100Stacked-2\" points=\"0 42.5 17.34 37.81 38.37 41.12 59.02 42.11 80.42 37.81 96 41.85\"/>\n <polyline class=\"cls-Line100Stacked-3\" points=\"0 66.68 17.34 59.32 38.37 72.9 59.76 55.35 96 65.16\"/>\n <polyline class=\"cls-Line100Stacked-4\" points=\"0 85.81 17.34 78.52 59.39 88.12 80.78 76.87 96 82.48\"/>\n </g>\n</svg>\n`;\nexport const LineGrouped = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-LineGrouped-1,.cls-LineGrouped-2,.cls-LineGrouped-3,.cls-LineGrouped-4{fill:none;stroke-miterlimit:10;stroke-width:2px;}.cls-LineGrouped-1{stroke:#ab4191;}.cls-LineGrouped-2{stroke:#f05951;}.cls-LineGrouped-3{stroke:#fa8d3d;}.cls-LineGrouped-4{stroke:#0f6860;}</style>\n </defs>\n <g id=\"ChartNames\">\n <polyline class=\"cls-LineGrouped-1\" points=\"0 31.14 4.12 20.49 11.66 36.91 16.09 36.66 24.41 46.48 27.96 47.14 32.04 44.59 36.46 46.81 40.19 44.59 45.04 45.82 47.99 49.2 51.98 48.87 59.96 52.84 63.95 51.52 68.28 51.52 74.78 53.74 85.36 41.04 96 17.86 96 18.27\"/>\n <polyline class=\"cls-LineGrouped-2\" points=\"0 61.42 3.9 56.96 7.98 61.25 15.61 60.59 24.28 69.75 27.57 71.15 31.99 67.52 35.81 69.17 40.06 67.19 48.04 70.08 51.76 69.17 59.07 73.36 68.06 72.06 75.87 68.01 79.25 63.06 82.37 59.93 88.01 57.37 91.99 52.01 96 36.5 96 35.45\"/>\n <polyline class=\"cls-LineGrouped-3\" points=\"0 79.47 5.11 77.91 8.5 78.81 16.13 77.41 20.72 80.71 27.4 84.17 37.8 83.52 46.91 85.58 52.02 79.31 60.35 84.59 90.95 89.87 96 85.5\"/>\n <polyline class=\"cls-LineGrouped-4\" points=\"0 92.26 14.7 90.69 19.9 92.1 24.93 90.03 30.13 91.1 47.13 90.78 51.72 89.12 56.75 90.69 71.06 90.11 83.63 83.1 96 79.33\"/>\n </g>\n</svg>\n`;\nexport const LineStacked = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-LineStacked-1,.cls-LineStacked-2,.cls-LineStacked-3,.cls-LineStacked-4{fill:none;stroke-miterlimit:10;stroke-width:2px;fill-rule:evenodd;}.cls-LineStacked-1{stroke:#ab4191;}.cls-LineStacked-2{stroke:#f05951;}.cls-LineStacked-3{stroke:#fa8d3d;}.cls-LineStacked-4{stroke:#0f6860;}</style>\n </defs>\n <g id=\"ChartNames\">\n <polyline class=\"cls-LineStacked-1\" points=\"0 80.39 14.23 67.93 31.11 68.6 47.9 59.83 65.4 39.39 81.92 33.46 96 14.25\"/>\n <polyline class=\"cls-LineStacked-2\" points=\"0 85.07 14.32 75.65 31.47 78.74 48.25 68.72 64.86 68.97 82.1 43.77 96 36.04\"/>\n <polyline class=\"cls-LineStacked-3\" points=\"0 90.45 14.14 83.91 30.93 84.66 48.17 79.07 64.86 78.07 82.28 62.38 96 59.21\"/>\n <polyline class=\"cls-LineStacked-4\" points=\"0 96 31.16 90.78 64.95 88.38 82.19 77.78 96 74.53\"/>\n </g>\n</svg>\n`;\nexport const Pie = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-Pie-1{fill:#f05951;}.cls-Pie-1,.cls-Pie-2,.cls-Pie-3,.cls-Pie-4{fill-rule:evenodd;}.cls-Pie-2{fill:#fa8d3d;}.cls-Pie-3{fill:#0f6860;}.cls-Pie-4{fill:#ab4191;}</style>\n </defs>\n <g id=\"ChartNames\">\n <path class=\"cls-Pie-1\" d=\"M44.19,48V3.79A43.27,43.27,0,0,0,3,32.3,43.45,43.45,0,0,0,15,81Z\"/>\n <path class=\"cls-Pie-2\" d=\"M44.19,48,15,81a42.63,42.63,0,0,0,37.7,10.28,42.72,42.72,0,0,0,31-23.78Z\"/>\n <path class=\"cls-Pie-3\" d=\"M51.77,48,91.29,67.53a42.87,42.87,0,0,0,.53-38Z\"/>\n <path class=\"cls-Pie-4\" d=\"M44.19,48,84.24,29.52a43.13,43.13,0,0,0-40-25.73Z\"/>\n </g>\n</svg>\n`;\nexport const ScatterBubble = `\n <svg id=\"Layer_1\" data-name=\"Layer 1\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-ScatterBubble-1{fill:#f05951;}.cls-ScatterBubble-1,.cls-ScatterBubble-2{stroke:#fff;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.5px;}.cls-ScatterBubble-2{fill:#ab4191;}</style>\n </defs>\n <circle class=\"cls-ScatterBubble-1\" cx=\"6.06\" cy=\"85.05\" r=\"2.33\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"16.57\" cy=\"83.89\" r=\"2.33\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"13.07\" cy=\"78.83\" r=\"2.33\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"39.52\" cy=\"59.38\" r=\"2.33\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"35.63\" cy=\"53.94\" r=\"2.33\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"7.62\" cy=\"70.27\" r=\"2.33\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"20.85\" cy=\"71.44\" r=\"2.33\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"8.79\" cy=\"84.28\" r=\"3.11\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"18.9\" cy=\"67.16\" r=\"3.11\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"36.4\" cy=\"59.77\" r=\"3.11\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"63.24\" cy=\"21.26\" r=\"3.11\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"25.12\" cy=\"70.27\" r=\"3.11\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"9.18\" cy=\"71.83\" r=\"3.11\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"13.07\" cy=\"47.32\" r=\"3.11\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"8.01\" cy=\"60.94\" r=\"4.28\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"22.4\" cy=\"74.94\" r=\"4.28\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"29.79\" cy=\"54.33\" r=\"4.28\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"73.75\" cy=\"30.99\" r=\"4.28\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"62.47\" cy=\"34.88\" r=\"4.28\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"16.57\" cy=\"48.88\" r=\"4.28\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"44.18\" cy=\"28.26\" r=\"4.28\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"16.57\" cy=\"61.33\" r=\"4.28\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"29.79\" cy=\"49.66\" r=\"5.06\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"47.68\" cy=\"53.94\" r=\"5.83\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"62.08\" cy=\"26.32\" r=\"5.06\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"86.58\" cy=\"39.93\" r=\"5.06\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"70.63\" cy=\"33.32\" r=\"5.06\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"64.8\" cy=\"33.32\" r=\"6.22\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"25.9\" cy=\"32.15\" r=\"6.22\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"39.52\" cy=\"74.16\" r=\"6.61\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"56.23\" cy=\"81.54\" r=\"6.22\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"51.19\" cy=\"74.16\" r=\"8.17\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"42.24\" cy=\"38.77\" r=\"8.17\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"50.8\" cy=\"60.94\" r=\"8.17\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"41.85\" cy=\"34.88\" r=\"9.34\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"52.35\" cy=\"31.76\" r=\"11.28\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"58.97\" cy=\"53.55\" r=\"12.84\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"37.57\" cy=\"81.55\" r=\"9.72\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"58.58\" cy=\"50.44\" r=\"6.22\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"51.57\" cy=\"53.55\" r=\"7\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"53.52\" cy=\"34.49\" r=\"7\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"57.41\" cy=\"11.93\" r=\"7\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"86.19\" cy=\"57.83\" r=\"5.45\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"20.85\" cy=\"66.38\" r=\"5.45\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"38.35\" cy=\"58.6\" r=\"5.06\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"15.79\" cy=\"64.05\" r=\"5.06\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"28.24\" cy=\"74.55\" r=\"5.06\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"57.02\" cy=\"22.04\" r=\"4.28\"/>\n</svg>\n`;\nexport const ScatterLine = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-ScatterLine-1,.cls-ScatterLine-2,.cls-ScatterLine-3,.cls-ScatterLine-4{fill:none;stroke-miterlimit:10;stroke-width:2px;}.cls-ScatterLine-1{stroke:#0f6860;}.cls-ScatterLine-1,.cls-ScatterLine-2,.cls-ScatterLine-3,.cls-ScatterLine-4,.cls-ScatterLine-5,.cls-ScatterLine-7,.cls-ScatterLine-8,.cls-ScatterLine-9{fill-rule:evenodd;}.cls-ScatterLine-2{stroke:#fa8d3d;}.cls-ScatterLine-3{stroke:#f05951;}.cls-ScatterLine-4{stroke:#ab4191;}.cls-ScatterLine-5{fill:#ab4191;}.cls-ScatterLine-6{fill:#fff;}.cls-ScatterLine-7{fill:#f05951;}.cls-ScatterLine-8{fill:#0f6860;}.cls-ScatterLine-9{fill:#fa8d3d;}</style>\n </defs>\n <g id=\"ChartNames\">\n <polyline class=\"cls-ScatterLine-1\" points=\"26.86 87.32 37.71 81.09 60.66 85.34 75.57 71.13 82.69 60.02 88.09 48.86\"/>\n <polyline class=\"cls-ScatterLine-2\" points=\"10.6 85.36 16.86 76.38 32.22 58.89 55.26 41.45 60.02 31.09 69.79 23.41 88.32 6.3\"/>\n <polyline class=\"cls-ScatterLine-3\" points=\"60.19 7.22 47.42 10.06 35.31 14.73 18.95 32.1 17.53 50.04 10.44 58.56\"/>\n <polyline class=\"cls-ScatterLine-4\" points=\"23.58 4.76 10.97 12.44 8.47 29.72\"/>\n <path class=\"cls-ScatterLine-5\" d=\"M8.69,12.61a2.51,2.51,0,1,0,2.5-2.51A2.5,2.5,0,0,0,8.69,12.61Zm1,0a1.5,1.5,0,1,1,1.5,1.5A1.5,1.5,0,0,1,9.69,12.61Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"11.19\" cy=\"12.61\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-5\" d=\"M21,4.59a2.51,2.51,0,1,0,2.51-2.5A2.51,2.51,0,0,0,21,4.59Zm1,0A1.51,1.51,0,1,1,23.55,6.1,1.5,1.5,0,0,1,22,4.59Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"23.55\" cy=\"4.59\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-5\" d=\"M6,29.64a2.5,2.5,0,1,0,2.5-2.51A2.5,2.5,0,0,0,6,29.64Zm1,0a1.5,1.5,0,1,1,1.5,1.5A1.5,1.5,0,0,1,7,29.64Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"8.52\" cy=\"29.64\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-7\" d=\"M57.43,7.26a2.51,2.51,0,1,0,2.51-2.5A2.51,2.51,0,0,0,57.43,7.26Zm1,0a1.51,1.51,0,1,1,1.51,1.51A1.51,1.51,0,0,1,58.43,7.26Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"59.94\" cy=\"7.26\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-7\" d=\"M44.74,10.24a2.51,2.51,0,1,0,2.51-2.51A2.51,2.51,0,0,0,44.74,10.24Zm1,0a1.5,1.5,0,1,1,1.5,1.5A1.5,1.5,0,0,1,45.75,10.24Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"47.25\" cy=\"10.24\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-7\" d=\"M33.06,14.94a2.51,2.51,0,1,0,2.5-2.5A2.5,2.5,0,0,0,33.06,14.94Zm1,0a1.5,1.5,0,1,1,1.5,1.51A1.5,1.5,0,0,1,34.06,14.94Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"35.56\" cy=\"14.94\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-7\" d=\"M16.36,32.08a2.51,2.51,0,1,0,2.51-2.5A2.51,2.51,0,0,0,16.36,32.08Zm1,0a1.51,1.51,0,1,1,1.51,1.5A1.5,1.5,0,0,1,17.36,32.08Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"18.87\" cy=\"32.08\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-7\" d=\"M14.69,50.34a2.51,2.51,0,1,0,2.51-2.51A2.5,2.5,0,0,0,14.69,50.34Zm1,0a1.51,1.51,0,1,1,3,0,1.51,1.51,0,0,1-3,0Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"17.2\" cy=\"50.34\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-7\" d=\"M8,58.24a2.51,2.51,0,1,0,2.5-2.51A2.5,2.5,0,0,0,8,58.24Zm1,0a1.5,1.5,0,1,1,1.5,1.5A1.5,1.5,0,0,1,9,58.24Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"10.48\" cy=\"58.24\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-8\" d=\"M80.54,60a2.5,2.5,0,1,0,2.5-2.5A2.51,2.51,0,0,0,80.54,60Zm1,0a1.5,1.5,0,1,1,1.5,1.5A1.5,1.5,0,0,1,81.54,60Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"83.04\" cy=\"60.02\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-8\" d=\"M85.58,49a2.51,2.51,0,1,0,2.51-2.5A2.51,2.51,0,0,0,85.58,49Zm1,0a1.51,1.51,0,1,1,1.51,1.5A1.51,1.51,0,0,1,86.58,49Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"88.09\" cy=\"49\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-8\" d=\"M73.27,71.18a2.51,2.51,0,1,0,2.5-2.5A2.51,2.51,0,0,0,73.27,71.18Zm1,0a1.5,1.5,0,1,1,1.5,1.51A1.5,1.5,0,0,1,74.27,71.18Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"75.77\" cy=\"71.18\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-8\" d=\"M58.16,85.65a2.5,2.5,0,1,0,2.5-2.51A2.5,2.5,0,0,0,58.16,85.65Zm1,0a1.5,1.5,0,1,1,1.5,1.5A1.51,1.51,0,0,1,59.16,85.65Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"60.66\" cy=\"85.65\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-8\" d=\"M35.2,81.53A2.51,2.51,0,1,0,37.71,79,2.52,2.52,0,0,0,35.2,81.53Zm1,0A1.51,1.51,0,1,1,37.71,83,1.51,1.51,0,0,1,36.2,81.53Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"37.71\" cy=\"81.53\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-8\" d=\"M24.35,87.32a2.51,2.51,0,1,0,2.51-2.51A2.5,2.5,0,0,0,24.35,87.32Zm1,0a1.51,1.51,0,1,1,1.51,1.5A1.51,1.51,0,0,1,25.35,87.32Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"26.86\" cy=\"87.32\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-9\" d=\"M8,85.73a2.51,2.51,0,1,0,2.51-2.5A2.52,2.52,0,0,0,8,85.73Zm1,0a1.5,1.5,0,1,1,1.5,1.5A1.5,1.5,0,0,1,9,85.73Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"10.48\" cy=\"85.73\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-9\" d=\"M13.36,77.38a2.51,2.51,0,1,0,2.5-2.5A2.5,2.5,0,0,0,13.36,77.38Zm1,0a1.51,1.51,0,1,1,1.5,1.51A1.5,1.5,0,0,1,14.36,77.38Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"15.86\" cy=\"77.38\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-9\" d=\"M19,70.71a2.51,2.51,0,1,0,2.51-2.51A2.5,2.5,0,0,0,19,70.71Zm1,0a1.51,1.51,0,1,1,1.51,1.5A1.51,1.51,0,0,1,20,70.71Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"21.54\" cy=\"70.71\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-9\" d=\"M29.44,58.91a2.51,2.51,0,1,0,2.5-2.51A2.5,2.5,0,0,0,29.44,58.91Zm1,0a1.5,1.5,0,1,1,1.5,1.5A1.51,1.51,0,0,1,30.44,58.91Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"31.94\" cy=\"58.91\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-9\" d=\"M41.41,49.67a2.5,2.5,0,1,0,2.5-2.5A2.5,2.5,0,0,0,41.41,49.67Zm1,0a1.5,1.5,0,1,1,1.5,1.5A1.5,1.5,0,0,1,42.41,49.67Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"43.91\" cy=\"49.67\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-9\" d=\"M52.76,41.66a2.51,2.51,0,1,0,2.5-2.51A2.5,2.5,0,0,0,52.76,41.66Zm1,0a1.51,1.51,0,1,1,1.5,1.5A1.5,1.5,0,0,1,53.76,41.66Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"55.26\" cy=\"41.66\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-9\" d=\"M57.77,31.3a2.51,2.51,0,1,0,2.5-2.5A2.5,2.5,0,0,0,57.77,31.3Zm1,0a1.5,1.5,0,1,1,1.5,1.51A1.5,1.5,0,0,1,58.77,31.3Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"60.27\" cy=\"31.3\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-9\" d=\"M67.45,23.62a2.51,2.51,0,1,0,2.5-2.5A2.5,2.5,0,0,0,67.45,23.62Zm1,0A1.51,1.51,0,1,1,70,25.13,1.5,1.5,0,0,1,68.45,23.62Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"69.95\" cy=\"23.62\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-9\" d=\"M85.82,6.59a2.5,2.5,0,1,0,2.5-2.5A2.5,2.5,0,0,0,85.82,6.59Zm1,0a1.5,1.5,0,1,1,1.5,1.51A1.5,1.5,0,0,1,86.82,6.59Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"88.32\" cy=\"6.59\" r=\"1.5\"/>\n </g>\n</svg>\n`;\nexport const ScatterPoint = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-ScatterPoint-1{fill:#ab4191;}.cls-ScatterPoint-1,.cls-ScatterPoint-3,.cls-ScatterPoint-4{fill-rule:evenodd;}.cls-ScatterPoint-2{fill:#fff;}.cls-ScatterPoint-3{fill:#f05951;}.cls-ScatterPoint-4{fill:#fa8d3d;}</style>\n </defs>\n <g id=\"ChartNames\">\n <path class=\"cls-ScatterPoint-1\" d=\"M6.42,7.64A2.37,2.37,0,1,0,8.79,5.28,2.37,2.37,0,0,0,6.42,7.64Zm1,0A1.42,1.42,0,1,1,8.79,9.06,1.41,1.41,0,0,1,7.37,7.64Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"8.79\" cy=\"7.64\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M12.09,10a2.37,2.37,0,1,0,2.37-2.37A2.37,2.37,0,0,0,12.09,10ZM13,10a1.42,1.42,0,1,1,1.42,1.41A1.41,1.41,0,0,1,13,10Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"14.46\" cy=\"10.01\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M22,8.59a2.37,2.37,0,1,0,2.37-2.36A2.37,2.37,0,0,0,22,8.59Zm.95,0A1.42,1.42,0,1,1,24.38,10,1.41,1.41,0,0,1,23,8.59Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"24.38\" cy=\"8.59\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M14.46,14.73a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,14.46,14.73Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.42,1.42,0,0,1,15.4,14.73Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"16.82\" cy=\"14.73\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M11.62,31.27A2.37,2.37,0,1,0,14,28.9,2.36,2.36,0,0,0,11.62,31.27Zm1,0A1.42,1.42,0,1,1,14,32.68,1.41,1.41,0,0,1,12.57,31.27Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"13.98\" cy=\"31.27\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M3.12,28.9a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,3.12,28.9Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.41,1.41,0,0,1,4.06,28.9Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"5.48\" cy=\"28.9\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M2.64,34.57A2.37,2.37,0,1,0,5,32.21,2.37,2.37,0,0,0,2.64,34.57Zm.95,0A1.42,1.42,0,1,1,5,36,1.41,1.41,0,0,1,3.59,34.57Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"5.01\" cy=\"34.57\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M.75,37.88a2.37,2.37,0,1,0,2.37-2.36A2.36,2.36,0,0,0,.75,37.88Zm1,0A1.42,1.42,0,1,1,3.12,39.3,1.42,1.42,0,0,1,1.7,37.88Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"3.12\" cy=\"37.88\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M1.23,44.5a2.36,2.36,0,1,0,2.36-2.37A2.36,2.36,0,0,0,1.23,44.5Zm.94,0a1.42,1.42,0,1,1,1.42,1.41A1.41,1.41,0,0,1,2.17,44.5Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"3.59\" cy=\"44.5\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M2.64,66.23A2.37,2.37,0,1,0,5,63.87,2.37,2.37,0,0,0,2.64,66.23Zm.95,0A1.42,1.42,0,1,1,5,67.65,1.41,1.41,0,0,1,3.59,66.23Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"5.01\" cy=\"66.23\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M26.27,75.21a2.36,2.36,0,1,0,2.36-2.37A2.36,2.36,0,0,0,26.27,75.21Zm.94,0a1.42,1.42,0,1,1,1.42,1.41A1.41,1.41,0,0,1,27.21,75.21Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"28.63\" cy=\"75.21\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M9.73,52.06a2.37,2.37,0,1,0,2.36-2.37A2.36,2.36,0,0,0,9.73,52.06Zm.95,0a1.42,1.42,0,1,1,1.41,1.41A1.41,1.41,0,0,1,10.68,52.06Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"12.09\" cy=\"52.06\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M14.46,48.75a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,14.46,48.75Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.41,1.41,0,0,1,15.4,48.75Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"16.82\" cy=\"48.75\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M14.46,41.66a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,14.46,41.66Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.42,1.42,0,0,1,15.4,41.66Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"16.82\" cy=\"41.66\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M22.49,44.5a2.36,2.36,0,1,0,2.36-2.37A2.36,2.36,0,0,0,22.49,44.5Zm.94,0a1.42,1.42,0,1,1,1.42,1.41A1.42,1.42,0,0,1,23.43,44.5Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"24.85\" cy=\"44.5\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M30.52,44a2.36,2.36,0,1,0,2.36-2.36A2.37,2.37,0,0,0,30.52,44Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.42,1.42,0,0,1,31.46,44Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"32.88\" cy=\"44.02\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M19.18,87.88a2.36,2.36,0,1,0,2.36-2.36A2.37,2.37,0,0,0,19.18,87.88Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.42,1.42,0,0,1,20.12,87.88Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"21.54\" cy=\"87.88\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M30.52,67.65a2.36,2.36,0,1,0,2.36-2.37A2.36,2.36,0,0,0,30.52,67.65Zm.94,0a1.42,1.42,0,1,1,1.42,1.41A1.42,1.42,0,0,1,31.46,67.65Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"32.88\" cy=\"67.65\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M41.86,51.58a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,41.86,51.58Zm.94,0A1.42,1.42,0,1,1,44.22,53,1.42,1.42,0,0,1,42.8,51.58Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"44.22\" cy=\"51.58\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M41.86,53.94a2.36,2.36,0,1,0,2.36-2.36A2.37,2.37,0,0,0,41.86,53.94Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.42,1.42,0,0,1,42.8,53.94Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"44.22\" cy=\"53.94\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M41.86,63.39A2.36,2.36,0,1,0,44.22,61,2.37,2.37,0,0,0,41.86,63.39Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.42,1.42,0,0,1,42.8,63.39Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"44.22\" cy=\"63.39\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M41.86,71.43a2.36,2.36,0,1,0,2.36-2.37A2.36,2.36,0,0,0,41.86,71.43Zm.94,0a1.42,1.42,0,1,1,1.42,1.41A1.42,1.42,0,0,1,42.8,71.43Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"44.22\" cy=\"71.43\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M53.2,83.24a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,53.2,83.24Zm.94,0a1.42,1.42,0,1,1,1.42,1.41A1.42,1.42,0,0,1,54.14,83.24Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"55.56\" cy=\"83.24\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M64.06,75.21a2.37,2.37,0,1,0,2.37-2.37A2.37,2.37,0,0,0,64.06,75.21Zm1,0a1.42,1.42,0,1,1,1.42,1.41A1.41,1.41,0,0,1,65,75.21Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"66.43\" cy=\"75.21\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M64.06,63.39A2.37,2.37,0,1,0,66.43,61,2.37,2.37,0,0,0,64.06,63.39Zm1,0a1.42,1.42,0,1,1,1.42,1.42A1.41,1.41,0,0,1,65,63.39Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"66.43\" cy=\"63.39\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M75.4,71.43a2.37,2.37,0,1,0,2.36-2.37A2.36,2.36,0,0,0,75.4,71.43Zm.95,0a1.42,1.42,0,1,1,1.41,1.41A1.41,1.41,0,0,1,76.35,71.43Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"77.76\" cy=\"71.43\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M75.4,55.83a2.37,2.37,0,1,0,2.36-2.36A2.37,2.37,0,0,0,75.4,55.83Zm.95,0a1.42,1.42,0,1,1,1.41,1.42A1.41,1.41,0,0,1,76.35,55.83Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"77.76\" cy=\"55.83\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M75.4,24.81a2.37,2.37,0,1,0,2.36-2.36A2.36,2.36,0,0,0,75.4,24.81Zm.95,0a1.42,1.42,0,1,1,1.41,1.42A1.41,1.41,0,0,1,76.35,24.81Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"77.76\" cy=\"24.81\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M75.4,22a2.37,2.37,0,1,0,2.36-2.36A2.37,2.37,0,0,0,75.4,22Zm.95,0a1.42,1.42,0,1,1,1.41,1.42A1.41,1.41,0,0,1,76.35,22Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"77.76\" cy=\"21.97\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M86.74,84.1a2.37,2.37,0,1,0,2.36-2.36A2.37,2.37,0,0,0,86.74,84.1Zm1,0a1.42,1.42,0,1,1,1.41,1.42A1.41,1.41,0,0,1,87.69,84.1Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"89.1\" cy=\"84.1\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M86.74,71a2.37,2.37,0,1,0,2.36-2.36A2.37,2.37,0,0,0,86.74,71Zm1,0a1.42,1.42,0,1,1,1.41,1.42A1.41,1.41,0,0,1,87.69,71Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"89.1\" cy=\"70.95\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M41.86,88.36A2.36,2.36,0,1,0,44.22,86,2.36,2.36,0,0,0,41.86,88.36Zm.94,0a1.42,1.42,0,1,1,1.42,1.41A1.42,1.42,0,0,1,42.8,88.36Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"44.22\" cy=\"88.36\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M30.52,71.43a2.36,2.36,0,1,0,2.36-2.37A2.36,2.36,0,0,0,30.52,71.43Zm.94,0a1.42,1.42,0,1,1,1.42,1.41A1.42,1.42,0,0,1,31.46,71.43Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"32.88\" cy=\"71.43\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M19.65,64.34A2.37,2.37,0,1,0,22,62,2.36,2.36,0,0,0,19.65,64.34Zm1,0A1.42,1.42,0,1,1,22,65.76,1.41,1.41,0,0,1,20.6,64.34Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"22.01\" cy=\"64.34\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M30.52,50.64a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,30.52,50.64Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.42,1.42,0,0,1,31.46,50.64Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"32.88\" cy=\"50.64\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M30.52,62.92a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,30.52,62.92Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.43,1.43,0,0,1,31.46,62.92Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"32.88\" cy=\"62.92\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M30.52,79a2.36,2.36,0,1,0,2.36-2.37A2.36,2.36,0,0,0,30.52,79Zm.94,0a1.42,1.42,0,1,1,1.42,1.41A1.42,1.42,0,0,1,31.46,79Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"32.88\" cy=\"78.99\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M41.86,68.12a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,41.86,68.12Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.42,1.42,0,0,1,42.8,68.12Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"44.22\" cy=\"68.12\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M53.2,56.78a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,53.2,56.78Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.43,1.43,0,0,1,54.14,56.78Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"55.56\" cy=\"56.78\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M53.2,76.15a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,53.2,76.15Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.43,1.43,0,0,1,54.14,76.15Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"55.56\" cy=\"76.15\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M41.86,85.52a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,41.86,85.52Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.43,1.43,0,0,1,42.8,85.52Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"44.22\" cy=\"85.52\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M64.06,83.24a2.37,2.37,0,1,0,2.37-2.36A2.37,2.37,0,0,0,64.06,83.24Zm1,0a1.42,1.42,0,1,1,1.42,1.41A1.41,1.41,0,0,1,65,83.24Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"66.43\" cy=\"83.24\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M75.4,75.68a2.37,2.37,0,1,0,2.36-2.36A2.36,2.36,0,0,0,75.4,75.68Zm.95,0a1.42,1.42,0,1,1,1.41,1.42A1.41,1.41,0,0,1,76.35,75.68Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"77.76\" cy=\"75.68\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M77.76,75.21a2.37,2.37,0,1,0,2.37-2.37A2.37,2.37,0,0,0,77.76,75.21Zm.95,0a1.42,1.42,0,1,1,1.42,1.41A1.41,1.41,0,0,1,78.71,75.21Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"80.13\" cy=\"75.21\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M86.27,54.89a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,86.27,54.89Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.43,1.43,0,0,1,87.21,54.89Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"88.63\" cy=\"54.89\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M90.52,71a2.37,2.37,0,1,0,2.36-2.36A2.37,2.37,0,0,0,90.52,71Zm1,0a1.42,1.42,0,1,1,1.41,1.42A1.41,1.41,0,0,1,91.47,71Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"92.88\" cy=\"70.95\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M86.74,88.36A2.37,2.37,0,1,0,89.1,86,2.36,2.36,0,0,0,86.74,88.36Zm1,0a1.42,1.42,0,1,1,1.41,1.41A1.41,1.41,0,0,1,87.69,88.36Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"89.1\" cy=\"88.36\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M30.52,83.71a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,30.52,83.71Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.43,1.43,0,0,1,31.46,83.71Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"32.88\" cy=\"83.71\" r=\"1.42\"/>\n </g>\n</svg>\n`;\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'svg',\n})\nexport class SvgPipe implements PipeTransform {\n private readonly sanitizer = inject(DomSanitizer);\n\n public transform(markup: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(markup);\n }\n}\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n HostBinding,\n OnDestroy,\n Output,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n ElementRef,\n CUSTOM_ELEMENTS_SCHEMA,\n inject\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as charts from '../../../images/charts';\nimport { Subject } from 'rxjs';\nimport { IgxIconComponent } from 'igniteui-angular/icon';\nimport { IgxIconButtonDirective, IgxRippleDirective, IgxDividerDirective } from 'igniteui-angular/directives';\nimport { SvgPipe } from '../../pipes/svg.pipe';\n\n@Component({\n selector: 'igx-chart-menu',\n templateUrl: './chart-dialog.component.html',\n styleUrls: ['./chart-dialog.component.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule, IgxIconComponent, IgxIconButtonDirective, IgxRippleDirective, IgxDividerDirective, SvgPipe],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class IgxChartMenuComponent implements AfterViewInit, OnDestroy {\n\n @ViewChild('chartArea', { read: ViewContainerRef }) public chartArea: ViewContainerRef;\n\n @Output()\n public closed = new EventEmitter<any>();\n\n @HostBinding('style.width.px')\n public get width() {\n return this.fullScreen ? this._width : 0.7 * this._width;\n }\n public set width(value) {\n this._width = value;\n }\n\n @HostBinding('style.height.px')\n public get height() {\n return this.fullScreen ? this._height : 0.7 * this._height;\n }\n public set height(value) {\n this._height = value;\n }\n\n public chartDialogResizeNotify = new Subject();\n private contentObserver: ResizeObserver;\n public images;\n public chartDirective;\n public currentChartType;\n public title;\n public allCharts = [];\n public fullScreen = false;\n public isConfigAreaExpanded = false;\n public mainChartTypes = ['Column', 'Area', 'Bar', 'Line', 'Scatter', 'Pie'];\n private _width;\n private _height;\n private element = inject(ElementRef<any>);\n\n constructor() {\n this.images = charts;\n }\n\n public ngAfterViewInit() {\n this.contentObserver = new ResizeObserver((args) => this.chartDialogResizeNotify.next(args));\n this.contentObserver.observe(this.element.nativeElement);\n\n if (this.currentChartType && this.chartDirective) {\n this.createChart(this.currentChartType);\n }\n }\n\n public ngOnDestroy() {\n if (this.contentObserver) {\n this.contentObserver.disconnect();\n }\n this.chartDialogResizeNotify.complete();\n }\n\n public toggleFullScreen() {\n this.fullScreen = !this.fullScreen;\n }\n\n public hasAvailableChart(chartType) {\n return this.allCharts.some(c => c.includes(chartType));\n }\n\n public createChart(chartType) {\n if (!chartType || !this.chartDirective || !this.chartArea) {\n return;\n }\n this.currentChartType = chartType;\n this.title = chartType.split(/(?=[A-Z])/).toString().replace(',', ' ');\n this.chartArea.clear();\n this.chartDirective.chartFactory(chartType, this.chartArea);\n }\n}\n","<div class=\"header\">\n <span class=\"header-text\">\n {{ title }} Chart\n </span>\n <span class=\"action-buttons-wrapper\">\n <button igxIconButton=\"flat\" (click)=\"toggleFullScreen()\">\n <igx-icon class=\"material\">fullscreen{{fullScreen ? '_exit' : ''}}</igx-icon>\n </button>\n <button igxIconButton=\"flat\" (click)=\"closed.emit()\">\n <igx-icon class=\"material\">close</igx-icon>\n </button>\n </span>\n</div>\n<div class=\"selection-area ig-scrollbar\">\n <igc-trial-watermark></igc-trial-watermark>\n <div class=\"chart-area\" [ngClass]=\"{'expanded': isConfigAreaExpanded}\">\n <ng-template #chartArea ></ng-template>\n </div>\n <div>\n <button igxIconButton=\"flat\" igxRipple (click)=\"isConfigAreaExpanded = !isConfigAreaExpanded\">\n <igx-icon family=\"material\">chevron_{{ isConfigAreaExpanded ? 'left': 'right'}}</igx-icon>\n </button>\n </div>\n <div #configArea [ngClass]=\"{'chart-config-area': true, 'opened': !isConfigAreaExpanded, 'closed': isConfigAreaExpanded }\">\n <div class=\"config-area-header\">\n <span>Chart Types</span>\n </div>\n <igx-divider class=\"divider\"></igx-divider>\n @for (chartType of mainChartTypes; track chartType) {\n <div class=\"wrapper\">\n @if (hasAvailableChart(chartType)) {\n <div>{{chartType | titlecase}} Chart</div>\n <div class=\"types-section\">\n @for (chart of allCharts; track chart) {\n @if (chart.startsWith(chartType)) {\n <span class=\"types-section-btn\" title=\"{{chart}}\"\n [ngClass]=\"{'selected': chart === currentChartType}\" (click)=\"createChart(chart)\">\n <div [innerHTML]=\"images[chart] | svg\">\n </div>\n </span>\n }\n }\n </div>\n <igx-divider></igx-divider>\n }\n </div>\n }\n </div>\n</div>\n","// tslint:disable: max-line-length\nexport const Clear = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <defs>\n <style>.cls-Clear-1{fill-rule:evenodd;}.cls-Clear-2{fill:none;}</style>\n </defs>\n <g id=\"Layer_2\" data-name=\"Layer 2\">\n <g id=\"Layer_1-2\" data-name=\"Layer 1\">\n <g id=\"Conditional-formating\">\n <g id=\"Artboard\">\n <g id=\"refresh-24px\">\n <path id=\"Path\" class=\"cls-Clear-1\" d=\"M17.65,6.35A8,8,0,1,0,19.73,14H17.65A6,6,0,1,1,12,6a5.91,5.91,0,0,1,4.22,1.78L13,11h7V4Z\"/>\n <polygon class=\"cls-Clear-2\" points=\"0 0 24 0 24 24 0 24 0 0\"/>\n </g>\n </g>\n </g>\n </g>\n </g>\n</svg>\n`;\nexport const ColorScale = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M13 13.65h5a5.63 5.63 0 00-.09-1H13zM13 10.65h4.19a6.29 6.29 0 00-.74-1H13zM13 19.58a5.87 5.87 0 002.34-.93H13zM13 6.18v1.48h1.48l-1-1-.48-.48zM13 15.65v1h4.2a5.68 5.68 0 00.46-1zM11 6.18L7.76 9.43A6 6 0 0011 19.58z\" fill=\"none\"/>\n <path d=\"M16.45 9.65H13v1h4.19a6.29 6.29 0 00-.74-1zM13.48 6.66L13 6.18v1.48h1.48l-1-1zM6 13.66a6 6 0 005 5.92V6.18L7.76 9.42A6 6 0 006 13.66zM13 19.58a5.87 5.87 0 002.34-.93H13zM13 16.65h4.2a5.68 5.68 0 00.46-1H13zM13 12.65v1h5a5.63 5.63 0 00-.09-1z\" fill=\"none\"/>\n <path d=\"M19.93 12.66a7.84 7.84 0 00-.51-2 8.48 8.48 0 00-.5-1A7.8 7.8 0 0017.66 8l-.35-.36-.31-.26-.73-.73-2-2-.85-.84L12 2.34 6.34 8A8 8 0 0011 21.58h.21a7 7 0 00.79 0 7.14 7.14 0 00.8 0h.2a7.94 7.94 0 006.93-8.92zM11 19.58A6 6 0 017.76 9.42L11 6.18zm2-12.93v-.47l.48.47 1 1H13zm0 3h3.45a6.29 6.29 0 01.74 1H13zm0 9.93v-.93h2.34a5.87 5.87 0 01-2.34.93zm4.2-2.93H13v-1h4.66a5.68 5.68 0 01-.46 1zm-4.2-3v-1h4.91a5.63 5.63 0 01.09 1z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n</svg>\n\n`;\nexport const DataBars = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M3 7h12v2H3zM3 15h12v2H3zM3 19h18v2H3zM3 11h18v2H3zM3 3h18v2H3z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n</svg>\n\n`;\nexport const DuplicateValues = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M4.94 10.56a1 1 0 00-.38.79.79.79 0 00.25.63 1.06 1.06 0 00.74.24 1.9 1.9 0 001.06-.3 1.48 1.48 0 00.63-.67v-1H6a1.58 1.58 0 00-1.06.31zM16.94 14.69a1 1 0 00-.38.79.82.82 0 00.25.63 1.11 1.11 0 00.74.23 2 2 0 001.06-.29 1.5 1.5 0 00.63-.68v-1H18a1.54 1.54 0 00-1.06.32z\" fill=\"none\"/>\n <path d=\"M4.94 10.56a1 1 0 00-.38.79.79.79 0 00.25.63 1.06 1.06 0 00.74.24 1.9 1.9 0 001.06-.3 1.48 1.48 0 00.63-.67v-1H6a1.58 1.58 0 00-1.06.31zM16.94 14.69a1 1 0 00-.38.79.82.82 0 00.25.63 1.11 1.11 0 00.74.23 2 2 0 001.06-.29 1.5 1.5 0 00.63-.68v-1H18a1.54 1.54 0 00-1.06.32z\" fill=\"none\"/>\n <path d=\"M20.76 15.87v-3.06a2.17 2.17 0 00-.76-1.76 3 3 0 00-1.94-.61 3.06 3.06 0 00-2 .63 1.7 1.7 0 00-.73 1.45h1.49a.83.83 0 01.31-.66 1.29 1.29 0 01.84-.25 1.26 1.26 0 01.91.3 1.09 1.09 0 01.32.85v.6H18a3.81 3.81 0 00-2.22.56 1.78 1.78 0 00-.78 1.59 2 2 0 00.58 1.49 2.31 2.31 0 001.65.55 2.12 2.12 0 001.16-.33 2.79 2.79 0 00.83-.81 4.33 4.33 0 00.08.5c0 .16.08.33.13.51H21a4.29 4.29 0 01-.18-.77 5.46 5.46 0 01-.06-.78zm-1.52-.5a1.5 1.5 0 01-.63.68 2 2 0 01-1.06.29 1.11 1.11 0 01-.74-.23.82.82 0 01-.25-.63 1 1 0 01.38-.79 1.54 1.54 0 011.06-.34h1.24zM8.76 11.75V8.69A2.16 2.16 0 008 6.93a2.93 2.93 0 00-1.94-.61 3.06 3.06 0 00-2 .63 1.69 1.69 0 00-.73 1.44h1.5a.83.83 0 01.31-.65A1.3 1.3 0 016 7.52a1.23 1.23 0 01.91.31 1.07 1.07 0 01.32.84v.61H6a3.74 3.74 0 00-2.22.56A1.78 1.78 0 003 11.39a2 2 0 00.58 1.52 2.27 2.27 0 001.65.56 2.12 2.12 0 001.16-.33 2.79 2.79 0 00.83-.81 4.17 4.17 0 00.08.49 4.77 4.77 0 00.13.51H9a4 4 0 01-.18-.76 5.55 5.55 0 01-.06-.82zm-1.52-.5a1.48 1.48 0 01-.63.67 1.9 1.9 0 01-1.06.3 1.06 1.06 0 01-.74-.22.79.79 0 01-.25-.63 1 1 0 01.38-.79A1.58 1.58 0 016 10.23h1.24zM7 19h2v2H7zM7 15h2v2H7zM3 15h2v2H3zM15 7h2v2h-2zM15 3h2v2h-2zM3 19h2v2H3zM19 19h2v2h-2zM19 7h2v2h-2zM15 19h2v2h-2zM19 3h2v2h-2zM11 11h2v2h-2zM11 19h2v2h-2zM11 15h2v2h-2zM11 7h2v2h-2zM11 3h2v2h-2zM7 3h2v2H7zM3 3h2v2H3z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n</svg>\n\n`;\nexport const Empty = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path d=\"M5 17h2v2H5zM13 17h2v2h-2zM5 13h2v2H5zM17 17h2v2h-2zM13 5h2v2h-2zM9 17h2v2H9zM17 9h2v2h-2zM17 13h2v2h-2zM17 5h2v2h-2zM5 9h2v2H5zM5 5h2v2H5zM9 5h2v2H9z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n</svg>\n\n`;\nexport const Equal = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M5 13.5h14v2H5zM5 8.5h14v2H5z\"/>\n</svg>\n\n`;\nexport const GreaterThan = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M6 7.11L15.09 12 6 16.89V19l12-6.46v-1.08L6 5v2.11z\"/>\n</svg>\n\n`;\nexport const TextContains = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M10.79 12.77a1.16 1.16 0 00-.44.9.92.92 0 00.3.72 1.18 1.18 0 00.84.27 2.27 2.27 0 001.21-.34 1.61 1.61 0 00.71-.77v-1.17H12a1.76 1.76 0 00-1.21.39z\" fill=\"none\"/>\n <path d=\"M5 19h14V5H5zm8-9.36a1.45 1.45 0 00-1-.35 1.5 1.5 0 00-1 .29.93.93 0 00-.35.75H9a1.93 1.93 0 01.83-1.65 3.54 3.54 0 012.3-.72 3.34 3.34 0 012.22.7 2.44 2.44 0 01.84 2v3.5a5.57 5.57 0 00.07.93 4.51 4.51 0 00.21.88h-1.83c-.06-.2-.12-.39-.16-.58a3.72 3.72 0 01-.08-.57 3.05 3.05 0 01-1 .93 2.39 2.39 0 01-1.32.37 2.63 2.63 0 01-1.89-.63 2.29 2.29 0 01-.66-1.74 2.07 2.07 0 01.9-1.78A4.39 4.39 0 0112 11.3h1.38v-.69a1.3 1.3 0 00-.38-.97z\" fill=\"none\"/>\n <path d=\"M3 3v18h18V3zm16 16H5V5h14z\"/>\n <path d=\"M12 11.3a4.39 4.39 0 00-2.54.63 2.07 2.07 0 00-.9 1.78 2.29 2.29 0 00.66 1.74 2.63 2.63 0 001.89.63 2.39 2.39 0 001.32-.37 3.05 3.05 0 001-.93 3.72 3.72 0 00.08.57c0 .19.1.38.16.58h1.79a4.51 4.51 0 01-.21-.88 5.57 5.57 0 01-.07-.93v-3.5a2.44 2.44 0 00-.84-2 3.34 3.34 0 00-2.22-.7 3.54 3.54 0 00-2.3.72A1.93 1.93 0 009 10.29h1.71a.93.93 0 01.29-.71 1.5 1.5 0 011-.29 1.45 1.45 0 011 .35 1.3 1.3 0 01.37 1v.69zm1.4 1.08v1.17a1.61 1.61 0 01-.71.77 2.27 2.27 0 01-1.21.34 1.18 1.18 0 01-.84-.27.92.92 0 01-.3-.72 1.16 1.16 0 01.44-.9 1.76 1.76 0 011.22-.39z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n</svg>\n\n`;\nexport const Top10 = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M17.34 7.14a.5.5 0 00-.13.33v.33a.48.48 0 00.13.33.41.41 0 00.31.14.37.37 0 00.42-.37v-.41a.49.49 0 00-.07-.34.45.45 0 00-.62 0zM10.84 8a.54.54 0 00.51-.3 2.05 2.05 0 00.17-.92V5.3a2 2 0 00-.17-.94.6.6 0 00-1 0 2.13 2.13 0 00-.17.88V6.7a2.14 2.14 0 00.17 1 .55.55 0 00.49.3zM14.88 5c.28 0 .42-.18.42-.53v-.26a.53.53 0 00-.11-.34.4.4 0 00-.32-.14.42.42 0 00-.31.13.52.52 0 00-.12.36v.29a.49.49 0 00.12.34.39.39 0 00.32.15z\" fill=\"none\"/>\n <path d=\"M9 18h2v3h2v-3h2l-3-3-3 3zM4 11h16v2H4zM6.38 8.92h1.36V3.08h-.12l-2.57.89V5l1.33-.39v4.31zM10.84 9a1.85 1.85 0 001.5-.64 2.82 2.82 0 00.53-1.82V5.47a2.76 2.76 0 00-.54-1.82 1.83 1.83 0 00-1.5-.65 1.83 1.83 0 00-1.5.65 2.78 2.78 0 00-.53 1.82v1.07a2.79 2.79 0 00.53 1.81 1.86 1.86 0 001.51.65zm-.69-3.79a2.13 2.13 0 01.17-.88.6.6 0 011 0 2 2 0 01.17.94v1.47a2.05 2.05 0 01-.17.92.59.59 0 01-1 0 2.14 2.14 0 01-.17-1zM14.88 5.71a1.31 1.31 0 00.94-.33 1.11 1.11 0 00.35-.86v-.29a1.19 1.19 0 00-.35-.9 1.32 1.32 0 00-1-.33 1.34 1.34 0 00-.95.33 1.17 1.17 0 00-.35.88v.28a1.16 1.16 0 00.36.9 1.4 1.4 0 001 .32zm-.44-1.49a.52.52 0 01.12-.36.42.42 0 01.31-.13.4.4 0 01.32.14.53.53 0 01.11.34v.24c0 .35-.14.53-.42.53a.39.39 0 01-.32-.13.49.49 0 01-.12-.34zM15.13 8.48l2.85-4.56-.62-.32-2.85 4.57.62.31zM16.7 6.62a1.1 1.1 0 00-.35.87v.29a1.12 1.12 0 00.35.89 1.36 1.36 0 00.95.33 1.32 1.32 0 001-.33A1.15 1.15 0 0019 7.8v-.28a1.17 1.17 0 00-.36-.91 1.54 1.54 0 00-1.89 0zm1.38.87v.41a.37.37 0 01-.42.37.41.41 0 01-.31-.14.48.48 0 01-.13-.33v-.33a.5.5 0 01.13-.33.45.45 0 01.62 0 .49.49 0 01.11.35z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n</svg>\n\n`;\nexport const UniqueValues = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path d=\"M8.94 10.56a1 1 0 00-.38.79.79.79 0 00.25.63 1.06 1.06 0 00.74.24 1.9 1.9 0 001.06-.3 1.48 1.48 0 00.63-.67v-1H10a1.58 1.58 0 00-1.06.31z\" fill=\"none\"/>\n <path d=\"M8.94 10.56a1 1 0 00-.38.79.79.79 0 00.25.63 1.06 1.06 0 00.74.24 1.9 1.9 0 001.06-.3 1.48 1.48 0 00.63-.67v-1H10a1.58 1.58 0 00-1.06.31z\" fill=\"none\"/>\n <path d=\"M12.76 11.75V8.69A2.16 2.16 0 0012 6.93a2.93 2.93 0 00-1.94-.61 3.06 3.06 0 00-2 .63 1.69 1.69 0 00-.73 1.44h1.5a.83.83 0 01.31-.65 1.3 1.3 0 01.86-.22 1.23 1.23 0 01.91.31 1.07 1.07 0 01.32.84v.61H10a3.74 3.74 0 00-2.22.56A1.78 1.78 0 007 11.39a2 2 0 00.58 1.52 2.27 2.27 0 001.65.56 2.12 2.12 0 001.16-.33 2.79 2.79 0 00.83-.81 4.17 4.17 0 00.08.49 4.77 4.77 0 00.13.51H13a4 4 0 01-.18-.76 5.55 5.55 0 01-.06-.82zm-1.52-.5a1.48 1.48 0 01-.63.67 1.9 1.9 0 01-1.06.3 1.06 1.06 0 01-.74-.22.79.79 0 01-.25-.63 1 1 0 01.38-.79 1.58 1.58 0 011.06-.35h1.24zM7 19h2v2H7zM7 15h2v2H7zM3 15h2v2H3zM15 7h2v2h-2zM15 3h2v2h-2zM3 19h2v2H3zM19 19h2v2h-2zM19 7h2v2h-2zM15 19h2v2h-2zM19 3h2v2h-2zM15 11h2v2h-2zM19 11h2v2h-2zM15 15h2v2h-2zM19 15h2v2h-2zM11 19h2v2h-2zM11 15h2v2h-2zM11 3h2v2h-2zM7 3h2v2H7zM3 3h2v2H3zM3 7h2v2H3zM3 11h2v2H3z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n</svg>\n\n`;\n","import { AfterViewInit, Component, ElementRef, ViewChild, ViewContainerRef, OnDestroy, CUSTOM_ELEMENTS_SCHEMA, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport {\n IgxBarSeriesModule, IgxCategoryChartModule, IgxCategoryXAxisModule,\n IgxDataChartCategoryModule, IgxDataChartCoreModule,\n IgxDataChartInteractivityModule, IgxDataChartScatterModule, IgxDataChartStackedModule,\n IgxItemLegendModule, IgxLegendModule,\n IgxNumericXAxisModule, IgxNumericYAxisModule\n} from 'igniteui-angular-charts';\n\nimport { AutoPositionStrategy, CloseScrollStrategy, HorizontalAlignment, IgxOverlayService, OverlayCancelableEventArgs, OverlayEventArgs, OverlaySettings, VerticalAlignment } from 'igniteui-angular/core';\nimport { IgxIconButtonDirective, IgxToggleDirective } from 'igniteui-angular/directives';\nimport { IgxTabContentComponent, IgxTabHeaderComponent, IgxTabHeaderLabelDirective, IgxTabItemComponent, IgxTabsComponent } from 'igniteui-angular/tabs';\nimport { IgxIconComponent } from 'igniteui-angular/icon';\n\nimport { IgxContextMenuDirective } from './igx-context-menu.directive';\nimport { IgxChartMenuComponent } from './chart-dialog/chart-dialog.component';\nimport { SvgPipe } from '../pipes/svg.pipe';\nimport * as charts from '../../images/charts';\nimport * as conditions from '../../images/conditions';\nimport { CHART_TYPE } from '../directives/chart-integration/chart-types';\n\n@Component({\n selector: 'igx-context-menu',\n templateUrl: './context-menu.component.html',\n styleUrls: ['./context-menu.component.scss'],\n imports: [\n CommonModule,\n SvgPipe,\n IgxToggleDirective,\n IgxIconComponent,\n IgxTabsComponent,\n IgxTabItemComponent,\n IgxTabHeaderComponent,\n IgxTabContentComponent,\n IgxTabHeaderLabelDirective,\n IgxBarSeriesModule,\n IgxCategoryChartModule,\n IgxCategoryXAxisModule,\n IgxDataChartCategoryModule,\n IgxDataChartCoreModule,\n IgxDataChartInteractivityModule,\n IgxDataChartScatterModule,\n IgxDataChartStackedModule,\n IgxItemLegendModule,\n IgxLegendModule,\n IgxNumericXAxisModule,\n IgxNumericYAxisModule,\n IgxIconButtonDirective\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class IgxContextMenuComponent implements AfterViewInit, OnDestroy {\n @ViewChild('analyticsBtn') public button: ElementRef;\n @ViewChild('tabsMenu', { read: IgxToggleDirective }) public tabsMenu: IgxToggleDirective;\n @ViewChild('chartPreview', { read: ViewContainerRef }) public chartPreview: ViewContainerRef;\n @ViewChild('chartPreviewDialog', { read: IgxToggleDirective }) public chartPreviewDialog: IgxToggleDirective;\n @ViewChild(IgxTabsComponent) public tabs: IgxTabsComponent;\n\n public contextDirective: IgxContextMenuDirective;\n public chartTypes = [];\n public textFormatters = [];\n public currentChartType;\n public currentFormatter;\n public displayCreationTab = true;\n private destroy$ = new Subject<any>();\n private _dialogId;\n private _chartDialogOS: OverlaySettings = { closeOnOutsideClick: false };\n\n private _tabsMenuOverlaySettings: OverlaySettings = {\n closeOnOutsideClick: false,\n modal: false,\n outlet: null,\n scrollStrategy: new CloseScrollStrategy(),\n positionStrategy: new AutoPositionStrategy({\n horizontalDirection: HorizontalAlignment.Center,\n horizontalStartPoint: HorizontalAlignment.Center,\n verticalStartPoint: VerticalAlignment.Bottom,\n verticalDirection: VerticalAlignment.Bottom,\n openAnimation: null,\n closeAnimation: null,\n }),\n };\n\n private _chartPreviewDialogOverlaySettings: OverlaySettings = {\n closeOnOutsideClick: false,\n modal: false,\n outlet: null,\n scrollStrategy: new CloseScrollStrategy(),\n positionStrategy: new AutoPositionStrategy({\n horizontalDirection: HorizontalAlignment.Center,\n horizontalStartPoint: HorizontalAlignment.Center,\n verticalStartPoint: VerticalAlignment.Top,\n verticalDirection: VerticalAlignment.Top,\n openAnimation: null,\n closeAnimation: null,\n }),\n };\n\n public chartImages;\n public conditionImages;\n private overlayService = inject(IgxOverlayService);\n\n constructor() {\n this.chartImages = charts;\n this.conditionImages = conditions;\n }\n\n public ngAfterViewInit() {\n this.chartTypes = this.contextDirective.charts;\n this.textFormatters = this.contextDirective.formatters;\n this.displayCreationTab = this.contextDirective.displayCreationTab;\n\n if (this.contextDirective.chartsDirective) {\n this.contextDirective.chartsDirective.chartTypesDetermined.pipe(takeUntil(this.destroy$))\n .subscribe((args) => (this.chartTypes = args.chartsForCreation));\n }\n\n if (this.contextDirective.textFormatter) {\n this.contextDirective.textFormatter.formattersReady.pipe(takeUntil(this.destroy$))\n .subscribe((names) => (this.textFormatters = names));\n }\n\n this.contextDirective.buttonClose.pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (this.tabsMenu && !this.tabsMenu.collapsed) {\n this.tabsMenu.close();\n }\n });\n\n this.contextDirective.gridResizeNotify.pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (!this.tabsMenu.collapsed) {\n this.tabsMenu.close();\n }\n });\n\n this.overlayService.opening.pipe(takeUntil(this.destroy$))\n .subscribe((args: OverlayCancelableEventArgs) => {\n if (args.componentRef) {\n const instance = args.componentRef.instance as IgxChartMenuComponent;\n instance.width = this.contextDirective.grid.nativeElement.clientWidth;\n instance.height = this.contextDirective.grid.nativeElement.clientHeight;\n instance.currentChartType = this.currentChartType;\n instance.allCharts = this.chartTypes;\n instance.chartDirective = this.contextDirective.chartsDirective;\n // TODO: This code handles resizing for a fullscreen dialog when the chart dialog resize event is triggered. \n // Currently, it determines the visible child element by filtering based on visibility and CSS classes, \n // which is not a reliable or optimal approach. Instead, this should be improved by properly handling \n // when elements in the overlay are detached and ensuring chart dialog is only available. \n instance.chartDialogResizeNotify?.subscribe(resizedContentArgs => {\n if ((this.overlayService as any)._overlayElement) {\n const overlayElement = (this.overlayService as any)._overlayElement;\n const visibleChild = Array.from(overlayElement.children).find(\n (child: HTMLElement) =>\n getComputedStyle(child).visibility !== 'hidden' &&\n child.classList.contains('igx-overlay__wrapper--flex')\n ) as HTMLElement | null;\n if (visibleChild) {\n const targetElement = visibleChild.children[0] as HTMLElement | null;\n if (targetElement && targetElement.style) {\n targetElement.style.width = resizedContentArgs[0].contentRect.width + 'px';\n }\n }\n }\n });\n instance.closed?.subscribe(() => this.closeDialog());\n }\n });\n\n this.overlayService.closing.pipe(takeUntil(this.destroy$))\n .subscribe((args: OverlayEventArgs) => {\n if (args.componentRef && args.componentRef.instance instanceof IgxChartMenuComponent) {\n if (this._dialogId) {\n this.tabsMenu.open(this._tabsMenuOverlaySettings);\n }\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.complete();\n }\n\n public toggleTabMenu() {\n this.currentChartType = this.currentChartType || CHART_TYPE.ColumnGrouped;\n this._tabsMenuOverlaySettings.target = this.button.nativeElement;\n if (this.tabsMenu.collapsed) {\n this.tabsMenu.open(this._tabsMenuOverlaySettings);\n } else {\n this.tabsMenu.close();\n }\n }\n\n public formatCells(condition) {\n this.currentFormatter = condition;\n this.contextDirective.textFormatter.formatCells(condition);\n }\n\n public clearFormat() {\n this.contextDirective.textFormatter.clearFormatting();\n this.currentFormatter = undefined;\n }\n\n public previewChart(currentChartType) {\n this.currentChartType = currentChartType;\n this.chartPreview.clear();\n this.contextDirective.chartsDirective.chartFactory(currentChartType, this.chartPreview);\n this._chartPreviewDialogOverlaySettings.target = this.tabsMenu.element;\n this.chartPreviewDialog.open(this._chartPreviewDialogOverlaySettings);\n }\n\n public hidePreview() {\n this.chartPreviewDialog.close();\n }\n\n public openDialog(type?: CHART_TYPE) {\n this.currentChartType =\n type || this.currentChartType || CHART_TYPE.ColumnGrouped;\n this._dialogId = this._dialogId || this.overlayService.attach(IgxChartMenuComponent, this._chartDialogOS);\n this.tabsMenu.close();\n this.overlayService.show(this._dialogId);\n }\n\n public closeDialog() {\n const info = this.overlayService.getOverlayById(this._dialogId);\n if (info) {\n this.overlayService.hide(this._dialogId);\n this.overlayService.detach(this._dialogId);\n this._dialogId = undefined;\n }\n }\n}\n","<span #analyticsBtn class=\"analytics-btn\">\n <button #btn class=\"analytics-button\" igxIconButton=\"flat\" (click)=\"toggleTabMenu()\">\n <igx-icon #icon class=\"icon\" family=\"material\">insert_chart_outlined</igx-icon>\n </button>\n</span>\n<div #tabsMenu igxToggle class=\"toggle-content ig-scrollbar\">\n <igx-tabs tabsType=\"fixed\" [selectedIndex]=\"!this.textFormatters.length && chartTypes.length ? 1 : 0\">\n <igx-tab-item [disabled]=\"!textFormatters.length\">\n <igx-tab-header>\n <span igxTabHeaderLabel>Conditional Formatting</span>\n </igx-tab-header>\n <igx-tab-content>\n <igc-trial-watermark></igc-trial-watermark>\n <div class=\"tabs\">\n <span class=\"tab-option\">\n @for (condition of textFormatters; track condition) {\n <span class=\"action btn condition\"\n [ngClass]=\"{'selected--condition': condition === currentFormatter}\"\n (click)=\"formatCells(condition)\">\n <div class=\"imgSize\" [innerHTML]=\"conditionImages[condition.replace(' ', '')] | svg\">\n </div>\n <span class=\"name\">{{condition.replace('10', '10%')}}</span>\n </span>\n }\n </span>\n <span class=\"clear action\"\n [ngClass]=\"{'disableButton': contextDirective.textFormatter ? !contextDirective.textFormatter.formatter : true }\"\n (click)=\"clearFormat()\">\n <div class=\"imgSize\" [innerHTML]=\"conditionImages['Clear'] | svg\">\n </div>\n <span class=\"btn name\">Clear All</span>\n </span>\n </div>\n </igx-tab-content>\n </igx-tab-item>\n @if (displayCreationTab) {\n <igx-tab-item [disabled]=\"!chartTypes.length\">\n <igx-tab-header>\n <span igxTabHeaderLabel>Create Chart</span>\n </igx-tab-header>\n <igx-tab-content>\n <igc-trial-watermark></igc-trial-watermark>\n <div class=\"tabs\">\n <span class=\"tab-option\">\n @for (chart of chartTypes | slice:0:4; track chart) {\n <span class=\"action btn chart\"\n [ngClass]=\"{'selected': chart === currentChartType}\" (mouseenter)=\"previewChart(chart)\"\n (mouseleave)=\"hidePreview()\" (click)=\"openDialog(chart)\">\n <span [innerHTML]=\"chartImages[chart] | svg\" class=\"imgSize\">\n </span>\n <span class=\"name\">{{chart}}</span>\n </span>\n }\n </span>\n <span class=\"more-action chart\" [ngClass]=\"{'disableButton': !chartTypes.length}\"\n (click)=\"openDialog()\">\n <button class=\"more-btn more-icon\" igxIconButton=\"flat\" [style.--background]=\"'#EBEBEB'\"\n [style.--foreground]=\"'black'\">\n <igx-icon class=\"icon\" family=\"material\">more_horiz</igx-icon>\n </button>\n <span class=\"name btn\">More...</span>\n </span>\n </div>\n </igx-tab-content>\n </igx-tab-item>\n }\n </igx-tabs>\n</div>\n<div igxToggle #chartPreviewDialog class=\"chart-preview\">\n <div class=\"chart-preview-title\">\n <h5>Preview Chart</h5>\n </div>\n <div class=\"chart-preview-area\">\n <ng-template #chartPreview></ng-template>\n </div>\n</div>","import {\n AfterViewInit,\n Directive,\n EventEmitter,\n Output,\n Input,\n OnInit,\n OnDestroy,\n inject\n} from '@angular/core';\nimport { AbsoluteScrollStrategy, AutoPositionStrategy, HorizontalAlignment, IgxOverlayService, OverlayCancelableEventArgs, OverlaySettings, VerticalAlignment } from 'igniteui-angular/core';\nimport { IgxGridComponent } from 'igniteui-angular/grids/grid';\nimport { IColumnSelectionEventArgs } from 'igniteui-angular/grids/core';\nimport { merge, Subject } from 'rxjs';\nimport { debounceTime, filter, takeUntil } from 'rxjs/operators';\nimport { IgxChartIntegrationDirective } from '../directives/chart-integration/chart-integration.directive';\nimport { IgxConditionalFormattingDirective } from '../directives/conditional-formatting/conditional-formatting.directive';\nimport { IgxContextMenuComponent } from './context-menu.component';\n\n@Directive({\n selector: '[igxContextMenu]',\n})\nexport class IgxContextMenuDirective implements OnInit, AfterViewInit, OnDestroy {\n @Input() public displayCreationTab: boolean = true;\n @Output() public buttonClose = new EventEmitter<any>();\n\n public formatters = [];\n public charts = [];\n public gridResizeNotify = new Subject<void>();\n private contentObserver: ResizeObserver;\n private _range;\n private _id;\n private _collapsed = true;\n private destroy$ = new Subject<boolean>();\n private _analyticsBtnSettings: OverlaySettings = {\n closeOnOutsideClick: false,\n modal: false\n };\n\n public readonly grid = inject(IgxGridComponent);\n public readonly textFormatter = inject(IgxConditionalFormattingDirective, { optional: true });\n public readonly chartsDirective = inject(IgxChartIntegrationDirective, { optional: true });\n private readonly overlayService = inject(IgxOverlayService);\n\n constructor() { }\n\n public ngOnInit() {\n this.gridResizeNotify.pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (this._id && !this._collapsed) {\n this.renderButton();\n }\n });\n }\n\n public ngAfterViewInit() {\n this.setUpGridListeners();\n if (this.textFormatter) {\n this.textFormatter.formattersReady.pipe(takeUntil(this.destroy$))\n .subscribe(names => this.formatters = names);\n }\n if (this.chartsDirective) {\n this.chartsDirective.chartTypesDetermined.pipe(takeUntil(this.destroy$))\n .subscribe((args) => this.charts = args.chartsForCreation);\n }\n this.overlayService.opening.pipe(takeUntil(this.destroy$))\n .subscribe((args: OverlayCancelableEventArgs) => {\n if (args.componentRef) {\n const instance = (args.componentRef.instance as IgxContextMenuComponent);\n instance.contextDirective = this;\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.complete();\n if (this.contentObserver) {\n this.contentObserver.disconnect();\n this.contentObserver = null;\n }\n if (!this._collapsed) {\n this.close();\n }\n }\n\n private setUpGridListeners() {\n this.contentObserver = new ResizeObserver(() => this.gridResizeNotify.next());\n this.contentObserver.observe(this.grid.nativeElement);\n\n this.grid.columnSelectionChanging.pipe(debounceTime(100), takeUntil(this.destroy$))\n .subscribe((args: IColumnSelectionEventArgs) => {\n if (args.newSelection && args.oldSelection && !this._collapsed) {\n this.close();\n }\n this.grid.clearCellSelection();\n if (this.chartsDirective) {\n this.chartsDirective.chartData = this.grid.getSelectedColumnsData();\n }\n if (!this._collapsed) {\n this.buttonClose.emit();\n }\n this.renderHeaderButton();\n });\n\n this.grid.rangeSelected.pipe(takeUntil(this.destroy$), debounceTime(200))\n .subscribe((args) => {\n this._range = args;\n if (this.chartsDirective) {\n if (this.grid.getSelectedRanges().length === 1) {\n this.chartsDirective.chartData = this.grid.getSelectedData();\n } else {\n this.chartsDirective.chartData = [];\n }\n }\n if (!this._collapsed) {\n this.buttonClose.emit();\n }\n this.renderButton();\n });\n merge(\n this.grid.verticalScrollContainer.chunkLoad,\n this.grid.parentVirtDir.chunkLoad,\n this.grid.filteringDone,\n this.grid.columnResized,\n this.grid.columnVisibilityChanged.pipe(debounceTime(200))\n ).pipe(\n filter(() => this._range), takeUntil(this.destroy$)).subscribe(() => {\n this.buttonClose.emit();\n this.renderButton();\n });\n merge(this.grid.selected, this.grid.groupingDone).pipe(\n takeUntil(this.destroy$)).subscribe((args: any) => {\n if (this.grid.selectedCells.length < 2 || args.expressions) {\n this._range = undefined;\n this.close();\n }\n });\n }\n\n private renderButton() {\n if (!this._range) {\n return;\n }\n let rowIndex = this._range.rowEnd;\n let colIndex = +this._range.columnEnd;\n while (colIndex >= this._range.columnStart && !this.grid.navigation.isColumnFullyVisible(colIndex)) {\n colIndex--;\n }\n while (rowIndex >= this._range.rowStart && this.grid.navigation.shouldPerformVerticalScroll(rowIndex, -1)) {\n rowIndex--;\n }\n const field = this.grid.visibleColumns[colIndex] ? this.grid.visibleColumns[colIndex].field : '';\n const cell = this.grid.gridAPI.get_cell_by_index(rowIndex, field);\n if (!cell || !this.isWithInRange(cell.row.key, cell.column.index - 1)) {\n this.close();\n return;\n }\n this._analyticsBtnSettings.positionStrategy = new AutoPositionStrategy({\n horizontalDirection: HorizontalAlignment.Right,\n horizontalStartPoint: HorizontalAlignment.Right,\n verticalStartPoint: VerticalAlignment.Bottom,\n verticalDirection: VerticalAlignment.Bottom, closeAnimation: null\n });\n this._analyticsBtnSettings.target = cell.nativeElement;\n this._analyticsBtnSettings.scrollStrategy = new AbsoluteScrollStrategy();\n const info = this.overlayService.getOverlayById(this._id);\n if (info) {\n info.settings.positionStrategy = this._analyticsBtnSettings.positionStrategy;\n }\n if (this._collapsed) {\n this.show();\n } else {\n this.overlayService.reposition(this._id);\n }\n }\n\n private renderHeaderButton() {\n const selectedColumns = this.grid.selectedColumns();\n if (selectedColumns.length === 0) {\n return;\n }\n\n this._analyticsBtnSettings.positionStrategy = new AutoPositionStrategy({\n horizontalDirection: HorizontalAlignment.Right,\n horizontalStartPoint: HorizontalAlignment.Right,\n verticalStartPoint: VerticalAlignment.Bottom,\n verticalDirection: VerticalAlignment.Bottom, closeAnimation: null\n });\n\n const selectedColumnsIndexes = selectedColumns.map(c => c.visibleIndex).sort((a, b) => a - b);\n let colIndex = selectedColumnsIndexes[selectedColumnsIndexes.length - 1];\n\n while (selectedColumnsIndexes.length) {\n if (this.grid.navigation.isColumnFullyVisible(colIndex)) {\n break;\n }\n selectedColumnsIndexes.pop();\n colIndex = selectedColumnsIndexes[selectedColumnsIndexes.length - 1];\n }\n\n if (!selectedColumnsIndexes.length) {\n return;\n }\n\n const col = selectedColumns.find(c => c.visibleIndex === colIndex);\n\n if (!col) {\n return;\n }\n\n const headerCell = col.headerCell.nativeElement;\n this._analyticsBtnSettings.target = headerCell;\n this._analyticsBtnSettings.scrollStrategy = new AbsoluteScrollStrategy();\n const info = this.overlayService.getOverlayById(this._id);\n if (info) {\n info.settings.positionStrategy = this._analyticsBtnSettings.positionStrategy;\n }\n if (this._collapsed) {\n this.show();\n } else {\n this.overlayService.reposition(this._id);\n }\n }\n\n private show() {\n if (!this._collapsed) {\n return;\n }\n this._collapsed = false;\n this._id = this._id ? this._id :\n this.overlayService.attach(IgxContextMenuComponent, this._analyticsBtnSettings);\n this.overlayService.show(this._id);\n }\n\n private close() {\n if (this._collapsed) {\n return;\n }\n this._collapsed = true;\n this.overlayService.hide(this._id);\n this.buttonClose.emit();\n this._id = undefined;\n }\n\n private isWithInRange(rInex, cIndex) {\n return rInex >= this._range.rowStart && rInex <= this._range.rowEnd\n && cIndex >= this._range.columnStart && cIndex <= this._range.columnEnd;\n }\n}\n","/*\n * Public API Surface of igniteui-angular-extras\n */\n\n/**\n * Directives\n */\nexport * from './lib/directives/chart-integration/chart-integration.directive';\nexport * from './lib/directives/conditional-formatting/conditional-formatting.directive';\nexport * from './lib/context-menu/igx-context-menu.directive';\n\n/**\n * Components\n */\nexport * from './lib/context-menu/context-menu.component';\nexport * from './lib/context-menu/chart-dialog/chart-dialog.component';\n\n/**\n * Exporter classes, interfaces and enums\n */\nexport * from './lib/directives/chart-integration/chart-types';\nexport * from './lib/directives/chart-integration/initializers';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"igniteui-angular-extras.mjs","sources":["../../../projects/igniteui-angular-extras/src/lib/directives/chart-integration/chart-types.ts","../../../projects/igniteui-angular-extras/src/lib/directives/chart-integration/initializers.ts","../../../projects/igniteui-angular-extras/src/lib/directives/chart-integration/chart-integration.directive.ts","../../../projects/igniteui-angular-extras/src/lib/directives/conditional-formatting/conditional-formatting.directive.ts","../../../projects/igniteui-angular-extras/src/images/charts.ts","../../../projects/igniteui-angular-extras/src/lib/pipes/svg.pipe.ts","../../../projects/igniteui-angular-extras/src/lib/context-menu/chart-dialog/chart-dialog.component.ts","../../../projects/igniteui-angular-extras/src/lib/context-menu/chart-dialog/chart-dialog.component.html","../../../projects/igniteui-angular-extras/src/images/conditions.ts","../../../projects/igniteui-angular-extras/src/lib/context-menu/context-menu.component.ts","../../../projects/igniteui-angular-extras/src/lib/context-menu/context-menu.component.html","../../../projects/igniteui-angular-extras/src/lib/context-menu/igx-context-menu.directive.ts","../../../projects/igniteui-angular-extras/src/public-api.ts","../../../projects/igniteui-angular-extras/src/igniteui-angular-extras.ts"],"sourcesContent":["export enum CHART_TYPE {\n Pie = 'Pie',\n ColumnGrouped = 'ColumnGrouped',\n AreaGrouped = 'AreaGrouped',\n LineGrouped = 'LineGrouped',\n BarGrouped = 'BarGrouped',\n ColumnStacked = 'ColumnStacked',\n AreaStacked = 'AreaStacked',\n LineStacked = 'LineStacked',\n BarStacked = 'BarStacked',\n Column100Stacked = 'Column100Stacked',\n Area100Stacked = 'Area100Stacked',\n Line100Stacked = 'Line100Stacked',\n Bar100Stacked = 'Bar100Stacked',\n ScatterPoint = 'ScatterPoint',\n ScatterBubble = 'ScatterBubble',\n ScatterLine = 'ScatterLine'\n}\n\nexport enum OPTIONS_TYPE {\n Chart = 'chartOptions',\n Series = 'seriesModel',\n XAxis = 'xAxisOptions',\n YAxis = 'yAxisOptions',\n StackedSeries = 'stackedFragmentOptions'\n}\n","// tslint:disable: max-line-length\nimport { EventEmitter, Type } from '@angular/core';\nimport {\n IgxBarSeriesComponent, IgxBubbleSeriesComponent, IgxCategoryXAxisComponent,\n IgxCategoryYAxisComponent, IgxDataChartComponent, IgxNumericXAxisComponent,\n IgxNumericYAxisComponent, IgxPieChartComponent, IgxScatterLineSeriesComponent,\n IgxScatterSeriesComponent, IgxStacked100BarSeriesComponent, IgxStackedBarSeriesComponent,\n IgxStackedFragmentSeriesComponent\n} from 'igniteui-angular-charts';\n\nclass SeriesFactory {\n public create<T>(type: (new () => T)): T {\n return new type();\n }\n}\n\nexport interface IOptions {\n [key: string]: any;\n}\n\nexport interface IChartComponentOptions {\n chartOptions?: IOptions;\n seriesOptions?: IOptions[];\n xAxisOptions?: IOptions;\n seriesModel?: IOptions;\n yAxisOptions?: IOptions;\n stackedFragmentOptions?: IOptions;\n}\n\nexport abstract class ChartInitializer {\n protected yAxis;\n protected xAxis;\n protected seriesFactory = new SeriesFactory();\n constructor() { }\n\n public applyOptions(target: any, options: IOptions) {\n if (options) {\n Object.keys(options).forEach(key => {\n if (target[key] instanceof EventEmitter) {\n target[key].subscribe(options[key]);\n } else {\n target[key] = options[key];\n }\n });\n }\n }\n\n public abstract initChart(chart: any, options?: IChartComponentOptions): any;\n}\n\nexport class IgxPieChartInitializer extends ChartInitializer {\n constructor() {\n super();\n }\n\n public initChart(chart: IgxPieChartComponent, options: IChartComponentOptions) {\n this.applyOptions(chart, options.chartOptions);\n return chart;\n }\n}\n\nexport class IgxDataChartInitializer extends ChartInitializer {\n public seriesType: Type<any>;\n\n constructor(seriesType: Type<any>) {\n super();\n switch (seriesType) {\n case IgxBarSeriesComponent:\n this.xAxis = new IgxNumericXAxisComponent();\n this.yAxis = new IgxCategoryYAxisComponent();\n break;\n case IgxScatterSeriesComponent:\n case IgxBubbleSeriesComponent:\n case IgxScatterLineSeriesComponent:\n this.xAxis = new IgxNumericXAxisComponent();\n this.yAxis = new IgxNumericYAxisComponent();\n break;\n default:\n this.xAxis = new IgxCategoryXAxisComponent();\n this.yAxis = new IgxNumericYAxisComponent();\n }\n\n this.seriesType = seriesType;\n }\n\n public initChart(chart: IgxDataChartComponent, options: IChartComponentOptions): IgxDataChartComponent {\n if (chart.series.count) {\n chart.series.clear();\n }\n if (chart.axes.count) {\n chart.axes.clear();\n }\n options.seriesOptions.forEach((option) => {\n const series = this.seriesFactory.create(this.seriesType);\n series.xAxis = this.xAxis;\n series.yAxis = this.yAxis;\n this.applyOptions(series, option);\n chart.series.add(series);\n });\n this.applyOptions(chart, options.chartOptions);\n this.applyOptions(this.xAxis, options.xAxisOptions);\n this.applyOptions(this.yAxis, options.yAxisOptions);\n chart.axes.add(this.xAxis);\n chart.axes.add(this.yAxis);\n return chart;\n }\n}\n\nexport class IgxStackedDataChartInitializer extends ChartInitializer {\n public seriesType: Type<any>;\n\n constructor(seriesType: Type<any>) {\n super();\n if (seriesType === IgxStackedBarSeriesComponent || seriesType === IgxStacked100BarSeriesComponent) {\n this.xAxis = new IgxNumericXAxisComponent();\n this.yAxis = new IgxCategoryYAxisComponent();\n } else {\n this.xAxis = new IgxCategoryXAxisComponent();\n this.yAxis = new IgxNumericYAxisComponent();\n }\n this.seriesType = seriesType;\n }\n public initChart(chart: IgxDataChartComponent, options?: IChartComponentOptions): IgxDataChartComponent {\n if (chart.series.count) {\n chart.series.clear();\n }\n if (chart.axes.count) {\n chart.axes.clear();\n }\n\n const series = this.seriesFactory.create(this.seriesType);\n series.xAxis = this.xAxis;\n series.yAxis = this.yAxis;\n options.stackedFragmentOptions.forEach(fragOpt => {\n const frag = new IgxStackedFragmentSeriesComponent();\n this.applyOptions(frag, fragOpt);\n series.series.add(frag);\n });\n this.applyOptions(series, options.seriesOptions);\n this.applyOptions(chart, options.chartOptions);\n this.applyOptions(this.xAxis, options.xAxisOptions);\n this.applyOptions(this.yAxis, options.yAxisOptions);\n chart.series.add(series);\n chart.axes.add(this.xAxis);\n chart.axes.add(this.yAxis);\n return chart;\n }\n}\n","import {\n ComponentRef, Directive,\n EventEmitter, Input, Output, Type, ViewContainerRef\n} from '@angular/core';\nimport {\n IgxAreaSeriesComponent, IgxBarSeriesComponent, IgxBubbleSeriesComponent, IgxColumnSeriesComponent,\n IgxDataChartComponent, IgxItemLegendComponent, IgxLegendComponent, IgxLineSeriesComponent, IgxPieChartComponent,\n IgxScatterLineSeriesComponent, IgxScatterSeriesComponent, IgxSizeScaleComponent, IgxStacked100AreaSeriesComponent,\n IgxStacked100BarSeriesComponent, IgxStacked100ColumnSeriesComponent, IgxStacked100LineSeriesComponent,\n IgxStackedAreaSeriesComponent, IgxStackedBarSeriesComponent, IgxStackedColumnSeriesComponent,\n IgxStackedLineSeriesComponent\n} from 'igniteui-angular-charts';\nimport { CHART_TYPE, OPTIONS_TYPE } from './chart-types';\nimport {\n ChartInitializer, IChartComponentOptions, IgxDataChartInitializer,\n IgxPieChartInitializer, IgxStackedDataChartInitializer, IOptions\n} from './initializers';\n\nexport interface IDeterminedChartTypesArgs {\n chartsAvailability: Map<CHART_TYPE, boolean>;\n chartsForCreation: CHART_TYPE[];\n}\n\n@Directive({\n selector: '[igxChartIntegration]',\n})\nexport class IgxChartIntegrationDirective {\n @Input()\n public get chartData() {\n return this._chartData;\n }\n\n public set chartData(selectedData: any[]) {\n const charts = new Set(this._dataChartTypes);\n const dataModel = selectedData.length ? selectedData[0] : {};\n this._labelMemberPaths = Object.keys(dataModel).filter(key => typeof dataModel[key] === 'string');\n this._valueMemberPaths = Object.keys(dataModel).filter(key => typeof dataModel[key] === 'number');\n this._chartData = selectedData.map((dataRecord, index) => this.addIndexMemberPath(dataRecord, index + 1));\n const args: IDeterminedChartTypesArgs = {\n chartsAvailability: new Map<CHART_TYPE, boolean>(),\n chartsForCreation: []\n };\n\n if (selectedData.length === 0 || this._valueMemberPaths.length === 0) {\n this.chartTypesDetermined.emit(args);\n return;\n }\n if (selectedData.length === 1) {\n charts.forEach((chart, _, set) => {\n const isColumnChart = chart.indexOf('Column') !== -1;\n const isBarChart = chart.indexOf('Bar') !== -1;\n const isPieChart = chart.indexOf('Pie') !== -1;\n if (!(isColumnChart || isBarChart || isPieChart)) {\n set.delete(chart);\n }\n });\n }\n // Config pie chart\n const cannotCreatePieChart = selectedData.some(record => record[this._valueMemberPaths[0]] <= 0);\n if (cannotCreatePieChart) {\n charts.delete(CHART_TYPE.Pie);\n }\n // Config scatter chart member paths\n const canCreateScatterChart = this._valueMemberPaths.length >= 2;\n const canCreateBubbleChart = this._valueMemberPaths.length >= 3;\n if (!canCreateScatterChart) {\n charts.delete(CHART_TYPE.ScatterBubble);\n charts.delete(CHART_TYPE.ScatterLine);\n charts.delete(CHART_TYPE.ScatterPoint);\n }\n if (!canCreateBubbleChart) {\n charts.delete(CHART_TYPE.ScatterBubble);\n }\n\n args.chartsAvailability = this.chartTypesAvailability;\n args.chartsForCreation = [...charts];\n this.chartTypesDetermined.emit(args);\n }\n\n @Output()\n public chartTypesDetermined = new EventEmitter<IDeterminedChartTypesArgs>();\n\n @Output()\n public chartCreationDone = new EventEmitter<any>();\n\n @Input()\n public useLegend = true;\n\n @Input()\n public defaultLabelMemberPath: string = undefined;\n\n @Input()\n public set scatterChartYAxisValueMemberPath(path: string) {\n this._scatterChartYAxisValueMemberPath = path;\n }\n\n public get scatterChartYAxisValueMemberPath() {\n return this._scatterChartYAxisValueMemberPath &&\n this._valueMemberPaths.indexOf(this._scatterChartYAxisValueMemberPath) !== -1 ?\n this._scatterChartYAxisValueMemberPath : this._valueMemberPaths[0];\n }\n\n @Input()\n public set bubbleChartRadiusMemberPath(path: string) {\n this._bubbleChartRadiusMemberPath = path;\n }\n\n public get bubbleChartRadiusMemberPath() {\n return this._bubbleChartRadiusMemberPath &&\n this._valueMemberPaths.indexOf(this._bubbleChartRadiusMemberPath) !== -1 ?\n this._bubbleChartRadiusMemberPath : this._valueMemberPaths[1];\n }\n\n private chartTypesAvailability = new Map<CHART_TYPE, boolean>();\n private customChartComponentOptions = new Map<CHART_TYPE, IChartComponentOptions>();\n private dataCharts = new Map<string, Type<any>>();\n private _scatterChartYAxisValueMemberPath = undefined;\n private _bubbleChartRadiusMemberPath = undefined;\n private _valueMemberPaths = [];\n private _labelMemberPaths = [];\n private _chartData: any[];\n private _sizeScale = new IgxSizeScaleComponent();\n private _dataChartTypes = new Set<CHART_TYPE>();\n private get _labelMemberPath(): string {\n return this.defaultLabelMemberPath && this._chartData.some(r => r[this.defaultLabelMemberPath] !== undefined) ?\n this.defaultLabelMemberPath : this._labelMemberPaths.length > 0 ? this._labelMemberPaths[0] : 'Index';\n }\n\n private get pieChartOptions(): IOptions {\n return {\n width: '85%',\n height: '75%',\n dataSource: this.chartData,\n valueMemberPath: this._valueMemberPaths[0],\n legendLabelMemberPath: this._labelMemberPath,\n labelMemberPath: this._labelMemberPath,\n };\n }\n\n private dataChartSeriesOptionsModel: IOptions = {\n isHighlightingEnabled: true,\n areaFillOpacity: .4,\n markerType: 3,\n showDefaultTooltip: true\n };\n\n private scatterChartSeriesOptionsModel: IOptions = {\n markerType: 3,\n showDefaultTooltip: true\n };\n\n private bubbleChartSeriesOptionsModel: IOptions = {\n radiusScale: this._sizeScale\n };\n\n private get dataChartOptions(): IOptions {\n return {\n width: '100%',\n height: '85%',\n autoMarginWidth: 50,\n isVerticalZoomEnabled: true,\n isHorizontalZoomEnabled: true,\n dataSource: this.chartData\n };\n }\n\n constructor() {\n this.dataCharts.set(CHART_TYPE.ColumnGrouped, IgxColumnSeriesComponent);\n this.dataCharts.set(CHART_TYPE.AreaGrouped, IgxAreaSeriesComponent);\n this.dataCharts.set(CHART_TYPE.LineGrouped, IgxLineSeriesComponent);\n this.dataCharts.set(CHART_TYPE.BarGrouped, IgxBarSeriesComponent);\n\n this.dataCharts.set(CHART_TYPE.ColumnStacked, IgxStackedColumnSeriesComponent);\n this.dataCharts.set(CHART_TYPE.AreaStacked, IgxStackedAreaSeriesComponent);\n this.dataCharts.set(CHART_TYPE.LineStacked, IgxStackedLineSeriesComponent);\n this.dataCharts.set(CHART_TYPE.BarStacked, IgxStackedBarSeriesComponent);\n\n this.dataCharts.set(CHART_TYPE.Column100Stacked, IgxStacked100ColumnSeriesComponent);\n this.dataCharts.set(CHART_TYPE.Area100Stacked, IgxStacked100AreaSeriesComponent);\n this.dataCharts.set(CHART_TYPE.Line100Stacked, IgxStacked100LineSeriesComponent);\n this.dataCharts.set(CHART_TYPE.Bar100Stacked, IgxStacked100BarSeriesComponent);\n\n this.dataCharts.set(CHART_TYPE.ScatterPoint, IgxScatterSeriesComponent);\n this.dataCharts.set(CHART_TYPE.ScatterBubble, IgxBubbleSeriesComponent);\n this.dataCharts.set(CHART_TYPE.ScatterLine, IgxScatterLineSeriesComponent);\n\n this.dataCharts.set(CHART_TYPE.Pie, IgxPieChartComponent);\n const iterable = this.dataCharts.keys();\n for (let head = iterable.next().value; head !== undefined; head = iterable.next().value) {\n this._dataChartTypes.add(head);\n this.chartTypesAvailability.set(head, true);\n this.customChartComponentOptions.set(head, {});\n }\n }\n\n public getAllChartTypes() {\n return Array.from(this._dataChartTypes);\n }\n\n public getAvailableCharts() {\n const res = [];\n this.chartTypesAvailability.forEach((isAvailable, chartType) => {\n if (isAvailable) {\n res.push(chartType);\n }\n });\n return res;\n }\n\n public disableCharts(types: CHART_TYPE[]) {\n types.forEach(type => {\n if (this.chartTypesAvailability.get(type)) {\n this.chartTypesAvailability.set(type, false);\n }\n });\n }\n\n public enableCharts(types: CHART_TYPE[]) {\n types.forEach(type => {\n if (!this.chartTypesAvailability.get(type)) {\n this.chartTypesAvailability.set(type, true);\n }\n });\n }\n\n public chartFactory(type: CHART_TYPE, viewContainerRef?: ViewContainerRef, createdChart?: any) {\n if (!this.chartTypesAvailability.get(type)) {\n return;\n }\n const chartType = this.dataCharts.get(type);\n const options: IChartComponentOptions = this.getChartOptions(type);\n const initializer: ChartInitializer = this.getInitializer(type, chartType);\n let chart;\n if (viewContainerRef) {\n let componentRef: ComponentRef<any>;\n this._sizeScale.maximumValue = 60;\n this._sizeScale.minimumValue = 10;\n\n if (type === CHART_TYPE.Pie) {\n componentRef = viewContainerRef.createComponent(IgxPieChartComponent);\n } else {\n componentRef = viewContainerRef.createComponent(IgxDataChartComponent);\n }\n\n if (this.useLegend) {\n const legendType = type === CHART_TYPE.Pie ? IgxItemLegendComponent : IgxLegendComponent;\n const legendComponentRef: ComponentRef<any> = viewContainerRef.createComponent(legendType as any);\n options.chartOptions['legend'] = legendComponentRef.instance;\n }\n chart = initializer.initChart(componentRef.instance, options);\n } else if (createdChart) {\n chart = initializer.initChart(createdChart, options);\n }\n this.chartCreationDone.emit(chart);\n return chart;\n }\n\n private getInitializer(chartType: CHART_TYPE, componentClassRef): ChartInitializer {\n if (chartType.includes('Pie')) {\n return new IgxPieChartInitializer();\n } else if (chartType.includes('Stacked')) {\n return new IgxStackedDataChartInitializer(componentClassRef);\n } else {\n return new IgxDataChartInitializer(componentClassRef);\n }\n }\n\n private getChartOptions(type: CHART_TYPE): IChartComponentOptions {\n const chartComponentOptions: IChartComponentOptions = {};\n return type === CHART_TYPE.Pie ? this.addPieChartDataOptions(chartComponentOptions) :\n this.addDataChartDataOptions(type, chartComponentOptions, type.includes('Stacked'));\n }\n\n private addPieChartDataOptions(chartComponentOptions: IChartComponentOptions) {\n const customPieOptions = this.customChartComponentOptions.get(CHART_TYPE.Pie) || {};\n const customPieChartOptions = customPieOptions.chartOptions || {};\n chartComponentOptions.chartOptions = { ...this.pieChartOptions, ...customPieChartOptions };\n return chartComponentOptions;\n }\n\n private addDataChartDataOptions(type: CHART_TYPE, chartComponentOptions: IChartComponentOptions, stacked: boolean) {\n const customComponentOptions: IChartComponentOptions = this.customChartComponentOptions.get(type) || {};\n const customChartOptions = customComponentOptions.chartOptions || {};\n const customSeriesModel = customComponentOptions.seriesModel || {};\n chartComponentOptions.chartOptions = { ...this.dataChartOptions, ...customChartOptions };\n if (type.indexOf('Scatter') !== -1) {\n this.addScatterChartDataOptions(type, chartComponentOptions);\n } else {\n chartComponentOptions.seriesModel = { ...this.dataChartSeriesOptionsModel, ...customSeriesModel };\n this.setAxisLabelOption(type, chartComponentOptions);\n const options: IOptions[] = [];\n this._valueMemberPaths.forEach(valueMemberPath => {\n const dataOptions = {\n title: valueMemberPath,\n valueMemberPath\n };\n if (stacked) {\n options.push({ ...dataOptions });\n } else {\n options.push({ ...dataOptions, ...chartComponentOptions.seriesModel });\n }\n });\n if (stacked) {\n chartComponentOptions.stackedFragmentOptions = options;\n } else {\n chartComponentOptions.seriesOptions = options;\n }\n }\n return chartComponentOptions;\n }\n\n private addScatterChartDataOptions(scatterChart: CHART_TYPE, chartComponentOptions: IChartComponentOptions) {\n const scatterCustomOptions: IChartComponentOptions = this.customChartComponentOptions.get(scatterChart) || {};\n const scatterCustomSeriesModel = scatterCustomOptions.seriesModel || {};\n chartComponentOptions.seriesModel = { ...this.scatterChartSeriesOptionsModel, ...scatterCustomSeriesModel };\n chartComponentOptions.seriesModel['yMemberPath'] = this.scatterChartYAxisValueMemberPath;\n if (scatterChart === CHART_TYPE.ScatterBubble) {\n chartComponentOptions.seriesModel = Object.assign(chartComponentOptions.seriesModel, this.bubbleChartSeriesOptionsModel);\n chartComponentOptions.seriesModel['radiusMemberPath'] = this.bubbleChartRadiusMemberPath;\n }\n\n const model = chartComponentOptions.seriesModel;\n const seriesOptions: IOptions[] = [];\n this._valueMemberPaths.filter(v => !(v === model['yMemberPath'] ||\n v === model['radiusMemberPath'])).forEach(valueMemberPath => {\n const dataOptions = {\n title: `${model['yMemberPath']} vs ${valueMemberPath}`,\n xMemberPath: valueMemberPath,\n labelMemberPath: this._labelMemberPath\n };\n seriesOptions.push({ ...dataOptions, ...model });\n });\n chartComponentOptions.xAxisOptions = Object.assign({\n labelExtent: NaN,\n labelTextColor: null,\n }, scatterCustomOptions.xAxisOptions);\n chartComponentOptions.yAxisOptions = Object.assign({\n labelTextColor: null,\n labelExtent: NaN,\n }, scatterCustomOptions.yAxisOptions);\n chartComponentOptions.seriesOptions = seriesOptions;\n }\n\n private addIndexMemberPath(dataRecord, index) {\n dataRecord = { ...{ [this._labelMemberPath]: index }, ...dataRecord };\n return dataRecord;\n }\n\n private setAxisLabelOption(type: CHART_TYPE, options: IChartComponentOptions) {\n const customOptions = this.customChartComponentOptions.get(type) || {};\n if (type.indexOf('Bar') !== -1) {\n options.yAxisOptions = Object.assign({\n label: this._labelMemberPath,\n labelTextColor: null,\n labelExtent: NaN,\n }, customOptions.yAxisOptions);\n options.xAxisOptions = Object.assign({\n labelTextColor: null,\n labelExtent: NaN,\n }, customOptions.xAxisOptions);\n } else {\n options.xAxisOptions = Object.assign({\n label: this._labelMemberPath,\n labelTextColor: null,\n labelExtent: NaN,\n }, customOptions.xAxisOptions);\n options.yAxisOptions = Object.assign({\n labelTextColor: null,\n labelExtent: NaN,\n }, customOptions.yAxisOptions);\n }\n }\n\n public setChartComponentOptions(chart: CHART_TYPE, optionsType: OPTIONS_TYPE, options: IOptions) {\n if (!this.customChartComponentOptions.get(chart)[optionsType]) {\n this.customChartComponentOptions.get(chart)[optionsType] = {};\n }\n Object.keys(options).forEach(property => {\n this.customChartComponentOptions.get(chart)[optionsType][property] = options[property];\n });\n }\n}\n","import { AfterViewInit, Directive, EventEmitter, Input, OnDestroy, Output, inject } from '@angular/core';\nimport { IgxGridComponent } from 'igniteui-angular/grids/grid';\nimport { Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\n\nexport enum ConditionalFormattingType {\n DataBars = 'Data Bars',\n ColorScale = 'Color Scale',\n Top10 = 'Top 10',\n TextContains = 'Text Contains',\n Single = 'Duplicate Values',\n Unique = 'Unique Values',\n Empty = 'Empty'\n}\nexport interface IFormatColors {\n success: string;\n error: string;\n info: string;\n warning: string;\n text: string;\n}\n\n@Directive({\n selector: '[igxConditionalFormatting]',\n})\nexport class IgxConditionalFormattingDirective implements AfterViewInit, OnDestroy {\n @Input()\n public formatter: string | ConditionalFormattingType;\n\n @Input()\n public set formatColors(val: IFormatColors) {\n this._formatColors = val;\n }\n public get formatColors() {\n return this._formatColors;\n }\n\n @Output()\n public formattersReady = new EventEmitter<string[]>();\n\n public colorScale = {\n backgroundColor: (_rowData, colname, cellValue, rowIndex) => {\n if (!(typeof cellValue === 'number' && this.isWithInFormattedRange(rowIndex, colname))) {\n return;\n }\n return this.lowTresholdValue >= cellValue ? this.formatColors.error :\n this.middleTresholdValue >= cellValue ? this.formatColors.warning : this.formatColors.success;\n }\n };\n\n public dataBars = {\n backgroundImage: (_rowData, colname, cellValue, rowIndex) => {\n if (!(typeof cellValue === 'number' && this.isWithInFormattedRange(rowIndex, colname))) {\n return;\n }\n const treshold = this.threshold;\n let gradientPercents;\n if (cellValue < 0) {\n const negativeStartingPoint = 100 - treshold;\n gradientPercents = this.getNegativePercentage(cellValue);\n return `linear-gradient(to left, transparent 0% ${negativeStartingPoint}%,\n ${this.formatColors.error} ${negativeStartingPoint}% ${negativeStartingPoint + gradientPercents}%,\n transparent ${gradientPercents}% 100%)`;\n } else {\n gradientPercents = this.getPositivePercentage(cellValue);\n return `linear-gradient(to right, transparent 0% ${treshold}%,\n ${this.formatColors.success} ${treshold}% ${treshold + gradientPercents}%,\n transparent ${treshold + gradientPercents}% 100%)`;\n }\n },\n backgroundSize: '100% 80%',\n backgroundRepeat: 'no-repeat',\n backgroundPositionY: 'center'\n };\n\n public top10Percent = {\n backgroundColor: (_rowData, colname, cellValue, rowIndex) => {\n if (typeof cellValue === 'number' && this.isWithInFormattedRange(rowIndex, colname)\n && cellValue > this.top10PercentTreshold) {\n return this.formatColors.info;\n }\n },\n color: (_rowData, colname, cellValue, rowIndex) => {\n if (typeof cellValue === 'number' && this.isWithInFormattedRange(rowIndex, colname)\n && cellValue > this.top10PercentTreshold) {\n return this.formatColors.text;\n }\n }\n };\n\n public greaterThan = {\n backgroundColor: (_rowData, colname, cellValue, rowIndex) => {\n if (typeof cellValue === 'number' && this.isWithInFormattedRange(rowIndex, colname)\n && cellValue > this.avgValue) {\n return this.formatColors.info;\n }\n },\n color: (_rowData, colname, cellValue, rowIndex) => {\n if (typeof cellValue === 'number' && this.isWithInFormattedRange(rowIndex, colname)\n && cellValue > this.avgValue) {\n return this.formatColors.text;\n }\n }\n };\n\n public empty = {\n backgroundColor: (_rowData, colname, cellValue, rowIndex) => {\n if (this.isWithInFormattedRange(rowIndex, colname) && cellValue === undefined) {\n return this.formatColors.info;\n }\n },\n color: (_rowData, colname, cellValue, rowIndex) => {\n if (this.isWithInFormattedRange(rowIndex, colname) && cellValue === undefined) {\n return this.formatColors.text;\n }\n }\n };\n\n public duplicates = {\n backgroundColor: (_rowData, colname, cellValue, rowIndex) => {\n if (!this.isWithInFormattedRange(rowIndex, colname)) {\n return;\n }\n const arr: any[] = typeof cellValue === 'number' ? this.numericData : this.textData;\n return arr.indexOf(cellValue) !== arr.lastIndexOf(cellValue) ? this.formatColors.info : '';\n\n },\n color: (_rowData, colname, cellValue, rowIndex) => {\n if (!this.isWithInFormattedRange(rowIndex, colname)) {\n return;\n }\n const arr: any[] = typeof cellValue === 'number' ? this.numericData : this.textData;\n return arr.indexOf(cellValue) !== arr.lastIndexOf(cellValue) ? this.formatColors.text : '';\n }\n };\n\n public textContains = {\n backgroundColor: (_rowData, colname, cellValue, rowIndex) => {\n if (typeof cellValue === 'string' && this.isWithInFormattedRange(rowIndex, colname) &&\n cellValue.toLowerCase().indexOf(this._valueForComparison.toLowerCase()) !== -1) {\n return this.formatColors.info;\n }\n },\n color: (_rowData, colname, cellValue, rowIndex) => {\n if (typeof cellValue === 'string' && this.isWithInFormattedRange(rowIndex, colname) &&\n cellValue.toLowerCase().indexOf(this._valueForComparison.toLowerCase()) !== -1) {\n return this.formatColors.text;\n }\n }\n };\n\n public uniques = {\n backgroundColor: (_rowData, colname, cellValue, rowIndex) => {\n if (!this.isWithInFormattedRange(rowIndex, colname)) {\n return;\n }\n const arr: any[] = typeof cellValue === 'number' ? this.numericData : this.textData;\n return arr.indexOf(cellValue) === arr.lastIndexOf(cellValue) ? this.formatColors.info : '';\n },\n color: (_rowData, colname, cellValue, rowIndex) => {\n if (!this.isWithInFormattedRange(rowIndex, colname)) {\n return;\n }\n const arr: any[] = typeof cellValue === 'number' ? this.numericData : this.textData;\n return arr.indexOf(cellValue) === arr.lastIndexOf(cellValue) ? this.formatColors.text : '';\n }\n };\n\n private get selectedData() {\n this._selectedData = this.grid.getSelectedData().length ? this.toArray(this.grid.getSelectedData()) :\n this.toArray(this.grid.getSelectedColumnsData());\n return this._selectedData;\n }\n\n private get textData() {\n return this.selectedData.filter(val => typeof val === 'string');\n }\n\n private get numericData() {\n return this.selectedData.filter(val => typeof val === 'number');\n }\n private _formatColors: IFormatColors = {\n success: '#4EB862',\n error: '#FF134A',\n warning: '#FBB13C',\n info: '#1377D5',\n text: '#FFF'\n };\n private _numericFormatters = ['Data Bars', 'Color Scale', 'Top 10', 'Greater Than'];\n private _textFormatters = ['Text Contains'];\n private _commonFormattersName = ['Duplicate Values', 'Unique Values', 'Empty'];\n private _selectedData = [];\n private _minValue;\n private _maxValue;\n private _startColumn;\n private _endColumn;\n private _valueForComparison;\n private _formattersData = new Map<string, any>();\n private destroy$ = new Subject<any>();\n private formatedRange: Map<number, Set<number>> = new Map<number, Set<number>>();\n private readonly grid = inject(IgxGridComponent);\n\n constructor() {\n this._formattersData.set('Data Bars', this.dataBars);\n this._formattersData.set('Color Scale', this.colorScale);\n this._formattersData.set('Top 10', this.top10Percent);\n this._formattersData.set('Greater Than', this.greaterThan);\n this._formattersData.set('Text Contains', this.textContains);\n this._formattersData.set('Duplicate Values', this.duplicates);\n this._formattersData.set('Unique Values', this.uniques);\n this._formattersData.set('Empty', this.empty);\n }\n\n public ngAfterViewInit(): void {\n this.grid.rangeSelected.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.determineFormatters(false);\n });\n this.grid.columnSelectionChanging.pipe(takeUntil(this.destroy$), debounceTime(200)).subscribe(() => {\n this.determineFormatters(true);\n });\n this.grid.cellEdit.pipe(takeUntil(this.destroy$)).subscribe((args: any) => {\n if ((args.newValue === args.oldValue || !this.formatter)) {\n return;\n }\n if (this.isWithInFormattedRange(args.cellID.rowIndex, args.cellID.columnID - 1)) {\n const value = Number(args.newValue);\n this.selectedData.push(!Number.isNaN(value) && Number.isFinite(value) ? value : args.newValue);\n this.recalcCachedValues();\n this.formatCells(this.formatter, undefined, false);\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.complete();\n }\n\n public formatCells(formatterName, formatRange?: [], reset = true) {\n if (reset) {\n this.resetRange(formatRange);\n }\n this.clearFormatting();\n this.formatter = formatterName;\n let hasUpdatedColumn = false;\n this.grid.visibleColumns.forEach(c => {\n if (c.visibleIndex >= this._startColumn && c.visibleIndex <= this._endColumn) {\n c.cellStyles = this._formattersData.get(this.formatter);\n hasUpdatedColumn = true;\n }\n });\n if (hasUpdatedColumn) {\n this.grid.notifyChanges();\n }\n }\n\n public clearFormatting() {\n this.formatter = undefined;\n this.grid.visibleColumns.forEach(c => {\n c.cellStyles = undefined;\n });\n this.grid.cdr.detectChanges();\n }\n\n public determineFormatters(fromColumn) {\n const data = fromColumn ? this.grid.getSelectedColumnsData() : this.grid.getSelectedData();\n const numericData = this.toArray(data).some(rec => typeof rec === 'number');\n const textData = this.toArray(data).some(rec => typeof rec === 'string');\n const formatters = Array.of(...this._commonFormattersName);\n if (!(numericData) && textData) {\n formatters.splice(0, 0, ...this._textFormatters);\n } else if (numericData && !textData) {\n formatters.splice(0, 0, ...this._numericFormatters);\n } else {\n formatters.splice(0, 0, ...['Data Bars', 'Color Scale', 'Text Contains']);\n }\n this.formattersReady.emit(formatters);\n }\n\n public recalcCachedValues(clearAll = false) {\n if (clearAll) {\n if (this.grid.getSelectedRanges().length === 0) {\n const selectedColumns = this.grid.selectedColumns();\n if (selectedColumns.length === 1) {\n this._startColumn = this._endColumn = selectedColumns[0].visibleIndex;\n } else if (selectedColumns.length > 1) {\n this._startColumn = Math.min(...selectedColumns.map(c => c.visibleIndex));\n this._endColumn = Math.max(...selectedColumns.map(c => c.visibleIndex));\n } else {\n return;\n }\n } else {\n this._startColumn = Math.min(...this.grid.getSelectedRanges().map(r => Number(r.columnStart)));\n this._endColumn = Math.max(...this.grid.getSelectedRanges().map(r => Number(r.columnEnd)));\n }\n this._selectedData = [];\n }\n this._valueForComparison = this.textData[0];\n const hasNegativeValues = this.numericData.some(value => value < 0);\n this._maxValue = Math.max(...this.numericData);\n this._minValue = hasNegativeValues ? Math.min(...this.numericData.filter(value => value < 0)) : 0;\n }\n\n public isWithInFormattedRange(rowIndex, colID) {\n const visibleIndex = typeof colID === 'string' ? this.grid.getColumnByName(colID).visibleIndex : colID;\n if (!this.formatedRange.size) {\n return false;\n }\n return this.formatedRange.has(rowIndex) && this.formatedRange.get(rowIndex).has(visibleIndex);\n }\n\n private get middleTresholdValue() {\n return 0.66 * Math.ceil(this._maxValue);\n }\n\n private get lowTresholdValue() {\n return 0.33 * Math.ceil(this._maxValue);\n }\n\n private get top10PercentTreshold() {\n return 0.9 * Math.ceil(this._maxValue);\n }\n\n private get avgValue() {\n return Math.ceil((this.numericData.reduce((a, b) => a + b, 0)) / this.numericData.length);\n }\n\n private get threshold() {\n return Math.ceil(Math.abs(this._minValue) / (this._maxValue + Math.abs(this._minValue)) * 100);\n }\n\n private getPositivePercentage(val) {\n return Math.ceil(Math.ceil(val) / (this._maxValue + Math.abs(this._minValue)) * 100);\n }\n\n private getNegativePercentage(val) {\n return Math.ceil(Math.abs(val) / (this._maxValue + Math.abs(this._minValue)) * 100);\n }\n\n private resetRange(formatRange?: []) {\n this.formatedRange.clear();\n const selectedRanges = this.grid.getSelectedRanges();\n let customRange;\n\n // Column selection custom range\n if (selectedRanges.length === 0) {\n const selectedColumns = this.grid.selectedColumns();\n customRange = [];\n selectedColumns.forEach(c => {\n customRange.push({\n columnEnd: c.visibleIndex,\n columnStart: c.visibleIndex,\n rowEnd: this.grid.data.length - 1,\n rowStart: 0\n });\n });\n } else {\n customRange = formatRange ? formatRange : this.grid.getSelectedRanges();\n }\n customRange.forEach(range => {\n for (let ri = range.rowStart; ri <= Number(range.rowEnd); ri++) {\n for (let ci = Number(range.columnStart); ci <= Number(range.columnEnd); ci++) {\n this.addToCache(ri, ci);\n }\n }\n });\n this.recalcCachedValues(true);\n }\n\n private addToCache(rowIndex, colIndex) {\n if (this.formatedRange.has(rowIndex)) {\n this.formatedRange.get(rowIndex).add(colIndex);\n } else {\n this.formatedRange.set(rowIndex, new Set<number>()).get(rowIndex).add(colIndex);\n }\n }\n\n private toArray(data: any[]) {\n let result = [];\n data.forEach(rec => result = result.concat(Object.values(rec)));\n return result;\n }\n}\n","// tslint:disable: max-line-length\nexport const Area100Stacked = `\n <svg id=\"Layer_1\" data-name=\"Layer 1\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-Area100Stacked-1{fill:#ab4191;}.cls-Area100Stacked-2{fill:#f05951;}.cls-Area100Stacked-2,.cls-Area100Stacked-3,.cls-Area100Stacked-4{fill-rule:evenodd;}.cls-Area100Stacked-3{fill:#fa8d3d;}.cls-Area100Stacked-4{fill:#0f6860;}</style>\n </defs>\n <rect class=\"cls-Area100Stacked-1\" width=\"96\" height=\"95.7\"/>\n <polygon class=\"cls-Area100Stacked-2\" points=\"0 11.1 3.78 11.99 11.33 25.27 20.15 13.04 30.53 15.31 43.12 26.54 50.13 28.07 65.78 24.5 72.08 16.84 82.15 17.61 88.45 11.99 91.91 9.57 96 6.13 96 95.7 0 95.7 0 11.1\"/>\n <path class=\"cls-Area100Stacked-3\" d=\"M0,54V95.7H96V18.37l-3.79,6.51-3.79,18-3.16,6.51-5.68,3.06-2.84,3.45s-3.42,6-3.48,6.12-7.58,4.6-7.58,4.6L60,67l-2.21.77-7.9-4.6-3.78,1.15-7.58-3.44L34.42,62.4l-3.79-1.15-4.1,3.44-3.48-.76L15.16,53.21,7.26,54,3.47,49Z\"/>\n <polygon class=\"cls-Area100Stacked-4\" points=\"0 78.75 4.72 77.11 7.87 78.2 15.42 76.56 19.52 80.39 26.44 83.67 36.2 83.67 45.33 85.31 50.05 78.75 58.23 84.22 68.3 85.86 87.82 90.23 96 83.12 96 95.7 0 95.7 0 78.75\"/>\n</svg>\n`;\nexport const AreaGrouped = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-AreaGrouped-1{fill:#ab4191;}.cls-AreaGrouped-1,.cls-AreaGrouped-2,.cls-AreaGrouped-3,.cls-AreaGrouped-4{fill-rule:evenodd;}.cls-AreaGrouped-2{fill:#f05951;}.cls-AreaGrouped-3{fill:#fa8d3d;}.cls-AreaGrouped-4{fill:#0f6860;}</style>\n </defs>\n <g id=\"ChartNames\">\n <polygon class=\"cls-AreaGrouped-1\" points=\"96 69.18 96 13.76 80.22 37.03 64.11 42.35 48.34 63.44 32.56 72.38 16.45 70.78 0 86.13 0 96 96 96 96 69.18\"/>\n <polygon class=\"cls-AreaGrouped-2\" points=\"96 84.43 96 38.72 80.22 48.72 64.11 72.86 48.34 72.62 32.56 81.54 16.78 79.11 0 90.25 0 96 96 96 96 84.43\"/>\n <path class=\"cls-AreaGrouped-3\" d=\"M96,91V62.08L80.22,66.71l-16.11,15-15.77.9L32.56,88s-16.12-.84-16.11-.76S0,92.65,0,92.65V96H96Z\"/>\n <polygon class=\"cls-AreaGrouped-4\" points=\"96 93.77 96 77.49 80.22 81.31 64.11 91.54 48.34 93.13 32.56 94.09 0 95.37 0 96 96 96 96 93.77\"/>\n </g>\n</svg>\n`;\nexport const AreaStacked = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-AreaStacked-1{fill:#ab4191;}.cls-AreaStacked-1,.cls-AreaStacked-2,.cls-AreaStacked-3,.cls-AreaStacked-4{fill-rule:evenodd;}.cls-AreaStacked-2{fill:#f05951;}.cls-AreaStacked-3{fill:#fa8d3d;}.cls-AreaStacked-4{fill:#0f6860;}</style>\n </defs>\n <g id=\"ChartNames\">\n <path class=\"cls-AreaStacked-1\" d=\"M0,17.24,3.73,4.7l7.56,19.2,4.09-.78,7.87,11.75,3.46,1.57,3.78-3.13,4.41,2,3.46-2.75,4.72,2.35L45.91,38s4-.26,4.09-.39,7.45,4.57,7.56,4.7a35.11,35.11,0,0,0,3.77-1.57h4.41L72,43.49,82.11,28.21,88.4,10.32,91.86,0,96,12.15V96H0Z\"/>\n <path class=\"cls-AreaStacked-2\" d=\"M0,53.29V96H96V16.85l-3.79,6.66L88.38,41.93l-3.16,6.66-5.68,3.13-2.85,3.53s-3.42,6.14-3.47,6.27-7.58,4.7-7.58,4.7L60,66.61l-2.21.79-7.9-4.71-3.79,1.18-7.58-3.53-4.1,1.57-3.79-1.18-4.11,3.53L23,63.48l-7.89-11-7.9.78L3.43,48.2Z\"/>\n <polygon class=\"cls-AreaStacked-3\" points=\"0.14 78.65 4.85 76.97 7.99 78.09 15.54 76.41 19.62 80.33 26.53 83.69 36.27 83.69 45.38 85.37 50.09 78.65 58.26 84.25 68.31 85.93 87.79 90.4 95.96 83.12 95.96 96 0.14 96 0.14 78.65\"/>\n <polygon class=\"cls-AreaStacked-4\" points=\"0.14 96 95.96 96 95.96 74.45 92.19 79.15 80.56 83.07 69.25 91.3 58.57 91.69 54.17 92.08 49.78 90.12 45.38 91.3 38.47 91.3 28.73 91.69 23.7 91.3 18.99 92.86 13.96 92.08 0.14 93.65 0.14 96\"/>\n </g>\n</svg>\n`;\nexport const Bar100Stacked = `\n <svg id=\"Layer_1\" data-name=\"Layer 1\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-Bar100Stacked-1{fill:#ab4191;}.cls-Bar100Stacked-1,.cls-Bar100Stacked-2,.cls-Bar100Stacked-3,.cls-Bar100Stacked-4{fill-rule:evenodd;}.cls-Bar100Stacked-2{fill:#f05951;}.cls-Bar100Stacked-3{fill:#fa8d3d;}.cls-Bar100Stacked-4,.cls-Bar100Stacked-5{fill:#0f6860;}</style>\n </defs>\n <path class=\"cls-Bar100Stacked-1\" d=\"M96,7.84H45.71v11.1H96Zm0,13.38H47.67V32.33H96Zm0,13.39H42.45V46H96Zm0,13.72H48.33v11.1H96Zm0,13.38H43.43V72.82H96ZM96,75.1H42.12V86.2H96Z\"/>\n <path class=\"cls-Bar100Stacked-2\" d=\"M75.76,21.22H29.71V32.33H75.76ZM66,61.71H27.1V72.82H66Zm4.24-27.1h-48V46h48ZM56.82,48.33H30v11.1H56.82ZM73.47,75.1H25.8V86.2H73.47ZM60.73,7.84h-33v11.1h33Z\"/>\n <path class=\"cls-Bar100Stacked-3\" d=\"M47.67,21.22H8.16V32.33H47.67ZM39.51,61.71H5.88V72.82H39.51Zm3.59-27.1H1.63V46H43.1ZM31.35,48.33H8.16v11.1H31.35ZM45.71,75.1H4.57V86.2H45.71ZM34.61,7.84H6.2v11.1H34.61Z\"/>\n <path class=\"cls-Bar100Stacked-4\" d=\"M14,34.61H0V46H14Zm4.25,13.72H0v11.1H18.29ZM15,75.1H0V86.2H15ZM22.2,21.22H0V32.33H22.2ZM11.43,61.71H0V72.82H11.43Z\"/>\n <rect class=\"cls-Bar100Stacked-5\" y=\"7.84\" width=\"10.78\" height=\"11.1\"/>\n</svg>\n`;\nexport const BarGrouped = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-BarGrouped-1{fill:#f05951;}.cls-BarGrouped-2{fill:#ab4191;}.cls-BarGrouped-3{fill:#0f6860;}.cls-BarGrouped-4{fill:#fa8d3d;}</style>\n </defs>\n <g id=\"ChartNames\">\n <rect class=\"cls-BarGrouped-1\" y=\"77.13\" width=\"21.19\" height=\"6.29\"/>\n <rect class=\"cls-BarGrouped-1\" y=\"49.66\" width=\"48.99\" height=\"6.29\"/>\n <rect class=\"cls-BarGrouped-1\" y=\"22.18\" width=\"72.5\" height=\"6.29\"/>\n <rect class=\"cls-BarGrouped-2\" y=\"70.84\" width=\"81.43\" height=\"6.29\"/>\n <rect class=\"cls-BarGrouped-3\" y=\"89.71\" width=\"60.25\" height=\"6.29\"/>\n <rect class=\"cls-BarGrouped-2\" y=\"43.37\" width=\"96\" height=\"6.29\"/>\n <rect class=\"cls-BarGrouped-3\" y=\"62.23\" width=\"33.43\" height=\"6.29\"/>\n <rect class=\"cls-BarGrouped-2\" y=\"15.89\" width=\"55.61\" height=\"6.29\"/>\n <rect class=\"cls-BarGrouped-3\" y=\"34.76\" width=\"45.35\" height=\"6.29\"/>\n <rect class=\"cls-BarGrouped-4\" y=\"83.42\" width=\"89.38\" height=\"6.29\"/>\n <rect class=\"cls-BarGrouped-4\" y=\"55.94\" width=\"70.84\" height=\"6.29\"/>\n <rect class=\"cls-BarGrouped-4\" y=\"28.47\" width=\"33.43\" height=\"6.29\"/>\n </g>\n</svg>\n`;\nexport const BarStacked = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-BarStacked-1{fill:#ab4191;}.cls-BarStacked-1,.cls-BarStacked-2,.cls-BarStacked-3,.cls-BarStacked-4{fill-rule:evenodd;}.cls-BarStacked-2{fill:#f05951;}.cls-BarStacked-3{fill:#fa8d3d;}.cls-BarStacked-4{fill:#0f6860;}</style>\n </defs>\n <g id=\"ChartNames\">\n <path class=\"cls-BarStacked-1\" d=\"M53.9,8.85H14.58V19.66H53.9ZM86.33,22.28H21.46V33.09H86.33ZM71.26,35.71H14.91V46.85H71.26ZM53.57,49.47H11.63V60.29H53.57ZM95.84,62.91H21.46V73.72H95.84Zm-36,13.43H14.91V87.15H59.8Z\"/>\n <path class=\"cls-BarStacked-2\" d=\"M41.12,8.85H14.58V19.66H41.12ZM61.76,22.28H21.46V33.09h40.3ZM46.69,35.71H14.91V46.85H46.69ZM41.77,49.47H11.63V60.29H41.77ZM62.09,62.91H21.46V73.72H62.09ZM42.76,76.34H14.91V87.15H42.76Z\"/>\n <path class=\"cls-BarStacked-3\" d=\"M31.62,8.85h-17V19.66h17ZM45.38,22.28H21.46V33.09H45.38Zm-9.5,13.43h-21V46.85h21Zm-2.3,13.76H11.63V60.29H33.58Zm8.85,13.44h-21V73.72h21ZM31,76.34h-16V87.15H31Z\"/>\n <path class=\"cls-BarStacked-4\" d=\"M14.91,8.85H.16V19.66H14.91ZM27.36,22.28H.16V33.09h27.2ZM19.17,35.71H.16V46.85h19ZM15.56,49.47H.16V60.29h15.4ZM27.69,62.91H.16V73.72H27.69ZM16.22,76.34H.16V87.15H16.22Z\"/>\n </g>\n</svg>\n`;\nexport const Column100Stacked = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-Column100Stacked-1{fill:#ab4191;}.cls-Column100Stacked-1,.cls-Column100Stacked-2,.cls-Column100Stacked-3,.cls-Column100Stacked-4{fill-rule:evenodd;}.cls-Column100Stacked-2{fill:#f05951;}.cls-Column100Stacked-3{fill:#fa8d3d;}.cls-Column100Stacked-4{fill:#0f6860;}</style>\n </defs>\n <g id=\"ChartNames\">\n <path class=\"cls-Column100Stacked-1\" d=\"M0,0V50.28H13.81V0ZM16.44,0V48.44H30.25V0ZM32.88,0V53.51h13.8V0ZM49.32,0V47.78h13.8V0ZM65.75,0V52.68H79.56V0ZM82.19,0V54H96V0Z\"/>\n <path class=\"cls-Column100Stacked-2\" d=\"M16.44,20.35V66.43H30.25V20.35ZM65.75,30V68.74H79.56V30ZM32.88,25.73v48h13.8v-48ZM49.32,39.17V66.05h13.8V39.17ZM82.19,22.66V70.27H96V22.66ZM0,35.33v33H13.81v-33Z\"/>\n <path class=\"cls-Column100Stacked-3\" d=\"M16.44,48.38V87.94H30.25V48.38Zm49.31,8.07V90.24H79.56V56.45ZM32.88,53V94.46h13.8V53ZM49.32,64.51V87.94h13.8V64.51ZM82.19,50.3V91.39H96V50.3ZM0,61.44V89.86H13.81V61.44Z\"/>\n <path class=\"cls-Column100Stacked-4\" d=\"M32.88,82.11V96h13.8V82.11Zm16.44-4.45V96h13.8V77.66Zm32.87,3.41V96H96V81.07ZM16.44,73.73V96H30.25V73.73ZM65.75,84.47V96H79.56V84.47ZM0,85.08V96H13.81V85.08Z\"/>\n </g>\n</svg>\n`;\nexport const ColumnGrouped = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-ColumnGrouped-1{fill:#fa8d3d;}.cls-ColumnGrouped-2{fill:#f05951;}.cls-ColumnGrouped-3{fill:#0f6860;}.cls-ColumnGrouped-4{fill:#ab4191;}</style>\n </defs>\n <g id=\"ChartNames\">\n <rect class=\"cls-ColumnGrouped-1\" x=\"14.87\" y=\"30.42\" width=\"7.44\" height=\"65.58\"/>\n <rect class=\"cls-ColumnGrouped-1\" x=\"48\" y=\"8.11\" width=\"7.44\" height=\"87.89\"/>\n <rect class=\"cls-ColumnGrouped-1\" x=\"81.13\" y=\"38.2\" width=\"7.44\" height=\"57.8\"/>\n <rect class=\"cls-ColumnGrouped-2\" x=\"7.44\" y=\"43.61\" width=\"7.44\" height=\"52.39\"/>\n <rect class=\"cls-ColumnGrouped-3\" x=\"22.31\" y=\"52.06\" width=\"7.44\" height=\"43.94\"/>\n <rect class=\"cls-ColumnGrouped-2\" x=\"40.56\" y=\"34.48\" width=\"7.44\" height=\"61.52\"/>\n <rect class=\"cls-ColumnGrouped-3\" x=\"55.44\" y=\"19.27\" width=\"7.44\" height=\"76.73\"/>\n <rect class=\"cls-ColumnGrouped-2\" x=\"73.69\" y=\"12.17\" width=\"7.44\" height=\"83.83\"/>\n <rect class=\"cls-ColumnGrouped-4\" y=\"20.28\" width=\"7.44\" height=\"75.72\"/>\n <rect class=\"cls-ColumnGrouped-4\" x=\"33.13\" y=\"71.32\" width=\"7.44\" height=\"24.68\"/>\n <rect class=\"cls-ColumnGrouped-4\" x=\"66.25\" y=\"51.04\" width=\"7.44\" height=\"44.96\"/>\n <rect class=\"cls-ColumnGrouped-3\" x=\"88.56\" y=\"63.21\" width=\"7.44\" height=\"32.79\"/>\n </g>\n</svg>\n`;\nexport const ColumnStacked = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-ColumnStacked-1{fill:#ab4191;}.cls-ColumnStacked-1,.cls-ColumnStacked-2,.cls-ColumnStacked-3,.cls-ColumnStacked-4{fill-rule:evenodd;}.cls-ColumnStacked-2{fill:#f05951;}.cls-ColumnStacked-3{fill:#fa8d3d;}.cls-ColumnStacked-4{fill:#0f6860;}</style>\n </defs>\n <g id=\"ChartNames\">\n <path class=\"cls-ColumnStacked-1\" d=\"M0,44.4V78.55H13.81V44.4ZM16.44,9.87V78.55H30.25V9.87ZM32.88,25.8V78.55h13.8V25.8Zm16.44,19V82.34h13.8V44.77ZM65.75,0V78.55H79.56V0ZM82.19,37.94V86.13H96V37.94Z\"/>\n <path class=\"cls-ColumnStacked-2\" d=\"M16.44,36.05v42.5H30.25V36.05Zm49.31-.38V78.55H79.56V35.67ZM32.88,52V78.55h13.8V52ZM49.32,57.3v25h13.8v-25Zm32.87-1.14v30H96v-30ZM0,57.68V78.55H13.81V57.68Z\"/>\n <path class=\"cls-ColumnStacked-3\" d=\"M32.88,63.37V78.55h13.8V63.37Zm16.44,2.27v16.7h13.8V65.64Zm32.87,3V86.13H96V68.68ZM16.44,53.5v25H30.25v-25Zm49.31,3v22H79.56v-22ZM0,67.54v14H13.81v-14Z\"/>\n <path class=\"cls-ColumnStacked-4\" d=\"M16.44,71.72V96H30.25V71.72Zm49.31,1.51V96H79.56V73.23ZM32.88,77V96h13.8V77Zm16.44,3.79V96h13.8V80.82Zm32.87,3V96H96V83.86ZM0,81.2V96H13.81V81.2Z\"/>\n </g>\n</svg>\n`;\nexport const Line100Stacked = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-Line100Stacked-1,.cls-Line100Stacked-2,.cls-Line100Stacked-3,.cls-Line100Stacked-4{fill:none;stroke-miterlimit:10;stroke-width:2px;fill-rule:evenodd;}.cls-Line100Stacked-1{stroke:#ab4191;}.cls-Line100Stacked-2{stroke:#f05951;}.cls-Line100Stacked-3{stroke:#fa8d3d;}.cls-Line100Stacked-4{stroke:#0f6860;}</style>\n </defs>\n <g id=\"ChartNames\">\n <polyline class=\"cls-Line100Stacked-1\" points=\"0 29.37 17.34 19.88 38.74 29.52 58.65 32.18 80.42 28.87 96 24.56\"/>\n <polyline class=\"cls-Line100Stacked-2\" points=\"0 42.5 17.34 37.81 38.37 41.12 59.02 42.11 80.42 37.81 96 41.85\"/>\n <polyline class=\"cls-Line100Stacked-3\" points=\"0 66.68 17.34 59.32 38.37 72.9 59.76 55.35 96 65.16\"/>\n <polyline class=\"cls-Line100Stacked-4\" points=\"0 85.81 17.34 78.52 59.39 88.12 80.78 76.87 96 82.48\"/>\n </g>\n</svg>\n`;\nexport const LineGrouped = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-LineGrouped-1,.cls-LineGrouped-2,.cls-LineGrouped-3,.cls-LineGrouped-4{fill:none;stroke-miterlimit:10;stroke-width:2px;}.cls-LineGrouped-1{stroke:#ab4191;}.cls-LineGrouped-2{stroke:#f05951;}.cls-LineGrouped-3{stroke:#fa8d3d;}.cls-LineGrouped-4{stroke:#0f6860;}</style>\n </defs>\n <g id=\"ChartNames\">\n <polyline class=\"cls-LineGrouped-1\" points=\"0 31.14 4.12 20.49 11.66 36.91 16.09 36.66 24.41 46.48 27.96 47.14 32.04 44.59 36.46 46.81 40.19 44.59 45.04 45.82 47.99 49.2 51.98 48.87 59.96 52.84 63.95 51.52 68.28 51.52 74.78 53.74 85.36 41.04 96 17.86 96 18.27\"/>\n <polyline class=\"cls-LineGrouped-2\" points=\"0 61.42 3.9 56.96 7.98 61.25 15.61 60.59 24.28 69.75 27.57 71.15 31.99 67.52 35.81 69.17 40.06 67.19 48.04 70.08 51.76 69.17 59.07 73.36 68.06 72.06 75.87 68.01 79.25 63.06 82.37 59.93 88.01 57.37 91.99 52.01 96 36.5 96 35.45\"/>\n <polyline class=\"cls-LineGrouped-3\" points=\"0 79.47 5.11 77.91 8.5 78.81 16.13 77.41 20.72 80.71 27.4 84.17 37.8 83.52 46.91 85.58 52.02 79.31 60.35 84.59 90.95 89.87 96 85.5\"/>\n <polyline class=\"cls-LineGrouped-4\" points=\"0 92.26 14.7 90.69 19.9 92.1 24.93 90.03 30.13 91.1 47.13 90.78 51.72 89.12 56.75 90.69 71.06 90.11 83.63 83.1 96 79.33\"/>\n </g>\n</svg>\n`;\nexport const LineStacked = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-LineStacked-1,.cls-LineStacked-2,.cls-LineStacked-3,.cls-LineStacked-4{fill:none;stroke-miterlimit:10;stroke-width:2px;fill-rule:evenodd;}.cls-LineStacked-1{stroke:#ab4191;}.cls-LineStacked-2{stroke:#f05951;}.cls-LineStacked-3{stroke:#fa8d3d;}.cls-LineStacked-4{stroke:#0f6860;}</style>\n </defs>\n <g id=\"ChartNames\">\n <polyline class=\"cls-LineStacked-1\" points=\"0 80.39 14.23 67.93 31.11 68.6 47.9 59.83 65.4 39.39 81.92 33.46 96 14.25\"/>\n <polyline class=\"cls-LineStacked-2\" points=\"0 85.07 14.32 75.65 31.47 78.74 48.25 68.72 64.86 68.97 82.1 43.77 96 36.04\"/>\n <polyline class=\"cls-LineStacked-3\" points=\"0 90.45 14.14 83.91 30.93 84.66 48.17 79.07 64.86 78.07 82.28 62.38 96 59.21\"/>\n <polyline class=\"cls-LineStacked-4\" points=\"0 96 31.16 90.78 64.95 88.38 82.19 77.78 96 74.53\"/>\n </g>\n</svg>\n`;\nexport const Pie = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-Pie-1{fill:#f05951;}.cls-Pie-1,.cls-Pie-2,.cls-Pie-3,.cls-Pie-4{fill-rule:evenodd;}.cls-Pie-2{fill:#fa8d3d;}.cls-Pie-3{fill:#0f6860;}.cls-Pie-4{fill:#ab4191;}</style>\n </defs>\n <g id=\"ChartNames\">\n <path class=\"cls-Pie-1\" d=\"M44.19,48V3.79A43.27,43.27,0,0,0,3,32.3,43.45,43.45,0,0,0,15,81Z\"/>\n <path class=\"cls-Pie-2\" d=\"M44.19,48,15,81a42.63,42.63,0,0,0,37.7,10.28,42.72,42.72,0,0,0,31-23.78Z\"/>\n <path class=\"cls-Pie-3\" d=\"M51.77,48,91.29,67.53a42.87,42.87,0,0,0,.53-38Z\"/>\n <path class=\"cls-Pie-4\" d=\"M44.19,48,84.24,29.52a43.13,43.13,0,0,0-40-25.73Z\"/>\n </g>\n</svg>\n`;\nexport const ScatterBubble = `\n <svg id=\"Layer_1\" data-name=\"Layer 1\"\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-ScatterBubble-1{fill:#f05951;}.cls-ScatterBubble-1,.cls-ScatterBubble-2{stroke:#fff;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.5px;}.cls-ScatterBubble-2{fill:#ab4191;}</style>\n </defs>\n <circle class=\"cls-ScatterBubble-1\" cx=\"6.06\" cy=\"85.05\" r=\"2.33\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"16.57\" cy=\"83.89\" r=\"2.33\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"13.07\" cy=\"78.83\" r=\"2.33\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"39.52\" cy=\"59.38\" r=\"2.33\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"35.63\" cy=\"53.94\" r=\"2.33\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"7.62\" cy=\"70.27\" r=\"2.33\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"20.85\" cy=\"71.44\" r=\"2.33\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"8.79\" cy=\"84.28\" r=\"3.11\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"18.9\" cy=\"67.16\" r=\"3.11\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"36.4\" cy=\"59.77\" r=\"3.11\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"63.24\" cy=\"21.26\" r=\"3.11\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"25.12\" cy=\"70.27\" r=\"3.11\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"9.18\" cy=\"71.83\" r=\"3.11\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"13.07\" cy=\"47.32\" r=\"3.11\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"8.01\" cy=\"60.94\" r=\"4.28\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"22.4\" cy=\"74.94\" r=\"4.28\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"29.79\" cy=\"54.33\" r=\"4.28\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"73.75\" cy=\"30.99\" r=\"4.28\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"62.47\" cy=\"34.88\" r=\"4.28\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"16.57\" cy=\"48.88\" r=\"4.28\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"44.18\" cy=\"28.26\" r=\"4.28\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"16.57\" cy=\"61.33\" r=\"4.28\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"29.79\" cy=\"49.66\" r=\"5.06\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"47.68\" cy=\"53.94\" r=\"5.83\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"62.08\" cy=\"26.32\" r=\"5.06\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"86.58\" cy=\"39.93\" r=\"5.06\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"70.63\" cy=\"33.32\" r=\"5.06\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"64.8\" cy=\"33.32\" r=\"6.22\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"25.9\" cy=\"32.15\" r=\"6.22\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"39.52\" cy=\"74.16\" r=\"6.61\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"56.23\" cy=\"81.54\" r=\"6.22\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"51.19\" cy=\"74.16\" r=\"8.17\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"42.24\" cy=\"38.77\" r=\"8.17\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"50.8\" cy=\"60.94\" r=\"8.17\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"41.85\" cy=\"34.88\" r=\"9.34\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"52.35\" cy=\"31.76\" r=\"11.28\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"58.97\" cy=\"53.55\" r=\"12.84\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"37.57\" cy=\"81.55\" r=\"9.72\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"58.58\" cy=\"50.44\" r=\"6.22\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"51.57\" cy=\"53.55\" r=\"7\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"53.52\" cy=\"34.49\" r=\"7\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"57.41\" cy=\"11.93\" r=\"7\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"86.19\" cy=\"57.83\" r=\"5.45\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"20.85\" cy=\"66.38\" r=\"5.45\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"38.35\" cy=\"58.6\" r=\"5.06\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"15.79\" cy=\"64.05\" r=\"5.06\"/>\n <circle class=\"cls-ScatterBubble-1\" cx=\"28.24\" cy=\"74.55\" r=\"5.06\"/>\n <circle class=\"cls-ScatterBubble-2\" cx=\"57.02\" cy=\"22.04\" r=\"4.28\"/>\n</svg>\n`;\nexport const ScatterLine = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-ScatterLine-1,.cls-ScatterLine-2,.cls-ScatterLine-3,.cls-ScatterLine-4{fill:none;stroke-miterlimit:10;stroke-width:2px;}.cls-ScatterLine-1{stroke:#0f6860;}.cls-ScatterLine-1,.cls-ScatterLine-2,.cls-ScatterLine-3,.cls-ScatterLine-4,.cls-ScatterLine-5,.cls-ScatterLine-7,.cls-ScatterLine-8,.cls-ScatterLine-9{fill-rule:evenodd;}.cls-ScatterLine-2{stroke:#fa8d3d;}.cls-ScatterLine-3{stroke:#f05951;}.cls-ScatterLine-4{stroke:#ab4191;}.cls-ScatterLine-5{fill:#ab4191;}.cls-ScatterLine-6{fill:#fff;}.cls-ScatterLine-7{fill:#f05951;}.cls-ScatterLine-8{fill:#0f6860;}.cls-ScatterLine-9{fill:#fa8d3d;}</style>\n </defs>\n <g id=\"ChartNames\">\n <polyline class=\"cls-ScatterLine-1\" points=\"26.86 87.32 37.71 81.09 60.66 85.34 75.57 71.13 82.69 60.02 88.09 48.86\"/>\n <polyline class=\"cls-ScatterLine-2\" points=\"10.6 85.36 16.86 76.38 32.22 58.89 55.26 41.45 60.02 31.09 69.79 23.41 88.32 6.3\"/>\n <polyline class=\"cls-ScatterLine-3\" points=\"60.19 7.22 47.42 10.06 35.31 14.73 18.95 32.1 17.53 50.04 10.44 58.56\"/>\n <polyline class=\"cls-ScatterLine-4\" points=\"23.58 4.76 10.97 12.44 8.47 29.72\"/>\n <path class=\"cls-ScatterLine-5\" d=\"M8.69,12.61a2.51,2.51,0,1,0,2.5-2.51A2.5,2.5,0,0,0,8.69,12.61Zm1,0a1.5,1.5,0,1,1,1.5,1.5A1.5,1.5,0,0,1,9.69,12.61Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"11.19\" cy=\"12.61\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-5\" d=\"M21,4.59a2.51,2.51,0,1,0,2.51-2.5A2.51,2.51,0,0,0,21,4.59Zm1,0A1.51,1.51,0,1,1,23.55,6.1,1.5,1.5,0,0,1,22,4.59Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"23.55\" cy=\"4.59\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-5\" d=\"M6,29.64a2.5,2.5,0,1,0,2.5-2.51A2.5,2.5,0,0,0,6,29.64Zm1,0a1.5,1.5,0,1,1,1.5,1.5A1.5,1.5,0,0,1,7,29.64Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"8.52\" cy=\"29.64\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-7\" d=\"M57.43,7.26a2.51,2.51,0,1,0,2.51-2.5A2.51,2.51,0,0,0,57.43,7.26Zm1,0a1.51,1.51,0,1,1,1.51,1.51A1.51,1.51,0,0,1,58.43,7.26Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"59.94\" cy=\"7.26\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-7\" d=\"M44.74,10.24a2.51,2.51,0,1,0,2.51-2.51A2.51,2.51,0,0,0,44.74,10.24Zm1,0a1.5,1.5,0,1,1,1.5,1.5A1.5,1.5,0,0,1,45.75,10.24Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"47.25\" cy=\"10.24\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-7\" d=\"M33.06,14.94a2.51,2.51,0,1,0,2.5-2.5A2.5,2.5,0,0,0,33.06,14.94Zm1,0a1.5,1.5,0,1,1,1.5,1.51A1.5,1.5,0,0,1,34.06,14.94Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"35.56\" cy=\"14.94\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-7\" d=\"M16.36,32.08a2.51,2.51,0,1,0,2.51-2.5A2.51,2.51,0,0,0,16.36,32.08Zm1,0a1.51,1.51,0,1,1,1.51,1.5A1.5,1.5,0,0,1,17.36,32.08Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"18.87\" cy=\"32.08\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-7\" d=\"M14.69,50.34a2.51,2.51,0,1,0,2.51-2.51A2.5,2.5,0,0,0,14.69,50.34Zm1,0a1.51,1.51,0,1,1,3,0,1.51,1.51,0,0,1-3,0Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"17.2\" cy=\"50.34\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-7\" d=\"M8,58.24a2.51,2.51,0,1,0,2.5-2.51A2.5,2.5,0,0,0,8,58.24Zm1,0a1.5,1.5,0,1,1,1.5,1.5A1.5,1.5,0,0,1,9,58.24Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"10.48\" cy=\"58.24\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-8\" d=\"M80.54,60a2.5,2.5,0,1,0,2.5-2.5A2.51,2.51,0,0,0,80.54,60Zm1,0a1.5,1.5,0,1,1,1.5,1.5A1.5,1.5,0,0,1,81.54,60Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"83.04\" cy=\"60.02\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-8\" d=\"M85.58,49a2.51,2.51,0,1,0,2.51-2.5A2.51,2.51,0,0,0,85.58,49Zm1,0a1.51,1.51,0,1,1,1.51,1.5A1.51,1.51,0,0,1,86.58,49Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"88.09\" cy=\"49\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-8\" d=\"M73.27,71.18a2.51,2.51,0,1,0,2.5-2.5A2.51,2.51,0,0,0,73.27,71.18Zm1,0a1.5,1.5,0,1,1,1.5,1.51A1.5,1.5,0,0,1,74.27,71.18Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"75.77\" cy=\"71.18\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-8\" d=\"M58.16,85.65a2.5,2.5,0,1,0,2.5-2.51A2.5,2.5,0,0,0,58.16,85.65Zm1,0a1.5,1.5,0,1,1,1.5,1.5A1.51,1.51,0,0,1,59.16,85.65Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"60.66\" cy=\"85.65\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-8\" d=\"M35.2,81.53A2.51,2.51,0,1,0,37.71,79,2.52,2.52,0,0,0,35.2,81.53Zm1,0A1.51,1.51,0,1,1,37.71,83,1.51,1.51,0,0,1,36.2,81.53Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"37.71\" cy=\"81.53\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-8\" d=\"M24.35,87.32a2.51,2.51,0,1,0,2.51-2.51A2.5,2.5,0,0,0,24.35,87.32Zm1,0a1.51,1.51,0,1,1,1.51,1.5A1.51,1.51,0,0,1,25.35,87.32Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"26.86\" cy=\"87.32\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-9\" d=\"M8,85.73a2.51,2.51,0,1,0,2.51-2.5A2.52,2.52,0,0,0,8,85.73Zm1,0a1.5,1.5,0,1,1,1.5,1.5A1.5,1.5,0,0,1,9,85.73Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"10.48\" cy=\"85.73\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-9\" d=\"M13.36,77.38a2.51,2.51,0,1,0,2.5-2.5A2.5,2.5,0,0,0,13.36,77.38Zm1,0a1.51,1.51,0,1,1,1.5,1.51A1.5,1.5,0,0,1,14.36,77.38Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"15.86\" cy=\"77.38\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-9\" d=\"M19,70.71a2.51,2.51,0,1,0,2.51-2.51A2.5,2.5,0,0,0,19,70.71Zm1,0a1.51,1.51,0,1,1,1.51,1.5A1.51,1.51,0,0,1,20,70.71Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"21.54\" cy=\"70.71\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-9\" d=\"M29.44,58.91a2.51,2.51,0,1,0,2.5-2.51A2.5,2.5,0,0,0,29.44,58.91Zm1,0a1.5,1.5,0,1,1,1.5,1.5A1.51,1.51,0,0,1,30.44,58.91Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"31.94\" cy=\"58.91\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-9\" d=\"M41.41,49.67a2.5,2.5,0,1,0,2.5-2.5A2.5,2.5,0,0,0,41.41,49.67Zm1,0a1.5,1.5,0,1,1,1.5,1.5A1.5,1.5,0,0,1,42.41,49.67Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"43.91\" cy=\"49.67\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-9\" d=\"M52.76,41.66a2.51,2.51,0,1,0,2.5-2.51A2.5,2.5,0,0,0,52.76,41.66Zm1,0a1.51,1.51,0,1,1,1.5,1.5A1.5,1.5,0,0,1,53.76,41.66Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"55.26\" cy=\"41.66\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-9\" d=\"M57.77,31.3a2.51,2.51,0,1,0,2.5-2.5A2.5,2.5,0,0,0,57.77,31.3Zm1,0a1.5,1.5,0,1,1,1.5,1.51A1.5,1.5,0,0,1,58.77,31.3Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"60.27\" cy=\"31.3\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-9\" d=\"M67.45,23.62a2.51,2.51,0,1,0,2.5-2.5A2.5,2.5,0,0,0,67.45,23.62Zm1,0A1.51,1.51,0,1,1,70,25.13,1.5,1.5,0,0,1,68.45,23.62Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"69.95\" cy=\"23.62\" r=\"1.5\"/>\n <path class=\"cls-ScatterLine-9\" d=\"M85.82,6.59a2.5,2.5,0,1,0,2.5-2.5A2.5,2.5,0,0,0,85.82,6.59Zm1,0a1.5,1.5,0,1,1,1.5,1.51A1.5,1.5,0,0,1,86.82,6.59Z\"/>\n <circle class=\"cls-ScatterLine-6\" cx=\"88.32\" cy=\"6.59\" r=\"1.5\"/>\n </g>\n</svg>\n`;\nexport const ScatterPoint = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n <defs>\n <style>.cls-ScatterPoint-1{fill:#ab4191;}.cls-ScatterPoint-1,.cls-ScatterPoint-3,.cls-ScatterPoint-4{fill-rule:evenodd;}.cls-ScatterPoint-2{fill:#fff;}.cls-ScatterPoint-3{fill:#f05951;}.cls-ScatterPoint-4{fill:#fa8d3d;}</style>\n </defs>\n <g id=\"ChartNames\">\n <path class=\"cls-ScatterPoint-1\" d=\"M6.42,7.64A2.37,2.37,0,1,0,8.79,5.28,2.37,2.37,0,0,0,6.42,7.64Zm1,0A1.42,1.42,0,1,1,8.79,9.06,1.41,1.41,0,0,1,7.37,7.64Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"8.79\" cy=\"7.64\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M12.09,10a2.37,2.37,0,1,0,2.37-2.37A2.37,2.37,0,0,0,12.09,10ZM13,10a1.42,1.42,0,1,1,1.42,1.41A1.41,1.41,0,0,1,13,10Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"14.46\" cy=\"10.01\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M22,8.59a2.37,2.37,0,1,0,2.37-2.36A2.37,2.37,0,0,0,22,8.59Zm.95,0A1.42,1.42,0,1,1,24.38,10,1.41,1.41,0,0,1,23,8.59Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"24.38\" cy=\"8.59\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M14.46,14.73a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,14.46,14.73Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.42,1.42,0,0,1,15.4,14.73Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"16.82\" cy=\"14.73\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M11.62,31.27A2.37,2.37,0,1,0,14,28.9,2.36,2.36,0,0,0,11.62,31.27Zm1,0A1.42,1.42,0,1,1,14,32.68,1.41,1.41,0,0,1,12.57,31.27Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"13.98\" cy=\"31.27\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M3.12,28.9a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,3.12,28.9Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.41,1.41,0,0,1,4.06,28.9Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"5.48\" cy=\"28.9\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M2.64,34.57A2.37,2.37,0,1,0,5,32.21,2.37,2.37,0,0,0,2.64,34.57Zm.95,0A1.42,1.42,0,1,1,5,36,1.41,1.41,0,0,1,3.59,34.57Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"5.01\" cy=\"34.57\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M.75,37.88a2.37,2.37,0,1,0,2.37-2.36A2.36,2.36,0,0,0,.75,37.88Zm1,0A1.42,1.42,0,1,1,3.12,39.3,1.42,1.42,0,0,1,1.7,37.88Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"3.12\" cy=\"37.88\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M1.23,44.5a2.36,2.36,0,1,0,2.36-2.37A2.36,2.36,0,0,0,1.23,44.5Zm.94,0a1.42,1.42,0,1,1,1.42,1.41A1.41,1.41,0,0,1,2.17,44.5Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"3.59\" cy=\"44.5\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M2.64,66.23A2.37,2.37,0,1,0,5,63.87,2.37,2.37,0,0,0,2.64,66.23Zm.95,0A1.42,1.42,0,1,1,5,67.65,1.41,1.41,0,0,1,3.59,66.23Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"5.01\" cy=\"66.23\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M26.27,75.21a2.36,2.36,0,1,0,2.36-2.37A2.36,2.36,0,0,0,26.27,75.21Zm.94,0a1.42,1.42,0,1,1,1.42,1.41A1.41,1.41,0,0,1,27.21,75.21Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"28.63\" cy=\"75.21\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M9.73,52.06a2.37,2.37,0,1,0,2.36-2.37A2.36,2.36,0,0,0,9.73,52.06Zm.95,0a1.42,1.42,0,1,1,1.41,1.41A1.41,1.41,0,0,1,10.68,52.06Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"12.09\" cy=\"52.06\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M14.46,48.75a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,14.46,48.75Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.41,1.41,0,0,1,15.4,48.75Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"16.82\" cy=\"48.75\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M14.46,41.66a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,14.46,41.66Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.42,1.42,0,0,1,15.4,41.66Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"16.82\" cy=\"41.66\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M22.49,44.5a2.36,2.36,0,1,0,2.36-2.37A2.36,2.36,0,0,0,22.49,44.5Zm.94,0a1.42,1.42,0,1,1,1.42,1.41A1.42,1.42,0,0,1,23.43,44.5Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"24.85\" cy=\"44.5\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-1\" d=\"M30.52,44a2.36,2.36,0,1,0,2.36-2.36A2.37,2.37,0,0,0,30.52,44Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.42,1.42,0,0,1,31.46,44Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"32.88\" cy=\"44.02\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M19.18,87.88a2.36,2.36,0,1,0,2.36-2.36A2.37,2.37,0,0,0,19.18,87.88Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.42,1.42,0,0,1,20.12,87.88Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"21.54\" cy=\"87.88\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M30.52,67.65a2.36,2.36,0,1,0,2.36-2.37A2.36,2.36,0,0,0,30.52,67.65Zm.94,0a1.42,1.42,0,1,1,1.42,1.41A1.42,1.42,0,0,1,31.46,67.65Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"32.88\" cy=\"67.65\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M41.86,51.58a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,41.86,51.58Zm.94,0A1.42,1.42,0,1,1,44.22,53,1.42,1.42,0,0,1,42.8,51.58Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"44.22\" cy=\"51.58\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M41.86,53.94a2.36,2.36,0,1,0,2.36-2.36A2.37,2.37,0,0,0,41.86,53.94Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.42,1.42,0,0,1,42.8,53.94Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"44.22\" cy=\"53.94\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M41.86,63.39A2.36,2.36,0,1,0,44.22,61,2.37,2.37,0,0,0,41.86,63.39Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.42,1.42,0,0,1,42.8,63.39Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"44.22\" cy=\"63.39\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M41.86,71.43a2.36,2.36,0,1,0,2.36-2.37A2.36,2.36,0,0,0,41.86,71.43Zm.94,0a1.42,1.42,0,1,1,1.42,1.41A1.42,1.42,0,0,1,42.8,71.43Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"44.22\" cy=\"71.43\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M53.2,83.24a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,53.2,83.24Zm.94,0a1.42,1.42,0,1,1,1.42,1.41A1.42,1.42,0,0,1,54.14,83.24Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"55.56\" cy=\"83.24\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M64.06,75.21a2.37,2.37,0,1,0,2.37-2.37A2.37,2.37,0,0,0,64.06,75.21Zm1,0a1.42,1.42,0,1,1,1.42,1.41A1.41,1.41,0,0,1,65,75.21Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"66.43\" cy=\"75.21\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M64.06,63.39A2.37,2.37,0,1,0,66.43,61,2.37,2.37,0,0,0,64.06,63.39Zm1,0a1.42,1.42,0,1,1,1.42,1.42A1.41,1.41,0,0,1,65,63.39Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"66.43\" cy=\"63.39\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M75.4,71.43a2.37,2.37,0,1,0,2.36-2.37A2.36,2.36,0,0,0,75.4,71.43Zm.95,0a1.42,1.42,0,1,1,1.41,1.41A1.41,1.41,0,0,1,76.35,71.43Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"77.76\" cy=\"71.43\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M75.4,55.83a2.37,2.37,0,1,0,2.36-2.36A2.37,2.37,0,0,0,75.4,55.83Zm.95,0a1.42,1.42,0,1,1,1.41,1.42A1.41,1.41,0,0,1,76.35,55.83Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"77.76\" cy=\"55.83\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M75.4,24.81a2.37,2.37,0,1,0,2.36-2.36A2.36,2.36,0,0,0,75.4,24.81Zm.95,0a1.42,1.42,0,1,1,1.41,1.42A1.41,1.41,0,0,1,76.35,24.81Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"77.76\" cy=\"24.81\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M75.4,22a2.37,2.37,0,1,0,2.36-2.36A2.37,2.37,0,0,0,75.4,22Zm.95,0a1.42,1.42,0,1,1,1.41,1.42A1.41,1.41,0,0,1,76.35,22Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"77.76\" cy=\"21.97\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M86.74,84.1a2.37,2.37,0,1,0,2.36-2.36A2.37,2.37,0,0,0,86.74,84.1Zm1,0a1.42,1.42,0,1,1,1.41,1.42A1.41,1.41,0,0,1,87.69,84.1Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"89.1\" cy=\"84.1\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M86.74,71a2.37,2.37,0,1,0,2.36-2.36A2.37,2.37,0,0,0,86.74,71Zm1,0a1.42,1.42,0,1,1,1.41,1.42A1.41,1.41,0,0,1,87.69,71Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"89.1\" cy=\"70.95\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M41.86,88.36A2.36,2.36,0,1,0,44.22,86,2.36,2.36,0,0,0,41.86,88.36Zm.94,0a1.42,1.42,0,1,1,1.42,1.41A1.42,1.42,0,0,1,42.8,88.36Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"44.22\" cy=\"88.36\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-3\" d=\"M30.52,71.43a2.36,2.36,0,1,0,2.36-2.37A2.36,2.36,0,0,0,30.52,71.43Zm.94,0a1.42,1.42,0,1,1,1.42,1.41A1.42,1.42,0,0,1,31.46,71.43Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"32.88\" cy=\"71.43\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M19.65,64.34A2.37,2.37,0,1,0,22,62,2.36,2.36,0,0,0,19.65,64.34Zm1,0A1.42,1.42,0,1,1,22,65.76,1.41,1.41,0,0,1,20.6,64.34Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"22.01\" cy=\"64.34\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M30.52,50.64a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,30.52,50.64Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.42,1.42,0,0,1,31.46,50.64Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"32.88\" cy=\"50.64\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M30.52,62.92a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,30.52,62.92Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.43,1.43,0,0,1,31.46,62.92Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"32.88\" cy=\"62.92\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M30.52,79a2.36,2.36,0,1,0,2.36-2.37A2.36,2.36,0,0,0,30.52,79Zm.94,0a1.42,1.42,0,1,1,1.42,1.41A1.42,1.42,0,0,1,31.46,79Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"32.88\" cy=\"78.99\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M41.86,68.12a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,41.86,68.12Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.42,1.42,0,0,1,42.8,68.12Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"44.22\" cy=\"68.12\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M53.2,56.78a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,53.2,56.78Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.43,1.43,0,0,1,54.14,56.78Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"55.56\" cy=\"56.78\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M53.2,76.15a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,53.2,76.15Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.43,1.43,0,0,1,54.14,76.15Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"55.56\" cy=\"76.15\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M41.86,85.52a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,41.86,85.52Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.43,1.43,0,0,1,42.8,85.52Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"44.22\" cy=\"85.52\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M64.06,83.24a2.37,2.37,0,1,0,2.37-2.36A2.37,2.37,0,0,0,64.06,83.24Zm1,0a1.42,1.42,0,1,1,1.42,1.41A1.41,1.41,0,0,1,65,83.24Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"66.43\" cy=\"83.24\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M75.4,75.68a2.37,2.37,0,1,0,2.36-2.36A2.36,2.36,0,0,0,75.4,75.68Zm.95,0a1.42,1.42,0,1,1,1.41,1.42A1.41,1.41,0,0,1,76.35,75.68Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"77.76\" cy=\"75.68\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M77.76,75.21a2.37,2.37,0,1,0,2.37-2.37A2.37,2.37,0,0,0,77.76,75.21Zm.95,0a1.42,1.42,0,1,1,1.42,1.41A1.41,1.41,0,0,1,78.71,75.21Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"80.13\" cy=\"75.21\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M86.27,54.89a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,86.27,54.89Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.43,1.43,0,0,1,87.21,54.89Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"88.63\" cy=\"54.89\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M90.52,71a2.37,2.37,0,1,0,2.36-2.36A2.37,2.37,0,0,0,90.52,71Zm1,0a1.42,1.42,0,1,1,1.41,1.42A1.41,1.41,0,0,1,91.47,71Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"92.88\" cy=\"70.95\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M86.74,88.36A2.37,2.37,0,1,0,89.1,86,2.36,2.36,0,0,0,86.74,88.36Zm1,0a1.42,1.42,0,1,1,1.41,1.41A1.41,1.41,0,0,1,87.69,88.36Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"89.1\" cy=\"88.36\" r=\"1.42\"/>\n <path class=\"cls-ScatterPoint-4\" d=\"M30.52,83.71a2.36,2.36,0,1,0,2.36-2.36A2.36,2.36,0,0,0,30.52,83.71Zm.94,0a1.42,1.42,0,1,1,1.42,1.42A1.43,1.43,0,0,1,31.46,83.71Z\"/>\n <circle class=\"cls-ScatterPoint-2\" cx=\"32.88\" cy=\"83.71\" r=\"1.42\"/>\n </g>\n</svg>\n`;\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'svg',\n})\nexport class SvgPipe implements PipeTransform {\n private readonly sanitizer = inject(DomSanitizer);\n\n public transform(markup: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(markup);\n }\n}\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n HostBinding,\n OnDestroy,\n Output,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation,\n ElementRef,\n CUSTOM_ELEMENTS_SCHEMA,\n inject,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as charts from '../../../images/charts';\nimport { Subject } from 'rxjs';\nimport { IgxIconComponent } from 'igniteui-angular/icon';\nimport { IgxIconButtonDirective, IgxRippleDirective, IgxDividerDirective } from 'igniteui-angular/directives';\nimport { SvgPipe } from '../../pipes/svg.pipe';\n\n@Component({\n selector: 'igx-chart-menu',\n templateUrl: './chart-dialog.component.html',\n styleUrls: ['./chart-dialog.component.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule, IgxIconComponent, IgxIconButtonDirective, IgxRippleDirective, IgxDividerDirective, SvgPipe],\n changeDetection: ChangeDetectionStrategy.Eager,\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class IgxChartMenuComponent implements AfterViewInit, OnDestroy {\n\n @ViewChild('chartArea', { read: ViewContainerRef }) public chartArea: ViewContainerRef;\n\n @Output()\n public closed = new EventEmitter<any>();\n\n @HostBinding('style.width.px')\n public get width() {\n return this.fullScreen ? this._width : 0.7 * this._width;\n }\n public set width(value) {\n this._width = value;\n }\n\n @HostBinding('style.height.px')\n public get height() {\n return this.fullScreen ? this._height : 0.7 * this._height;\n }\n public set height(value) {\n this._height = value;\n }\n\n public chartDialogResizeNotify = new Subject();\n private contentObserver: ResizeObserver;\n public images;\n public chartDirective;\n public currentChartType;\n public title;\n public allCharts = [];\n public fullScreen = false;\n public isConfigAreaExpanded = false;\n public mainChartTypes = ['Column', 'Area', 'Bar', 'Line', 'Scatter', 'Pie'];\n private _width;\n private _height;\n private element = inject(ElementRef<any>);\n\n constructor() {\n this.images = charts;\n }\n\n public ngAfterViewInit() {\n this.contentObserver = new ResizeObserver((args) => this.chartDialogResizeNotify.next(args));\n this.contentObserver.observe(this.element.nativeElement);\n\n if (this.currentChartType && this.chartDirective) {\n this.createChart(this.currentChartType);\n }\n }\n\n public ngOnDestroy() {\n if (this.contentObserver) {\n this.contentObserver.disconnect();\n }\n this.chartDialogResizeNotify.complete();\n }\n\n public toggleFullScreen() {\n this.fullScreen = !this.fullScreen;\n }\n\n public hasAvailableChart(chartType) {\n return this.allCharts.some(c => c.includes(chartType));\n }\n\n public createChart(chartType) {\n if (!chartType || !this.chartDirective || !this.chartArea) {\n return;\n }\n this.currentChartType = chartType;\n this.title = chartType.split(/(?=[A-Z])/).toString().replace(',', ' ');\n this.chartArea.clear();\n this.chartDirective.chartFactory(chartType, this.chartArea);\n }\n}\n","<div class=\"header\">\n <span class=\"header-text\">\n {{ title }} Chart\n </span>\n <span class=\"action-buttons-wrapper\">\n <button igxIconButton=\"flat\" (click)=\"toggleFullScreen()\">\n <igx-icon class=\"material\">fullscreen{{fullScreen ? '_exit' : ''}}</igx-icon>\n </button>\n <button igxIconButton=\"flat\" (click)=\"closed.emit()\">\n <igx-icon class=\"material\">close</igx-icon>\n </button>\n </span>\n</div>\n<div class=\"selection-area ig-scrollbar\">\n <igc-trial-watermark></igc-trial-watermark>\n <div class=\"chart-area\" [ngClass]=\"{'expanded': isConfigAreaExpanded}\">\n <ng-template #chartArea ></ng-template>\n </div>\n <div>\n <button igxIconButton=\"flat\" igxRipple (click)=\"isConfigAreaExpanded = !isConfigAreaExpanded\">\n <igx-icon family=\"material\">chevron_{{ isConfigAreaExpanded ? 'left': 'right'}}</igx-icon>\n </button>\n </div>\n <div #configArea [ngClass]=\"{'chart-config-area': true, 'opened': !isConfigAreaExpanded, 'closed': isConfigAreaExpanded }\">\n <div class=\"config-area-header\">\n <span>Chart Types</span>\n </div>\n <igx-divider class=\"divider\"></igx-divider>\n @for (chartType of mainChartTypes; track chartType) {\n <div class=\"wrapper\">\n @if (hasAvailableChart(chartType)) {\n <div>{{chartType | titlecase}} Chart</div>\n <div class=\"types-section\">\n @for (chart of allCharts; track chart) {\n @if (chart.startsWith(chartType)) {\n <span class=\"types-section-btn\" title=\"{{chart}}\"\n [ngClass]=\"{'selected': chart === currentChartType}\" (click)=\"createChart(chart)\">\n <div [innerHTML]=\"images[chart] | svg\">\n </div>\n </span>\n }\n }\n </div>\n <igx-divider></igx-divider>\n }\n </div>\n }\n </div>\n</div>\n","// tslint:disable: max-line-length\nexport const Clear = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <defs>\n <style>.cls-Clear-1{fill-rule:evenodd;}.cls-Clear-2{fill:none;}</style>\n </defs>\n <g id=\"Layer_2\" data-name=\"Layer 2\">\n <g id=\"Layer_1-2\" data-name=\"Layer 1\">\n <g id=\"Conditional-formating\">\n <g id=\"Artboard\">\n <g id=\"refresh-24px\">\n <path id=\"Path\" class=\"cls-Clear-1\" d=\"M17.65,6.35A8,8,0,1,0,19.73,14H17.65A6,6,0,1,1,12,6a5.91,5.91,0,0,1,4.22,1.78L13,11h7V4Z\"/>\n <polygon class=\"cls-Clear-2\" points=\"0 0 24 0 24 24 0 24 0 0\"/>\n </g>\n </g>\n </g>\n </g>\n </g>\n</svg>\n`;\nexport const ColorScale = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M13 13.65h5a5.63 5.63 0 00-.09-1H13zM13 10.65h4.19a6.29 6.29 0 00-.74-1H13zM13 19.58a5.87 5.87 0 002.34-.93H13zM13 6.18v1.48h1.48l-1-1-.48-.48zM13 15.65v1h4.2a5.68 5.68 0 00.46-1zM11 6.18L7.76 9.43A6 6 0 0011 19.58z\" fill=\"none\"/>\n <path d=\"M16.45 9.65H13v1h4.19a6.29 6.29 0 00-.74-1zM13.48 6.66L13 6.18v1.48h1.48l-1-1zM6 13.66a6 6 0 005 5.92V6.18L7.76 9.42A6 6 0 006 13.66zM13 19.58a5.87 5.87 0 002.34-.93H13zM13 16.65h4.2a5.68 5.68 0 00.46-1H13zM13 12.65v1h5a5.63 5.63 0 00-.09-1z\" fill=\"none\"/>\n <path d=\"M19.93 12.66a7.84 7.84 0 00-.51-2 8.48 8.48 0 00-.5-1A7.8 7.8 0 0017.66 8l-.35-.36-.31-.26-.73-.73-2-2-.85-.84L12 2.34 6.34 8A8 8 0 0011 21.58h.21a7 7 0 00.79 0 7.14 7.14 0 00.8 0h.2a7.94 7.94 0 006.93-8.92zM11 19.58A6 6 0 017.76 9.42L11 6.18zm2-12.93v-.47l.48.47 1 1H13zm0 3h3.45a6.29 6.29 0 01.74 1H13zm0 9.93v-.93h2.34a5.87 5.87 0 01-2.34.93zm4.2-2.93H13v-1h4.66a5.68 5.68 0 01-.46 1zm-4.2-3v-1h4.91a5.63 5.63 0 01.09 1z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n</svg>\n\n`;\nexport const DataBars = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M3 7h12v2H3zM3 15h12v2H3zM3 19h18v2H3zM3 11h18v2H3zM3 3h18v2H3z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n</svg>\n\n`;\nexport const DuplicateValues = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M4.94 10.56a1 1 0 00-.38.79.79.79 0 00.25.63 1.06 1.06 0 00.74.24 1.9 1.9 0 001.06-.3 1.48 1.48 0 00.63-.67v-1H6a1.58 1.58 0 00-1.06.31zM16.94 14.69a1 1 0 00-.38.79.82.82 0 00.25.63 1.11 1.11 0 00.74.23 2 2 0 001.06-.29 1.5 1.5 0 00.63-.68v-1H18a1.54 1.54 0 00-1.06.32z\" fill=\"none\"/>\n <path d=\"M4.94 10.56a1 1 0 00-.38.79.79.79 0 00.25.63 1.06 1.06 0 00.74.24 1.9 1.9 0 001.06-.3 1.48 1.48 0 00.63-.67v-1H6a1.58 1.58 0 00-1.06.31zM16.94 14.69a1 1 0 00-.38.79.82.82 0 00.25.63 1.11 1.11 0 00.74.23 2 2 0 001.06-.29 1.5 1.5 0 00.63-.68v-1H18a1.54 1.54 0 00-1.06.32z\" fill=\"none\"/>\n <path d=\"M20.76 15.87v-3.06a2.17 2.17 0 00-.76-1.76 3 3 0 00-1.94-.61 3.06 3.06 0 00-2 .63 1.7 1.7 0 00-.73 1.45h1.49a.83.83 0 01.31-.66 1.29 1.29 0 01.84-.25 1.26 1.26 0 01.91.3 1.09 1.09 0 01.32.85v.6H18a3.81 3.81 0 00-2.22.56 1.78 1.78 0 00-.78 1.59 2 2 0 00.58 1.49 2.31 2.31 0 001.65.55 2.12 2.12 0 001.16-.33 2.79 2.79 0 00.83-.81 4.33 4.33 0 00.08.5c0 .16.08.33.13.51H21a4.29 4.29 0 01-.18-.77 5.46 5.46 0 01-.06-.78zm-1.52-.5a1.5 1.5 0 01-.63.68 2 2 0 01-1.06.29 1.11 1.11 0 01-.74-.23.82.82 0 01-.25-.63 1 1 0 01.38-.79 1.54 1.54 0 011.06-.34h1.24zM8.76 11.75V8.69A2.16 2.16 0 008 6.93a2.93 2.93 0 00-1.94-.61 3.06 3.06 0 00-2 .63 1.69 1.69 0 00-.73 1.44h1.5a.83.83 0 01.31-.65A1.3 1.3 0 016 7.52a1.23 1.23 0 01.91.31 1.07 1.07 0 01.32.84v.61H6a3.74 3.74 0 00-2.22.56A1.78 1.78 0 003 11.39a2 2 0 00.58 1.52 2.27 2.27 0 001.65.56 2.12 2.12 0 001.16-.33 2.79 2.79 0 00.83-.81 4.17 4.17 0 00.08.49 4.77 4.77 0 00.13.51H9a4 4 0 01-.18-.76 5.55 5.55 0 01-.06-.82zm-1.52-.5a1.48 1.48 0 01-.63.67 1.9 1.9 0 01-1.06.3 1.06 1.06 0 01-.74-.22.79.79 0 01-.25-.63 1 1 0 01.38-.79A1.58 1.58 0 016 10.23h1.24zM7 19h2v2H7zM7 15h2v2H7zM3 15h2v2H3zM15 7h2v2h-2zM15 3h2v2h-2zM3 19h2v2H3zM19 19h2v2h-2zM19 7h2v2h-2zM15 19h2v2h-2zM19 3h2v2h-2zM11 11h2v2h-2zM11 19h2v2h-2zM11 15h2v2h-2zM11 7h2v2h-2zM11 3h2v2h-2zM7 3h2v2H7zM3 3h2v2H3z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n</svg>\n\n`;\nexport const Empty = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path d=\"M5 17h2v2H5zM13 17h2v2h-2zM5 13h2v2H5zM17 17h2v2h-2zM13 5h2v2h-2zM9 17h2v2H9zM17 9h2v2h-2zM17 13h2v2h-2zM17 5h2v2h-2zM5 9h2v2H5zM5 5h2v2H5zM9 5h2v2H9z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n</svg>\n\n`;\nexport const Equal = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M5 13.5h14v2H5zM5 8.5h14v2H5z\"/>\n</svg>\n\n`;\nexport const GreaterThan = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M6 7.11L15.09 12 6 16.89V19l12-6.46v-1.08L6 5v2.11z\"/>\n</svg>\n\n`;\nexport const TextContains = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M10.79 12.77a1.16 1.16 0 00-.44.9.92.92 0 00.3.72 1.18 1.18 0 00.84.27 2.27 2.27 0 001.21-.34 1.61 1.61 0 00.71-.77v-1.17H12a1.76 1.76 0 00-1.21.39z\" fill=\"none\"/>\n <path d=\"M5 19h14V5H5zm8-9.36a1.45 1.45 0 00-1-.35 1.5 1.5 0 00-1 .29.93.93 0 00-.35.75H9a1.93 1.93 0 01.83-1.65 3.54 3.54 0 012.3-.72 3.34 3.34 0 012.22.7 2.44 2.44 0 01.84 2v3.5a5.57 5.57 0 00.07.93 4.51 4.51 0 00.21.88h-1.83c-.06-.2-.12-.39-.16-.58a3.72 3.72 0 01-.08-.57 3.05 3.05 0 01-1 .93 2.39 2.39 0 01-1.32.37 2.63 2.63 0 01-1.89-.63 2.29 2.29 0 01-.66-1.74 2.07 2.07 0 01.9-1.78A4.39 4.39 0 0112 11.3h1.38v-.69a1.3 1.3 0 00-.38-.97z\" fill=\"none\"/>\n <path d=\"M3 3v18h18V3zm16 16H5V5h14z\"/>\n <path d=\"M12 11.3a4.39 4.39 0 00-2.54.63 2.07 2.07 0 00-.9 1.78 2.29 2.29 0 00.66 1.74 2.63 2.63 0 001.89.63 2.39 2.39 0 001.32-.37 3.05 3.05 0 001-.93 3.72 3.72 0 00.08.57c0 .19.1.38.16.58h1.79a4.51 4.51 0 01-.21-.88 5.57 5.57 0 01-.07-.93v-3.5a2.44 2.44 0 00-.84-2 3.34 3.34 0 00-2.22-.7 3.54 3.54 0 00-2.3.72A1.93 1.93 0 009 10.29h1.71a.93.93 0 01.29-.71 1.5 1.5 0 011-.29 1.45 1.45 0 011 .35 1.3 1.3 0 01.37 1v.69zm1.4 1.08v1.17a1.61 1.61 0 01-.71.77 2.27 2.27 0 01-1.21.34 1.18 1.18 0 01-.84-.27.92.92 0 01-.3-.72 1.16 1.16 0 01.44-.9 1.76 1.76 0 011.22-.39z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n</svg>\n\n`;\nexport const Top10 = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M17.34 7.14a.5.5 0 00-.13.33v.33a.48.48 0 00.13.33.41.41 0 00.31.14.37.37 0 00.42-.37v-.41a.49.49 0 00-.07-.34.45.45 0 00-.62 0zM10.84 8a.54.54 0 00.51-.3 2.05 2.05 0 00.17-.92V5.3a2 2 0 00-.17-.94.6.6 0 00-1 0 2.13 2.13 0 00-.17.88V6.7a2.14 2.14 0 00.17 1 .55.55 0 00.49.3zM14.88 5c.28 0 .42-.18.42-.53v-.26a.53.53 0 00-.11-.34.4.4 0 00-.32-.14.42.42 0 00-.31.13.52.52 0 00-.12.36v.29a.49.49 0 00.12.34.39.39 0 00.32.15z\" fill=\"none\"/>\n <path d=\"M9 18h2v3h2v-3h2l-3-3-3 3zM4 11h16v2H4zM6.38 8.92h1.36V3.08h-.12l-2.57.89V5l1.33-.39v4.31zM10.84 9a1.85 1.85 0 001.5-.64 2.82 2.82 0 00.53-1.82V5.47a2.76 2.76 0 00-.54-1.82 1.83 1.83 0 00-1.5-.65 1.83 1.83 0 00-1.5.65 2.78 2.78 0 00-.53 1.82v1.07a2.79 2.79 0 00.53 1.81 1.86 1.86 0 001.51.65zm-.69-3.79a2.13 2.13 0 01.17-.88.6.6 0 011 0 2 2 0 01.17.94v1.47a2.05 2.05 0 01-.17.92.59.59 0 01-1 0 2.14 2.14 0 01-.17-1zM14.88 5.71a1.31 1.31 0 00.94-.33 1.11 1.11 0 00.35-.86v-.29a1.19 1.19 0 00-.35-.9 1.32 1.32 0 00-1-.33 1.34 1.34 0 00-.95.33 1.17 1.17 0 00-.35.88v.28a1.16 1.16 0 00.36.9 1.4 1.4 0 001 .32zm-.44-1.49a.52.52 0 01.12-.36.42.42 0 01.31-.13.4.4 0 01.32.14.53.53 0 01.11.34v.24c0 .35-.14.53-.42.53a.39.39 0 01-.32-.13.49.49 0 01-.12-.34zM15.13 8.48l2.85-4.56-.62-.32-2.85 4.57.62.31zM16.7 6.62a1.1 1.1 0 00-.35.87v.29a1.12 1.12 0 00.35.89 1.36 1.36 0 00.95.33 1.32 1.32 0 001-.33A1.15 1.15 0 0019 7.8v-.28a1.17 1.17 0 00-.36-.91 1.54 1.54 0 00-1.89 0zm1.38.87v.41a.37.37 0 01-.42.37.41.41 0 01-.31-.14.48.48 0 01-.13-.33v-.33a.5.5 0 01.13-.33.45.45 0 01.62 0 .49.49 0 01.11.35z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n</svg>\n\n`;\nexport const UniqueValues = `\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path d=\"M8.94 10.56a1 1 0 00-.38.79.79.79 0 00.25.63 1.06 1.06 0 00.74.24 1.9 1.9 0 001.06-.3 1.48 1.48 0 00.63-.67v-1H10a1.58 1.58 0 00-1.06.31z\" fill=\"none\"/>\n <path d=\"M8.94 10.56a1 1 0 00-.38.79.79.79 0 00.25.63 1.06 1.06 0 00.74.24 1.9 1.9 0 001.06-.3 1.48 1.48 0 00.63-.67v-1H10a1.58 1.58 0 00-1.06.31z\" fill=\"none\"/>\n <path d=\"M12.76 11.75V8.69A2.16 2.16 0 0012 6.93a2.93 2.93 0 00-1.94-.61 3.06 3.06 0 00-2 .63 1.69 1.69 0 00-.73 1.44h1.5a.83.83 0 01.31-.65 1.3 1.3 0 01.86-.22 1.23 1.23 0 01.91.31 1.07 1.07 0 01.32.84v.61H10a3.74 3.74 0 00-2.22.56A1.78 1.78 0 007 11.39a2 2 0 00.58 1.52 2.27 2.27 0 001.65.56 2.12 2.12 0 001.16-.33 2.79 2.79 0 00.83-.81 4.17 4.17 0 00.08.49 4.77 4.77 0 00.13.51H13a4 4 0 01-.18-.76 5.55 5.55 0 01-.06-.82zm-1.52-.5a1.48 1.48 0 01-.63.67 1.9 1.9 0 01-1.06.3 1.06 1.06 0 01-.74-.22.79.79 0 01-.25-.63 1 1 0 01.38-.79 1.58 1.58 0 011.06-.35h1.24zM7 19h2v2H7zM7 15h2v2H7zM3 15h2v2H3zM15 7h2v2h-2zM15 3h2v2h-2zM3 19h2v2H3zM19 19h2v2h-2zM19 7h2v2h-2zM15 19h2v2h-2zM19 3h2v2h-2zM15 11h2v2h-2zM19 11h2v2h-2zM15 15h2v2h-2zM19 15h2v2h-2zM11 19h2v2h-2zM11 15h2v2h-2zM11 3h2v2h-2zM7 3h2v2H7zM3 3h2v2H3zM3 7h2v2H3zM3 11h2v2H3z\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path d=\"M0 0h24v24H0z\" fill=\"none\"/>\n</svg>\n\n`;\n","import { AfterViewInit, Component, ElementRef, ViewChild, ViewContainerRef, OnDestroy, CUSTOM_ELEMENTS_SCHEMA, inject, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport {\n IgxBarSeriesModule, IgxCategoryChartModule, IgxCategoryXAxisModule,\n IgxDataChartCategoryModule, IgxDataChartCoreModule,\n IgxDataChartInteractivityModule, IgxDataChartScatterModule, IgxDataChartStackedModule,\n IgxItemLegendModule, IgxLegendModule,\n IgxNumericXAxisModule, IgxNumericYAxisModule\n} from 'igniteui-angular-charts';\n\nimport { AutoPositionStrategy, CloseScrollStrategy, HorizontalAlignment, IgxOverlayService, OverlayCancelableEventArgs, OverlayEventArgs, OverlaySettings, VerticalAlignment } from 'igniteui-angular/core';\nimport { IgxIconButtonDirective, IgxToggleDirective } from 'igniteui-angular/directives';\nimport { IgxTabContentComponent, IgxTabHeaderComponent, IgxTabHeaderLabelDirective, IgxTabItemComponent, IgxTabsComponent } from 'igniteui-angular/tabs';\nimport { IgxIconComponent } from 'igniteui-angular/icon';\n\nimport { IgxContextMenuDirective } from './igx-context-menu.directive';\nimport { IgxChartMenuComponent } from './chart-dialog/chart-dialog.component';\nimport { SvgPipe } from '../pipes/svg.pipe';\nimport * as charts from '../../images/charts';\nimport * as conditions from '../../images/conditions';\nimport { CHART_TYPE } from '../directives/chart-integration/chart-types';\n\n@Component({\n selector: 'igx-context-menu',\n templateUrl: './context-menu.component.html',\n styleUrls: ['./context-menu.component.scss'],\n imports: [\n CommonModule,\n SvgPipe,\n IgxToggleDirective,\n IgxIconComponent,\n IgxTabsComponent,\n IgxTabItemComponent,\n IgxTabHeaderComponent,\n IgxTabContentComponent,\n IgxTabHeaderLabelDirective,\n IgxBarSeriesModule,\n IgxCategoryChartModule,\n IgxCategoryXAxisModule,\n IgxDataChartCategoryModule,\n IgxDataChartCoreModule,\n IgxDataChartInteractivityModule,\n IgxDataChartScatterModule,\n IgxDataChartStackedModule,\n IgxItemLegendModule,\n IgxLegendModule,\n IgxNumericXAxisModule,\n IgxNumericYAxisModule,\n IgxIconButtonDirective\n ],\n changeDetection: ChangeDetectionStrategy.Eager,\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class IgxContextMenuComponent implements AfterViewInit, OnDestroy {\n @ViewChild('analyticsBtn') public button: ElementRef;\n @ViewChild('tabsMenu', { read: IgxToggleDirective }) public tabsMenu: IgxToggleDirective;\n @ViewChild('chartPreview', { read: ViewContainerRef }) public chartPreview: ViewContainerRef;\n @ViewChild('chartPreviewDialog', { read: IgxToggleDirective }) public chartPreviewDialog: IgxToggleDirective;\n @ViewChild(IgxTabsComponent) public tabs: IgxTabsComponent;\n\n public contextDirective: IgxContextMenuDirective;\n public chartTypes = [];\n public textFormatters = [];\n public currentChartType;\n public currentFormatter;\n public displayCreationTab = true;\n private destroy$ = new Subject<any>();\n private _dialogId;\n private _chartDialogOS: OverlaySettings = { closeOnOutsideClick: false };\n\n private _tabsMenuOverlaySettings: OverlaySettings = {\n closeOnOutsideClick: false,\n modal: false,\n outlet: null,\n scrollStrategy: new CloseScrollStrategy(),\n positionStrategy: new AutoPositionStrategy({\n horizontalDirection: HorizontalAlignment.Center,\n horizontalStartPoint: HorizontalAlignment.Center,\n verticalStartPoint: VerticalAlignment.Bottom,\n verticalDirection: VerticalAlignment.Bottom,\n openAnimation: null,\n closeAnimation: null,\n }),\n };\n\n private _chartPreviewDialogOverlaySettings: OverlaySettings = {\n closeOnOutsideClick: false,\n modal: false,\n outlet: null,\n scrollStrategy: new CloseScrollStrategy(),\n positionStrategy: new AutoPositionStrategy({\n horizontalDirection: HorizontalAlignment.Center,\n horizontalStartPoint: HorizontalAlignment.Center,\n verticalStartPoint: VerticalAlignment.Top,\n verticalDirection: VerticalAlignment.Top,\n openAnimation: null,\n closeAnimation: null,\n }),\n };\n\n public chartImages;\n public conditionImages;\n private overlayService = inject(IgxOverlayService);\n\n constructor() {\n this.chartImages = charts;\n this.conditionImages = conditions;\n }\n\n public ngAfterViewInit() {\n this.chartTypes = this.contextDirective.charts;\n this.textFormatters = this.contextDirective.formatters;\n this.displayCreationTab = this.contextDirective.displayCreationTab;\n\n if (this.contextDirective.chartsDirective) {\n this.contextDirective.chartsDirective.chartTypesDetermined.pipe(takeUntil(this.destroy$))\n .subscribe((args) => (this.chartTypes = args.chartsForCreation));\n }\n\n if (this.contextDirective.textFormatter) {\n this.contextDirective.textFormatter.formattersReady.pipe(takeUntil(this.destroy$))\n .subscribe((names) => (this.textFormatters = names));\n }\n\n this.contextDirective.buttonClose.pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (this.tabsMenu && !this.tabsMenu.collapsed) {\n this.tabsMenu.close();\n }\n });\n\n this.contextDirective.gridResizeNotify.pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (!this.tabsMenu.collapsed) {\n this.tabsMenu.close();\n }\n });\n\n this.overlayService.opening.pipe(takeUntil(this.destroy$))\n .subscribe((args: OverlayCancelableEventArgs) => {\n if (args.componentRef) {\n const instance = args.componentRef.instance as IgxChartMenuComponent;\n instance.width = this.contextDirective.grid.nativeElement.clientWidth;\n instance.height = this.contextDirective.grid.nativeElement.clientHeight;\n instance.currentChartType = this.currentChartType;\n instance.allCharts = this.chartTypes;\n instance.chartDirective = this.contextDirective.chartsDirective;\n // TODO: This code handles resizing for a fullscreen dialog when the chart dialog resize event is triggered. \n // Currently, it determines the visible child element by filtering based on visibility and CSS classes, \n // which is not a reliable or optimal approach. Instead, this should be improved by properly handling \n // when elements in the overlay are detached and ensuring chart dialog is only available. \n instance.chartDialogResizeNotify?.subscribe(resizedContentArgs => {\n if ((this.overlayService as any)._overlayElement) {\n const overlayElement = (this.overlayService as any)._overlayElement;\n const visibleChild = Array.from(overlayElement.children).find(\n (child: HTMLElement) =>\n getComputedStyle(child).visibility !== 'hidden' &&\n child.classList.contains('igx-overlay__wrapper--flex')\n ) as HTMLElement | null;\n if (visibleChild) {\n const targetElement = visibleChild.children[0] as HTMLElement | null;\n if (targetElement && targetElement.style) {\n targetElement.style.width = resizedContentArgs[0].contentRect.width + 'px';\n }\n }\n }\n });\n instance.closed?.subscribe(() => this.closeDialog());\n }\n });\n\n this.overlayService.closing.pipe(takeUntil(this.destroy$))\n .subscribe((args: OverlayEventArgs) => {\n if (args.componentRef && args.componentRef.instance instanceof IgxChartMenuComponent) {\n if (this._dialogId) {\n this.tabsMenu.open(this._tabsMenuOverlaySettings);\n }\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.complete();\n }\n\n public toggleTabMenu() {\n this.currentChartType = this.currentChartType || CHART_TYPE.ColumnGrouped;\n this._tabsMenuOverlaySettings.target = this.button.nativeElement;\n if (this.tabsMenu.collapsed) {\n this.tabsMenu.open(this._tabsMenuOverlaySettings);\n } else {\n this.tabsMenu.close();\n }\n }\n\n public formatCells(condition) {\n this.currentFormatter = condition;\n this.contextDirective.textFormatter.formatCells(condition);\n }\n\n public clearFormat() {\n this.contextDirective.textFormatter.clearFormatting();\n this.currentFormatter = undefined;\n }\n\n public previewChart(currentChartType) {\n this.currentChartType = currentChartType;\n this.chartPreview.clear();\n this.contextDirective.chartsDirective.chartFactory(currentChartType, this.chartPreview);\n this._chartPreviewDialogOverlaySettings.target = this.tabsMenu.element;\n this.chartPreviewDialog.open(this._chartPreviewDialogOverlaySettings);\n }\n\n public hidePreview() {\n this.chartPreviewDialog.close();\n }\n\n public openDialog(type?: CHART_TYPE) {\n this.currentChartType =\n type || this.currentChartType || CHART_TYPE.ColumnGrouped;\n this._dialogId = this._dialogId || this.overlayService.attach(IgxChartMenuComponent, this._chartDialogOS);\n this.tabsMenu.close();\n this.overlayService.show(this._dialogId);\n }\n\n public closeDialog() {\n const info = this.overlayService.getOverlayById(this._dialogId);\n if (info) {\n this.overlayService.hide(this._dialogId);\n this.overlayService.detach(this._dialogId);\n this._dialogId = undefined;\n }\n }\n}\n","<span #analyticsBtn class=\"analytics-btn\">\n <button #btn class=\"analytics-button\" igxIconButton=\"flat\" (click)=\"toggleTabMenu()\">\n <igx-icon #icon class=\"icon\" family=\"material\">insert_chart_outlined</igx-icon>\n </button>\n</span>\n<div #tabsMenu igxToggle class=\"toggle-content ig-scrollbar\">\n <igx-tabs tabsType=\"fixed\" [selectedIndex]=\"!this.textFormatters.length && chartTypes.length ? 1 : 0\">\n <igx-tab-item [disabled]=\"!textFormatters.length\">\n <igx-tab-header>\n <span igxTabHeaderLabel>Conditional Formatting</span>\n </igx-tab-header>\n <igx-tab-content>\n <igc-trial-watermark></igc-trial-watermark>\n <div class=\"tabs\">\n <span class=\"tab-option\">\n @for (condition of textFormatters; track condition) {\n <span class=\"action btn condition\"\n [ngClass]=\"{'selected--condition': condition === currentFormatter}\"\n (click)=\"formatCells(condition)\">\n <div class=\"imgSize\" [innerHTML]=\"conditionImages[condition.replace(' ', '')] | svg\">\n </div>\n <span class=\"name\">{{condition.replace('10', '10%')}}</span>\n </span>\n }\n </span>\n <span class=\"clear action\"\n [ngClass]=\"{'disableButton': contextDirective.textFormatter ? !contextDirective.textFormatter.formatter : true }\"\n (click)=\"clearFormat()\">\n <div class=\"imgSize\" [innerHTML]=\"conditionImages['Clear'] | svg\">\n </div>\n <span class=\"btn name\">Clear All</span>\n </span>\n </div>\n </igx-tab-content>\n </igx-tab-item>\n @if (displayCreationTab) {\n <igx-tab-item [disabled]=\"!chartTypes.length\">\n <igx-tab-header>\n <span igxTabHeaderLabel>Create Chart</span>\n </igx-tab-header>\n <igx-tab-content>\n <igc-trial-watermark></igc-trial-watermark>\n <div class=\"tabs\">\n <span class=\"tab-option\">\n @for (chart of chartTypes | slice:0:4; track chart) {\n <span class=\"action btn chart\"\n [ngClass]=\"{'selected': chart === currentChartType}\" (mouseenter)=\"previewChart(chart)\"\n (mouseleave)=\"hidePreview()\" (click)=\"openDialog(chart)\">\n <span [innerHTML]=\"chartImages[chart] | svg\" class=\"imgSize\">\n </span>\n <span class=\"name\">{{chart}}</span>\n </span>\n }\n </span>\n <span class=\"more-action chart\" [ngClass]=\"{'disableButton': !chartTypes.length}\"\n (click)=\"openDialog()\">\n <button class=\"more-btn more-icon\" igxIconButton=\"flat\" [style.--background]=\"'#EBEBEB'\"\n [style.--foreground]=\"'black'\">\n <igx-icon class=\"icon\" family=\"material\">more_horiz</igx-icon>\n </button>\n <span class=\"name btn\">More...</span>\n </span>\n </div>\n </igx-tab-content>\n </igx-tab-item>\n }\n </igx-tabs>\n</div>\n<div igxToggle #chartPreviewDialog class=\"chart-preview\">\n <div class=\"chart-preview-title\">\n <h5>Preview Chart</h5>\n </div>\n <div class=\"chart-preview-area\">\n <ng-template #chartPreview></ng-template>\n </div>\n</div>","import {\n AfterViewInit,\n Directive,\n EventEmitter,\n Output,\n Input,\n OnInit,\n OnDestroy,\n inject\n} from '@angular/core';\nimport { AbsoluteScrollStrategy, AutoPositionStrategy, HorizontalAlignment, IgxOverlayService, OverlayCancelableEventArgs, OverlaySettings, VerticalAlignment } from 'igniteui-angular/core';\nimport { IgxGridComponent } from 'igniteui-angular/grids/grid';\nimport { IColumnSelectionEventArgs } from 'igniteui-angular/grids/core';\nimport { merge, Subject } from 'rxjs';\nimport { debounceTime, filter, takeUntil } from 'rxjs/operators';\nimport { IgxChartIntegrationDirective } from '../directives/chart-integration/chart-integration.directive';\nimport { IgxConditionalFormattingDirective } from '../directives/conditional-formatting/conditional-formatting.directive';\nimport { IgxContextMenuComponent } from './context-menu.component';\n\n@Directive({\n selector: '[igxContextMenu]',\n})\nexport class IgxContextMenuDirective implements OnInit, AfterViewInit, OnDestroy {\n @Input() public displayCreationTab: boolean = true;\n @Output() public buttonClose = new EventEmitter<any>();\n\n public formatters = [];\n public charts = [];\n public gridResizeNotify = new Subject<void>();\n private contentObserver: ResizeObserver;\n private _range;\n private _id;\n private _collapsed = true;\n private destroy$ = new Subject<boolean>();\n private _analyticsBtnSettings: OverlaySettings = {\n closeOnOutsideClick: false,\n modal: false\n };\n\n public readonly grid = inject(IgxGridComponent);\n public readonly textFormatter = inject(IgxConditionalFormattingDirective, { optional: true });\n public readonly chartsDirective = inject(IgxChartIntegrationDirective, { optional: true });\n private readonly overlayService = inject(IgxOverlayService);\n\n constructor() { }\n\n public ngOnInit() {\n this.gridResizeNotify.pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (this._id && !this._collapsed) {\n this.renderButton();\n }\n });\n }\n\n public ngAfterViewInit() {\n this.setUpGridListeners();\n if (this.textFormatter) {\n this.textFormatter.formattersReady.pipe(takeUntil(this.destroy$))\n .subscribe(names => this.formatters = names);\n }\n if (this.chartsDirective) {\n this.chartsDirective.chartTypesDetermined.pipe(takeUntil(this.destroy$))\n .subscribe((args) => this.charts = args.chartsForCreation);\n }\n this.overlayService.opening.pipe(takeUntil(this.destroy$))\n .subscribe((args: OverlayCancelableEventArgs) => {\n if (args.componentRef) {\n const instance = (args.componentRef.instance as IgxContextMenuComponent);\n instance.contextDirective = this;\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.complete();\n if (this.contentObserver) {\n this.contentObserver.disconnect();\n this.contentObserver = null;\n }\n if (!this._collapsed) {\n this.close();\n }\n }\n\n private setUpGridListeners() {\n this.contentObserver = new ResizeObserver(() => this.gridResizeNotify.next());\n this.contentObserver.observe(this.grid.nativeElement);\n\n this.grid.columnSelectionChanging.pipe(debounceTime(100), takeUntil(this.destroy$))\n .subscribe((args: IColumnSelectionEventArgs) => {\n if (args.newSelection && args.oldSelection && !this._collapsed) {\n this.close();\n }\n this.grid.clearCellSelection();\n if (this.chartsDirective) {\n this.chartsDirective.chartData = this.grid.getSelectedColumnsData();\n }\n if (!this._collapsed) {\n this.buttonClose.emit();\n }\n this.renderHeaderButton();\n });\n\n this.grid.rangeSelected.pipe(takeUntil(this.destroy$), debounceTime(200))\n .subscribe((args) => {\n this._range = args;\n if (this.chartsDirective) {\n if (this.grid.getSelectedRanges().length === 1) {\n this.chartsDirective.chartData = this.grid.getSelectedData();\n } else {\n this.chartsDirective.chartData = [];\n }\n }\n if (!this._collapsed) {\n this.buttonClose.emit();\n }\n this.renderButton();\n });\n merge(\n this.grid.verticalScrollContainer.chunkLoad,\n this.grid.parentVirtDir.chunkLoad,\n this.grid.filteringDone,\n this.grid.columnResized,\n this.grid.columnVisibilityChanged.pipe(debounceTime(200))\n ).pipe(\n filter(() => this._range), takeUntil(this.destroy$)).subscribe(() => {\n this.buttonClose.emit();\n this.renderButton();\n });\n merge(this.grid.selected, this.grid.groupingDone).pipe(\n takeUntil(this.destroy$)).subscribe((args: any) => {\n if (this.grid.selectedCells.length < 2 || args.expressions) {\n this._range = undefined;\n this.close();\n }\n });\n }\n\n private renderButton() {\n if (!this._range) {\n return;\n }\n let rowIndex = this._range.rowEnd;\n let colIndex = +this._range.columnEnd;\n while (colIndex >= this._range.columnStart && !this.grid.navigation.isColumnFullyVisible(colIndex)) {\n colIndex--;\n }\n while (rowIndex >= this._range.rowStart && this.grid.navigation.shouldPerformVerticalScroll(rowIndex, -1)) {\n rowIndex--;\n }\n const field = this.grid.visibleColumns[colIndex] ? this.grid.visibleColumns[colIndex].field : '';\n const cell = this.grid.gridAPI.get_cell_by_index(rowIndex, field);\n if (!cell || !this.isWithInRange(cell.row.key, cell.column.index - 1)) {\n this.close();\n return;\n }\n this._analyticsBtnSettings.positionStrategy = new AutoPositionStrategy({\n horizontalDirection: HorizontalAlignment.Right,\n horizontalStartPoint: HorizontalAlignment.Right,\n verticalStartPoint: VerticalAlignment.Bottom,\n verticalDirection: VerticalAlignment.Bottom, closeAnimation: null\n });\n this._analyticsBtnSettings.target = cell.nativeElement;\n this._analyticsBtnSettings.scrollStrategy = new AbsoluteScrollStrategy();\n const info = this.overlayService.getOverlayById(this._id);\n if (info) {\n info.settings.positionStrategy = this._analyticsBtnSettings.positionStrategy;\n }\n if (this._collapsed) {\n this.show();\n } else {\n this.overlayService.reposition(this._id);\n }\n }\n\n private renderHeaderButton() {\n const selectedColumns = this.grid.selectedColumns();\n if (selectedColumns.length === 0) {\n return;\n }\n\n this._analyticsBtnSettings.positionStrategy = new AutoPositionStrategy({\n horizontalDirection: HorizontalAlignment.Right,\n horizontalStartPoint: HorizontalAlignment.Right,\n verticalStartPoint: VerticalAlignment.Bottom,\n verticalDirection: VerticalAlignment.Bottom, closeAnimation: null\n });\n\n const selectedColumnsIndexes = selectedColumns.map(c => c.visibleIndex).sort((a, b) => a - b);\n let colIndex = selectedColumnsIndexes[selectedColumnsIndexes.length - 1];\n\n while (selectedColumnsIndexes.length) {\n if (this.grid.navigation.isColumnFullyVisible(colIndex)) {\n break;\n }\n selectedColumnsIndexes.pop();\n colIndex = selectedColumnsIndexes[selectedColumnsIndexes.length - 1];\n }\n\n if (!selectedColumnsIndexes.length) {\n return;\n }\n\n const col = selectedColumns.find(c => c.visibleIndex === colIndex);\n\n if (!col) {\n return;\n }\n\n const headerCell = col.headerCell.nativeElement;\n this._analyticsBtnSettings.target = headerCell;\n this._analyticsBtnSettings.scrollStrategy = new AbsoluteScrollStrategy();\n const info = this.overlayService.getOverlayById(this._id);\n if (info) {\n info.settings.positionStrategy = this._analyticsBtnSettings.positionStrategy;\n }\n if (this._collapsed) {\n this.show();\n } else {\n this.overlayService.reposition(this._id);\n }\n }\n\n private show() {\n if (!this._collapsed) {\n return;\n }\n this._collapsed = false;\n this._id = this._id ? this._id :\n this.overlayService.attach(IgxContextMenuComponent, this._analyticsBtnSettings);\n this.overlayService.show(this._id);\n }\n\n private close() {\n if (this._collapsed) {\n return;\n }\n this._collapsed = true;\n this.overlayService.hide(this._id);\n this.buttonClose.emit();\n this._id = undefined;\n }\n\n private isWithInRange(rInex, cIndex) {\n return rInex >= this._range.rowStart && rInex <= this._range.rowEnd\n && cIndex >= this._range.columnStart && cIndex <= this._range.columnEnd;\n }\n}\n","/*\n * Public API Surface of igniteui-angular-extras\n */\n\n/**\n * Directives\n */\nexport * from './lib/directives/chart-integration/chart-integration.directive';\nexport * from './lib/directives/conditional-formatting/conditional-formatting.directive';\nexport * from './lib/context-menu/igx-context-menu.directive';\n\n/**\n * Components\n */\nexport * from './lib/context-menu/context-menu.component';\nexport * from './lib/context-menu/chart-dialog/chart-dialog.component';\n\n/**\n * Exporter classes, interfaces and enums\n */\nexport * from './lib/directives/chart-integration/chart-types';\nexport * from './lib/directives/chart-integration/initializers';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}