@sd-angular/core 1.3.122 → 1.3.124

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":"sd-angular-core-chart.js","sources":["../../../../projects/sd-core/chart/src/lib/chart.model.ts","../../../../projects/sd-core/chart/src/lib/chart.component.ts","../../../../projects/sd-core/chart/src/lib/chart.module.ts","../../../../projects/sd-core/chart/sd-angular-core-chart.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport const ChartColors = {\r\n Red: 'rgb(255, 99, 132)',\r\n Orange: 'rgb(255, 159, 64)',\r\n Yellow: 'rgb(255, 205, 86)',\r\n Green: 'rgb(75, 192, 192)',\r\n Blue: 'rgb(54, 162, 235)',\r\n Purple: 'rgb(153, 102, 255)',\r\n Grey: 'rgb(201, 203, 207)',\r\n Purple700: '#2E224C',\r\n Purple600: '#453372',\r\n Purple500: '#574191',\r\n Purple400: '#7356BF',\r\n Purple300: '#957FCE',\r\n Purple200: '#C1B4E2',\r\n Purple100: '#E3DDF2',\r\n Purple50: '#F3F1F9',\r\n Blue700: '#0F2C60',\r\n Blue600: '#174291',\r\n Blue500: '#1D53B7',\r\n Blue400: '#276EF1',\r\n Blue300: '#5A90F4',\r\n Blue200: '#9FBFF8',\r\n Blue100: '#D4E2FC',\r\n Blue50: '#EDF3FD',\r\n Green700: '#0D4020',\r\n Green600: '#156A36',\r\n Green500: '#09863D',\r\n Green400: '#21A453',\r\n Green300: '#43BF75',\r\n Green200: '#9EE2B8',\r\n Green100: '#CFF3DD',\r\n Green50: '#F0FAF3',\r\n Yellow700: '#664C1A',\r\n Yellow600: '#997328',\r\n Yellow500: '#C19132',\r\n Yellow400: '#FFC043',\r\n Yellow300: '#FFCF70',\r\n Yellow200: '#FFE3AC',\r\n Yellow100: '#FFF2D9',\r\n Yellow50: '#FFF9EF',\r\n Orange700: '#5F2C14',\r\n Orange600: '#8E421E',\r\n Orange500: '#B45326',\r\n Orange400: '#ED6E33',\r\n Orange300: '#F19063',\r\n Orange200: '#F7BFA5',\r\n Orange100: '#FBE2D6',\r\n Orange50: '#FDF3EE',\r\n Red700: '#541A14',\r\n Red600: '#7F281E',\r\n Red500: '#A13226',\r\n Red400: '#D44333',\r\n Red300: '#DE7063',\r\n Red200: '#ECACA5',\r\n Red100: '#F6D9D6',\r\n Red50: '#FBEFEE',\r\n Brown700: '#3D281E',\r\n Brown600: '#5B3C2D',\r\n Brown500: '#744C39',\r\n Brown400: '#99644C',\r\n Brown300: '#B18976',\r\n Brown200: '#D2BAB0',\r\n Brown100: '#EBE0DB',\r\n Brown50: '#F6F2F0',\r\n Gray900: '#141414',\r\n Gray800: '#1F1F1F',\r\n Gray700: '#333333',\r\n Gray600: '#545454',\r\n Gray500: '#757575',\r\n Gray400: '#AFAFAF',\r\n Gray300: '#CBCBCB',\r\n Gray200: '#E2E2E2',\r\n Gray100: '#EEEEEE',\r\n Gray50: '#F6F6F6',\r\n Platinum700: '#394145',\r\n Platinum600: '#556268',\r\n Platinum500: '#6C7C83',\r\n Platinum400: '#8EA3AD',\r\n Platinum300: '#A1BDCA',\r\n Platinum200: '#CCDFE5',\r\n Platinum100: '#EBF5F7',\r\n Platinum50: '#F4FAFB',\r\n EatsGreen400: '#21A453',\r\n FreightBlue400: '#21A453',\r\n JumpRed400: '#FF0A2D',\r\n Black: '#000000',\r\n White: '#FFFFFF',\r\n};\r\n\r\nexport type SdChartOption = PieChartOption |\r\n BarChartOption |\r\n HorizontalBarChartOption |\r\n LineChartOption |\r\n StackAreaChartOption |\r\n BarLineChartOption;\r\n\r\ninterface BaseChartOption {\r\n title?: string;\r\n height?: string;\r\n hideLegend?: boolean;\r\n tooltips?: {\r\n label: (params: { datasetLabel?: string, label?: string, value?: number }) => string;\r\n };\r\n}\r\n\r\nexport interface PieChartOption extends BaseChartOption {\r\n type: 'pie';\r\n title?: string;\r\n datasets: {\r\n label: string,\r\n value: number,\r\n backgroundColor: string\r\n }[];\r\n hover?: 'ShowAll';\r\n}\r\n\r\nexport interface BarChartOption extends BaseChartOption {\r\n type: 'bar';\r\n xTitle?: string;\r\n yTitle?: string;\r\n labels: string[];\r\n datasets: {\r\n label: string;\r\n data: number[];\r\n borderColor?: string,\r\n backgroundColor?: string;\r\n stack?: string;\r\n }[];\r\n beginAtZero?: boolean;\r\n labelWidth?: number;\r\n ticks?: {\r\n xLabel?: (value: number | string, index: number) => string,\r\n yLabel?: (value: number | string, index: number) => string\r\n };\r\n hover?: 'ShowAll';\r\n}\r\n\r\nexport interface HorizontalBarChartOption extends BaseChartOption {\r\n type: 'horizontalBar';\r\n xTitle?: string;\r\n yTitle?: string;\r\n labels: string[];\r\n datasets: {\r\n label: string;\r\n data: number[];\r\n borderColor?: string,\r\n backgroundColor?: string;\r\n stack?: string;\r\n }[];\r\n beginAtZero?: boolean;\r\n labelWidth?: number;\r\n ticks?: {\r\n xLabel?: (value: number | string, index: number) => string,\r\n yLabel?: (value: number | string, index: number) => string\r\n };\r\n hover?: 'ShowAll';\r\n}\r\n\r\nexport interface LineChartOption extends BaseChartOption {\r\n type: 'line';\r\n xTitle?: string;\r\n yTitle?: string;\r\n labels: string[];\r\n datasets: {\r\n label: string;\r\n data: number[];\r\n borderColor?: string,\r\n backgroundColor?: string;\r\n }[];\r\n beginAtZero?: boolean;\r\n labelWidth?: number;\r\n ticks?: {\r\n xLabel?: (value: number | string, index: number) => string,\r\n yLabel?: (value: number | string, index: number) => string\r\n };\r\n hover?: 'ShowAll';\r\n}\r\n\r\nexport interface StackAreaChartOption extends BaseChartOption {\r\n type: 'stackArea';\r\n xTitle?: string;\r\n yTitle?: string;\r\n labels: string[];\r\n datasets: {\r\n label: string;\r\n data: number[];\r\n borderColor?: string,\r\n backgroundColor?: string;\r\n }[];\r\n beginAtZero?: boolean;\r\n labelWidth?: number;\r\n ticks?: {\r\n xLabel?: (value: number | string, index: number) => string,\r\n yLabel?: (value: number | string, index: number) => string\r\n };\r\n hover?: 'ShowAll';\r\n}\r\n\r\nexport interface BarLineChartOption extends BaseChartOption {\r\n type: 'barline';\r\n xTitle?: string;\r\n xStacked?:boolean;\r\n yTitle?: string;\r\n yStacked?:boolean;\r\n yRightTitle?: string;\r\n labels: string[];\r\n datasets: {\r\n type: 'bar' | 'line',\r\n yAlign?: 'left' | 'right',\r\n label: string;\r\n data: number[];\r\n order?:number;\r\n borderColor?: string;\r\n backgroundColor?: string;\r\n }[];\r\n beginAtZero?: boolean;\r\n labelWidth?: number;\r\n ticks?: {\r\n xLabel?: (value: number | string, index: number) => string,\r\n yLabel?: (value: number | string, index: number) => string,\r\n yRightLabel?: (value: number | string, index: number) => string\r\n };\r\n hover?: 'ShowAll';\r\n}\r\n\r\n\r\nexport interface IChartConfiguration {\r\n defaultColors?: {\r\n backgroundColor?: string,\r\n borderColor?: string\r\n }[];\r\n}\r\n\r\nexport const CHART_CONFIG = new InjectionToken<IChartConfiguration>('chart.configuration');\r\n","import { Component, OnInit, AfterViewInit, ViewChild, ElementRef, Input, ChangeDetectorRef, Optional, Inject } from '@angular/core';\r\nimport * as Chart from 'chart.js';\r\nimport {\r\n SdChartOption,\r\n BarChartOption,\r\n LineChartOption,\r\n PieChartOption,\r\n BarLineChartOption,\r\n StackAreaChartOption,\r\n HorizontalBarChartOption,\r\n IChartConfiguration,\r\n CHART_CONFIG\r\n} from './chart.model';\r\nimport $ from 'jquery';\r\nimport * as uuid from 'uuid';\r\n\r\n@Component({\r\n selector: 'sd-chart',\r\n templateUrl: './chart.component.html',\r\n styleUrls: ['./chart.component.scss']\r\n})\r\nexport class SdChart implements OnInit, AfterViewInit {\r\n private initialized = false;\r\n private pChartOption: SdChartOption;\r\n isLoading = false;\r\n\r\n @Input() set chartOption(chartOption: SdChartOption) {\r\n this.pChartOption = chartOption;\r\n if (this.initialized) {\r\n this.renderChart();\r\n }\r\n }\r\n\r\n @ViewChild('chart') chartRef: ElementRef;\r\n @ViewChild('chartWrapper') chartWrapperRef: ElementRef;\r\n @ViewChild('chartAxis') chartAxisRef: ElementRef;\r\n @ViewChild('chartAreaWrapperExtend') chartAreaWrapperExtendRef: ElementRef;\r\n chart: Chart;\r\n visible = true;\r\n height = '300px';\r\n private ctx: CanvasRenderingContext2D;\r\n\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n @Optional() @Inject(CHART_CONFIG) private chartConfiguration: IChartConfiguration\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.renderChart(true);\r\n this.initialized = true;\r\n this.ref.detectChanges();\r\n }\r\n\r\n private async renderChart(firstRender?: boolean) {\r\n this.height = this.pChartOption?.height || '300px';\r\n if (!firstRender) {\r\n this.visible = false;\r\n await new Promise(resolve => setTimeout(resolve, 200));\r\n this.visible = true;\r\n }\r\n await new Promise(resolve => setTimeout(resolve, 200));\r\n if (this.chartRef?.nativeElement) {\r\n const canvas = this.chartRef.nativeElement as HTMLCanvasElement;\r\n this.ctx = canvas.getContext('2d');\r\n switch (this.pChartOption.type) {\r\n case 'pie':\r\n this.renderPieChart(this.pChartOption);\r\n break;\r\n case 'bar':\r\n this.renderBarChart(this.pChartOption);\r\n break;\r\n case 'horizontalBar':\r\n this.renderHorizontalBarChart(this.pChartOption);\r\n break;\r\n case 'line':\r\n this.renderLineChart(this.pChartOption);\r\n break;\r\n case 'stackArea':\r\n this.renderStackAreaChart(this.pChartOption);\r\n break;\r\n case 'barline':\r\n this.renderBarLineChart(this.pChartOption);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n private renderPieChart(option: PieChartOption) {\r\n const configuration: Chart.ChartConfiguration = {\r\n type: 'pie',\r\n options: {\r\n responsive: true,\r\n title: {\r\n display: true,\r\n text: option.title\r\n },\r\n legend: {\r\n display: !option.hideLegend\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: (tooltipItem, data) => {\r\n const datasetLabel = data?.datasets[tooltipItem.datasetIndex]?.label;\r\n const label = data?.labels[tooltipItem.index] as string;\r\n const value = data?.datasets[tooltipItem.datasetIndex]?.data[tooltipItem.index] as number;\r\n return option.tooltips?.label({\r\n datasetLabel,\r\n label,\r\n value\r\n }) || `${datasetLabel ? `[${datasetLabel}] ` : ''}${label} : ${Number.toVNCurrency(value)}`;\r\n }\r\n }\r\n }\r\n },\r\n data: {\r\n labels: option.datasets?.map(e => e.label) || [],\r\n datasets: [{\r\n data: option.datasets?.map(e => e.value) || [],\r\n backgroundColor: option.datasets?.map((e, idx) => e.backgroundColor\r\n || this.chartConfiguration?.defaultColors?.[idx]?.backgroundColor\r\n || this.dynamicColor) || []\r\n }]\r\n }\r\n };\r\n\r\n if (option.hover === 'ShowAll') {\r\n configuration.options.tooltips = {\r\n ...configuration.options.tooltips,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n configuration.options.hover = {\r\n ...configuration.options.hover,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n }\r\n\r\n this.chart = new Chart(this.ctx, configuration);\r\n this.isLoading = false;\r\n }\r\n\r\n private renderBarChart(option: BarChartOption) {\r\n const labelWidth = option.labelWidth ?? 50;\r\n if (option.datasets.length) {\r\n // const newwidth = Math.max(option.labels.length * option.datasets.length * labelWidth, $(this.chartWrapperRef.nativeElement).width());\r\n // $(this.chartAreaWrapperExtendRef.nativeElement).width(newwidth);\r\n const newwidth = option.labels.length * option.datasets.length * labelWidth;\r\n $(this.chartAreaWrapperExtendRef.nativeElement).css('width', `max(100%,${newwidth}px)`);\r\n }\r\n const configuration: Chart.ChartConfiguration = {\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n legend: {\r\n display: !option.hideLegend\r\n },\r\n scales: {\r\n xAxes: [{\r\n display: true,\r\n scaleLabel: {\r\n display: !!option.xTitle,\r\n labelString: option.xTitle || ''\r\n },\r\n ticks: {\r\n callback: (value: number | string, index: number) => {\r\n return option.ticks?.xLabel(value, index) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);\r\n }\r\n }\r\n }],\r\n yAxes: [{\r\n display: true,\r\n ticks: {\r\n beginAtZero: option.beginAtZero ?? true,\r\n callback: (value: number | string, index: number) => {\r\n return option.ticks?.yLabel(value, index) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);\r\n }\r\n },\r\n scaleLabel: {\r\n display: !!option.yTitle,\r\n labelString: option.yTitle || ''\r\n }\r\n }]\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: (tooltipItem, data) => {\r\n const datasetLabel = data?.datasets[tooltipItem.datasetIndex]?.label;\r\n const label = data?.labels[tooltipItem.index] as string;\r\n const value = data?.datasets[tooltipItem.datasetIndex]?.data[tooltipItem.index] as number;\r\n return option.tooltips?.label({\r\n datasetLabel,\r\n label,\r\n value\r\n }) || `${datasetLabel} : ${Number.toVNCurrency(value)}`;\r\n }\r\n }\r\n }\r\n },\r\n type: 'bar',\r\n data: {\r\n labels: option.labels,\r\n datasets: option.datasets.map((e, idx) => {\r\n const dynamicColor = this.dynamicColor;\r\n const result: Chart.ChartDataSets = {\r\n label: e.label,\r\n fill: e.backgroundColor || this.chartConfiguration?.defaultColors?.[idx]?.backgroundColor || dynamicColor,\r\n backgroundColor: e.backgroundColor || this.chartConfiguration?.defaultColors?.[idx]?.backgroundColor || dynamicColor,\r\n data: e.data,\r\n stack: e.stack\r\n };\r\n return result;\r\n })\r\n }\r\n };\r\n\r\n if (option.hover === 'ShowAll') {\r\n configuration.options.tooltips = {\r\n ...configuration.options.tooltips,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n configuration.options.hover = {\r\n ...configuration.options.hover,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n }\r\n\r\n this.chart = new Chart(this.ctx, configuration);\r\n this.isLoading = false;\r\n }\r\n\r\n private renderHorizontalBarChart(option: HorizontalBarChartOption) {\r\n // const labelWidth = option.labelWidth ?? 50;\r\n // if (option.datasets.length) {\r\n // const newwidth = Math.max(option.labels.length * option.datasets.length * labelWidth, $(this.chartWrapperRef.nativeElement).width());\r\n // $(this.chartAreaWrapperExtendRef.nativeElement).width(newwidth);\r\n // }\r\n const configuration: Chart.ChartConfiguration = {\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n legend: {\r\n display: !option.hideLegend\r\n },\r\n scales: {\r\n xAxes: [{\r\n display: true,\r\n scaleLabel: {\r\n display: !!option.xTitle,\r\n labelString: option.xTitle || ''\r\n },\r\n ticks: {\r\n beginAtZero: option.beginAtZero ?? true,\r\n callback: (value: number | string, index: number) => {\r\n return option.ticks?.xLabel(value, index) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);\r\n }\r\n }\r\n }],\r\n yAxes: [{\r\n display: true,\r\n ticks: {\r\n callback: (value: number | string, index: number) => {\r\n return option.ticks?.yLabel(value, index) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);\r\n }\r\n },\r\n scaleLabel: {\r\n display: !!option.yTitle,\r\n labelString: option.yTitle || ''\r\n }\r\n }]\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: (tooltipItem, data) => {\r\n const datasetLabel = data?.datasets[tooltipItem.datasetIndex]?.label;\r\n const label = data?.labels[tooltipItem.index] as string;\r\n const value = data?.datasets[tooltipItem.datasetIndex]?.data[tooltipItem.index] as number;\r\n return option.tooltips?.label({\r\n datasetLabel,\r\n label,\r\n value\r\n }) || `${datasetLabel} : ${Number.toVNCurrency(value)}`;\r\n }\r\n }\r\n }\r\n },\r\n type: 'horizontalBar',\r\n data: {\r\n labels: option.labels,\r\n datasets: option.datasets.map((e, idx) => {\r\n const dynamicColor = this.dynamicColor;\r\n const result: Chart.ChartDataSets = {\r\n label: e.label,\r\n fill: e.backgroundColor || this.chartConfiguration?.defaultColors?.[idx]?.backgroundColor || dynamicColor,\r\n backgroundColor: e.backgroundColor || this.chartConfiguration?.defaultColors?.[idx]?.backgroundColor || dynamicColor,\r\n data: e.data,\r\n stack: e.stack\r\n };\r\n return result;\r\n })\r\n }\r\n };\r\n\r\n if (option.hover === 'ShowAll') {\r\n configuration.options.tooltips = {\r\n ...configuration.options.tooltips,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n configuration.options.hover = {\r\n ...configuration.options.hover,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n }\r\n\r\n this.chart = new Chart(this.ctx, configuration);\r\n this.isLoading = false;\r\n }\r\n\r\n private renderLineChart(option: LineChartOption) {\r\n const labelWidth = option.labelWidth ?? 50;\r\n if (option.datasets.length) {\r\n // const newwidth = Math.max(option.labels.length * labelWidth, $(this.chartWrapperRef.nativeElement).width());\r\n // $(this.chartAreaWrapperExtendRef.nativeElement).width(newwidth);\r\n const newwidth = option.labels.length * labelWidth;\r\n $(this.chartAreaWrapperExtendRef.nativeElement).css('width', `max(100%,${newwidth}px)`);\r\n }\r\n const configuration: Chart.ChartConfiguration = {\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n legend: {\r\n display: !option.hideLegend\r\n },\r\n scales: {\r\n xAxes: [{\r\n display: true,\r\n scaleLabel: {\r\n display: !!option.xTitle,\r\n labelString: option.xTitle || ''\r\n },\r\n ticks: {\r\n callback: (value: number | string, index: number) => {\r\n return option.ticks?.xLabel(value, index) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);\r\n }\r\n },\r\n }],\r\n yAxes: [{\r\n display: true,\r\n ticks: {\r\n beginAtZero: option.beginAtZero ?? true,\r\n callback: (value: number | string, index: number) => {\r\n return option.ticks?.yLabel(value, index) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);\r\n }\r\n },\r\n scaleLabel: {\r\n display: !!option.yTitle,\r\n labelString: option.yTitle || ''\r\n }\r\n }]\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: (tooltipItem, data) => {\r\n const datasetLabel = data?.datasets[tooltipItem.datasetIndex]?.label;\r\n const label = data?.labels[tooltipItem.index] as string;\r\n const value = data?.datasets[tooltipItem.datasetIndex]?.data[tooltipItem.index] as number;\r\n return option.tooltips?.label({\r\n datasetLabel,\r\n label,\r\n value\r\n }) || `${datasetLabel} : ${Number.toVNCurrency(value)}`;\r\n }\r\n }\r\n }\r\n },\r\n type: 'line',\r\n data: {\r\n labels: option.labels,\r\n datasets: option.datasets.map((e, idx) => {\r\n const dynamicColor = this.dynamicColor;\r\n const result: Chart.ChartDataSets = {\r\n label: e.label,\r\n fill: e.backgroundColor || this.chartConfiguration?.defaultColors?.[idx]?.backgroundColor || dynamicColor,\r\n backgroundColor: e.backgroundColor || this.chartConfiguration?.defaultColors?.[idx]?.backgroundColor || dynamicColor,\r\n borderColor: e.borderColor || this.chartConfiguration?.defaultColors?.[idx]?.borderColor || dynamicColor,\r\n data: e.data,\r\n lineTension: 0,\r\n };\r\n return result;\r\n })\r\n }\r\n };\r\n\r\n if (option.hover === 'ShowAll') {\r\n configuration.options.tooltips = {\r\n ...configuration.options.tooltips,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n configuration.options.hover = {\r\n ...configuration.options.hover,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n }\r\n\r\n this.chart = new Chart(this.ctx, configuration);\r\n this.isLoading = false;\r\n }\r\n\r\n private renderStackAreaChart(option: StackAreaChartOption) {\r\n const labelWidth = option.labelWidth ?? 50;\r\n if (option.datasets.length) {\r\n // const newwidth = Math.max(option.labels.length * labelWidth, $(this.chartWrapperRef.nativeElement).width());\r\n // $(this.chartAreaWrapperExtendRef.nativeElement).width(newwidth);\r\n const newwidth = option.labels.length * labelWidth;\r\n $(this.chartAreaWrapperExtendRef.nativeElement).css('width', `max(100%,${newwidth}px)`);\r\n }\r\n const configuration: Chart.ChartConfiguration = {\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n legend: {\r\n display: !option.hideLegend\r\n },\r\n scales: {\r\n xAxes: [{\r\n display: true,\r\n scaleLabel: {\r\n display: !!option.xTitle,\r\n labelString: option.xTitle || ''\r\n },\r\n ticks: {\r\n callback: (value: number | string, index: number) => {\r\n return option.ticks?.xLabel(value, index) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);\r\n }\r\n },\r\n }],\r\n yAxes: [{\r\n display: true,\r\n ticks: {\r\n beginAtZero: option.beginAtZero ?? true,\r\n callback: (value: number | string, index: number) => {\r\n return option.ticks?.yLabel(value, index) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);\r\n }\r\n },\r\n stacked: true,\r\n scaleLabel: {\r\n display: !!option.yTitle,\r\n labelString: option.yTitle || ''\r\n }\r\n }]\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: (tooltipItem, data) => {\r\n const datasetLabel = data?.datasets[tooltipItem.datasetIndex]?.label;\r\n const label = data?.labels[tooltipItem.index] as string;\r\n const value = data?.datasets[tooltipItem.datasetIndex]?.data[tooltipItem.index] as number;\r\n return option.tooltips?.label({\r\n datasetLabel,\r\n label,\r\n value\r\n }) || `${datasetLabel} : ${Number.toVNCurrency(value)}`;\r\n }\r\n }\r\n }\r\n },\r\n type: 'line',\r\n data: {\r\n labels: option.labels,\r\n datasets: option.datasets.map((e, idx) => {\r\n const dynamicColor = this.dynamicColor;\r\n const result: Chart.ChartDataSets = {\r\n label: e.label,\r\n // fill: e.backgroundColor,\r\n backgroundColor: e.backgroundColor || this.chartConfiguration?.defaultColors?.[idx]?.backgroundColor || dynamicColor,\r\n borderColor: e.borderColor || this.chartConfiguration?.defaultColors?.[idx]?.borderColor || dynamicColor,\r\n data: e.data,\r\n lineTension: 0,\r\n };\r\n return result;\r\n })\r\n }\r\n };\r\n\r\n if (option.hover === 'ShowAll') {\r\n configuration.options.tooltips = {\r\n ...configuration.options.tooltips,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n configuration.options.hover = {\r\n ...configuration.options.hover,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n }\r\n\r\n this.chart = new Chart(this.ctx, configuration);\r\n this.isLoading = false;\r\n }\r\n\r\n private renderBarLineChart(option: BarLineChartOption) {\r\n const labelWidth = option.labelWidth ?? 50;\r\n if (option.datasets.length) {\r\n const numberOfBars = option.datasets.filter(e => e.type === 'bar').length;\r\n if (numberOfBars <= 1) {\r\n // const newwidth = Math.max(option.labels.length * labelWidth, $(this.chartWrapperRef.nativeElement).width());\r\n // $(this.chartAreaWrapperExtendRef.nativeElement).width(newwidth);\r\n const newwidth = option.labels.length * labelWidth;\r\n $(this.chartAreaWrapperExtendRef.nativeElement).css('width', `max(100%,${newwidth}px)`);\r\n } else {\r\n // const newwidth = Math.max(option.labels.length * numberOfBars * labelWidth, $(this.chartWrapperRef.nativeElement).width());\r\n // $(this.chartAreaWrapperExtendRef.nativeElement).width(newwidth);\r\n const newwidth = option.labels.length * numberOfBars * labelWidth;\r\n $(this.chartAreaWrapperExtendRef.nativeElement).css('width', `max(100%,${newwidth}px)`);\r\n }\r\n }\r\n const leftId = `I${uuid.v4()}`;\r\n const rightId = `I${uuid.v4()}`;\r\n const yAxes = [{\r\n type: 'linear',\r\n display: true,\r\n position: 'left',\r\n id: leftId,\r\n ticks: {\r\n beginAtZero: option.beginAtZero ?? true,\r\n suggestedMin: 0,\r\n callback: (value: number | string, index: number) => {\r\n return option.ticks?.yLabel(value, index) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);\r\n }\r\n },\r\n scaleLabel: {\r\n display: !!option.yTitle,\r\n labelString: option.yTitle || '',\r\n },\r\n stacked:!!option.yStacked,\r\n }];\r\n if (option.datasets.some(e => e.yAlign === 'right')) {\r\n yAxes.push({\r\n type: 'linear',\r\n display: true,\r\n position: 'right',\r\n id: rightId,\r\n ticks: {\r\n beginAtZero: option.beginAtZero ?? true,\r\n suggestedMin: 0,\r\n callback: (value: number | string, index: number) => {\r\n return option.ticks?.yRightLabel(value, index) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);\r\n }\r\n },\r\n scaleLabel: {\r\n display: !!option.yRightTitle,\r\n labelString: option.yRightTitle || ''\r\n },\r\n stacked:!!option.yStacked,\r\n });\r\n }\r\n const configuration: Chart.ChartConfiguration = {\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n legend: {\r\n display: !option.hideLegend\r\n },\r\n title: {\r\n display: true,\r\n text: option.title\r\n },\r\n scales: {\r\n xAxes: [{\r\n display: true,\r\n scaleLabel: {\r\n display: !!option.xTitle,\r\n labelString: option.xTitle || ''\r\n },\r\n ticks: {\r\n callback: (value: number | string, index: number) => {\r\n return option.ticks?.xLabel(value, index) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);\r\n }\r\n },\r\n stacked: !!option.xStacked\r\n }],\r\n yAxes\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: (tooltipItem, data) => {\r\n const datasetLabel = data?.datasets[tooltipItem.datasetIndex]?.label;\r\n const label = data?.labels[tooltipItem.index] as string;\r\n const value = data?.datasets[tooltipItem.datasetIndex]?.data[tooltipItem.index] as number;\r\n return option.tooltips?.label({\r\n datasetLabel,\r\n label,\r\n value\r\n }) || `${datasetLabel ? `[${datasetLabel}] ` : ''} ${label} : ${Number.toVNCurrency(value)}`;\r\n }\r\n }\r\n }\r\n },\r\n data: {\r\n labels: option.labels,\r\n datasets: option.datasets.map((e, idx) => {\r\n const dynamicColor = this.dynamicColor;\r\n const result: Chart.ChartDataSets = {\r\n type: e.type,\r\n label: e.label,\r\n fill: e.backgroundColor || this.chartConfiguration?.defaultColors?.[idx]?.backgroundColor || dynamicColor,\r\n backgroundColor: e.backgroundColor || this.chartConfiguration?.defaultColors?.[idx]?.backgroundColor || dynamicColor,\r\n borderColor: e.borderColor || this.chartConfiguration?.defaultColors?.[idx]?.borderColor || dynamicColor,\r\n data: e.data,\r\n yAxisID: e.yAlign === 'right' ? rightId : leftId,\r\n lineTension: 0,\r\n order:e.order ?? 1\r\n };\r\n return result;\r\n }),\r\n }\r\n };\r\n\r\n if (option.hover === 'ShowAll') {\r\n configuration.options.tooltips = {\r\n ...configuration.options.tooltips,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n configuration.options.hover = {\r\n ...configuration.options.hover,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n }\r\n\r\n this.chart = new Chart(this.ctx, configuration);\r\n this.isLoading = false;\r\n }\r\n\r\n loadingStart = () => {\r\n this.isLoading = true;\r\n }\r\n\r\n private get dynamicColor() {\r\n const r = Math.floor(Math.random() * 255);\r\n const g = Math.floor(Math.random() * 255);\r\n const b = Math.floor(Math.random() * 255);\r\n return 'rgb(' + r + ',' + g + ',' + b + ')';\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SdChart } from './chart.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n SdChart\r\n ],\r\n exports: [\r\n SdChart\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdChartModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["uuid.v4"],"mappings":"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"}
1
+ {"version":3,"file":"sd-angular-core-chart.js","sources":["../../../../projects/sd-core/chart/src/lib/chart.model.ts","../../../../projects/sd-core/chart/src/lib/chart.component.ts","../../../../projects/sd-core/chart/src/lib/chart.module.ts","../../../../projects/sd-core/chart/sd-angular-core-chart.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport const ChartColors = {\r\n Red: 'rgb(255, 99, 132)',\r\n Orange: 'rgb(255, 159, 64)',\r\n Yellow: 'rgb(255, 205, 86)',\r\n Green: 'rgb(75, 192, 192)',\r\n Blue: 'rgb(54, 162, 235)',\r\n Purple: 'rgb(153, 102, 255)',\r\n Grey: 'rgb(201, 203, 207)',\r\n Purple700: '#2E224C',\r\n Purple600: '#453372',\r\n Purple500: '#574191',\r\n Purple400: '#7356BF',\r\n Purple300: '#957FCE',\r\n Purple200: '#C1B4E2',\r\n Purple100: '#E3DDF2',\r\n Purple50: '#F3F1F9',\r\n Blue700: '#0F2C60',\r\n Blue600: '#174291',\r\n Blue500: '#1D53B7',\r\n Blue400: '#276EF1',\r\n Blue300: '#5A90F4',\r\n Blue200: '#9FBFF8',\r\n Blue100: '#D4E2FC',\r\n Blue50: '#EDF3FD',\r\n Green700: '#0D4020',\r\n Green600: '#156A36',\r\n Green500: '#09863D',\r\n Green400: '#21A453',\r\n Green300: '#43BF75',\r\n Green200: '#9EE2B8',\r\n Green100: '#CFF3DD',\r\n Green50: '#F0FAF3',\r\n Yellow700: '#664C1A',\r\n Yellow600: '#997328',\r\n Yellow500: '#C19132',\r\n Yellow400: '#FFC043',\r\n Yellow300: '#FFCF70',\r\n Yellow200: '#FFE3AC',\r\n Yellow100: '#FFF2D9',\r\n Yellow50: '#FFF9EF',\r\n Orange700: '#5F2C14',\r\n Orange600: '#8E421E',\r\n Orange500: '#B45326',\r\n Orange400: '#ED6E33',\r\n Orange300: '#F19063',\r\n Orange200: '#F7BFA5',\r\n Orange100: '#FBE2D6',\r\n Orange50: '#FDF3EE',\r\n Red700: '#541A14',\r\n Red600: '#7F281E',\r\n Red500: '#A13226',\r\n Red400: '#D44333',\r\n Red300: '#DE7063',\r\n Red200: '#ECACA5',\r\n Red100: '#F6D9D6',\r\n Red50: '#FBEFEE',\r\n Brown700: '#3D281E',\r\n Brown600: '#5B3C2D',\r\n Brown500: '#744C39',\r\n Brown400: '#99644C',\r\n Brown300: '#B18976',\r\n Brown200: '#D2BAB0',\r\n Brown100: '#EBE0DB',\r\n Brown50: '#F6F2F0',\r\n Gray900: '#141414',\r\n Gray800: '#1F1F1F',\r\n Gray700: '#333333',\r\n Gray600: '#545454',\r\n Gray500: '#757575',\r\n Gray400: '#AFAFAF',\r\n Gray300: '#CBCBCB',\r\n Gray200: '#E2E2E2',\r\n Gray100: '#EEEEEE',\r\n Gray50: '#F6F6F6',\r\n Platinum700: '#394145',\r\n Platinum600: '#556268',\r\n Platinum500: '#6C7C83',\r\n Platinum400: '#8EA3AD',\r\n Platinum300: '#A1BDCA',\r\n Platinum200: '#CCDFE5',\r\n Platinum100: '#EBF5F7',\r\n Platinum50: '#F4FAFB',\r\n EatsGreen400: '#21A453',\r\n FreightBlue400: '#21A453',\r\n JumpRed400: '#FF0A2D',\r\n Black: '#000000',\r\n White: '#FFFFFF',\r\n};\r\n\r\nexport type SdChartOption = DoughnutChartOption | PieChartOption |\r\n BarChartOption |\r\n HorizontalBarChartOption |\r\n LineChartOption |\r\n StackAreaChartOption |\r\n BarLineChartOption;\r\n\r\ninterface BaseChartOption {\r\n title?: string;\r\n height?: string;\r\n hideLegend?: boolean;\r\n tooltips?: {\r\n label: (params: { datasetLabel?: string, label?: string, value?: number }) => string;\r\n };\r\n}\r\n\r\nexport interface PieChartOption extends BaseChartOption {\r\n type: 'pie';\r\n title?: string;\r\n datasets: {\r\n label: string,\r\n value: number,\r\n backgroundColor: string\r\n }[];\r\n hover?: 'ShowAll';\r\n}\r\n\r\nexport interface DoughnutChartOption extends BaseChartOption {\r\n type: 'doughnut';\r\n title?: string;\r\n datasets: {\r\n label: string,\r\n value: number,\r\n backgroundColor: string\r\n }[];\r\n hover?: 'ShowAll';\r\n}\r\n\r\nexport interface BarChartOption extends BaseChartOption {\r\n type: 'bar';\r\n xTitle?: string;\r\n yTitle?: string;\r\n labels: string[];\r\n datasets: {\r\n label: string;\r\n data: number[];\r\n borderColor?: string,\r\n backgroundColor?: string;\r\n stack?: string;\r\n }[];\r\n beginAtZero?: boolean;\r\n labelWidth?: number;\r\n ticks?: {\r\n xLabel?: (value: number | string, index: number) => string,\r\n yLabel?: (value: number | string, index: number) => string\r\n };\r\n hover?: 'ShowAll';\r\n}\r\n\r\nexport interface HorizontalBarChartOption extends BaseChartOption {\r\n type: 'horizontalBar';\r\n xTitle?: string;\r\n yTitle?: string;\r\n labels: string[];\r\n datasets: {\r\n label: string;\r\n data: number[];\r\n borderColor?: string,\r\n backgroundColor?: string;\r\n stack?: string;\r\n }[];\r\n beginAtZero?: boolean;\r\n labelWidth?: number;\r\n ticks?: {\r\n xLabel?: (value: number | string, index: number) => string,\r\n yLabel?: (value: number | string, index: number) => string\r\n };\r\n hover?: 'ShowAll';\r\n}\r\n\r\nexport interface LineChartOption extends BaseChartOption {\r\n type: 'line';\r\n xTitle?: string;\r\n yTitle?: string;\r\n labels: string[];\r\n datasets: {\r\n label: string;\r\n data: number[];\r\n borderColor?: string,\r\n backgroundColor?: string;\r\n }[];\r\n beginAtZero?: boolean;\r\n labelWidth?: number;\r\n ticks?: {\r\n xLabel?: (value: number | string, index: number) => string,\r\n yLabel?: (value: number | string, index: number) => string\r\n };\r\n hover?: 'ShowAll';\r\n}\r\n\r\nexport interface StackAreaChartOption extends BaseChartOption {\r\n type: 'stackArea';\r\n xTitle?: string;\r\n yTitle?: string;\r\n labels: string[];\r\n datasets: {\r\n label: string;\r\n data: number[];\r\n borderColor?: string,\r\n backgroundColor?: string;\r\n }[];\r\n beginAtZero?: boolean;\r\n labelWidth?: number;\r\n ticks?: {\r\n xLabel?: (value: number | string, index: number) => string,\r\n yLabel?: (value: number | string, index: number) => string\r\n };\r\n hover?: 'ShowAll';\r\n}\r\n\r\nexport interface BarLineChartOption extends BaseChartOption {\r\n type: 'barline';\r\n xTitle?: string;\r\n xStacked?:boolean;\r\n yTitle?: string;\r\n yStacked?:boolean;\r\n yRightTitle?: string;\r\n labels: string[];\r\n datasets: {\r\n type: 'bar' | 'line',\r\n yAlign?: 'left' | 'right',\r\n label: string;\r\n data: number[];\r\n order?:number;\r\n borderColor?: string;\r\n backgroundColor?: string;\r\n }[];\r\n beginAtZero?: boolean;\r\n labelWidth?: number;\r\n ticks?: {\r\n xLabel?: (value: number | string, index: number) => string,\r\n yLabel?: (value: number | string, index: number) => string,\r\n yRightLabel?: (value: number | string, index: number) => string\r\n };\r\n hover?: 'ShowAll';\r\n}\r\n\r\n\r\nexport interface IChartConfiguration {\r\n defaultColors?: {\r\n backgroundColor?: string,\r\n borderColor?: string\r\n }[];\r\n}\r\n\r\nexport const CHART_CONFIG = new InjectionToken<IChartConfiguration>('chart.configuration');\r\n","import { Component, OnInit, AfterViewInit, ViewChild, ElementRef, Input, ChangeDetectorRef, Optional, Inject } from '@angular/core';\r\nimport * as Chart from 'chart.js';\r\nimport {\r\n SdChartOption,\r\n BarChartOption,\r\n LineChartOption,\r\n PieChartOption,\r\n BarLineChartOption,\r\n StackAreaChartOption,\r\n HorizontalBarChartOption,\r\n IChartConfiguration,\r\n CHART_CONFIG,\r\n DoughnutChartOption\r\n} from './chart.model';\r\nimport $ from 'jquery';\r\nimport * as uuid from 'uuid';\r\n\r\n@Component({\r\n selector: 'sd-chart',\r\n templateUrl: './chart.component.html',\r\n styleUrls: ['./chart.component.scss']\r\n})\r\nexport class SdChart implements OnInit, AfterViewInit {\r\n private initialized = false;\r\n private pChartOption: SdChartOption;\r\n isLoading = false;\r\n\r\n @Input() set chartOption(chartOption: SdChartOption) {\r\n this.pChartOption = chartOption;\r\n if (this.initialized) {\r\n this.renderChart();\r\n }\r\n }\r\n\r\n @ViewChild('chart') chartRef: ElementRef;\r\n @ViewChild('chartWrapper') chartWrapperRef: ElementRef;\r\n @ViewChild('chartAxis') chartAxisRef: ElementRef;\r\n @ViewChild('chartAreaWrapperExtend') chartAreaWrapperExtendRef: ElementRef;\r\n chart: Chart;\r\n visible = true;\r\n height = '300px';\r\n private ctx: CanvasRenderingContext2D;\r\n\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n @Optional() @Inject(CHART_CONFIG) private chartConfiguration: IChartConfiguration\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.renderChart(true);\r\n this.initialized = true;\r\n this.ref.detectChanges();\r\n }\r\n\r\n private async renderChart(firstRender?: boolean) {\r\n this.height = this.pChartOption?.height || '300px';\r\n if (!firstRender) {\r\n this.visible = false;\r\n await new Promise(resolve => setTimeout(resolve, 200));\r\n this.visible = true;\r\n }\r\n await new Promise(resolve => setTimeout(resolve, 200));\r\n if (this.chartRef?.nativeElement) {\r\n const canvas = this.chartRef.nativeElement as HTMLCanvasElement;\r\n this.ctx = canvas.getContext('2d');\r\n switch (this.pChartOption.type) {\r\n case 'pie':\r\n this.renderPieChart(this.pChartOption);\r\n break;\r\n case 'bar':\r\n this.renderBarChart(this.pChartOption);\r\n break;\r\n case 'horizontalBar':\r\n this.renderHorizontalBarChart(this.pChartOption);\r\n break;\r\n case 'line':\r\n this.renderLineChart(this.pChartOption);\r\n break;\r\n case 'stackArea':\r\n this.renderStackAreaChart(this.pChartOption);\r\n break;\r\n case 'barline':\r\n this.renderBarLineChart(this.pChartOption);\r\n break;\r\n case 'doughnut':\r\n this.renderDoughnutChart(this.pChartOption);\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n private renderPieChart(option: PieChartOption) {\r\n const configuration: Chart.ChartConfiguration = {\r\n type: 'pie',\r\n options: {\r\n responsive: true,\r\n title: {\r\n display: true,\r\n text: option.title\r\n },\r\n legend: {\r\n display: !option.hideLegend\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: (tooltipItem, data) => {\r\n const datasetLabel = data?.datasets[tooltipItem.datasetIndex]?.label;\r\n const label = data?.labels[tooltipItem.index] as string;\r\n const value = data?.datasets[tooltipItem.datasetIndex]?.data[tooltipItem.index] as number;\r\n return option.tooltips?.label({\r\n datasetLabel,\r\n label,\r\n value\r\n }) || `${datasetLabel ? `[${datasetLabel}] ` : ''}${label} : ${Number.toVNCurrency(value)}`;\r\n }\r\n }\r\n }\r\n },\r\n data: {\r\n labels: option.datasets?.map(e => e.label) || [],\r\n datasets: [{\r\n data: option.datasets?.map(e => e.value) || [],\r\n backgroundColor: option.datasets?.map((e, idx) => e.backgroundColor\r\n || this.chartConfiguration?.defaultColors?.[idx]?.backgroundColor\r\n || this.dynamicColor) || []\r\n }]\r\n }\r\n };\r\n\r\n if (option.hover === 'ShowAll') {\r\n configuration.options.tooltips = {\r\n ...configuration.options.tooltips,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n configuration.options.hover = {\r\n ...configuration.options.hover,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n }\r\n\r\n this.chart = new Chart(this.ctx, configuration);\r\n this.isLoading = false;\r\n }\r\n\r\n private renderDoughnutChart(option:DoughnutChartOption){\r\n const configuration: Chart.ChartConfiguration = {\r\n type: 'doughnut',\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio:false,\r\n title: {\r\n display: true,\r\n text: option.title\r\n },\r\n legend: {\r\n display: !option.hideLegend\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: (tooltipItem, data) => {\r\n const datasetLabel = data?.datasets[tooltipItem.datasetIndex]?.label;\r\n const label = data?.labels[tooltipItem.index] as string;\r\n const value = data?.datasets[tooltipItem.datasetIndex]?.data[tooltipItem.index] as number;\r\n return option.tooltips?.label({\r\n datasetLabel,\r\n label,\r\n value\r\n }) || `${datasetLabel ? `[${datasetLabel}] ` : ''}${label} : ${Number.toVNCurrency(value)}`;\r\n }\r\n }\r\n }\r\n },\r\n data: {\r\n labels: option.datasets?.map(e => e.label) || [],\r\n datasets: [{\r\n data: option.datasets?.map(e => e.value) || [],\r\n backgroundColor: option.datasets?.map((e, idx) => e.backgroundColor\r\n || this.chartConfiguration?.defaultColors?.[idx]?.backgroundColor\r\n || this.dynamicColor) || []\r\n }]\r\n }\r\n };\r\n\r\n if (option.hover === 'ShowAll') {\r\n configuration.options.tooltips = {\r\n ...configuration.options.tooltips,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n configuration.options.hover = {\r\n ...configuration.options.hover,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n }\r\n\r\n this.chart = new Chart(this.ctx, configuration);\r\n this.isLoading = false;\r\n }\r\n\r\n private renderBarChart(option: BarChartOption) {\r\n const labelWidth = option.labelWidth ?? 50;\r\n if (option.datasets.length) {\r\n // const newwidth = Math.max(option.labels.length * option.datasets.length * labelWidth, $(this.chartWrapperRef.nativeElement).width());\r\n // $(this.chartAreaWrapperExtendRef.nativeElement).width(newwidth);\r\n const newwidth = option.labels.length * option.datasets.length * labelWidth;\r\n $(this.chartAreaWrapperExtendRef.nativeElement).css('width', `max(100%,${newwidth}px)`);\r\n }\r\n const configuration: Chart.ChartConfiguration = {\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n legend: {\r\n display: !option.hideLegend\r\n },\r\n scales: {\r\n xAxes: [{\r\n display: true,\r\n scaleLabel: {\r\n display: !!option.xTitle,\r\n labelString: option.xTitle || ''\r\n },\r\n ticks: {\r\n callback: (value: number | string, index: number) => {\r\n return option.ticks?.xLabel(value, index) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);\r\n }\r\n }\r\n }],\r\n yAxes: [{\r\n display: true,\r\n ticks: {\r\n beginAtZero: option.beginAtZero ?? true,\r\n callback: (value: number | string, index: number) => {\r\n return option.ticks?.yLabel(value, index) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);\r\n }\r\n },\r\n scaleLabel: {\r\n display: !!option.yTitle,\r\n labelString: option.yTitle || ''\r\n }\r\n }]\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: (tooltipItem, data) => {\r\n const datasetLabel = data?.datasets[tooltipItem.datasetIndex]?.label;\r\n const label = data?.labels[tooltipItem.index] as string;\r\n const value = data?.datasets[tooltipItem.datasetIndex]?.data[tooltipItem.index] as number;\r\n return option.tooltips?.label({\r\n datasetLabel,\r\n label,\r\n value\r\n }) || `${datasetLabel} : ${Number.toVNCurrency(value)}`;\r\n }\r\n }\r\n }\r\n },\r\n type: 'bar',\r\n data: {\r\n labels: option.labels,\r\n datasets: option.datasets.map((e, idx) => {\r\n const dynamicColor = this.dynamicColor;\r\n const result: Chart.ChartDataSets = {\r\n label: e.label,\r\n fill: e.backgroundColor || this.chartConfiguration?.defaultColors?.[idx]?.backgroundColor || dynamicColor,\r\n backgroundColor: e.backgroundColor || this.chartConfiguration?.defaultColors?.[idx]?.backgroundColor || dynamicColor,\r\n data: e.data,\r\n stack: e.stack\r\n };\r\n return result;\r\n })\r\n }\r\n };\r\n\r\n if (option.hover === 'ShowAll') {\r\n configuration.options.tooltips = {\r\n ...configuration.options.tooltips,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n configuration.options.hover = {\r\n ...configuration.options.hover,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n }\r\n\r\n this.chart = new Chart(this.ctx, configuration);\r\n this.isLoading = false;\r\n }\r\n\r\n private renderHorizontalBarChart(option: HorizontalBarChartOption) {\r\n // const labelWidth = option.labelWidth ?? 50;\r\n // if (option.datasets.length) {\r\n // const newwidth = Math.max(option.labels.length * option.datasets.length * labelWidth, $(this.chartWrapperRef.nativeElement).width());\r\n // $(this.chartAreaWrapperExtendRef.nativeElement).width(newwidth);\r\n // }\r\n const configuration: Chart.ChartConfiguration = {\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n legend: {\r\n display: !option.hideLegend\r\n },\r\n scales: {\r\n xAxes: [{\r\n display: true,\r\n scaleLabel: {\r\n display: !!option.xTitle,\r\n labelString: option.xTitle || ''\r\n },\r\n ticks: {\r\n beginAtZero: option.beginAtZero ?? true,\r\n callback: (value: number | string, index: number) => {\r\n return option.ticks?.xLabel(value, index) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);\r\n }\r\n }\r\n }],\r\n yAxes: [{\r\n display: true,\r\n ticks: {\r\n callback: (value: number | string, index: number) => {\r\n return option.ticks?.yLabel(value, index) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);\r\n }\r\n },\r\n scaleLabel: {\r\n display: !!option.yTitle,\r\n labelString: option.yTitle || ''\r\n }\r\n }]\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: (tooltipItem, data) => {\r\n const datasetLabel = data?.datasets[tooltipItem.datasetIndex]?.label;\r\n const label = data?.labels[tooltipItem.index] as string;\r\n const value = data?.datasets[tooltipItem.datasetIndex]?.data[tooltipItem.index] as number;\r\n return option.tooltips?.label({\r\n datasetLabel,\r\n label,\r\n value\r\n }) || `${datasetLabel} : ${Number.toVNCurrency(value)}`;\r\n }\r\n }\r\n }\r\n },\r\n type: 'horizontalBar',\r\n data: {\r\n labels: option.labels,\r\n datasets: option.datasets.map((e, idx) => {\r\n const dynamicColor = this.dynamicColor;\r\n const result: Chart.ChartDataSets = {\r\n label: e.label,\r\n fill: e.backgroundColor || this.chartConfiguration?.defaultColors?.[idx]?.backgroundColor || dynamicColor,\r\n backgroundColor: e.backgroundColor || this.chartConfiguration?.defaultColors?.[idx]?.backgroundColor || dynamicColor,\r\n data: e.data,\r\n stack: e.stack\r\n };\r\n return result;\r\n })\r\n }\r\n };\r\n\r\n if (option.hover === 'ShowAll') {\r\n configuration.options.tooltips = {\r\n ...configuration.options.tooltips,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n configuration.options.hover = {\r\n ...configuration.options.hover,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n }\r\n\r\n this.chart = new Chart(this.ctx, configuration);\r\n this.isLoading = false;\r\n }\r\n\r\n private renderLineChart(option: LineChartOption) {\r\n const labelWidth = option.labelWidth ?? 50;\r\n if (option.datasets.length) {\r\n // const newwidth = Math.max(option.labels.length * labelWidth, $(this.chartWrapperRef.nativeElement).width());\r\n // $(this.chartAreaWrapperExtendRef.nativeElement).width(newwidth);\r\n const newwidth = option.labels.length * labelWidth;\r\n $(this.chartAreaWrapperExtendRef.nativeElement).css('width', `max(100%,${newwidth}px)`);\r\n }\r\n const configuration: Chart.ChartConfiguration = {\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n legend: {\r\n display: !option.hideLegend\r\n },\r\n scales: {\r\n xAxes: [{\r\n display: true,\r\n scaleLabel: {\r\n display: !!option.xTitle,\r\n labelString: option.xTitle || ''\r\n },\r\n ticks: {\r\n callback: (value: number | string, index: number) => {\r\n return option.ticks?.xLabel(value, index) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);\r\n }\r\n },\r\n }],\r\n yAxes: [{\r\n display: true,\r\n ticks: {\r\n beginAtZero: option.beginAtZero ?? true,\r\n callback: (value: number | string, index: number) => {\r\n return option.ticks?.yLabel(value, index) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);\r\n }\r\n },\r\n scaleLabel: {\r\n display: !!option.yTitle,\r\n labelString: option.yTitle || ''\r\n }\r\n }]\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: (tooltipItem, data) => {\r\n const datasetLabel = data?.datasets[tooltipItem.datasetIndex]?.label;\r\n const label = data?.labels[tooltipItem.index] as string;\r\n const value = data?.datasets[tooltipItem.datasetIndex]?.data[tooltipItem.index] as number;\r\n return option.tooltips?.label({\r\n datasetLabel,\r\n label,\r\n value\r\n }) || `${datasetLabel} : ${Number.toVNCurrency(value)}`;\r\n }\r\n }\r\n }\r\n },\r\n type: 'line',\r\n data: {\r\n labels: option.labels,\r\n datasets: option.datasets.map((e, idx) => {\r\n const dynamicColor = this.dynamicColor;\r\n const result: Chart.ChartDataSets = {\r\n label: e.label,\r\n fill: e.backgroundColor || this.chartConfiguration?.defaultColors?.[idx]?.backgroundColor || dynamicColor,\r\n backgroundColor: e.backgroundColor || this.chartConfiguration?.defaultColors?.[idx]?.backgroundColor || dynamicColor,\r\n borderColor: e.borderColor || this.chartConfiguration?.defaultColors?.[idx]?.borderColor || dynamicColor,\r\n data: e.data,\r\n lineTension: 0,\r\n };\r\n return result;\r\n })\r\n }\r\n };\r\n\r\n if (option.hover === 'ShowAll') {\r\n configuration.options.tooltips = {\r\n ...configuration.options.tooltips,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n configuration.options.hover = {\r\n ...configuration.options.hover,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n }\r\n\r\n this.chart = new Chart(this.ctx, configuration);\r\n this.isLoading = false;\r\n }\r\n\r\n private renderStackAreaChart(option: StackAreaChartOption) {\r\n const labelWidth = option.labelWidth ?? 50;\r\n if (option.datasets.length) {\r\n // const newwidth = Math.max(option.labels.length * labelWidth, $(this.chartWrapperRef.nativeElement).width());\r\n // $(this.chartAreaWrapperExtendRef.nativeElement).width(newwidth);\r\n const newwidth = option.labels.length * labelWidth;\r\n $(this.chartAreaWrapperExtendRef.nativeElement).css('width', `max(100%,${newwidth}px)`);\r\n }\r\n const configuration: Chart.ChartConfiguration = {\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n legend: {\r\n display: !option.hideLegend\r\n },\r\n scales: {\r\n xAxes: [{\r\n display: true,\r\n scaleLabel: {\r\n display: !!option.xTitle,\r\n labelString: option.xTitle || ''\r\n },\r\n ticks: {\r\n callback: (value: number | string, index: number) => {\r\n return option.ticks?.xLabel(value, index) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);\r\n }\r\n },\r\n }],\r\n yAxes: [{\r\n display: true,\r\n ticks: {\r\n beginAtZero: option.beginAtZero ?? true,\r\n callback: (value: number | string, index: number) => {\r\n return option.ticks?.yLabel(value, index) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);\r\n }\r\n },\r\n stacked: true,\r\n scaleLabel: {\r\n display: !!option.yTitle,\r\n labelString: option.yTitle || ''\r\n }\r\n }]\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: (tooltipItem, data) => {\r\n const datasetLabel = data?.datasets[tooltipItem.datasetIndex]?.label;\r\n const label = data?.labels[tooltipItem.index] as string;\r\n const value = data?.datasets[tooltipItem.datasetIndex]?.data[tooltipItem.index] as number;\r\n return option.tooltips?.label({\r\n datasetLabel,\r\n label,\r\n value\r\n }) || `${datasetLabel} : ${Number.toVNCurrency(value)}`;\r\n }\r\n }\r\n }\r\n },\r\n type: 'line',\r\n data: {\r\n labels: option.labels,\r\n datasets: option.datasets.map((e, idx) => {\r\n const dynamicColor = this.dynamicColor;\r\n const result: Chart.ChartDataSets = {\r\n label: e.label,\r\n // fill: e.backgroundColor,\r\n backgroundColor: e.backgroundColor || this.chartConfiguration?.defaultColors?.[idx]?.backgroundColor || dynamicColor,\r\n borderColor: e.borderColor || this.chartConfiguration?.defaultColors?.[idx]?.borderColor || dynamicColor,\r\n data: e.data,\r\n lineTension: 0,\r\n };\r\n return result;\r\n })\r\n }\r\n };\r\n\r\n if (option.hover === 'ShowAll') {\r\n configuration.options.tooltips = {\r\n ...configuration.options.tooltips,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n configuration.options.hover = {\r\n ...configuration.options.hover,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n }\r\n\r\n this.chart = new Chart(this.ctx, configuration);\r\n this.isLoading = false;\r\n }\r\n\r\n private renderBarLineChart(option: BarLineChartOption) {\r\n const labelWidth = option.labelWidth ?? 50;\r\n if (option.datasets.length) {\r\n const numberOfBars = option.datasets.filter(e => e.type === 'bar').length;\r\n if (numberOfBars <= 1) {\r\n // const newwidth = Math.max(option.labels.length * labelWidth, $(this.chartWrapperRef.nativeElement).width());\r\n // $(this.chartAreaWrapperExtendRef.nativeElement).width(newwidth);\r\n const newwidth = option.labels.length * labelWidth;\r\n $(this.chartAreaWrapperExtendRef.nativeElement).css('width', `max(100%,${newwidth}px)`);\r\n } else {\r\n // const newwidth = Math.max(option.labels.length * numberOfBars * labelWidth, $(this.chartWrapperRef.nativeElement).width());\r\n // $(this.chartAreaWrapperExtendRef.nativeElement).width(newwidth);\r\n const newwidth = option.labels.length * numberOfBars * labelWidth;\r\n $(this.chartAreaWrapperExtendRef.nativeElement).css('width', `max(100%,${newwidth}px)`);\r\n }\r\n }\r\n const leftId = `I${uuid.v4()}`;\r\n const rightId = `I${uuid.v4()}`;\r\n const yAxes = [{\r\n type: 'linear',\r\n display: true,\r\n position: 'left',\r\n id: leftId,\r\n ticks: {\r\n beginAtZero: option.beginAtZero ?? true,\r\n suggestedMin: 0,\r\n callback: (value: number | string, index: number) => {\r\n return option.ticks?.yLabel(value, index) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);\r\n }\r\n },\r\n scaleLabel: {\r\n display: !!option.yTitle,\r\n labelString: option.yTitle || '',\r\n },\r\n stacked:!!option.yStacked,\r\n }];\r\n if (option.datasets.some(e => e.yAlign === 'right')) {\r\n yAxes.push({\r\n type: 'linear',\r\n display: true,\r\n position: 'right',\r\n id: rightId,\r\n ticks: {\r\n beginAtZero: option.beginAtZero ?? true,\r\n suggestedMin: 0,\r\n callback: (value: number | string, index: number) => {\r\n return option.ticks?.yRightLabel(value, index) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);\r\n }\r\n },\r\n scaleLabel: {\r\n display: !!option.yRightTitle,\r\n labelString: option.yRightTitle || ''\r\n },\r\n stacked:!!option.yStacked,\r\n });\r\n }\r\n const configuration: Chart.ChartConfiguration = {\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n legend: {\r\n display: !option.hideLegend\r\n },\r\n title: {\r\n display: true,\r\n text: option.title\r\n },\r\n scales: {\r\n xAxes: [{\r\n display: true,\r\n scaleLabel: {\r\n display: !!option.xTitle,\r\n labelString: option.xTitle || ''\r\n },\r\n ticks: {\r\n callback: (value: number | string, index: number) => {\r\n return option.ticks?.xLabel(value, index) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);\r\n }\r\n },\r\n stacked: !!option.xStacked\r\n }],\r\n yAxes\r\n },\r\n tooltips: {\r\n callbacks: {\r\n label: (tooltipItem, data) => {\r\n const datasetLabel = data?.datasets[tooltipItem.datasetIndex]?.label;\r\n const label = data?.labels[tooltipItem.index] as string;\r\n const value = data?.datasets[tooltipItem.datasetIndex]?.data[tooltipItem.index] as number;\r\n return option.tooltips?.label({\r\n datasetLabel,\r\n label,\r\n value\r\n }) || `${datasetLabel ? `[${datasetLabel}] ` : ''} ${label} : ${Number.toVNCurrency(value)}`;\r\n }\r\n }\r\n }\r\n },\r\n data: {\r\n labels: option.labels,\r\n datasets: option.datasets.map((e, idx) => {\r\n const dynamicColor = this.dynamicColor;\r\n const result: Chart.ChartDataSets = {\r\n type: e.type,\r\n label: e.label,\r\n fill: e.backgroundColor || this.chartConfiguration?.defaultColors?.[idx]?.backgroundColor || dynamicColor,\r\n backgroundColor: e.backgroundColor || this.chartConfiguration?.defaultColors?.[idx]?.backgroundColor || dynamicColor,\r\n borderColor: e.borderColor || this.chartConfiguration?.defaultColors?.[idx]?.borderColor || dynamicColor,\r\n data: e.data,\r\n yAxisID: e.yAlign === 'right' ? rightId : leftId,\r\n lineTension: 0,\r\n order:e.order ?? 1\r\n };\r\n return result;\r\n }),\r\n }\r\n };\r\n\r\n if (option.hover === 'ShowAll') {\r\n configuration.options.tooltips = {\r\n ...configuration.options.tooltips,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n configuration.options.hover = {\r\n ...configuration.options.hover,\r\n mode: 'index',\r\n intersect: false\r\n };\r\n }\r\n\r\n this.chart = new Chart(this.ctx, configuration);\r\n this.isLoading = false;\r\n }\r\n\r\n loadingStart = () => {\r\n this.isLoading = true;\r\n }\r\n\r\n private get dynamicColor() {\r\n const r = Math.floor(Math.random() * 255);\r\n const g = Math.floor(Math.random() * 255);\r\n const b = Math.floor(Math.random() * 255);\r\n return 'rgb(' + r + ',' + g + ',' + b + ')';\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SdChart } from './chart.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n SdChart\r\n ],\r\n exports: [\r\n SdChart\r\n ],\r\n providers: [\r\n ]\r\n})\r\nexport class SdChartModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["uuid.v4"],"mappings":";;;;;;;;MAEa,WAAW,GAAG;IACzB,GAAG,EAAE,mBAAmB;IACxB,MAAM,EAAE,mBAAmB;IAC3B,MAAM,EAAE,mBAAmB;IAC3B,KAAK,EAAE,mBAAmB;IAC1B,IAAI,EAAE,mBAAmB;IACzB,MAAM,EAAE,oBAAoB;IAC5B,IAAI,EAAE,oBAAoB;IAC1B,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,SAAS;IACnB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;IACnB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,SAAS;IACtB,UAAU,EAAE,SAAS;IACrB,YAAY,EAAE,SAAS;IACvB,cAAc,EAAE,SAAS;IACzB,UAAU,EAAE,SAAS;IACrB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;EAChB;MA6JW,YAAY,GAAG,IAAI,cAAc,CAAsB,qBAAqB;;MChO5E,OAAO;IAqBlB,YACU,GAAsB,EACY,kBAAuC;QADzE,QAAG,GAAH,GAAG,CAAmB;QACY,uBAAkB,GAAlB,kBAAkB,CAAqB;QAtB3E,gBAAW,GAAG,KAAK,CAAC;QAE5B,cAAS,GAAG,KAAK,CAAC;QAclB,YAAO,GAAG,IAAI,CAAC;QACf,WAAM,GAAG,OAAO,CAAC;QA2pBjB,iBAAY,GAAG;YACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB,CAAA;KAtpBA;IApBD,IAAa,WAAW,CAAC,WAA0B;QACjD,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;KACF;IAiBD,QAAQ;KACP;IAED,eAAe;QACb,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC1B;IAEa,WAAW,CAAC,WAAqB;;;YAC7C,IAAI,CAAC,MAAM,GAAG,OAAA,IAAI,CAAC,YAAY,0CAAE,MAAM,KAAI,OAAO,CAAC;YACnD,IAAI,CAAC,WAAW,EAAE;gBAChB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;gBACvD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;aACrB;YACD,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YACvD,UAAI,IAAI,CAAC,QAAQ,0CAAE,aAAa,EAAE;gBAChC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAkC,CAAC;gBAChE,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACnC,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI;oBAC5B,KAAK,KAAK;wBACR,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBACvC,MAAM;oBACR,KAAK,KAAK;wBACR,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBACvC,MAAM;oBACR,KAAK,eAAe;wBAClB,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBACjD,MAAM;oBACR,KAAK,MAAM;wBACT,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBACxC,MAAM;oBACR,KAAK,WAAW;wBACd,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBAC7C,MAAM;oBACR,KAAK,SAAS;wBACZ,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBAC3C,MAAM;oBACR,KAAK,UAAU;wBACb,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC9C;wBACE,MAAM;iBACT;aACF;;KACF;IAEO,cAAc,CAAC,MAAsB;;QAC3C,MAAM,aAAa,GAA6B;YAC9C,IAAI,EAAE,KAAK;YACX,OAAO,EAAE;gBACP,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE;oBACL,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,MAAM,CAAC,KAAK;iBACnB;gBACD,MAAM,EAAE;oBACN,OAAO,EAAE,CAAC,MAAM,CAAC,UAAU;iBAC5B;gBACD,QAAQ,EAAE;oBACR,SAAS,EAAE;wBACT,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI;;4BACvB,MAAM,YAAY,SAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,WAAW,CAAC,YAAY,2CAAG,KAAK,CAAC;4BACrE,MAAM,KAAK,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAW,CAAC;4BACxD,MAAM,KAAK,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,WAAW,CAAC,YAAY,2CAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAW,CAAC;4BAC1F,OAAO,OAAA,MAAM,CAAC,QAAQ,0CAAE,KAAK,CAAC;gCAC5B,YAAY;gCACZ,KAAK;gCACL,KAAK;6BACN,MAAK,GAAG,YAAY,GAAG,IAAI,YAAY,IAAI,GAAG,EAAE,GAAG,KAAK,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;yBAC7F;qBACF;iBACF;aACF;YACD,IAAI,EAAE;gBACJ,MAAM,EAAE,OAAA,MAAM,CAAC,QAAQ,0CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,MAAK,EAAE;gBAChD,QAAQ,EAAE,CAAC;wBACT,IAAI,EAAE,OAAA,MAAM,CAAC,QAAQ,0CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,MAAK,EAAE;wBAC9C,eAAe,EAAE,OAAA,MAAM,CAAC,QAAQ,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;;4BAAK,OAAA,CAAC,CAAC,eAAe;sDAC9D,IAAI,CAAC,kBAAkB,0CAAE,aAAa,0CAAG,GAAG,2CAAG,eAAe,CAAA;mCAC9D,IAAI,CAAC,YAAY,CAAA;yBAAA,MAAK,EAAE;qBAC9B,CAAC;aACH;SACF,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;YAC9B,aAAa,CAAC,OAAO,CAAC,QAAQ,mCACzB,aAAa,CAAC,OAAO,CAAC,QAAQ,KACjC,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,KAAK,GACjB,CAAC;YACF,aAAa,CAAC,OAAO,CAAC,KAAK,mCACtB,aAAa,CAAC,OAAO,CAAC,KAAK,KAC9B,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,KAAK,GACjB,CAAC;SACH;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACxB;IAEO,mBAAmB,CAAC,MAA0B;;QACpD,MAAM,aAAa,GAA6B;YAC9C,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE;gBACP,UAAU,EAAE,IAAI;gBAChB,mBAAmB,EAAC,KAAK;gBACzB,KAAK,EAAE;oBACL,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,MAAM,CAAC,KAAK;iBACnB;gBACD,MAAM,EAAE;oBACN,OAAO,EAAE,CAAC,MAAM,CAAC,UAAU;iBAC5B;gBACD,QAAQ,EAAE;oBACR,SAAS,EAAE;wBACT,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI;;4BACvB,MAAM,YAAY,SAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,WAAW,CAAC,YAAY,2CAAG,KAAK,CAAC;4BACrE,MAAM,KAAK,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAW,CAAC;4BACxD,MAAM,KAAK,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,WAAW,CAAC,YAAY,2CAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAW,CAAC;4BAC1F,OAAO,OAAA,MAAM,CAAC,QAAQ,0CAAE,KAAK,CAAC;gCAC5B,YAAY;gCACZ,KAAK;gCACL,KAAK;6BACN,MAAK,GAAG,YAAY,GAAG,IAAI,YAAY,IAAI,GAAG,EAAE,GAAG,KAAK,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;yBAC7F;qBACF;iBACF;aACF;YACD,IAAI,EAAE;gBACJ,MAAM,EAAE,OAAA,MAAM,CAAC,QAAQ,0CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,MAAK,EAAE;gBAChD,QAAQ,EAAE,CAAC;wBACT,IAAI,EAAE,OAAA,MAAM,CAAC,QAAQ,0CAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,MAAK,EAAE;wBAC9C,eAAe,EAAE,OAAA,MAAM,CAAC,QAAQ,0CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;;4BAAK,OAAA,CAAC,CAAC,eAAe;sDAC9D,IAAI,CAAC,kBAAkB,0CAAE,aAAa,0CAAG,GAAG,2CAAG,eAAe,CAAA;mCAC9D,IAAI,CAAC,YAAY,CAAA;yBAAA,MAAK,EAAE;qBAC9B,CAAC;aACH;SACF,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;YAC9B,aAAa,CAAC,OAAO,CAAC,QAAQ,mCACzB,aAAa,CAAC,OAAO,CAAC,QAAQ,KACjC,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,KAAK,GACjB,CAAC;YACF,aAAa,CAAC,OAAO,CAAC,KAAK,mCACtB,aAAa,CAAC,OAAO,CAAC,KAAK,KAC9B,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,KAAK,GACjB,CAAC;SACH;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACxB;IAEO,cAAc,CAAC,MAAsB;;QAC3C,MAAM,UAAU,SAAG,MAAM,CAAC,UAAU,mCAAI,EAAE,CAAC;QAC3C,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;;;YAG1B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC;YAC5E,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,QAAQ,KAAK,CAAC,CAAC;SACzF;QACD,MAAM,aAAa,GAA6B;YAC9C,OAAO,EAAE;gBACP,UAAU,EAAE,IAAI;gBAChB,mBAAmB,EAAE,KAAK;gBAC1B,MAAM,EAAE;oBACN,OAAO,EAAE,CAAC,MAAM,CAAC,UAAU;iBAC5B;gBACD,MAAM,EAAE;oBACN,KAAK,EAAE,CAAC;4BACN,OAAO,EAAE,IAAI;4BACb,UAAU,EAAE;gCACV,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;gCACxB,WAAW,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;6BACjC;4BACD,KAAK,EAAE;gCACL,QAAQ,EAAE,CAAC,KAAsB,EAAE,KAAa;;oCAC9C,OAAO,OAAA,MAAM,CAAC,KAAK,0CAAE,MAAM,CAAC,KAAK,EAAE,KAAK,OAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;iCAC5G;6BACF;yBACF,CAAC;oBACF,KAAK,EAAE,CAAC;4BACN,OAAO,EAAE,IAAI;4BACb,KAAK,EAAE;gCACL,WAAW,QAAE,MAAM,CAAC,WAAW,mCAAI,IAAI;gCACvC,QAAQ,EAAE,CAAC,KAAsB,EAAE,KAAa;;oCAC9C,OAAO,OAAA,MAAM,CAAC,KAAK,0CAAE,MAAM,CAAC,KAAK,EAAE,KAAK,OAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;iCAC5G;6BACF;4BACD,UAAU,EAAE;gCACV,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;gCACxB,WAAW,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;6BACjC;yBACF,CAAC;iBACH;gBACD,QAAQ,EAAE;oBACR,SAAS,EAAE;wBACT,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI;;4BACvB,MAAM,YAAY,SAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,WAAW,CAAC,YAAY,2CAAG,KAAK,CAAC;4BACrE,MAAM,KAAK,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAW,CAAC;4BACxD,MAAM,KAAK,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,WAAW,CAAC,YAAY,2CAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAW,CAAC;4BAC1F,OAAO,OAAA,MAAM,CAAC,QAAQ,0CAAE,KAAK,CAAC;gCAC5B,YAAY;gCACZ,KAAK;gCACL,KAAK;6BACN,MAAK,GAAG,YAAY,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;yBACzD;qBACF;iBACF;aACF;YACD,IAAI,EAAE,KAAK;YACX,IAAI,EAAE;gBACJ,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;;oBACnC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBACvC,MAAM,MAAM,GAAwB;wBAClC,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,IAAI,EAAE,CAAC,CAAC,eAAe,uBAAI,IAAI,CAAC,kBAAkB,0CAAE,aAAa,0CAAG,GAAG,2CAAG,eAAe,CAAA,IAAI,YAAY;wBACzG,eAAe,EAAE,CAAC,CAAC,eAAe,uBAAI,IAAI,CAAC,kBAAkB,0CAAE,aAAa,0CAAG,GAAG,2CAAG,eAAe,CAAA,IAAI,YAAY;wBACpH,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;qBACf,CAAC;oBACF,OAAO,MAAM,CAAC;iBACf,CAAC;aACH;SACF,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;YAC9B,aAAa,CAAC,OAAO,CAAC,QAAQ,mCACzB,aAAa,CAAC,OAAO,CAAC,QAAQ,KACjC,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,KAAK,GACjB,CAAC;YACF,aAAa,CAAC,OAAO,CAAC,KAAK,mCACtB,aAAa,CAAC,OAAO,CAAC,KAAK,KAC9B,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,KAAK,GACjB,CAAC;SACH;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACxB;IAEO,wBAAwB,CAAC,MAAgC;;;;;;;QAM/D,MAAM,aAAa,GAA6B;YAC9C,OAAO,EAAE;gBACP,UAAU,EAAE,IAAI;gBAChB,mBAAmB,EAAE,KAAK;gBAC1B,MAAM,EAAE;oBACN,OAAO,EAAE,CAAC,MAAM,CAAC,UAAU;iBAC5B;gBACD,MAAM,EAAE;oBACN,KAAK,EAAE,CAAC;4BACN,OAAO,EAAE,IAAI;4BACb,UAAU,EAAE;gCACV,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;gCACxB,WAAW,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;6BACjC;4BACD,KAAK,EAAE;gCACL,WAAW,QAAE,MAAM,CAAC,WAAW,mCAAI,IAAI;gCACvC,QAAQ,EAAE,CAAC,KAAsB,EAAE,KAAa;;oCAC9C,OAAO,OAAA,MAAM,CAAC,KAAK,0CAAE,MAAM,CAAC,KAAK,EAAE,KAAK,OAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;iCAC5G;6BACF;yBACF,CAAC;oBACF,KAAK,EAAE,CAAC;4BACN,OAAO,EAAE,IAAI;4BACb,KAAK,EAAE;gCACL,QAAQ,EAAE,CAAC,KAAsB,EAAE,KAAa;;oCAC9C,OAAO,OAAA,MAAM,CAAC,KAAK,0CAAE,MAAM,CAAC,KAAK,EAAE,KAAK,OAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;iCAC5G;6BACF;4BACD,UAAU,EAAE;gCACV,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;gCACxB,WAAW,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;6BACjC;yBACF,CAAC;iBACH;gBACD,QAAQ,EAAE;oBACR,SAAS,EAAE;wBACT,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI;;4BACvB,MAAM,YAAY,SAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,WAAW,CAAC,YAAY,2CAAG,KAAK,CAAC;4BACrE,MAAM,KAAK,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAW,CAAC;4BACxD,MAAM,KAAK,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,WAAW,CAAC,YAAY,2CAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAW,CAAC;4BAC1F,OAAO,OAAA,MAAM,CAAC,QAAQ,0CAAE,KAAK,CAAC;gCAC5B,YAAY;gCACZ,KAAK;gCACL,KAAK;6BACN,MAAK,GAAG,YAAY,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;yBACzD;qBACF;iBACF;aACF;YACD,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE;gBACJ,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;;oBACnC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBACvC,MAAM,MAAM,GAAwB;wBAClC,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,IAAI,EAAE,CAAC,CAAC,eAAe,uBAAI,IAAI,CAAC,kBAAkB,0CAAE,aAAa,0CAAG,GAAG,2CAAG,eAAe,CAAA,IAAI,YAAY;wBACzG,eAAe,EAAE,CAAC,CAAC,eAAe,uBAAI,IAAI,CAAC,kBAAkB,0CAAE,aAAa,0CAAG,GAAG,2CAAG,eAAe,CAAA,IAAI,YAAY;wBACpH,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;qBACf,CAAC;oBACF,OAAO,MAAM,CAAC;iBACf,CAAC;aACH;SACF,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;YAC9B,aAAa,CAAC,OAAO,CAAC,QAAQ,mCACzB,aAAa,CAAC,OAAO,CAAC,QAAQ,KACjC,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,KAAK,GACjB,CAAC;YACF,aAAa,CAAC,OAAO,CAAC,KAAK,mCACtB,aAAa,CAAC,OAAO,CAAC,KAAK,KAC9B,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,KAAK,GACjB,CAAC;SACH;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACxB;IAEO,eAAe,CAAC,MAAuB;;QAC7C,MAAM,UAAU,SAAG,MAAM,CAAC,UAAU,mCAAI,EAAE,CAAC;QAC3C,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;;;YAG1B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC;YACnD,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,QAAQ,KAAK,CAAC,CAAC;SACzF;QACD,MAAM,aAAa,GAA6B;YAC9C,OAAO,EAAE;gBACP,UAAU,EAAE,IAAI;gBAChB,mBAAmB,EAAE,KAAK;gBAC1B,MAAM,EAAE;oBACN,OAAO,EAAE,CAAC,MAAM,CAAC,UAAU;iBAC5B;gBACD,MAAM,EAAE;oBACN,KAAK,EAAE,CAAC;4BACN,OAAO,EAAE,IAAI;4BACb,UAAU,EAAE;gCACV,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;gCACxB,WAAW,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;6BACjC;4BACD,KAAK,EAAE;gCACL,QAAQ,EAAE,CAAC,KAAsB,EAAE,KAAa;;oCAC9C,OAAO,OAAA,MAAM,CAAC,KAAK,0CAAE,MAAM,CAAC,KAAK,EAAE,KAAK,OAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;iCAC5G;6BACF;yBACF,CAAC;oBACF,KAAK,EAAE,CAAC;4BACN,OAAO,EAAE,IAAI;4BACb,KAAK,EAAE;gCACL,WAAW,QAAE,MAAM,CAAC,WAAW,mCAAI,IAAI;gCACvC,QAAQ,EAAE,CAAC,KAAsB,EAAE,KAAa;;oCAC9C,OAAO,OAAA,MAAM,CAAC,KAAK,0CAAE,MAAM,CAAC,KAAK,EAAE,KAAK,OAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;iCAC5G;6BACF;4BACD,UAAU,EAAE;gCACV,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;gCACxB,WAAW,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;6BACjC;yBACF,CAAC;iBACH;gBACD,QAAQ,EAAE;oBACR,SAAS,EAAE;wBACT,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI;;4BACvB,MAAM,YAAY,SAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,WAAW,CAAC,YAAY,2CAAG,KAAK,CAAC;4BACrE,MAAM,KAAK,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAW,CAAC;4BACxD,MAAM,KAAK,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,WAAW,CAAC,YAAY,2CAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAW,CAAC;4BAC1F,OAAO,OAAA,MAAM,CAAC,QAAQ,0CAAE,KAAK,CAAC;gCAC5B,YAAY;gCACZ,KAAK;gCACL,KAAK;6BACN,MAAK,GAAG,YAAY,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;yBACzD;qBACF;iBACF;aACF;YACD,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE;gBACJ,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;;oBACnC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBACvC,MAAM,MAAM,GAAwB;wBAClC,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,IAAI,EAAE,CAAC,CAAC,eAAe,uBAAI,IAAI,CAAC,kBAAkB,0CAAE,aAAa,0CAAG,GAAG,2CAAG,eAAe,CAAA,IAAI,YAAY;wBACzG,eAAe,EAAE,CAAC,CAAC,eAAe,uBAAI,IAAI,CAAC,kBAAkB,0CAAE,aAAa,0CAAG,GAAG,2CAAG,eAAe,CAAA,IAAI,YAAY;wBACpH,WAAW,EAAE,CAAC,CAAC,WAAW,uBAAI,IAAI,CAAC,kBAAkB,0CAAE,aAAa,0CAAG,GAAG,2CAAG,WAAW,CAAA,IAAI,YAAY;wBACxG,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,WAAW,EAAE,CAAC;qBACf,CAAC;oBACF,OAAO,MAAM,CAAC;iBACf,CAAC;aACH;SACF,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;YAC9B,aAAa,CAAC,OAAO,CAAC,QAAQ,mCACzB,aAAa,CAAC,OAAO,CAAC,QAAQ,KACjC,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,KAAK,GACjB,CAAC;YACF,aAAa,CAAC,OAAO,CAAC,KAAK,mCACtB,aAAa,CAAC,OAAO,CAAC,KAAK,KAC9B,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,KAAK,GACjB,CAAC;SACH;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACxB;IAEO,oBAAoB,CAAC,MAA4B;;QACvD,MAAM,UAAU,SAAG,MAAM,CAAC,UAAU,mCAAI,EAAE,CAAC;QAC3C,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;;;YAG1B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC;YACnD,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,QAAQ,KAAK,CAAC,CAAC;SACzF;QACD,MAAM,aAAa,GAA6B;YAC9C,OAAO,EAAE;gBACP,UAAU,EAAE,IAAI;gBAChB,mBAAmB,EAAE,KAAK;gBAC1B,MAAM,EAAE;oBACN,OAAO,EAAE,CAAC,MAAM,CAAC,UAAU;iBAC5B;gBACD,MAAM,EAAE;oBACN,KAAK,EAAE,CAAC;4BACN,OAAO,EAAE,IAAI;4BACb,UAAU,EAAE;gCACV,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;gCACxB,WAAW,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;6BACjC;4BACD,KAAK,EAAE;gCACL,QAAQ,EAAE,CAAC,KAAsB,EAAE,KAAa;;oCAC9C,OAAO,OAAA,MAAM,CAAC,KAAK,0CAAE,MAAM,CAAC,KAAK,EAAE,KAAK,OAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;iCAC5G;6BACF;yBACF,CAAC;oBACF,KAAK,EAAE,CAAC;4BACN,OAAO,EAAE,IAAI;4BACb,KAAK,EAAE;gCACL,WAAW,QAAE,MAAM,CAAC,WAAW,mCAAI,IAAI;gCACvC,QAAQ,EAAE,CAAC,KAAsB,EAAE,KAAa;;oCAC9C,OAAO,OAAA,MAAM,CAAC,KAAK,0CAAE,MAAM,CAAC,KAAK,EAAE,KAAK,OAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;iCAC5G;6BACF;4BACD,OAAO,EAAE,IAAI;4BACb,UAAU,EAAE;gCACV,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;gCACxB,WAAW,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;6BACjC;yBACF,CAAC;iBACH;gBACD,QAAQ,EAAE;oBACR,SAAS,EAAE;wBACT,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI;;4BACvB,MAAM,YAAY,SAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,WAAW,CAAC,YAAY,2CAAG,KAAK,CAAC;4BACrE,MAAM,KAAK,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAW,CAAC;4BACxD,MAAM,KAAK,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,WAAW,CAAC,YAAY,2CAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAW,CAAC;4BAC1F,OAAO,OAAA,MAAM,CAAC,QAAQ,0CAAE,KAAK,CAAC;gCAC5B,YAAY;gCACZ,KAAK;gCACL,KAAK;6BACN,MAAK,GAAG,YAAY,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;yBACzD;qBACF;iBACF;aACF;YACD,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE;gBACJ,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;;oBACnC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBACvC,MAAM,MAAM,GAAwB;wBAClC,KAAK,EAAE,CAAC,CAAC,KAAK;;wBAEd,eAAe,EAAE,CAAC,CAAC,eAAe,uBAAI,IAAI,CAAC,kBAAkB,0CAAE,aAAa,0CAAG,GAAG,2CAAG,eAAe,CAAA,IAAI,YAAY;wBACpH,WAAW,EAAE,CAAC,CAAC,WAAW,uBAAI,IAAI,CAAC,kBAAkB,0CAAE,aAAa,0CAAG,GAAG,2CAAG,WAAW,CAAA,IAAI,YAAY;wBACxG,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,WAAW,EAAE,CAAC;qBACf,CAAC;oBACF,OAAO,MAAM,CAAC;iBACf,CAAC;aACH;SACF,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;YAC9B,aAAa,CAAC,OAAO,CAAC,QAAQ,mCACzB,aAAa,CAAC,OAAO,CAAC,QAAQ,KACjC,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,KAAK,GACjB,CAAC;YACF,aAAa,CAAC,OAAO,CAAC,KAAK,mCACtB,aAAa,CAAC,OAAO,CAAC,KAAK,KAC9B,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,KAAK,GACjB,CAAC;SACH;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACxB;IAEO,kBAAkB,CAAC,MAA0B;;QACnD,MAAM,UAAU,SAAG,MAAM,CAAC,UAAU,mCAAI,EAAE,CAAC;QAC3C,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC1B,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC;YAC1E,IAAI,YAAY,IAAI,CAAC,EAAE;;;gBAGrB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC;gBACnD,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,QAAQ,KAAK,CAAC,CAAC;aACzF;iBAAM;;;gBAGL,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC;gBAClE,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,QAAQ,KAAK,CAAC,CAAC;aACzF;SACF;QACD,MAAM,MAAM,GAAG,IAAIA,EAAO,EAAE,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAIA,EAAO,EAAE,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,CAAC;gBACb,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,MAAM;gBAChB,EAAE,EAAE,MAAM;gBACV,KAAK,EAAE;oBACL,WAAW,QAAE,MAAM,CAAC,WAAW,mCAAI,IAAI;oBACvC,YAAY,EAAE,CAAC;oBACf,QAAQ,EAAE,CAAC,KAAsB,EAAE,KAAa;;wBAC9C,OAAO,OAAA,MAAM,CAAC,KAAK,0CAAE,MAAM,CAAC,KAAK,EAAE,KAAK,OAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;qBAC5G;iBACF;gBACD,UAAU,EAAE;oBACV,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;oBACxB,WAAW,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;iBACjC;gBACD,OAAO,EAAC,CAAC,CAAC,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,EAAE;YACnD,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,OAAO;gBACjB,EAAE,EAAE,OAAO;gBACX,KAAK,EAAE;oBACL,WAAW,QAAE,MAAM,CAAC,WAAW,mCAAI,IAAI;oBACvC,YAAY,EAAE,CAAC;oBACf,QAAQ,EAAE,CAAC,KAAsB,EAAE,KAAa;;wBAC9C,OAAO,OAAA,MAAM,CAAC,KAAK,0CAAE,WAAW,CAAC,KAAK,EAAE,KAAK,OAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;qBACjH;iBACF;gBACD,UAAU,EAAE;oBACV,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW;oBAC7B,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;iBACtC;gBACD,OAAO,EAAC,CAAC,CAAC,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAC;SACJ;QACD,MAAM,aAAa,GAA6B;YAC9C,OAAO,EAAE;gBACP,UAAU,EAAE,IAAI;gBAChB,mBAAmB,EAAE,KAAK;gBAC1B,MAAM,EAAE;oBACN,OAAO,EAAE,CAAC,MAAM,CAAC,UAAU;iBAC5B;gBACD,KAAK,EAAE;oBACL,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,MAAM,CAAC,KAAK;iBACnB;gBACD,MAAM,EAAE;oBACN,KAAK,EAAE,CAAC;4BACN,OAAO,EAAE,IAAI;4BACb,UAAU,EAAE;gCACV,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM;gCACxB,WAAW,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;6BACjC;4BACD,KAAK,EAAE;gCACL,QAAQ,EAAE,CAAC,KAAsB,EAAE,KAAa;;oCAC9C,OAAO,OAAA,MAAM,CAAC,KAAK,0CAAE,MAAM,CAAC,KAAK,EAAE,KAAK,OAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;iCAC5G;6BACF;4BACD,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ;yBAC3B,CAAC;oBACF,KAAK;iBACN;gBACD,QAAQ,EAAE;oBACR,SAAS,EAAE;wBACT,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI;;4BACvB,MAAM,YAAY,SAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,WAAW,CAAC,YAAY,2CAAG,KAAK,CAAC;4BACrE,MAAM,KAAK,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAW,CAAC;4BACxD,MAAM,KAAK,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,WAAW,CAAC,YAAY,2CAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAW,CAAC;4BAC1F,OAAO,OAAA,MAAM,CAAC,QAAQ,0CAAE,KAAK,CAAC;gCAC5B,YAAY;gCACZ,KAAK;gCACL,KAAK;6BACN,MAAK,GAAG,YAAY,GAAG,IAAI,YAAY,IAAI,GAAG,EAAE,IAAI,KAAK,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;yBAC9F;qBACF;iBACF;aACF;YACD,IAAI,EAAE;gBACJ,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG;;oBACnC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;oBACvC,MAAM,MAAM,GAAwB;wBAClC,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,IAAI,EAAE,CAAC,CAAC,eAAe,uBAAI,IAAI,CAAC,kBAAkB,0CAAE,aAAa,0CAAG,GAAG,2CAAG,eAAe,CAAA,IAAI,YAAY;wBACzG,eAAe,EAAE,CAAC,CAAC,eAAe,uBAAI,IAAI,CAAC,kBAAkB,0CAAE,aAAa,0CAAG,GAAG,2CAAG,eAAe,CAAA,IAAI,YAAY;wBACpH,WAAW,EAAE,CAAC,CAAC,WAAW,uBAAI,IAAI,CAAC,kBAAkB,0CAAE,aAAa,0CAAG,GAAG,2CAAG,WAAW,CAAA,IAAI,YAAY;wBACxG,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,OAAO,EAAE,CAAC,CAAC,MAAM,KAAK,OAAO,GAAG,OAAO,GAAG,MAAM;wBAChD,WAAW,EAAE,CAAC;wBACd,KAAK,QAAC,CAAC,CAAC,KAAK,mCAAI,CAAC;qBACnB,CAAC;oBACF,OAAO,MAAM,CAAC;iBACf,CAAC;aACH;SACF,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE;YAC9B,aAAa,CAAC,OAAO,CAAC,QAAQ,mCACzB,aAAa,CAAC,OAAO,CAAC,QAAQ,KACjC,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,KAAK,GACjB,CAAC;YACF,aAAa,CAAC,OAAO,CAAC,KAAK,mCACtB,aAAa,CAAC,OAAO,CAAC,KAAK,KAC9B,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,KAAK,GACjB,CAAC;SACH;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACxB;IAMD,IAAY,YAAY;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QAC1C,OAAO,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;KAC7C;;;YA3rBF,SAAS,SAAC;gBACT,QAAQ,EAAE,UAAU;gBACpB,mgBAAqC;;aAEtC;;;YArBwE,iBAAiB;4CA6CrF,QAAQ,YAAI,MAAM,SAAC,YAAY;;;0BAlBjC,KAAK;uBAOL,SAAS,SAAC,OAAO;8BACjB,SAAS,SAAC,cAAc;2BACxB,SAAS,SAAC,WAAW;wCACrB,SAAS,SAAC,wBAAwB;;;MCpBxB,aAAa;;;YAbzB,QAAQ,SAAC;gBACR,OAAO,EAAE;oBACP,YAAY;iBACb;gBACD,YAAY,EAAE;oBACZ,OAAO;iBACR;gBACD,OAAO,EAAE;oBACP,OAAO;iBACR;gBACD,SAAS,EAAE,EACV;aACF;;;AChBD;;;;;;"}
@@ -351,6 +351,201 @@ String.decrypt = (encripted) => {
351
351
  return JSON.parse(strs.join(''));
352
352
  };
353
353
 
354
+ /**
355
+ *
356
+ * detectIncognito v1.3.0 - (c) 2022 Joe Rutkowski <Joe@dreggle.com> (https://github.com/Joe12387/detectIncognito)
357
+ *
358
+ **/
359
+ const detectIncognito = () => {
360
+ return new Promise((resolve, reject) => {
361
+ let browserName = 'Unknown';
362
+ function __callback(isPrivate) {
363
+ resolve({
364
+ isPrivate,
365
+ browserName,
366
+ });
367
+ }
368
+ function identifyChromium() {
369
+ const ua = navigator.userAgent;
370
+ if (ua.match(/Chrome/)) {
371
+ if (navigator.brave !== undefined) {
372
+ return 'Brave';
373
+ }
374
+ else if (ua.match(/Edg/)) {
375
+ return 'Edge';
376
+ }
377
+ else if (ua.match(/OPR/)) {
378
+ return 'Opera';
379
+ }
380
+ return 'Chrome';
381
+ }
382
+ else {
383
+ return 'Chromium';
384
+ }
385
+ }
386
+ function assertEvalToString(value) {
387
+ return value === eval.toString().length;
388
+ }
389
+ function isSafari() {
390
+ const v = navigator.vendor;
391
+ return (v !== undefined && v.indexOf('Apple') === 0 && assertEvalToString(37));
392
+ }
393
+ function isChrome() {
394
+ const v = navigator.vendor;
395
+ return (v !== undefined && v.indexOf('Google') === 0 && assertEvalToString(33));
396
+ }
397
+ function isFirefox() {
398
+ return (document.documentElement !== undefined &&
399
+ document.documentElement.style.MozAppearance !== undefined &&
400
+ assertEvalToString(37));
401
+ }
402
+ function isMSIE() {
403
+ return (navigator.msSaveBlob !== undefined && assertEvalToString(39));
404
+ }
405
+ /**
406
+ * Safari (Safari for iOS & macOS)
407
+ **/
408
+ function newSafariTest() {
409
+ // tslint:disable-next-line:variable-name
410
+ const tmp_name = String(Math.random());
411
+ try {
412
+ const db = window.indexedDB.open(tmp_name, 1);
413
+ db.onupgradeneeded = (i) => {
414
+ var _a, _b;
415
+ // @ts-ignore
416
+ const res = (_a = i.target) === null || _a === void 0 ? void 0 : _a.result;
417
+ try {
418
+ res.createObjectStore('test', {
419
+ autoIncrement: true,
420
+ }).put(new Blob);
421
+ __callback(false);
422
+ }
423
+ catch (e) {
424
+ let message = e;
425
+ if (e instanceof Error) {
426
+ message = (_b = e.message) !== null && _b !== void 0 ? _b : e;
427
+ }
428
+ if (typeof message !== 'string') {
429
+ return __callback(false);
430
+ }
431
+ const matchesExpectedError = /BlobURLs are not yet supported/.test(message);
432
+ return __callback(matchesExpectedError);
433
+ }
434
+ finally {
435
+ res.close();
436
+ window.indexedDB.deleteDatabase(tmp_name);
437
+ }
438
+ };
439
+ }
440
+ catch (e) {
441
+ return __callback(false);
442
+ }
443
+ }
444
+ function oldSafariTest() {
445
+ const openDB = window.openDatabase;
446
+ const storage = window.localStorage;
447
+ try {
448
+ openDB(null, null, null, null);
449
+ }
450
+ catch (e) {
451
+ return __callback(true);
452
+ }
453
+ try {
454
+ storage.setItem('test', '1');
455
+ storage.removeItem('test');
456
+ }
457
+ catch (e) {
458
+ return __callback(true);
459
+ }
460
+ return __callback(false);
461
+ }
462
+ function safariPrivateTest() {
463
+ if (navigator.maxTouchPoints !== undefined) {
464
+ newSafariTest();
465
+ }
466
+ else {
467
+ oldSafariTest();
468
+ }
469
+ }
470
+ /**
471
+ * Chrome
472
+ **/
473
+ function getQuotaLimit() {
474
+ const w = window;
475
+ if (w.performance !== undefined &&
476
+ w.performance.memory !== undefined &&
477
+ w.performance.memory.jsHeapSizeLimit !== undefined) {
478
+ return performance.memory.jsHeapSizeLimit;
479
+ }
480
+ return 1073741824;
481
+ }
482
+ // >= 76
483
+ function storageQuotaChromePrivateTest() {
484
+ navigator.webkitTemporaryStorage.queryUsageAndQuota((_, quota) => {
485
+ const quotaInMib = Math.round(quota / (1024 * 1024));
486
+ const quotaLimitInMib = Math.round(getQuotaLimit() / (1024 * 1024)) * 2;
487
+ __callback(quotaInMib < quotaLimitInMib);
488
+ }, (e) => {
489
+ reject(new Error('detectIncognito somehow failed to query storage quota: ' +
490
+ e.message));
491
+ });
492
+ }
493
+ // 50 to 75
494
+ function oldChromePrivateTest() {
495
+ const fs = window.webkitRequestFileSystem;
496
+ const success = () => {
497
+ __callback(false);
498
+ };
499
+ const error = () => {
500
+ __callback(true);
501
+ };
502
+ fs(0, 1, success, error);
503
+ }
504
+ function chromePrivateTest() {
505
+ if (self.Promise !== undefined && self.Promise.allSettled !== undefined) {
506
+ storageQuotaChromePrivateTest();
507
+ }
508
+ else {
509
+ oldChromePrivateTest();
510
+ }
511
+ }
512
+ /**
513
+ * Firefox
514
+ **/
515
+ function firefoxPrivateTest() {
516
+ __callback(navigator.serviceWorker === undefined);
517
+ }
518
+ /**
519
+ * MSIE
520
+ **/
521
+ function msiePrivateTest() {
522
+ __callback(window.indexedDB === undefined);
523
+ }
524
+ function main() {
525
+ if (isSafari()) {
526
+ browserName = 'Safari';
527
+ safariPrivateTest();
528
+ }
529
+ else if (isChrome()) {
530
+ browserName = identifyChromium();
531
+ chromePrivateTest();
532
+ }
533
+ else if (isFirefox()) {
534
+ browserName = 'Firefox';
535
+ firefoxPrivateTest();
536
+ }
537
+ else if (isMSIE()) {
538
+ browserName = 'Internet Explorer';
539
+ msiePrivateTest();
540
+ }
541
+ else {
542
+ reject(new Error('detectIncognito cannot determine the browser'));
543
+ }
544
+ }
545
+ main();
546
+ });
547
+ };
548
+
354
549
  const upload = (option) => {
355
550
  const uploadId = 'U1e09c1c0-b647-437e-995e-d7a1a1b60550';
356
551
  const promise = new Promise((resolve, reject) => {
@@ -489,13 +684,19 @@ const allWithPaging = (func, defaultPageSize) => __awaiter(void 0, void 0, void
489
684
  }
490
685
  });
491
686
  const ɵ6 = allWithPaging;
687
+ const isPrivateMode = () => __awaiter(void 0, void 0, void 0, function* () {
688
+ const check = yield detectIncognito();
689
+ return check.isPrivate;
690
+ });
691
+ const ɵ7 = isPrivateMode;
492
692
  var SdUtility = {
493
693
  upload,
494
694
  download,
495
695
  downloadBlob,
496
696
  changeAliasLowerCase,
497
697
  copyToClipboard,
498
- allWithPaging
698
+ allWithPaging,
699
+ isPrivateMode,
499
700
  };
500
701
  globalThis.SdUtility = SdUtility;
501
702