angular-chrts 1.0.0-beta.1

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"angular-chrts.mjs","sources":["../../../projects/lib/src/lib/types/index.ts","../../../projects/lib/src/lib/tooltip/tooltip.component.ts","../../../projects/lib/src/lib/utils.ts","../../../projects/lib/src/lib/area-chart/area-chart.component.ts","../../../projects/lib/src/lib/line-chart/line-chart.component.ts","../../../projects/lib/src/lib/bar-chart/bar-chart.component.ts","../../../projects/lib/src/lib/donut-chart/donut-chart.component.ts","../../../projects/lib/src/lib/bubble-chart/bubble-chart.component.ts","../../../projects/lib/src/lib/gantt-chart/gantt-chart.component.ts","../../../projects/lib/src/public-api.ts","../../../projects/lib/src/angular-chrts.ts"],"sourcesContent":["export enum LegendPosition {\n TopLeft = \"top-left\",\n TopCenter = \"top-center\",\n TopRight = \"top-right\",\n BottomLeft = \"bottom-left\",\n BottomCenter = \"bottom-center\",\n BottomRight = \"bottom-right\",\n}\n\nexport enum CurveType {\n Basis = \"basis\",\n BasisClosed = \"basisClosed\",\n BasisOpen = \"basisOpen\",\n Bundle = \"bundle\",\n Cardinal = \"cardinal\",\n CardinalClosed = \"cardinalClosed\",\n CardinalOpen = \"cardinalOpen\",\n CatmullRom = \"catmullRom\",\n CatmullRomClosed = \"catmullRomClosed\",\n CatmullRomOpen = \"catmullRomOpen\",\n Linear = \"linear\",\n LinearClosed = \"linearClosed\",\n MonotoneX = \"monotoneX\",\n MonotoneY = \"monotoneY\",\n Natural = \"natural\",\n Step = \"step\",\n StepAfter = \"stepAfter\",\n StepBefore = \"stepBefore\",\n}\n\nexport enum Orientation {\n Horizontal = \"horizontal\",\n Vertical = \"vertical\",\n}\n\nexport enum DonutType {\n Half = \"half\",\n Full = \"full\",\n}\n\nexport type {\n BulletLegendItemInterface,\n axisFormatter,\n AxisConfig,\n MarkerConfig,\n CrosshairConfig\n} from \"@vue-chrts/shared\";\n\nexport type AreaChartCategory = import(\"@vue-chrts/shared\").BulletLegendItemInterface;\n\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BulletLegendItemInterface, axisFormatter } from '../types';\n\n@Component({\n selector: 'ngx-tooltip',\n standalone: true,\n imports: [],\n template: `\n <div [style]=\"containerStyle\">\n @if (titleFormat()) {\n <div [style]=\"titleStyle\">\n {{ titleFormat() }}\n </div>\n }\n <div [style]=\"contentStyle\">\n @for (entry of visibleEntries(); track entry.key; let i = $index) {\n <span [style]=\"getDotStyle(entry.key, i)\"></span>\n <span [style]=\"labelStyle\">\n {{ categories()[entry.key].name }}\n </span>\n <span [style]=\"valueStyle\">\n {{ yFormatter() ? yFormatter()!(entry.value, i, []) : entry.value }}\n </span>\n }\n </div>\n </div>\n `,\n styles: [`\n :host {\n display: block;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TooltipComponent<T extends Record<string, any>> {\n readonly data = input.required<T>();\n readonly categories = input.required<Record<string, BulletLegendItemInterface>>();\n readonly titleFormatter = input<(data: T) => string | number>();\n readonly yFormatter = input<axisFormatter>();\n\n readonly titleFormat = computed(() => {\n const data = this.data();\n const formatter = this.titleFormatter();\n if (formatter) return formatter(data);\n \n // getFirstPropertyValue equivalent\n if (data && Object.keys(data).length > 0) {\n const firstKey = Object.keys(data)[0];\n return data[firstKey];\n }\n return undefined;\n });\n\n private readonly keyBlockList = ['_index', '_stacked', '_ending'];\n\n readonly visibleEntries = computed(() => {\n const data = this.data();\n const categories = this.categories();\n return Object.entries(data ?? {})\n .filter(([key]) => !this.keyBlockList.includes(key) && Object.keys(categories).includes(key))\n .map(([key, value]) => ({ key, value }));\n });\n\n readonly containerStyle = {\n display: 'flex',\n flexDirection: 'column',\n padding: '0px',\n margin: '0px'\n };\n\n readonly titleStyle = {\n color: 'var(--vis-tooltip-title-color, #000)',\n textTransform: 'var(--vis-tooltip-title-text-transform, capitalize)',\n borderBottom: 'var(--vis-tooltip-title-border-bottom, 1px solid #e5e7eb)',\n padding: 'var(--vis-tooltip-title-padding, 0.75rem 0.75rem 0.5rem 0.75rem)',\n margin: 'var(--vis-tooltip-title-margin, 0 0 0.25rem 0)',\n fontSize: 'var(--vis-tooltip-title-font-size, 0.875rem)',\n lineHeight: 'var(--vis-tooltip-title-line-height, 100%)',\n fontWeight: 'var(--vis-tooltip-title-font-weight, 600)',\n };\n\n readonly contentStyle = {\n display: 'grid',\n gridTemplateColumns: 'auto 1fr auto',\n alignItems: 'center',\n gap: 'var(--vis-tooltip-content-gap, 0.25rem 0.5rem)',\n padding: 'var(--vis-tooltip-content-padding, 0 0.75rem 0.5rem 0.75rem)',\n };\n\n readonly labelStyle = {\n fontWeight: 'var(--vis-tooltip-label-font-weight, 400)',\n fontSize: 'var(--vis-tooltip-label-font-size, 0.875rem)',\n color: 'var(--vis-tooltip-label-color, inherit)',\n margin: 'var(--vis-tooltip-label-margin, 0 1rem 0 0)',\n whiteSpace: 'nowrap',\n };\n\n readonly valueStyle = {\n fontSize: 'var(--vis-tooltip-value-font-size, 0.875rem)',\n fontWeight: 'var(--vis-tooltip-value-font-weight, 600)',\n color: 'var(--vis-tooltip-value-color, inherit)',\n textAlign: 'right',\n fontVariantNumeric: 'tabular-nums',\n };\n\n getDotStyle(key: string, index: number) {\n const category = this.categories()[key];\n const color = (category && typeof category.color === 'string') \n ? category.color \n : `var(--vis-color${index})`;\n \n return {\n width: '8px',\n height: '8px',\n aspectRatio: '1',\n borderRadius: 'var(--vis-tooltip-dot-border-radius, 4px)',\n margin: 'var(--vis-tooltip-dot-margin, 0)',\n flexShrink: '0',\n backgroundColor: color,\n };\n }\n}\n","import { MarkerConfig } from './types';\n\nexport function getDistributedIndices(length: number, numTicks: number) {\n // Handle edge cases\n if (numTicks <= 0) return [];\n\n // If numTicks >= length, return all indices\n if (numTicks >= length) {\n return Array.from({ length }, (_, i) => i);\n }\n\n // Special case: if numTicks is 1, return only the middle index\n if (numTicks === 1) {\n return [Math.floor((length - 1) / 2)];\n }\n\n // For 2 ticks, just return first and last\n if (numTicks === 2) {\n return [0, length - 1];\n }\n\n // For 3 or more ticks, we need to ensure perfectly even distribution\n const indices = [];\n\n // We'll manually calculate the indices to ensure perfect distribution\n for (let i = 0; i < numTicks; i++) {\n // This formula ensures perfect distribution of indices\n const index = Math.round((i * (length - 1)) / (numTicks - 1));\n indices.push(index);\n }\n\n return indices;\n}\n\nexport function getFirstPropertyValue(obj: any) {\n if (obj && Object.keys(obj).length > 0) {\n const firstKey = Object.keys(obj)[0];\n return obj[firstKey];\n }\n return undefined;\n}\n\nexport const markerShape = (\n type: string,\n size: number,\n strokeWidth: number,\n color: string,\n strokeColor: string\n) => {\n switch (type) {\n case 'circle':\n return `<circle cx=\"${size / 2}\" cy=\"${size / 2}\" r=\"${\n (size - strokeWidth) / 2\n }\" stroke-width=\"${strokeWidth}\" stroke=\"${strokeColor}\" fill=\"${color}\" />`;\n case 'square':\n return `<rect x=\"${strokeWidth / 2}\" y=\"${strokeWidth / 2}\" width=\"${\n size - strokeWidth\n }\" height=\"${\n size - strokeWidth\n }\" stroke-width=\"${strokeWidth}\" stroke=\"${strokeColor}\" fill=\"${color}\" />`;\n case 'triangle':\n return `<polygon points=\"${size / 2},${strokeWidth / 2} ${\n size - strokeWidth / 2\n },${size - strokeWidth / 2} ${strokeWidth / 2},${\n size - strokeWidth / 2\n }\" stroke-width=\"${strokeWidth}\" stroke=\"${strokeColor}\" fill=\"${color}\" />`;\n case 'diamond':\n return `<polygon points=\"${size / 2},${strokeWidth / 2} ${\n size - strokeWidth / 2\n },${size / 2} ${size / 2},${size - strokeWidth / 2} ${strokeWidth / 2},${\n size / 2\n }\" stroke-width=\"${strokeWidth}\" stroke=\"${strokeColor}\" fill=\"${color}\" />`;\n default:\n return '';\n }\n};\n\nexport function createMarkers(markerConfig: MarkerConfig) {\n const makeMarker = (id: string, cfg: any) => {\n const type = cfg.type || 'circle';\n const size = cfg.size || 10;\n const strokeWidth = cfg.strokeWidth || 2;\n const color = cfg.color || '#000';\n const strokeColor = cfg.strokeColor || cfg.color || '#000';\n return `<marker id=\"${id}\" viewBox=\"0 0 ${size} ${size}\" refX=\"${size / 2}\" refY=\"${\n size / 2\n }\" markerWidth=\"${size / 2}\" markerHeight=\"${size / 2}\" orient=\"auto\">\n ${markerShape(type, size, strokeWidth, color, strokeColor)}\n </marker>`;\n };\n\n return Object.entries(markerConfig.config)\n .map(([key, cfg]) => {\n const legacyId = `${markerConfig.id}-${key}`;\n return makeMarker(legacyId, cfg);\n })\n .join('\\n');\n}\n\nexport function logPremiumUpgradeMessage() {\n // Logic for premium upgrade message\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n VisXYContainerModule,\n VisAreaModule,\n VisAxisModule,\n VisLineModule,\n VisTooltipModule,\n VisCrosshairModule,\n VisBulletLegendModule,\n} from '@unovis/angular';\nimport { CurveType, Position } from '@unovis/ts';\nimport { LegendPosition } from '../types';\nimport { TooltipComponent } from '../tooltip/tooltip.component';\nimport { createMarkers } from '../utils';\n\n@Component({\n selector: 'ngx-area-chart',\n standalone: true,\n imports: [\n CommonModule,\n VisXYContainerModule,\n VisAreaModule,\n VisAxisModule,\n VisLineModule,\n VisTooltipModule,\n VisCrosshairModule,\n VisBulletLegendModule,\n TooltipComponent,\n ],\n template: `\n <div\n [style.display]=\"'flex'\"\n [style.flexDirection]=\"isLegendTop() ? 'column-reverse' : 'column'\"\n [style.gap]=\"'var(--vis-legend-spacing)'\"\n [style]=\"markerCssVars()\"\n [class.stacked-area-chart]=\"stacked()\"\n [id]=\"markerConfig()?.id\"\n (click)=\"onClick($event)\"\n >\n <vis-xy-container\n [data]=\"data()\"\n [height]=\"height()\"\n [padding]=\"padding()\"\n [yDomain]=\"yDomain()\"\n [xDomain]=\"xDomain()\"\n >\n @if (!hideTooltip()) {\n <vis-tooltip\n [horizontalPlacement]=\"Position.Right\"\n [verticalPlacement]=\"Position.Top\"\n ></vis-tooltip>\n }\n\n @if (stacked()) {\n <vis-area\n [x]=\"_x\"\n [y]=\"stackedYAccessors()\"\n [color]=\"stackedColorAccessor\"\n [opacity]=\"hideArea() ? 0 : DEFAULT_OPACITY\"\n [curveType]=\"curveType() || CurveType.MonotoneX\"\n ></vis-area>\n <vis-line\n [x]=\"_x\"\n [y]=\"stackedLineYAccessors()\"\n [color]=\"stackedColorAccessor\"\n [curveType]=\"curveType() || CurveType.MonotoneX\"\n [lineWidth]=\"lineWidth()\"\n ></vis-line>\n } @else {\n @for (categoryId of categoryKeys(); track categoryId; let i = $index) {\n <vis-area\n [x]=\"_x\"\n [y]=\"getYAccessor(categoryId)\"\n [color]=\"getGradientSelector(i)\"\n [opacity]=\"hideArea() ? 0 : DEFAULT_OPACITY\"\n [curveType]=\"curveType() || CurveType.MonotoneX\"\n ></vis-area>\n <vis-line\n [x]=\"_x\"\n [y]=\"getYAccessor(categoryId)\"\n [color]=\"colors()[i]\"\n [curveType]=\"curveType() || CurveType.MonotoneX\"\n [lineWidth]=\"lineWidth()\"\n [lineDashArray]=\"lineDashArray() ? lineDashArray()![i] : undefined\"\n ></vis-line>\n }\n }\n\n @if (!hideXAxis()) {\n <vis-axis\n type=\"x\"\n [label]=\"xLabel()\"\n [labelMargin]=\"8\"\n [numTicks]=\"xNumTicks()\"\n [tickFormat]=\"xFormatter()\"\n [tickValues]=\"xExplicitTicks()\"\n [gridLine]=\"xGridLine()\"\n [domainLine]=\"xDomainLine()\"\n [tickLine]=\"xTickLine()\"\n [minMaxTicksOnly]=\"minMaxTicksOnly()\"\n ></vis-axis>\n }\n\n @if (!hideYAxis()) {\n <vis-axis\n type=\"y\"\n [label]=\"yLabel()\"\n [numTicks]=\"yNumTicks()\"\n [tickFormat]=\"yFormatter()\"\n [gridLine]=\"yGridLine()\"\n [domainLine]=\"yDomainLine()\"\n [tickLine]=\"yTickLine()\"\n ></vis-axis>\n }\n\n @if (!hideTooltip()) {\n <vis-crosshair\n [template]=\"onCrosshairUpdate\"\n ></vis-crosshair>\n }\n </vis-xy-container>\n\n @if (!hideLegend()) {\n <div\n [style.display]=\"'flex'\"\n [style.justifyContent]=\"legendAlignment()\"\n >\n <vis-bullet-legend\n [style]=\"legendStyle()\"\n [items]=\"legendItems()\"\n ></vis-bullet-legend>\n </div>\n }\n\n <div #tooltipWrapper style=\"display: none\">\n @if (hoverValues()) {\n <ngx-tooltip\n [data]=\"hoverValues()!\"\n [categories]=\"categories()\"\n [titleFormatter]=\"tooltipTitleFormatter()\"\n [yFormatter]=\"yFormatter()\"\n ></ngx-tooltip>\n }\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AreaChartComponent<T extends Record<string, any>> {\n readonly data = input.required<T[]>();\n readonly height = input<number>(400);\n readonly padding = input<{ top: number; right: number; bottom: number; left: number }>({\n top: 5,\n right: 5,\n bottom: 5,\n left: 5,\n });\n readonly categories = input.required<Record<string, any>>();\n readonly stacked = input<boolean>(false);\n readonly hideArea = input<boolean>(false);\n readonly curveType = input<CurveType>();\n readonly lineWidth = input<number>(2);\n readonly lineDashArray = input<number[][]>();\n readonly xLabel = input<string>();\n readonly yLabel = input<string>();\n readonly xFormatter = input<any>();\n readonly yFormatter = input<any>();\n readonly xNumTicks = input<number>();\n readonly xExplicitTicks = input<any[]>();\n readonly minMaxTicksOnly = input<boolean>(false);\n readonly yNumTicks = input<number>();\n readonly hideXAxis = input<boolean>(false);\n readonly hideYAxis = input<boolean>(false);\n readonly xGridLine = input<boolean>(false);\n readonly yGridLine = input<boolean>(false);\n readonly xDomainLine = input<boolean>(false);\n readonly yDomainLine = input<boolean>(false);\n readonly xTickLine = input<boolean>(false);\n readonly yTickLine = input<boolean>(false);\n readonly hideTooltip = input<boolean>(false);\n readonly hideLegend = input<boolean>(false);\n readonly legendPosition = input<LegendPosition>(LegendPosition.BottomCenter);\n readonly legendStyle = input<Record<string, string>>();\n readonly tooltipStyle = input<Record<string, string>>({});\n readonly tooltipTitleFormatter = input<(data: T) => string | number>();\n readonly markerConfig = input<any>();\n readonly gradientStops = input<Array<{ offset: string; stopOpacity: number }>>([\n { offset: '0%', stopOpacity: 1 },\n { offset: '75%', stopOpacity: 0 },\n ]);\n readonly yDomain = input<[number, number]>();\n readonly xDomain = input<[number, number]>();\n\n readonly click = output<{ event: MouseEvent; values?: T }>();\n\n readonly tooltipWrapper = viewChild<ElementRef<HTMLDivElement>>('tooltipWrapper');\n readonly hoverValues = signal<T | undefined>(undefined);\n\n readonly DEFAULT_OPACITY = 0.5;\n readonly DEFAULT_COLOR = '#3b82f6';\n readonly Position = Position;\n readonly CurveType = CurveType;\n\n readonly categoryKeys = computed(() => Object.keys(this.categories()));\n \n readonly colors = computed(() => {\n const cats = this.categories();\n return Object.keys(cats).map((key, index) => {\n return cats[key].color ?? `var(--vis-color${index})`;\n });\n });\n\n readonly isLegendTop = computed(() => this.legendPosition().startsWith('top'));\n \n readonly legendAlignment = computed(() => {\n const pos = this.legendPosition();\n if (pos.includes('left')) return 'flex-start';\n if (pos.includes('right')) return 'flex-end';\n return 'center';\n });\n\n readonly legendItems = computed(() => {\n return Object.values(this.categories()).map((item) => ({\n ...item,\n color: Array.isArray(item.color) ? item.color[0] : item.color,\n }));\n });\n\n readonly svgDefs = computed(() => {\n const stops = this.gradientStops();\n const colors = this.colors();\n \n return colors.map((color, index) => {\n const id = `gradient-${index}-${color.replace(/#/g, '')}`;\n return `\n <linearGradient id=\"${id}\" gradientTransform=\"rotate(90)\">\n ${stops.map(stop => `\n <stop offset=\"${stop.offset}\" stop-color=\"${color}\" stop-opacity=\"${stop.stopOpacity}\" />\n `).join('')}\n <stop offset=\"100%\" stop-color=\"${color}\" stop-opacity=\"0\" />\n </linearGradient>\n `;\n }).join('');\n });\n\n readonly stackedYAccessors = computed(() => {\n const keys = this.categoryKeys();\n return keys.map(key => (d: T) => Number(d[key]));\n });\n\n readonly stackedLineYAccessors = computed(() => {\n const keys = this.categoryKeys();\n return keys.map((_, index) => {\n return (d: T) => {\n let sum = 0;\n for (let i = 0; i <= index; i++) {\n sum += Number(d[keys[i]]) || 0;\n }\n return sum;\n };\n });\n });\n\n readonly markerSvgDefs = computed(() => {\n const config = this.markerConfig();\n if (!config?.config) return '';\n return createMarkers(config);\n });\n\n readonly markerCssVars = computed(() => {\n const config = this.markerConfig();\n if (!config?.config) return {};\n\n const vars: Record<string, string> = {};\n for (const key of Object.keys(config.config)) {\n vars[`--vis-marker-${key}`] = `url(\"#${config.id}-${key}\")`;\n }\n return vars;\n });\n\n readonly stackedColorAccessor: any = (_d: any, i: number) => this.colors()[i] ?? this.DEFAULT_COLOR;\n\n _x: any = (_: any, i: number) => i;\n\n getYAccessor(categoryId: string): any {\n return (d: T) => Number(d[categoryId]);\n }\n\n getGradientSelector(index: number): any {\n const color = this.colors()[index];\n const id = `gradient-${index}-${color.replace(/#/g, '')}`;\n return `url(#${id})`;\n }\n\n onCrosshairUpdate = (d: T): string => {\n this.hoverValues.set(d);\n this.cdr.detectChanges();\n return this.tooltipWrapper()?.nativeElement.innerHTML || '';\n };\n\n onClick(event: MouseEvent) {\n this.click.emit({ event, values: this.hoverValues() });\n }\n\n private cdr = inject(ChangeDetectorRef);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n input,\n output,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CurveType } from '@unovis/ts';\nimport { AreaChartComponent } from '../area-chart/area-chart.component';\nimport { LegendPosition, axisFormatter, AxisConfig, MarkerConfig, BulletLegendItemInterface } from '../types';\n\n@Component({\n selector: 'ngx-line-chart',\n standalone: true,\n imports: [CommonModule, AreaChartComponent],\n template: `\n <ngx-area-chart\n [data]=\"data()\"\n [height]=\"height()\"\n [padding]=\"padding()\"\n [categories]=\"categories()\"\n [stacked]=\"stacked()\"\n [hideArea]=\"true\"\n [curveType]=\"curveType()\"\n [lineWidth]=\"lineWidth()\"\n [lineDashArray]=\"lineDashArray()\"\n [xLabel]=\"xLabel()\"\n [yLabel]=\"yLabel()\"\n [xFormatter]=\"xFormatter()\"\n [yFormatter]=\"yFormatter()\"\n [xNumTicks]=\"xNumTicks()\"\n [xExplicitTicks]=\"xExplicitTicks()\"\n [minMaxTicksOnly]=\"minMaxTicksOnly()\"\n [yNumTicks]=\"yNumTicks()\"\n [hideXAxis]=\"hideXAxis()\"\n [hideYAxis]=\"hideYAxis()\"\n [xGridLine]=\"xGridLine()\"\n [yGridLine]=\"yGridLine()\"\n [xDomainLine]=\"xDomainLine()\"\n [yDomainLine]=\"yDomainLine()\"\n [xTickLine]=\"xTickLine()\"\n [yTickLine]=\"yTickLine()\"\n [hideTooltip]=\"hideTooltip()\"\n [hideLegend]=\"hideLegend()\"\n [legendPosition]=\"legendPosition()\"\n [legendStyle]=\"legendStyle()\"\n [tooltipTitleFormatter]=\"tooltipTitleFormatter()\"\n [markerConfig]=\"markerConfig()\"\n [yDomain]=\"yDomain()\"\n [xDomain]=\"xDomain()\"\n (click)=\"click.emit($event)\"\n ></ngx-area-chart>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LineChartComponent<T extends Record<string, any>> {\n readonly data = input.required<T[]>();\n readonly height = input<number>(400);\n readonly padding = input<{ top: number; right: number; bottom: number; left: number }>({\n top: 5,\n right: 5,\n bottom: 5,\n left: 5,\n });\n readonly categories = input.required<Record<string, BulletLegendItemInterface>>();\n readonly stacked = input<boolean>(false);\n readonly curveType = input<CurveType>();\n readonly lineWidth = input<number>(2);\n readonly lineDashArray = input<number[][]>();\n readonly xLabel = input<string>();\n readonly yLabel = input<string>();\n readonly xFormatter = input<axisFormatter>();\n readonly yFormatter = input<axisFormatter>();\n readonly xNumTicks = input<number>();\n readonly xExplicitTicks = input<any[]>();\n readonly minMaxTicksOnly = input<boolean>(false);\n readonly yNumTicks = input<number>();\n readonly hideXAxis = input<boolean>(false);\n readonly hideYAxis = input<boolean>(false);\n readonly xGridLine = input<boolean>(false);\n readonly yGridLine = input<boolean>(false);\n readonly xDomainLine = input<boolean>(false);\n readonly yDomainLine = input<boolean>(false);\n readonly xTickLine = input<boolean>(false);\n readonly yTickLine = input<boolean>(false);\n readonly hideTooltip = input<boolean>(false);\n readonly hideLegend = input<boolean>(false);\n readonly legendPosition = input<LegendPosition>(LegendPosition.BottomCenter);\n readonly legendStyle = input<Record<string, string>>();\n readonly tooltipTitleFormatter = input<(data: T) => string | number>();\n readonly markerConfig = input<MarkerConfig>();\n readonly yDomain = input<[number, number]>();\n readonly xDomain = input<[number, number]>();\n\n readonly click = output<{ event: MouseEvent; values?: T }>();\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n VisXYContainerModule,\n VisAxisModule,\n VisTooltipModule,\n VisBulletLegendModule,\n VisGroupedBarModule,\n VisStackedBarModule,\n} from '@unovis/angular';\nimport { GroupedBar, Orientation, StackedBar } from '@unovis/ts';\nimport { LegendPosition, BulletLegendItemInterface, AxisConfig } from '../types';\nimport { TooltipComponent } from '../tooltip/tooltip.component';\nimport { ValueLabel } from './types';\n\n@Component({\n selector: 'ngx-bar-chart',\n standalone: true,\n imports: [\n CommonModule,\n VisXYContainerModule,\n VisAxisModule,\n VisTooltipModule,\n VisBulletLegendModule,\n VisGroupedBarModule,\n VisStackedBarModule,\n TooltipComponent,\n ],\n template: `\n <div\n [style.display]=\"'flex'\"\n [style.flexDirection]=\"isLegendTop() ? 'column-reverse' : 'column'\"\n [style.gap]=\"'var(--vis-legend-spacing)'\"\n (click)=\"onClick($event)\"\n >\n <vis-xy-container\n [data]=\"data()\"\n [height]=\"height()\"\n [padding]=\"padding()\"\n >\n <vis-tooltip\n [triggers]=\"tooltipTriggers\"\n ></vis-tooltip>\n\n @if (!stacked()) {\n <vis-grouped-bar\n [data]=\"data()\"\n [x]=\"_x\"\n [y]=\"yAccessors()\"\n [color]=\"colorAccessor\"\n [roundedCorners]=\"radius() ?? 0\"\n [groupPadding]=\"groupPadding()\"\n [barPadding]=\"barPadding()\"\n [orientation]=\"orientation()\"\n ></vis-grouped-bar>\n } @else {\n <vis-stacked-bar\n [data]=\"data()\"\n [x]=\"_x\"\n [y]=\"yAccessors()\"\n [color]=\"colorAccessor\"\n [roundedCorners]=\"radius() ?? 0\"\n [barPadding]=\"barPadding()\"\n [orientation]=\"orientation()\"\n ></vis-stacked-bar>\n }\n\n @if (!hideXAxis()) {\n <vis-axis\n type=\"x\"\n [label]=\"xLabel()\"\n [tickFormat]=\"xFormatterFn\"\n [gridLine]=\"xGridLine()\"\n [domainLine]=\"!!xDomainLine()\"\n [tickLine]=\"xTickLine()\"\n [numTicks]=\"xNumTicks()\"\n [tickValues]=\"xExplicitTicks()\"\n [minMaxTicksOnly]=\"minMaxTicksOnly()\"\n ></vis-axis>\n }\n\n @if (!hideYAxis()) {\n <vis-axis\n type=\"y\"\n [label]=\"yLabel()\"\n [tickFormat]=\"yFormatterFn\"\n [gridLine]=\"orientation() !== Orientation.Horizontal && yGridLine()\"\n [domainLine]=\"!!yDomainLine()\"\n [numTicks]=\"yNumTicks()\"\n [tickLine]=\"yTickLine()\"\n ></vis-axis>\n }\n </vis-xy-container>\n\n @if (!hideLegend()) {\n <div\n [style.display]=\"'flex'\"\n [style.justifyContent]=\"legendAlignment()\"\n >\n <vis-bullet-legend\n [items]=\"legendItems()\"\n ></vis-bullet-legend>\n </div>\n }\n\n <div #tooltipWrapper style=\"display: none\">\n @if (hoverValues()) {\n <ngx-tooltip\n [data]=\"hoverValues()!\"\n [categories]=\"categories()\"\n [titleFormatter]=\"tooltipTitleFormatter()\"\n [yFormatter]=\"orientation() === Orientation.Horizontal ? xFormatter() : yFormatter()\"\n ></ngx-tooltip>\n }\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BarChartComponent<T extends Record<string, any>> {\n readonly data = input.required<T[]>();\n readonly height = input<number>(400);\n readonly padding = input<{ top: number; right: number; bottom: number; left: number }>({\n top: 5,\n right: 5,\n bottom: 5,\n left: 5,\n });\n readonly categories = input.required<Record<string, BulletLegendItemInterface>>();\n readonly yAxis = input.required<(keyof T)[]>();\n readonly stacked = input<boolean>(false);\n readonly orientation = input<Orientation>(Orientation.Vertical);\n readonly radius = input<number>();\n readonly groupPadding = input<number>(0);\n readonly barPadding = input<number>(0.2);\n readonly xLabel = input<string>();\n readonly yLabel = input<string>();\n readonly xFormatter = input<(tick: number | Date, i?: number, ticks?: (number | Date)[]) => string>();\n readonly yFormatter = input<(tick: number | Date, i?: number, ticks?: (number | Date)[]) => string>();\n readonly tooltipTitleFormatter = input<(data: T) => string | number>();\n readonly xNumTicks = input<number>();\n readonly xExplicitTicks = input<any[]>();\n readonly minMaxTicksOnly = input<boolean>(false);\n readonly yNumTicks = input<number>();\n readonly hideXAxis = input<boolean>(false);\n readonly hideYAxis = input<boolean>(false);\n readonly xGridLine = input<boolean>(false);\n readonly yGridLine = input<boolean>(true);\n readonly xDomainLine = input<boolean>(false);\n readonly yDomainLine = input<boolean>(false);\n readonly xTickLine = input<boolean>(false);\n readonly yTickLine = input<boolean>(false);\n readonly hideTooltip = input<boolean>(false);\n readonly hideLegend = input<boolean>(false);\n readonly legendPosition = input<LegendPosition>(LegendPosition.BottomCenter);\n readonly legendStyle = input<Record<string, string>>();\n readonly valueLabel = input<ValueLabel>();\n readonly xAxisConfig = input<AxisConfig>();\n readonly yAxisConfig = input<AxisConfig>();\n\n readonly click = output<{ event: MouseEvent; values?: T }>();\n\n readonly tooltipWrapper = viewChild<ElementRef<HTMLDivElement>>('tooltipWrapper');\n readonly hoverValues = signal<T | undefined>(undefined);\n\n readonly Orientation = Orientation;\n\n readonly isLegendTop = computed(() => this.legendPosition().startsWith('top'));\n\n readonly legendAlignment = computed(() => {\n const pos = this.legendPosition();\n if (pos.includes('left')) return 'flex-start';\n if (pos.includes('right')) return 'flex-end';\n return 'center';\n });\n\n readonly legendItems = computed(() => {\n return Object.values(this.categories()).map((item) => ({\n ...item,\n color: Array.isArray(item.color) ? item.color[0] : item.color,\n }));\n });\n\n readonly yAccessors = computed(() => {\n return this.yAxis().map((key) => (d: T) => d[key]);\n });\n\n colorAccessor: any = (_: T, i: number) => {\n const cats = Object.values(this.categories());\n return cats[i]?.color;\n };\n\n _x: any = (_: T, i: number) => i;\n\n xFormatterFn = (tick: number | Date, i: number, ticks: (number | Date)[]) => {\n const formatter = this.xFormatter();\n return formatter ? formatter(tick, i, ticks) : String(tick);\n };\n\n yFormatterFn = (tick: number | Date, i: number, ticks: (number | Date)[]) => {\n const formatter = this.yFormatter();\n return formatter ? formatter(tick, i, ticks) : String(tick);\n };\n\n tooltipTriggers: Record<string, (d: T) => string> = {\n [GroupedBar.selectors.bar]: (d: T) => {\n this.onCrosshairUpdate(d);\n return d ? this.tooltipWrapper()?.nativeElement.innerHTML ?? '' : '';\n },\n [StackedBar.selectors.bar]: (d: T) => {\n this.onCrosshairUpdate(d);\n return d ? this.tooltipWrapper()?.nativeElement.innerHTML ?? '' : '';\n },\n };\n\n onCrosshairUpdate(d: T): void {\n this.hoverValues.set(d);\n this.cdr.detectChanges();\n }\n\n onClick(event: MouseEvent): void {\n this.click.emit({ event, values: this.hoverValues() });\n }\n\n private cdr = inject(ChangeDetectorRef);\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n VisSingleContainerModule,\n VisDonutModule,\n VisTooltipModule,\n VisBulletLegendModule,\n} from '@unovis/angular';\nimport { Donut } from '@unovis/ts';\nimport { LegendPosition, BulletLegendItemInterface } from '../types';\nimport { TooltipComponent } from '../tooltip/tooltip.component';\nimport { DonutType } from './types';\n\n@Component({\n selector: 'ngx-donut-chart',\n standalone: true,\n imports: [\n CommonModule,\n VisSingleContainerModule,\n VisDonutModule,\n VisTooltipModule,\n VisBulletLegendModule,\n TooltipComponent,\n ],\n template: `\n <div\n [style.display]=\"'flex'\"\n [style.flexDirection]=\"isLegendTop() ? 'column-reverse' : 'column'\"\n [style.gap]=\"'var(--vis-legend-spacing)'\"\n (click)=\"onClick($event)\"\n >\n <vis-single-container\n [data]=\"data()\"\n [height]=\"height()\"\n [margin]=\"{}\"\n >\n <vis-tooltip\n [horizontalShift]=\"20\"\n [verticalShift]=\"20\"\n [triggers]=\"tooltipTriggers\"\n ></vis-tooltip>\n\n <vis-donut\n [value]=\"valueAccessor\"\n [cornerRadius]=\"radius()\"\n [arcWidth]=\"arcWidth()\"\n [color]=\"colorAccessor\"\n [angleRange]=\"angleRange()\"\n [padAngle]=\"padAngle()\"\n ></vis-donut>\n\n <div\n [style.position]=\"'absolute'\"\n [style.top]=\"'50%'\"\n [style.left]=\"'50%'\"\n [style.transform]=\"'translate(-50%, -50%)'\"\n >\n <ng-content></ng-content>\n </div>\n </vis-single-container>\n\n @if (!hideLegend()) {\n <div\n [style.display]=\"'flex'\"\n [style.justifyContent]=\"legendAlignment()\"\n >\n <vis-bullet-legend\n [items]=\"legendItems()\"\n ></vis-bullet-legend>\n </div>\n }\n\n <div #tooltipWrapper style=\"display: none\">\n @if (hoverValues()) {\n <ngx-tooltip\n [data]=\"hoverValues()!\"\n [categories]=\"categories()\"\n [titleFormatter]=\"tooltipTitleFormatter()\"\n ></ngx-tooltip>\n }\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DonutChartComponent {\n readonly data = input.required<number[]>();\n readonly height = input<number>(400);\n readonly categories = input.required<Record<string, BulletLegendItemInterface>>();\n readonly type = input<DonutType>(DonutType.Full);\n readonly radius = input<number>(0);\n readonly arcWidth = input<number>(20);\n readonly padAngle = input<number>(0);\n readonly hideLegend = input<boolean>(false);\n readonly legendPosition = input<LegendPosition>(LegendPosition.BottomCenter);\n readonly legendStyle = input<Record<string, string>>();\n readonly tooltipTitleFormatter = input<(data: any) => string | number>();\n\n readonly click = output<{ event: MouseEvent; values?: any }>();\n\n readonly tooltipWrapper = viewChild<ElementRef<HTMLDivElement>>('tooltipWrapper');\n readonly hoverValues = signal<any>(undefined);\n\n readonly isLegendTop = computed(() => this.legendPosition().startsWith('top'));\n\n readonly legendAlignment = computed(() => {\n const pos = this.legendPosition();\n if (pos.includes('left')) return 'flex-start';\n if (pos.includes('right')) return 'flex-end';\n return 'center';\n });\n\n readonly categoriesArray = computed(() => Object.values(this.categories()));\n\n readonly legendItems = computed(() => {\n return this.categoriesArray().map((item) => ({\n ...item,\n color: this.normalizeColor(item.color),\n }));\n });\n\n readonly angleRange = computed((): [number, number] | undefined => {\n return this.type() === DonutType.Half\n ? [-1.5707963267948966, 1.5707963267948966]\n : undefined;\n });\n\n valueAccessor = (d: number) => d;\n\n colorAccessor = (_: number, i: number) => {\n const cat = this.categoriesArray()[i];\n if (!cat) return undefined;\n return this.normalizeColor(cat.color);\n };\n\n tooltipTriggers: Record<string, (d: any) => string> = {\n [Donut.selectors.segment]: (d: any) => {\n this.onCrosshairUpdate(d);\n return d ? this.tooltipWrapper()?.nativeElement.innerHTML ?? '' : '';\n },\n };\n\n onCrosshairUpdate(d: any): void {\n const keyName = Object.values(this.categories())[d?.index]?.name;\n this.hoverValues.set({\n label: keyName,\n [keyName]: d?.data,\n });\n this.cdr.detectChanges();\n }\n\n onClick(event: MouseEvent): void {\n this.click.emit({ event, values: this.hoverValues() });\n }\n\n private normalizeColor(color: string | string[] | undefined, fallback = '#ccc'): string {\n if (!color) return fallback;\n return Array.isArray(color) ? color[0] || fallback : color;\n }\n\n private cdr = inject(ChangeDetectorRef);\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n VisXYContainerModule,\n VisScatterModule,\n VisAxisModule,\n VisTooltipModule,\n VisBulletLegendModule,\n} from '@unovis/angular';\nimport { Position, Scatter, type NumericAccessor } from '@unovis/ts';\nimport { LegendPosition, BulletLegendItemInterface, AxisConfig, CrosshairConfig } from '../types';\nimport { TooltipComponent } from '../tooltip/tooltip.component';\n\n@Component({\n selector: 'ngx-bubble-chart',\n standalone: true,\n imports: [\n CommonModule,\n VisXYContainerModule,\n VisScatterModule,\n VisAxisModule,\n VisTooltipModule,\n VisBulletLegendModule,\n TooltipComponent,\n ],\n template: `\n <div\n [style.display]=\"'flex'\"\n [style.flexDirection]=\"isLegendTop() ? 'column-reverse' : 'column'\"\n [style.gap]=\"'var(--vis-legend-spacing)'\"\n >\n <vis-xy-container\n [data]=\"data()\"\n [height]=\"height()\"\n [padding]=\"padding()\"\n [scaleByDomain]=\"true\"\n (click)=\"onClick($event)\"\n >\n @if (!hideTooltip()) {\n <vis-tooltip [triggers]=\"tooltipTriggers\"></vis-tooltip>\n }\n\n <vis-scatter\n [x]=\"xAccessor()\"\n [y]=\"yAccessor()\"\n [color]=\"colorAccessor\"\n [size]=\"sizeAccessorFn()\"\n [labelPosition]=\"labelPosition() || Position.Bottom\"\n [sizeRange]=\"sizeRange() || [1, 20]\"\n cursor=\"pointer\"\n ></vis-scatter>\n\n @if (!hideXAxis()) {\n <vis-axis\n type=\"x\"\n [label]=\"xLabel()\"\n [tickFormat]=\"xFormatterFn\"\n [gridLine]=\"xGridLine()\"\n [domainLine]=\"!!xDomainLine()\"\n [tickLine]=\"xTickLine()\"\n [numTicks]=\"xNumTicks()\"\n [tickValues]=\"xExplicitTicks()\"\n [minMaxTicksOnly]=\"minMaxTicksOnly()\"\n ></vis-axis>\n }\n\n @if (!hideYAxis()) {\n <vis-axis\n type=\"y\"\n [label]=\"yLabel()\"\n [tickFormat]=\"yFormatterFn\"\n [gridLine]=\"yGridLine()\"\n [domainLine]=\"!!yDomainLine()\"\n [tickLine]=\"yTickLine()\"\n [numTicks]=\"yNumTicks()\"\n ></vis-axis>\n }\n </vis-xy-container>\n\n @if (!hideLegend()) {\n <div\n [style.display]=\"'flex'\"\n [style.justifyContent]=\"legendAlignment()\"\n >\n <vis-bullet-legend\n [items]=\"legendItems()\"\n ></vis-bullet-legend>\n </div>\n }\n\n <div #tooltipWrapper style=\"display: none\">\n @if (hoverValues()) {\n <ngx-tooltip\n [data]=\"hoverValues()!\"\n [categories]=\"categories() || {}\"\n [titleFormatter]=\"tooltipTitleFormatter()\"\n [yFormatter]=\"yFormatter()\"\n ></ngx-tooltip>\n }\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BubbleChartComponent<T extends Record<string, any>> {\n readonly data = input.required<T[]>();\n readonly height = input<number>(600);\n readonly padding = input<{ top: number; right: number; bottom: number; left: number }>({\n top: 5,\n right: 5,\n bottom: 5,\n left: 5,\n });\n readonly categories = input<Record<string, BulletLegendItemInterface>>({});\n readonly categoryKey = input<keyof T>();\n readonly xAccessor = input<NumericAccessor<T>>();\n readonly yAccessor = input<NumericAccessor<T>>();\n readonly sizeAccessor = input<NumericAccessor<T>>();\n readonly labelPosition = input<Position>();\n readonly sizeRange = input<[number, number]>();\n readonly xLabel = input<string>('');\n readonly yLabel = input<string>('');\n readonly xFormatter = input<(tick: number | Date, i?: number, ticks?: (number | Date)[]) => string>();\n readonly yFormatter = input<(tick: number | Date, i?: number, ticks?: (number | Date)[]) => string>();\n readonly tooltipTitleFormatter = input<(data: T) => string | number>();\n readonly xNumTicks = input<number>();\n readonly yNumTicks = input<number>();\n readonly xExplicitTicks = input<any[]>();\n readonly minMaxTicksOnly = input<boolean>(false);\n readonly hideXAxis = input<boolean>(false);\n readonly hideYAxis = input<boolean>(false);\n readonly xGridLine = input<boolean>(false);\n readonly yGridLine = input<boolean>(true);\n readonly xDomainLine = input<boolean>(true);\n readonly yDomainLine = input<boolean>(true);\n readonly xTickLine = input<boolean>(true);\n readonly yTickLine = input<boolean>(true);\n readonly hideTooltip = input<boolean>(false);\n readonly hideLegend = input<boolean>(false);\n readonly legendPosition = input<LegendPosition>(LegendPosition.BottomCenter);\n readonly legendStyle = input<Record<string, string>>();\n readonly crosshairConfig = input<CrosshairConfig>({ color: '#666' });\n readonly xAxisConfig = input<AxisConfig>();\n readonly yAxisConfig = input<AxisConfig>();\n\n readonly click = output<{ event: MouseEvent; values?: T }>();\n\n readonly tooltipWrapper = viewChild<ElementRef<HTMLDivElement>>('tooltipWrapper');\n readonly hoverValues = signal<T | undefined>(undefined);\n\n readonly Position = Position;\n\n readonly isLegendTop = computed(() => this.legendPosition().startsWith('top'));\n\n readonly legendAlignment = computed(() => {\n const pos = this.legendPosition();\n if (pos.includes('left')) return 'flex-start';\n if (pos.includes('right')) return 'flex-end';\n return 'center';\n });\n\n readonly legendItems = computed(() => {\n const cats = this.categories();\n return Object.values(cats).map((item) => ({\n ...item,\n color: Array.isArray(item.color) ? item.color[0] : item.color,\n }));\n });\n\n readonly sizeAccessorFn = computed(() => {\n const accessor = this.sizeAccessor();\n if (accessor) return accessor;\n return (d: any) => (typeof d.comments === 'number' ? d.comments : 1);\n });\n\n colorAccessor = (d: T): string | null | undefined => {\n const cats = this.categories();\n const catKey = this.categoryKey();\n if (!cats || !catKey) {\n return '#cccccc';\n }\n\n const categoryValue = String(d[catKey as keyof T]);\n let categoryColor = cats[categoryValue]?.color;\n\n // Special case: when only one category is defined, use the categoryKey\n // directly as the category lookup key (matching Vue behavior)\n if (Object.keys(cats).length === 1) {\n categoryColor = cats[catKey as keyof typeof cats]?.color;\n }\n\n if (!categoryColor) {\n return '#cccccc';\n }\n\n // Ensure we return a string, not an array\n return Array.isArray(categoryColor) ? categoryColor[0] : categoryColor;\n };\n\n xFormatterFn = (tick: number | Date, i: number, ticks: (number | Date)[]) => {\n const formatter = this.xFormatter();\n return formatter ? formatter(tick, i, ticks) : String(tick);\n };\n\n yFormatterFn = (tick: number | Date, i: number, ticks: (number | Date)[]) => {\n const formatter = this.yFormatter();\n return formatter ? formatter(tick, i, ticks) : String(tick);\n };\n\n tooltipTriggers: Record<string, (d: T) => string> = {\n [Scatter.selectors.point]: (d: T) => {\n this.onCrosshairUpdate(d);\n return d ? this.tooltipWrapper()?.nativeElement.innerHTML ?? '' : '';\n },\n };\n\n onCrosshairUpdate(d: T): void {\n this.hoverValues.set(d);\n this.cdr.detectChanges();\n }\n\n onClick(event: MouseEvent): void {\n this.click.emit({ event, values: this.hoverValues() });\n }\n\n private cdr = inject(ChangeDetectorRef);\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport {\n VisXYContainerModule,\n VisTimelineModule,\n VisAxisModule,\n VisTooltipModule,\n VisBulletLegendModule,\n} from '@unovis/angular';\nimport { Timeline } from '@unovis/ts';\nimport { LegendPosition, BulletLegendItemInterface } from '../types';\nimport { TooltipComponent } from '../tooltip/tooltip.component';\n\n// Cached date formatter instance for better performance\nconst cachedDateFormatter = new Intl.DateTimeFormat();\nconst dateFormatter = (date: number | Date) => cachedDateFormatter.format(typeof date === 'number' ? date : date.getTime());\n\n@Component({\n selector: 'ngx-gantt-chart',\n standalone: true,\n imports: [\n CommonModule,\n VisXYContainerModule,\n VisTimelineModule,\n VisAxisModule,\n VisTooltipModule,\n VisBulletLegendModule,\n TooltipComponent,\n ],\n template: `\n <div\n [style.display]=\"'flex'\"\n [style.flexDirection]=\"isLegendTop() ? 'column-reverse' : 'column'\"\n [style.gap]=\"'var(--vis-legend-spacing)'\"\n >\n <vis-xy-container\n [data]=\"data()\"\n [height]=\"height()\"\n (wheel)=\"onScroll($event)\"\n >\n <vis-timeline\n [x]=\"x()\"\n [length]=\"length()\"\n [lineWidth]=\"lineWidth()\"\n [rowHeight]=\"rowHeight()\"\n [type]=\"type()\"\n [color]=\"colors()\"\n [labelWidth]=\"labelWidth()\"\n [showLabels]=\"showLabels()\"\n ></vis-timeline>\n\n <vis-tooltip\n [triggers]=\"tooltipTriggers\"\n ></vis-tooltip>\n\n <vis-axis\n type=\"x\"\n [tickFormat]=\"tickFormatFn\"\n [numTicks]=\"xNumTicks()\"\n [tickLine]=\"xTickLine()\"\n [gridLine]=\"xGridLine()\"\n [domainLine]=\"xDomainLine()\"\n ></vis-axis>\n </vis-xy-container>\n\n @if (!hideLegend()) {\n <div\n [style.display]=\"'flex'\"\n [style.justifyContent]=\"legendAlignment()\"\n >\n <vis-bullet-legend\n [items]=\"legendItems()\"\n ></vis-bullet-legend>\n </div>\n }\n\n <div #tooltipWrapper style=\"display: none\">\n @if (slotValue()) {\n <ngx-tooltip\n [data]=\"slotValue()!\"\n [categories]=\"categories()\"\n [titleFormatter]=\"tooltipTitleFormatter()\"\n ></ngx-tooltip>\n }\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GanttChartComponent<T extends Record<string, any>> {\n readonly data = input.required<T[]>();\n readonly height = input<number>();\n readonly categories = input.required<Record<string, BulletLegendItemInterface>>();\n readonly x = input.required<(d: T) => number>();\n readonly length = input.required<(d: T) => number>();\n readonly type = input.required<(d: T) => string>();\n readonly labelWidth = input<number>(220);\n readonly title = input<string>('');\n readonly showLabels = input<boolean>(true);\n readonly hideTooltip = input<boolean>(false);\n readonly lineWidth = input<number>(12);\n readonly rowHeight = input<number>(24);\n readonly legendPosition = input<LegendPosition>(LegendPosition.TopRight);\n readonly legendStyle = input<Record<string, string>>();\n readonly hideLegend = input<boolean>(false);\n readonly xNumTicks = input<number>();\n readonly xTickLine = input<boolean>();\n readonly xTickFormat = input<(tick: number | Date, i?: number, ticks?: (number | Date)[]) => string>();\n readonly xGridLine = input<boolean>();\n readonly xDomainLine = input<boolean>();\n readonly tooltipTitleFormatter = input<(data: T) => string | number>();\n\n readonly clickEvent = output<{ event: MouseEvent; data: { index: number; item: T } }>();\n readonly scrollEvent = output<number>();\n readonly labelHover = output<T | undefined>();\n\n readonly tooltipWrapper = viewChild<ElementRef<HTMLDivElement>>('tooltipWrapper');\n readonly slotValue = signal<T | undefined>(undefined);\n\n readonly isLegendTop = computed(() => this.legendPosition().startsWith('top'));\n\n readonly legendAlignment = computed(() => {\n const pos = this.legendPosition();\n if (pos.includes('left')) return 'flex-start';\n if (pos.includes('right')) return 'flex-end';\n return 'center';\n });\n\n readonly legendItems = computed(() => {\n return Object.values(this.categories()).map((item) => ({\n ...item,\n color: Array.isArray(item.color) ? item.color[0] : item.color,\n }));\n });\n\n readonly colors = computed(() => {\n const cats = this.categories();\n const defaultColors = Object.values(cats).map((_, index) => `var(--vis-color${index})`);\n return Object.values(cats).map((c, i) => {\n const color = c.color ?? defaultColors[i];\n return Array.isArray(color) ? color[0] : color;\n });\n });\n\n tickFormatFn = (tick: number | Date, i: number, ticks: (number | Date)[]) => {\n const formatter = this.xTickFormat();\n return formatter ? formatter(tick, i, ticks) : dateFormatter(tick);\n };\n\n tooltipTriggers: Record<string, (d: T) => string> = {\n [Timeline.selectors.label]: (d: T) => {\n this.generateLabelTooltip(d);\n return d ? this.tooltipWrapper()?.nativeElement.innerHTML ?? '' : '';\n },\n };\n\n generateLabelTooltip(d: T): void {\n this.slotValue.set(d);\n this.labelHover.emit(d);\n this.cdr.detectChanges();\n }\n\n onScroll(event: WheelEvent): void {\n this.scrollEvent.emit(event.deltaY);\n }\n\n private cdr = inject(ChangeDetectorRef);\n}\n","/*\n * Public API Surface of lib\n */\n\nexport * from './lib/line-chart/line-chart.component';\nexport * from './lib/area-chart/area-chart.component';\nexport * from './lib/area-chart/types';\nexport * from './lib/bar-chart/bar-chart.component';\nexport * from './lib/bar-chart/types';\nexport * from './lib/donut-chart/donut-chart.component';\nexport * from './lib/donut-chart/types';\nexport * from './lib/bubble-chart/bubble-chart.component';\nexport * from './lib/bubble-chart/types';\nexport * from './lib/gantt-chart/gantt-chart.component';\nexport * from './lib/gantt-chart/types';\nexport * from './lib/tooltip/tooltip.component';\nexport * from './lib/types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["CurveType","Orientation"],"mappings":"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"}