@konce-pt/angular 0.7.12 → 0.8.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.
- package/CHANGELOG.md +79 -0
- package/README.md +4 -4
- package/charts/src/lib/llms.txt +2 -1
- package/fesm2022/konce-pt-angular-charts.mjs +7 -498
- package/fesm2022/konce-pt-angular-charts.mjs.map +1 -1
- package/fesm2022/konce-pt-angular-icons.mjs +7 -5136
- package/fesm2022/konce-pt-angular-icons.mjs.map +1 -1
- package/fesm2022/konce-pt-angular-map.mjs +14 -1298
- package/fesm2022/konce-pt-angular-map.mjs.map +1 -1
- package/fesm2022/konce-pt-angular-roadmap.mjs +8 -1269
- package/fesm2022/konce-pt-angular-roadmap.mjs.map +1 -1
- package/fesm2022/konce-pt-angular.mjs +179 -1455
- package/fesm2022/konce-pt-angular.mjs.map +1 -1
- package/map/src/lib/llms.txt +2 -1
- package/package.json +9 -2
- package/roadmap/src/lib/llms.txt +1 -0
- package/src/lib/datepicker/llms.txt +4 -0
- package/src/lib/i18n/llms.txt +8 -2
- package/src/lib/icon-button/llms.txt +1 -0
- package/src/lib/rating/llms.txt +4 -0
- package/types/konce-pt-angular-charts.d.ts +10 -199
- package/types/konce-pt-angular-charts.d.ts.map +1 -1
- package/types/konce-pt-angular-icons.d.ts +2 -4
- package/types/konce-pt-angular-icons.d.ts.map +1 -1
- package/types/konce-pt-angular-map.d.ts +4 -609
- package/types/konce-pt-angular-map.d.ts.map +1 -1
- package/types/konce-pt-angular-roadmap.d.ts +6 -541
- package/types/konce-pt-angular-roadmap.d.ts.map +1 -1
- package/types/konce-pt-angular.d.ts +57 -529
- package/types/konce-pt-angular.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"konce-pt-angular-charts.mjs","sources":["../../charts/src/core/line.ts","../../charts/src/core/scale.ts","../../charts/src/core/bar.ts","../../charts/src/core/arc.ts","../../charts/src/core/radar.ts","../../charts/src/core/layout.ts","../../charts/src/core/color.ts","../../charts/src/core/format.ts","../../charts/src/lib/chart-legend.component.ts","../../charts/src/lib/chart-tooltip.component.ts","../../charts/src/lib/chart.component.html","../../charts/src/lib/chart.component.ts","../../charts/src/core/types.ts","../../charts/src/core/index.ts","../../charts/src/public-api.ts","../../charts/src/konce-pt-angular-charts.ts"],"sourcesContent":["/*\n * Generowanie ścieżek SVG dla wykresu liniowego.\n * Trzy tryby interpolacji: linear, cubic (Catmull-Rom → Bézier),\n * cubic-monotonic (Fritsch–Carlson — bez „overshoot\").\n */\nimport type { KptLineInterpolation, KptPoint } from './types';\n\nfunction n(value: number): string {\n // Skraca zapis (mniejszy DOM) i unika notacji wykładniczej dla małych liczb.\n return Number.isInteger(value) ? String(value) : value.toFixed(3);\n}\n\n/** Ścieżka odcinkowa (M/L). */\nfunction linearPath(points: KptPoint[]): string {\n return points.map((p, i) => `${i === 0 ? 'M' : 'L'} ${n(p.x)} ${n(p.y)}`).join(' ');\n}\n\n/** Standardowa interpolacja sześcienna (Catmull-Rom przez punkty → krzywe Béziera). */\nfunction cubicPath(points: KptPoint[]): string {\n if (points.length < 3) return linearPath(points);\n let d = `M ${n(points[0].x)} ${n(points[0].y)}`;\n for (let i = 0; i < points.length - 1; i++) {\n const p0 = points[i - 1] ?? points[i];\n const p1 = points[i];\n const p2 = points[i + 1];\n const p3 = points[i + 2] ?? p2;\n const c1x = p1.x + (p2.x - p0.x) / 6;\n const c1y = p1.y + (p2.y - p0.y) / 6;\n const c2x = p2.x - (p3.x - p1.x) / 6;\n const c2y = p2.y - (p3.y - p1.y) / 6;\n d += ` C ${n(c1x)} ${n(c1y)}, ${n(c2x)} ${n(c2y)}, ${n(p2.x)} ${n(p2.y)}`;\n }\n return d;\n}\n\n/**\n * Monotoniczna interpolacja sześcienna (Fritsch–Carlson).\n * Styczne przycinane tak, by krzywa nie przestrzelała ekstremów danych.\n * Liczona względem indeksu punktu (równe odstępy w X, typowe dla osi kategorii).\n */\nfunction monotonePath(points: KptPoint[]): string {\n const size = points.length;\n if (size < 3) return linearPath(points);\n\n const dx: number[] = [];\n const dy: number[] = [];\n const slope: number[] = [];\n for (let i = 0; i < size - 1; i++) {\n dx[i] = points[i + 1].x - points[i].x;\n dy[i] = points[i + 1].y - points[i].y;\n slope[i] = dy[i] / (dx[i] || 1);\n }\n\n // Styczne w węzłach (m).\n const m: number[] = new Array(size);\n m[0] = slope[0];\n m[size - 1] = slope[size - 2];\n for (let i = 1; i < size - 1; i++) {\n if (slope[i - 1] * slope[i] <= 0) {\n m[i] = 0; // lokalne ekstremum → styczna pozioma\n } else {\n m[i] = (slope[i - 1] + slope[i]) / 2;\n }\n }\n // Ograniczenie Fritsch–Carlson.\n for (let i = 0; i < size - 1; i++) {\n if (slope[i] === 0) {\n m[i] = 0;\n m[i + 1] = 0;\n continue;\n }\n const a = m[i] / slope[i];\n const b = m[i + 1] / slope[i];\n const h = Math.hypot(a, b);\n if (h > 3) {\n const t = 3 / h;\n m[i] = t * a * slope[i];\n m[i + 1] = t * b * slope[i];\n }\n }\n\n let d = `M ${n(points[0].x)} ${n(points[0].y)}`;\n for (let i = 0; i < size - 1; i++) {\n const c1x = points[i].x + dx[i] / 3;\n const c1y = points[i].y + (m[i] * dx[i]) / 3;\n const c2x = points[i + 1].x - dx[i] / 3;\n const c2y = points[i + 1].y - (m[i + 1] * dx[i]) / 3;\n d += ` C ${n(c1x)} ${n(c1y)}, ${n(c2x)} ${n(c2y)}, ${n(points[i + 1].x)} ${n(points[i + 1].y)}`;\n }\n return d;\n}\n\n/** Ścieżka linii dla wybranego trybu interpolacji. */\nexport function linePath(points: KptPoint[], mode: KptLineInterpolation = 'linear'): string {\n if (points.length === 0) return '';\n if (points.length === 1) return `M ${n(points[0].x)} ${n(points[0].y)}`;\n switch (mode) {\n case 'cubic':\n return cubicPath(points);\n case 'cubic-monotonic':\n return monotonePath(points);\n default:\n return linearPath(points);\n }\n}\n\n/** Ścieżka obszaru pod linią (domknięta do `baselineY`). */\nexport function areaPath(points: KptPoint[], baselineY: number, mode: KptLineInterpolation = 'linear'): string {\n if (points.length === 0) return '';\n const top = linePath(points, mode);\n const first = points[0];\n const last = points.at(-1)!;\n return `${top} L ${n(last.x)} ${n(baselineY)} L ${n(first.x)} ${n(baselineY)} Z`;\n}\n","/*\n * Skalowanie i „ładne\" podziałki osi (auto-skala).\n * Wszystkie funkcje czyste — bez stanu i DOM.\n */\n\n/** Zakres [min, max] tablicy liczb (0..0 dla pustej). */\nexport function extent(values: number[]): [number, number] {\n if (values.length === 0) return [0, 0];\n let min = values[0];\n let max = values[0];\n for (const v of values) {\n if (v < min) min = v;\n if (v > max) max = v;\n }\n return [min, max];\n}\n\n/** Interpolacja liniowa domeny → zakresu (np. wartość → współrzędna piksela). */\nexport function linearScale(domainMin: number, domainMax: number, rangeMin: number, rangeMax: number): (value: number) => number {\n const dSpan = domainMax - domainMin || 1;\n const rSpan = rangeMax - rangeMin;\n return (value: number) => rangeMin + ((value - domainMin) / dSpan) * rSpan;\n}\n\n/** Zaokrągla liczbę do „ładnej\" wartości (1/2/5 × 10ⁿ). */\nfunction niceNum(range: number, round: boolean): number {\n const exponent = Math.floor(Math.log10(range || 1));\n const fraction = (range || 1) / 10 ** exponent;\n return niceFraction(fraction, round) * 10 ** exponent;\n}\n\n/** Mantysa 1/2/5/10 — do najbliższej (`round`) albo w górę. */\nfunction niceFraction(fraction: number, round: boolean): number {\n if (round) {\n if (fraction < 1.5) return 1;\n if (fraction < 3) return 2;\n if (fraction < 7) return 5;\n return 10;\n }\n if (fraction <= 1) return 1;\n if (fraction <= 2) return 2;\n if (fraction <= 5) return 5;\n return 10;\n}\n\nexport interface NiceScale {\n min: number;\n max: number;\n step: number;\n ticks: number[];\n}\n\n/**\n * „Ładna\" skala obejmująca [dataMin, dataMax] z ~`maxTicks` podziałkami.\n * Wynikowy zakres jest rozszerzony do równych kroków; zawsze zawiera 0,\n * gdy dane są jednoznakowe (typowe dla słupków/linii wartościowych).\n */\nexport function niceScale(dataMin: number, dataMax: number, maxTicks = 5): NiceScale {\n let lo = dataMin;\n let hi = dataMax;\n if (lo > 0) lo = 0;\n if (hi < 0) hi = 0;\n if (lo === hi) {\n hi = lo + 1;\n }\n const range = niceNum(hi - lo, false);\n const step = niceNum(range / Math.max(1, maxTicks - 1), true);\n const niceMin = Math.floor(lo / step) * step;\n const niceMax = Math.ceil(hi / step) * step;\n const ticks: number[] = [];\n // +1e-9: zabezpieczenie przed błędami zmiennoprzecinkowymi na krańcu pętli.\n for (let t = niceMin; t <= niceMax + 1e-9; t += step) {\n ticks.push(Math.abs(t) < 1e-9 ? 0 : t);\n }\n return { min: niceMin, max: niceMax, step, ticks };\n}\n\nexport interface BandScale {\n /** Lewy/górny brzeg pasma dla danego indeksu kategorii. */\n start: (index: number) => number;\n /** Szerokość pojedynczego pasma kategorii. */\n bandwidth: number;\n /** Środek pasma dla danego indeksu (np. pozycja punktu linii). */\n center: (index: number) => number;\n}\n\n/**\n * Skala pasmowa: dzieli [rangeStart, rangeEnd] na `count` równych pasm\n * z marginesem `padding` (0..1 udziału pasma) po bokach i między pasmami.\n */\nexport function bandScale(count: number, rangeStart: number, rangeEnd: number, padding = 0.1): BandScale {\n const span = rangeEnd - rangeStart;\n const step = count > 0 ? span / count : span;\n const bandwidth = step * (1 - padding);\n const offset = (step - bandwidth) / 2;\n return {\n bandwidth,\n start: (index: number) => rangeStart + index * step + offset,\n center: (index: number) => rangeStart + index * step + step / 2,\n };\n}\n","/*\n * Geometria wykresu słupkowego (pionowego i poziomego) z zaokrągleniem rogów.\n * Wspiera wiele serii (grupowanie obok siebie w obrębie kategorii).\n */\nimport { bandScale, linearScale, niceScale } from './scale';\nimport type { KptBarOrientation, KptRect } from './types';\n\nexport interface BarGeom {\n rect: KptRect;\n /** Ścieżka słupka z zaokrąglonymi rogami „od strony wzrostu\". */\n path: string;\n seriesIndex: number;\n categoryIndex: number;\n value: number;\n}\n\nexport interface BarLayout {\n bars: BarGeom[];\n /** Podziałki osi wartości (wartość → współrzędna). */\n ticks: { value: number; pos: number }[];\n /** Współrzędna linii bazowej (0). */\n baseline: number;\n scale: ReturnType<typeof niceScale>;\n}\n\nfunction n(value: number): string {\n return Number.isInteger(value) ? String(value) : value.toFixed(3);\n}\n\n/** Prostokąt z zaokrąglonymi rogami tylko po wybranych stronach. */\nfunction roundedRect(x: number, y: number, w: number, h: number, r: number, corners: { tl?: boolean; tr?: boolean; br?: boolean; bl?: boolean }): string {\n const radius = Math.max(0, Math.min(r, w / 2, h / 2));\n const tl = corners.tl ? radius : 0;\n const tr = corners.tr ? radius : 0;\n const br = corners.br ? radius : 0;\n const bl = corners.bl ? radius : 0;\n return [\n `M ${n(x + tl)} ${n(y)}`,\n `H ${n(x + w - tr)}`,\n tr ? `A ${n(tr)} ${n(tr)} 0 0 1 ${n(x + w)} ${n(y + tr)}` : '',\n `V ${n(y + h - br)}`,\n br ? `A ${n(br)} ${n(br)} 0 0 1 ${n(x + w - br)} ${n(y + h)}` : '',\n `H ${n(x + bl)}`,\n bl ? `A ${n(bl)} ${n(bl)} 0 0 1 ${n(x)} ${n(y + h - bl)}` : '',\n `V ${n(y + tl)}`,\n tl ? `A ${n(tl)} ${n(tl)} 0 0 1 ${n(x + tl)} ${n(y)}` : '',\n 'Z',\n ]\n .filter(Boolean)\n .join(' ');\n}\n\n/**\n * Wylicza słupki dla obszaru `plot`.\n * @param seriesData wartości[serie][kategorie]\n * @param plot obszar rysowania {x,y,width,height}\n * @param orientation pionowa (rośnie w górę) lub pozioma (rośnie w prawo)\n * @param borderRadius promień zaokrąglenia w px\n */\nexport function barLayout(\n seriesData: number[][],\n categoryCount: number,\n plot: KptRect,\n orientation: KptBarOrientation,\n borderRadius: number,\n): BarLayout {\n let min = 0;\n let max = 0;\n for (const row of seriesData) {\n for (const v of row) {\n if (v < min) min = v;\n if (v > max) max = v;\n }\n }\n const scale = niceScale(min, max, 5);\n const seriesCount = seriesData.length || 1;\n const bars: BarGeom[] = [];\n\n if (orientation === 'vertical') {\n const value = linearScale(scale.min, scale.max, plot.y + plot.height, plot.y);\n const baseline = value(0);\n const cat = bandScale(categoryCount, plot.x, plot.x + plot.width, 0.2);\n const group = bandScale(seriesCount, 0, cat.bandwidth, 0.1);\n seriesData.forEach((values, s) => {\n for (let c = 0; c < categoryCount; c++) {\n const v = values[c] ?? 0;\n const x = cat.start(c) + group.start(s);\n const w = group.bandwidth;\n const yv = value(v);\n const top = Math.min(baseline, yv);\n const h = Math.abs(yv - baseline);\n const up = v >= 0;\n bars.push({\n rect: { x, y: top, width: w, height: h },\n path: roundedRect(x, top, w, h, borderRadius, up ? { tl: true, tr: true } : { bl: true, br: true }),\n seriesIndex: s,\n categoryIndex: c,\n value: v,\n });\n }\n });\n return { bars, baseline, scale, ticks: scale.ticks.map((t) => ({ value: t, pos: value(t) })) };\n }\n\n // horizontal\n const value = linearScale(scale.min, scale.max, plot.x, plot.x + plot.width);\n const baseline = value(0);\n const cat = bandScale(categoryCount, plot.y, plot.y + plot.height, 0.2);\n const group = bandScale(seriesCount, 0, cat.bandwidth, 0.1);\n seriesData.forEach((values, s) => {\n for (let c = 0; c < categoryCount; c++) {\n const v = values[c] ?? 0;\n const y = cat.start(c) + group.start(s);\n const h = group.bandwidth;\n const xv = value(v);\n const left = Math.min(baseline, xv);\n const w = Math.abs(xv - baseline);\n const right = v >= 0;\n bars.push({\n rect: { x: left, y, width: w, height: h },\n path: roundedRect(left, y, w, h, borderRadius, right ? { tr: true, br: true } : { tl: true, bl: true }),\n seriesIndex: s,\n categoryIndex: c,\n value: v,\n });\n }\n });\n return { bars, baseline, scale, ticks: scale.ticks.map((t) => ({ value: t, pos: value(t) })) };\n}\n","/*\n * Geometria łuków/wycinków dla wykresów pie / doughnut / polarArea.\n * Kąty w radianach, mierzone od góry (−90°) zgodnie z ruchem wskazówek zegara.\n */\nimport type { KptPoint } from './types';\n\nconst HALF_PI = Math.PI / 2;\n\nfunction n(value: number): string {\n return Number.isInteger(value) ? String(value) : value.toFixed(3);\n}\n\n/** Punkt na okręgu dla kąta (0 = góra, rośnie zgodnie z zegarem). */\nexport function polarToCartesian(cx: number, cy: number, radius: number, angle: number): KptPoint {\n const a = angle - HALF_PI;\n return { x: cx + radius * Math.cos(a), y: cy + radius * Math.sin(a) };\n}\n\n/**\n * Ścieżka wycinka pierścienia od `startAngle` do `endAngle`.\n * `innerRadius = 0` → pełny wycinek koła (pie); > 0 → pierścień (doughnut).\n */\nexport function arcPath(cx: number, cy: number, outerRadius: number, innerRadius: number, startAngle: number, endAngle: number): string {\n const sweep = endAngle - startAngle;\n const largeArc = sweep > Math.PI ? 1 : 0;\n\n // Pełny okrąg (np. pojedynczy wycinek 100%) — rozbijamy na dwa łuki.\n if (sweep >= Math.PI * 2 - 1e-6) {\n const outer = fullCircle(cx, cy, outerRadius, 1);\n if (innerRadius <= 0) return outer;\n return `${outer} ${fullCircle(cx, cy, innerRadius, 0)}`;\n }\n\n const oStart = polarToCartesian(cx, cy, outerRadius, startAngle);\n const oEnd = polarToCartesian(cx, cy, outerRadius, endAngle);\n\n if (innerRadius <= 0) {\n return [\n `M ${n(cx)} ${n(cy)}`,\n `L ${n(oStart.x)} ${n(oStart.y)}`,\n `A ${n(outerRadius)} ${n(outerRadius)} 0 ${largeArc} 1 ${n(oEnd.x)} ${n(oEnd.y)}`,\n 'Z',\n ].join(' ');\n }\n\n const iStart = polarToCartesian(cx, cy, innerRadius, endAngle);\n const iEnd = polarToCartesian(cx, cy, innerRadius, startAngle);\n return [\n `M ${n(oStart.x)} ${n(oStart.y)}`,\n `A ${n(outerRadius)} ${n(outerRadius)} 0 ${largeArc} 1 ${n(oEnd.x)} ${n(oEnd.y)}`,\n `L ${n(iStart.x)} ${n(iStart.y)}`,\n `A ${n(innerRadius)} ${n(innerRadius)} 0 ${largeArc} 0 ${n(iEnd.x)} ${n(iEnd.y)}`,\n 'Z',\n ].join(' ');\n}\n\n/** Pełny okrąg jako dwa półłuki (sweepFlag steruje kierunkiem — dla wycięcia). */\nfunction fullCircle(cx: number, cy: number, r: number, sweepFlag: 0 | 1): string {\n const top = polarToCartesian(cx, cy, r, 0);\n const bottom = polarToCartesian(cx, cy, r, Math.PI);\n return [\n `M ${n(top.x)} ${n(top.y)}`,\n `A ${n(r)} ${n(r)} 0 1 ${sweepFlag} ${n(bottom.x)} ${n(bottom.y)}`,\n `A ${n(r)} ${n(r)} 0 1 ${sweepFlag} ${n(top.x)} ${n(top.y)}`,\n 'Z',\n ].join(' ');\n}\n\nexport interface ArcSlice {\n path: string;\n /** Kąt środka wycinka (do pozycjonowania etykiet/tooltipa). */\n midAngle: number;\n startAngle: number;\n endAngle: number;\n value: number;\n}\n\n/**\n * Wycinki pie/doughnut: kąt proporcjonalny do wartości (Σ = 2π).\n * `innerRadius` w px (0 dla pie).\n */\nexport function pieSlices(values: number[], cx: number, cy: number, outerRadius: number, innerRadius = 0): ArcSlice[] {\n const total = values.reduce((a, v) => a + Math.max(0, v), 0);\n if (total <= 0) return [];\n const slices: ArcSlice[] = [];\n let angle = 0;\n for (const value of values) {\n const sweep = (Math.max(0, value) / total) * Math.PI * 2;\n const start = angle;\n const end = angle + sweep;\n slices.push({\n path: arcPath(cx, cy, outerRadius, innerRadius, start, end),\n midAngle: (start + end) / 2,\n startAngle: start,\n endAngle: end,\n value,\n });\n angle = end;\n }\n return slices;\n}\n\n/**\n * Wycinki polar area: równy kąt (2π/N), promień proporcjonalny do wartości.\n * `maxValue` skaluje promień do `outerRadius`.\n */\nexport function polarSlices(values: number[], cx: number, cy: number, outerRadius: number, maxValue = 1): ArcSlice[] {\n const count = values.length;\n if (count === 0) return [];\n const sweep = (Math.PI * 2) / count;\n return values.map((value, i) => {\n const start = i * sweep;\n const end = start + sweep;\n const r = (Math.max(0, value) / maxValue) * outerRadius;\n return {\n path: arcPath(cx, cy, r, 0, start, end),\n midAngle: (start + end) / 2,\n startAngle: start,\n endAngle: end,\n value,\n };\n });\n}\n","/*\n * Geometria wykresu radarowego: osie promieniowe + wielokąty serii.\n */\nimport { polarToCartesian } from './arc';\nimport type { KptPoint } from './types';\n\nexport interface RadarAxis {\n /** Punkt na obwodzie (koniec osi). */\n end: KptPoint;\n angle: number;\n labelIndex: number;\n}\n\nexport interface RadarGrid {\n /** Poziomy siatki (pierścienie) jako ścieżki wielokątów. */\n rings: string[];\n axes: RadarAxis[];\n}\n\n/** Siatka radaru: `levels` koncentrycznych wielokątów + osie do etykiet. */\nexport function radarGrid(count: number, cx: number, cy: number, radius: number, levels = 4): RadarGrid {\n const axes: RadarAxis[] = [];\n const step = (Math.PI * 2) / Math.max(1, count);\n for (let i = 0; i < count; i++) {\n const angle = i * step;\n axes.push({ angle, labelIndex: i, end: polarToCartesian(cx, cy, radius, angle) });\n }\n const rings: string[] = [];\n for (let l = 1; l <= levels; l++) {\n const r = (radius * l) / levels;\n rings.push(polygonPath(axes.map((a) => polarToCartesian(cx, cy, r, a.angle))));\n }\n return { rings, axes };\n}\n\n/** Punkty wielokąta serii (wartość → promień, skalowane do `maxValue`). */\nexport function radarPoints(values: number[], cx: number, cy: number, radius: number, maxValue: number): KptPoint[] {\n const count = values.length;\n const step = (Math.PI * 2) / Math.max(1, count);\n const max = maxValue || 1;\n return values.map((v, i) => polarToCartesian(cx, cy, (Math.max(0, v) / max) * radius, i * step));\n}\n\n/** Zamknięta ścieżka wielokąta łącząca punkty. */\nexport function polygonPath(points: KptPoint[]): string {\n if (points.length === 0) return '';\n const nf = (v: number) => (Number.isInteger(v) ? String(v) : v.toFixed(3));\n return points.map((p, i) => `${i === 0 ? 'M' : 'L'} ${nf(p.x)} ${nf(p.y)}`).join(' ') + ' Z';\n}\n","/*\n * Wyliczanie obszaru rysowania (plot area) wewnątrz viewBoxa SVG.\n * Tytuł/podtytuł/legenda są renderowane jako HTML poza SVG, więc tu\n * rezerwujemy jedynie marginesy na etykiety osi (wykresy kartezjańskie).\n */\nimport type { KptRect } from './types';\n\nexport interface Insets {\n top: number;\n right: number;\n bottom: number;\n left: number;\n}\n\n/** Obszar rysowania po odjęciu marginesów od pełnego viewBoxa. */\nexport function plotArea(width: number, height: number, insets: Insets): KptRect {\n return {\n x: insets.left,\n y: insets.top,\n width: Math.max(0, width - insets.left - insets.right),\n height: Math.max(0, height - insets.top - insets.bottom),\n };\n}\n\n/** Środek i promień dla wykresów promieniowych (pie/doughnut/polar/radar). */\nexport function radialArea(width: number, height: number, padding: number): { cx: number; cy: number; radius: number } {\n const cx = width / 2;\n const cy = height / 2;\n const radius = Math.max(0, Math.min(width, height) / 2 - padding);\n return { cx, cy, radius };\n}\n","/*\n * Domyślna paleta kolorów wykresów — oparta o semantyczne tokeny Koncept UI.\n * Rozszerzona o dodatkowe odcienie skali, by obsłużyć wiele serii/wycinków.\n */\n\n/** Kolejność kolorów dla kolejnych serii / wycinków. */\nexport const KPT_CHART_PALETTE: readonly string[] = [\n 'var(--kpt-color-primary)',\n 'var(--kpt-color-info)',\n 'var(--kpt-color-success)',\n 'var(--kpt-color-warning)',\n 'var(--kpt-color-danger)',\n 'var(--kpt-color-blue-700)',\n 'var(--kpt-color-green-700)',\n 'var(--kpt-color-amber-700)',\n 'var(--kpt-color-red-700)',\n 'var(--kpt-color-neutral-500)',\n];\n\n/** Kolor serii/wycinka: jawny z danych albo z palety (cyklicznie). */\nexport function seriesColor(explicit: string | undefined, index: number, palette: readonly string[] = KPT_CHART_PALETTE): string {\n return explicit ?? palette[index % palette.length];\n}\n","/*\n * Lekki formatter liczb dla etykiet osi i tooltipów.\n * Framework-free; korzysta z wbudowanego Intl (dostępny w przeglądarce i Node).\n */\n\n/** Formatuje liczbę zwięźle (do 2 miejsc, bez zer końcowych). */\nexport function formatNumber(value: number, locale?: string): string {\n if (!Number.isFinite(value)) return '';\n return new Intl.NumberFormat(locale, { maximumFractionDigits: 2 }).format(value);\n}\n\n/** Zaokrągla do skończonej liczby miejsc (do etykiet osi). */\nexport function round(value: number, digits = 0): number {\n const f = 10 ** digits;\n return Math.round(value * f) / f;\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output } from '@angular/core';\nimport type { KptAlign, KptLegendPosition, KptLegendTitle, KptPointStyle } from '../core/types';\n\nexport interface KptChartLegendItem {\n key: string;\n name: string;\n color: string;\n hidden: boolean;\n}\n\n/**\n * Legenda wykresu — klikalne elementy (toggle serii), podświetlanie na hover,\n * pozycjonowanie, wyrównanie, styl punktu i opcjonalny tytuł.\n * Element wewnętrzny biblioteki — nie jest częścią publicznego API.\n */\n@Component({\n selector: 'kpt-chart-legend',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-chart__legend\" [attr.data-position]=\"position()\" [attr.data-align]=\"align()\">\n @if (title()?.display && title()?.text) {\n <div class=\"kpt-chart__legend-title\" [attr.data-align]=\"title()?.position ?? 'start'\">{{ title()?.text }}</div>\n }\n <ul class=\"kpt-chart__legend-list\">\n @for (item of items(); track item.key) {\n <li>\n <button\n type=\"button\"\n class=\"kpt-chart__legend-item\"\n [class.kpt-chart__legend-item--hidden]=\"item.hidden\"\n (click)=\"seriesToggle.emit(item.key)\"\n (pointerenter)=\"highlight.emit(item.key)\"\n (pointerleave)=\"highlight.emit(null)\"\n >\n <span class=\"kpt-chart__legend-marker\" [attr.data-style]=\"pointStyle()\" [style.--kpt-chart-legend-color]=\"item.color\"></span>\n <span class=\"kpt-chart__legend-label\">{{ item.name }}</span>\n </button>\n </li>\n }\n </ul>\n </div>\n `,\n host: { class: 'kpt-chart-legend-host' },\n})\nexport class KptChartLegend {\n readonly items = input<KptChartLegendItem[]>([]);\n readonly position = input<KptLegendPosition>('bottom');\n readonly align = input<KptAlign>('center');\n readonly pointStyle = input<KptPointStyle>('circle');\n readonly title = input<KptLegendTitle | undefined>(undefined);\n\n /** Kliknięcie elementu — przełącz widoczność serii/wycinka (klucz). */\n readonly seriesToggle = output<string>();\n /** Wejście/wyjście kursora — podświetl serię (klucz) lub wyczyść (null). */\n readonly highlight = output<string | null>();\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, input } from '@angular/core';\n\nexport interface KptChartTooltipRow {\n name: string;\n value: string;\n color: string;\n}\n\nexport interface KptChartTooltipState {\n /** Pozycja pozioma w % szerokości kontenera (0..100). */\n x: number;\n /** Pozycja pionowa w % wysokości kontenera (0..100). */\n y: number;\n label: string;\n rows: KptChartTooltipRow[];\n}\n\n/**\n * Dymek (tooltip) wykresu — pozycjonowany procentowo względem kontenera\n * (niezależnie od skali SVG). Zabezpieczony przed wyjściem poza krawędzie.\n * Element wewnętrzny biblioteki — nie jest częścią publicznego API.\n */\n@Component({\n selector: 'kpt-chart-tooltip',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n @if (state(); as t) {\n <div class=\"kpt-chart__tooltip\" [class.kpt-chart__tooltip--flip]=\"t.y < 22\" [style.left.%]=\"clampX()\" [style.top.%]=\"t.y\" role=\"tooltip\">\n @if (t.label) {\n <div class=\"kpt-chart__tooltip-title\">{{ t.label }}</div>\n }\n @for (row of t.rows; track $index) {\n <div class=\"kpt-chart__tooltip-row\">\n <span class=\"kpt-chart__tooltip-dot\" [style.background-color]=\"row.color\"></span>\n <span class=\"kpt-chart__tooltip-name\">{{ row.name }}</span>\n <span class=\"kpt-chart__tooltip-val\">{{ row.value }}</span>\n </div>\n }\n </div>\n }\n `,\n host: { class: 'kpt-chart-tooltip-host' },\n})\nexport class KptChartTooltip {\n readonly state = input<KptChartTooltipState | null>(null);\n\n // Utrzymuje dymek w granicach kontenera (margines 6%).\n protected readonly clampX = computed(() => {\n const t = this.state();\n if (!t) return 50;\n return Math.min(94, Math.max(6, t.x));\n });\n}\n","<div class=\"kpt-chart\" [attr.data-legend]=\"legendOpts().display ? legendOpts().position : null\">\n @if (titleOpts()?.display && titleOpts()?.text) {\n <div\n class=\"kpt-chart__title\"\n [style.text-align]=\"titleStyle()\"\n [style.color]=\"titleOpts()?.color\"\n [style.font-family]=\"titleOpts()?.font?.family\"\n [style.font-size.px]=\"titleOpts()?.font?.size\"\n [style.font-weight]=\"titleOpts()?.font?.weight\"\n [style.padding-top.px]=\"titleOpts()?.padding?.top\"\n [style.padding-bottom.px]=\"titleOpts()?.padding?.bottom\"\n >\n {{ titleOpts()?.text }}\n </div>\n }\n @if (subtitleOpts()?.display && subtitleOpts()?.text) {\n <div\n class=\"kpt-chart__subtitle\"\n [style.text-align]=\"subtitleStyle()\"\n [style.color]=\"subtitleOpts()?.color\"\n [style.font-family]=\"subtitleOpts()?.font?.family\"\n [style.font-size.px]=\"subtitleOpts()?.font?.size\"\n [style.font-weight]=\"subtitleOpts()?.font?.weight\"\n [style.padding-top.px]=\"subtitleOpts()?.padding?.top\"\n [style.padding-bottom.px]=\"subtitleOpts()?.padding?.bottom\"\n >\n {{ subtitleOpts()?.text }}\n </div>\n }\n\n <div class=\"kpt-chart__body\">\n <div class=\"kpt-chart__canvas\">\n <svg [attr.viewBox]=\"'0 0 ' + width() + ' ' + height()\" class=\"kpt-chart__svg\" role=\"img\" preserveAspectRatio=\"xMidYMid meet\">\n @switch (type()) {\n @case ('line') {\n @if (lineVm(); as vm) {\n <g class=\"kpt-chart__grid\">\n @for (g of vm.grid; track $index) {\n <line class=\"kpt-chart__gridline\" [attr.x1]=\"g.x1\" [attr.y1]=\"g.y1\" [attr.x2]=\"g.x2\" [attr.y2]=\"g.y2\" />\n }\n </g>\n @if (crosshair(); as ch) {\n <line class=\"kpt-chart__crosshair\" [attr.x1]=\"ch.x\" [attr.y1]=\"ch.y1\" [attr.x2]=\"ch.x\" [attr.y2]=\"ch.y2\" />\n }\n <g class=\"kpt-chart__axis\">\n @for (l of vm.valueLabels; track $index) {\n <text [attr.x]=\"l.x\" [attr.y]=\"l.y\" [attr.text-anchor]=\"l.anchor\">{{ l.text }}</text>\n }\n @for (l of vm.catLabels; track $index) {\n <text [attr.x]=\"l.x\" [attr.y]=\"l.y\" [attr.text-anchor]=\"l.anchor\">{{ l.text }}</text>\n }\n </g>\n @if (crosshair(); as ch) {\n <g class=\"kpt-chart__cat-active\">\n <rect [attr.x]=\"ch.pillX\" [attr.y]=\"ch.pillY\" [attr.width]=\"ch.pillW\" [attr.height]=\"ch.pillH\" [attr.rx]=\"ch.pillH / 2\" />\n <text [attr.x]=\"ch.labelX\" [attr.y]=\"ch.labelY\" text-anchor=\"middle\">{{ ch.text }}</text>\n </g>\n }\n @for (s of vm.series; track s.key) {\n <g class=\"kpt-chart__series\" [class.kpt-chart__series--dim]=\"dim(s.key)\">\n @if (s.area) {\n <path class=\"kpt-chart__area\" [attr.d]=\"s.area\" [style.fill]=\"s.color\" />\n }\n <path class=\"kpt-chart__line\" [attr.d]=\"s.path\" [style.stroke]=\"s.color\" pathLength=\"1\" />\n @for (p of s.points; track $index) {\n @if (vm.showPoints) {\n <circle\n class=\"kpt-chart__point\"\n [class.kpt-chart__point--active]=\"activeIndex() === $index\"\n [attr.cx]=\"p.x\"\n [attr.cy]=\"p.y\"\n r=\"4\"\n [style.fill]=\"s.color\"\n [style.--kpt-chart-i]=\"$index\"\n />\n }\n <circle\n class=\"kpt-chart__hit\"\n [attr.cx]=\"p.x\"\n [attr.cy]=\"p.y\"\n r=\"12\"\n (pointerenter)=\"onLineEnter($index, p.x, p.y, s.name, p.label, p.value, s.color)\"\n (pointerleave)=\"onLineLeave()\"\n />\n }\n </g>\n }\n }\n }\n\n @case ('bar') {\n @if (barVm(); as vm) {\n <g class=\"kpt-chart__grid\">\n @for (g of vm.grid; track $index) {\n <line class=\"kpt-chart__gridline\" [attr.x1]=\"g.x1\" [attr.y1]=\"g.y1\" [attr.x2]=\"g.x2\" [attr.y2]=\"g.y2\" />\n }\n </g>\n <g class=\"kpt-chart__axis\">\n @for (l of vm.valueLabels; track $index) {\n <text [attr.x]=\"l.x\" [attr.y]=\"l.y\" [attr.text-anchor]=\"l.anchor\">{{ l.text }}</text>\n }\n @for (l of vm.catLabels; track $index) {\n <text [attr.x]=\"l.x\" [attr.y]=\"l.y\" [attr.text-anchor]=\"l.anchor\">{{ l.text }}</text>\n }\n </g>\n <g class=\"kpt-chart__bars\" [attr.data-orientation]=\"vm.orientation\">\n @for (b of vm.bars; track b.key + '#' + b.index) {\n <path\n class=\"kpt-chart__bar\"\n [class.kpt-chart__series--dim]=\"dim(b.key)\"\n [attr.d]=\"b.path\"\n [style.fill]=\"b.color\"\n [style.--kpt-chart-i]=\"b.index\"\n (pointerenter)=\"showTip(b.tipX, b.tipY, b.name, b.label, b.value, b.color)\"\n (pointerleave)=\"hideTip()\"\n />\n }\n </g>\n }\n }\n\n @case ('radar') {\n @if (radarVm(); as vm) {\n <g class=\"kpt-chart__grid\">\n @for (r of vm.rings; track $index) {\n <path class=\"kpt-chart__ring\" [attr.d]=\"r\" />\n }\n @for (a of vm.axisLines; track $index) {\n <line class=\"kpt-chart__gridline\" [attr.x1]=\"a.x1\" [attr.y1]=\"a.y1\" [attr.x2]=\"a.x2\" [attr.y2]=\"a.y2\" />\n }\n </g>\n <g class=\"kpt-chart__axis\">\n @for (l of vm.axisLabels; track $index) {\n <text [attr.x]=\"l.x\" [attr.y]=\"l.y\" [attr.text-anchor]=\"l.anchor\">{{ l.text }}</text>\n }\n </g>\n @for (s of vm.series; track s.key) {\n <g class=\"kpt-chart__series kpt-chart__radar\" [class.kpt-chart__series--dim]=\"dim(s.key)\">\n <path class=\"kpt-chart__radar-area\" [attr.d]=\"s.polygon\" [style.fill]=\"s.color\" [style.stroke]=\"s.color\" />\n @for (p of s.points; track $index) {\n <circle\n class=\"kpt-chart__point\"\n [attr.cx]=\"p.x\"\n [attr.cy]=\"p.y\"\n r=\"4\"\n [style.fill]=\"s.color\"\n [style.--kpt-chart-i]=\"$index\"\n (pointerenter)=\"showTip(p.x, p.y, s.name, p.label, p.value, s.color)\"\n (pointerleave)=\"hideTip()\"\n />\n }\n </g>\n }\n }\n }\n\n @default {\n @if (pieVm(); as slices) {\n <g class=\"kpt-chart__slices\">\n @for (sl of slices; track sl.key) {\n <path\n class=\"kpt-chart__slice\"\n [class.kpt-chart__series--dim]=\"dim(sl.key)\"\n [attr.d]=\"sl.path\"\n [style.fill]=\"sl.color\"\n [style.--kpt-chart-i]=\"$index\"\n (pointerenter)=\"showTip(sl.tipX, sl.tipY, sl.label, '', sl.value, sl.color)\"\n (pointerleave)=\"hideTip()\"\n />\n }\n </g>\n }\n }\n }\n </svg>\n\n <kpt-chart-tooltip [state]=\"tooltip()\" />\n </div>\n\n @if (legendOpts().display) {\n <kpt-chart-legend\n [items]=\"legendItems()\"\n [position]=\"legendOpts().position\"\n [align]=\"legendOpts().align\"\n [pointStyle]=\"legendOpts().pointStyle\"\n [title]=\"legendOpts().title\"\n (seriesToggle)=\"onToggle($event)\"\n (highlight)=\"onHighlight($event)\"\n />\n }\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, input, signal } from '@angular/core';\nimport { areaPath, linePath } from '../core/line';\nimport { barLayout } from '../core/bar';\nimport { pieSlices, polarSlices, polarToCartesian } from '../core/arc';\nimport { polygonPath, radarGrid, radarPoints } from '../core/radar';\nimport { plotArea, radialArea } from '../core/layout';\nimport { bandScale, extent, linearScale, niceScale } from '../core/scale';\nimport { seriesColor } from '../core/color';\nimport { formatNumber } from '../core/format';\nimport type { KptAlign, KptAnimationOptions, KptChartConfig } from '../core/types';\nimport { KptChartLegend, type KptChartLegendItem } from './chart-legend.component';\nimport { KptChartTooltip, type KptChartTooltipState } from './chart-tooltip.component';\n\n// --- Modele widoku (geometria gotowa do związania w SVG) ---\ninterface AxisLabel {\n x: number;\n y: number;\n text: string;\n anchor: 'start' | 'middle' | 'end';\n}\ninterface GridLine {\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n}\ninterface LinePoint {\n x: number;\n y: number;\n value: number;\n label: string;\n}\ninterface LineSeriesVm {\n key: string;\n name: string;\n color: string;\n path: string;\n area: string | null;\n points: LinePoint[];\n}\ninterface LineVm {\n plot: { x: number; y: number; width: number; height: number };\n series: LineSeriesVm[];\n grid: GridLine[];\n valueLabels: AxisLabel[];\n catLabels: AxisLabel[];\n showPoints: boolean;\n}\ninterface BarVm {\n orientation: 'vertical' | 'horizontal';\n bars: { key: string; path: string; color: string; name: string; label: string; value: number; tipX: number; tipY: number; index: number }[];\n grid: GridLine[];\n valueLabels: AxisLabel[];\n catLabels: AxisLabel[];\n}\ninterface SliceVm {\n key: string;\n path: string;\n color: string;\n label: string;\n value: number;\n tipX: number;\n tipY: number;\n}\ninterface RadarSeriesVm {\n key: string;\n name: string;\n color: string;\n polygon: string;\n points: LinePoint[];\n}\ninterface RadarVm {\n rings: string[];\n axisLines: GridLine[];\n axisLabels: AxisLabel[];\n series: RadarSeriesVm[];\n}\n\nconst VERTICAL_INSETS = { top: 12, right: 16, bottom: 28, left: 46 };\nconst HORIZONTAL_INSETS = { top: 12, right: 16, bottom: 28, left: 76 };\n\n/**\n * Wykres SVG w pełni konfigurowalny przez obiekt `config`.\n * Typy: line, bar, pie, doughnut, polarArea, radar. Sygnały + zoneless,\n * natywne renderowanie SVG (bez manipulacji DOM). Rdzeń obliczeń: `../core`.\n *\n * @example\n * <kpt-chart [config]=\"{ type: 'line', labels: ['Sty','Lut','Mar'],\n * series: [{ name: 'Sprzedaż', data: [12, 19, 7] }] }\" />\n */\n@Component({\n selector: 'kpt-chart',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptChartLegend, KptChartTooltip],\n templateUrl: './chart.component.html',\n styleUrl: './chart.component.scss',\n host: {\n class: 'kpt-chart-host',\n '[class.kpt-chart--no-anim]': '!anim().enabled',\n '[style.--kpt-chart-duration]': \"anim().duration + 'ms'\",\n '[style.--kpt-chart-stagger]': \"anim().stagger + 'ms'\",\n '[style.--kpt-chart-delay]': \"anim().delay + 'ms'\",\n },\n})\nexport class KptChart {\n readonly config = input.required<KptChartConfig>();\n /** Szerokość viewBoxa (jednostki SVG). Wykres skaluje się do kontenera. */\n readonly width = input(600);\n /** Wysokość viewBoxa (jednostki SVG). */\n readonly height = input(360);\n\n // --- Stan interakcji ---\n protected readonly hidden = signal<ReadonlySet<string>>(new Set());\n protected readonly highlighted = signal<string | null>(null);\n protected readonly tooltip = signal<KptChartTooltipState | null>(null);\n /** Indeks kategorii pod kursorem (dla prowadnicy crosshair w wykresie liniowym). */\n protected readonly activeIndex = signal<number | null>(null);\n\n // --- Znormalizowana konfiguracja ---\n protected readonly type = computed(() => this.config().type);\n protected readonly anim = computed<Required<KptAnimationOptions>>(() => {\n const a = this.config().animation ?? {};\n return { enabled: a.enabled ?? true, duration: a.duration ?? 400, delay: a.delay ?? 0, stagger: a.stagger ?? 60 };\n });\n protected readonly legendOpts = computed(() => {\n const l = this.config().legend ?? {};\n return {\n display: l.display ?? true,\n position: l.position ?? ('bottom' as const),\n align: l.align ?? ('center' as const),\n pointStyle: l.pointStyle ?? ('circle' as const),\n title: l.title,\n };\n });\n protected readonly titleOpts = computed(() => this.config().title);\n protected readonly subtitleOpts = computed(() => this.config().subtitle);\n\n protected readonly titleStyle = computed(() => styleFor(this.titleOpts()?.align));\n protected readonly subtitleStyle = computed(() => styleFor(this.subtitleOpts()?.align));\n\n // --- Legenda ---\n protected readonly legendItems = computed<KptChartLegendItem[]>(() => {\n const c = this.config();\n const h = this.hidden();\n if (c.type === 'pie' || c.type === 'doughnut' || c.type === 'polarArea') {\n return c.labels.map((label, i) => {\n const key = 'cat:' + i;\n return { key, name: label, color: seriesColor(c.series[0]?.color, i), hidden: h.has(key) };\n });\n }\n return c.series.map((s, i) => {\n const key = 'ser:' + s.name;\n return { key, name: s.name, color: seriesColor(s.color, i), hidden: h.has(key) };\n });\n });\n\n // --- Wykres liniowy ---\n protected readonly lineVm = computed<LineVm | null>(() => {\n const c = this.config();\n if (c.type !== 'line') return null;\n const h = this.hidden();\n const active = c.series.map((s, i) => ({ s, i })).filter(({ s }) => !h.has('ser:' + s.name));\n const values: number[] = [];\n for (const { s } of active) values.push(...s.data);\n const [mn, mx] = extent(values.length ? values : [0]);\n const scale = niceScale(Math.min(0, mn), Math.max(0, mx), 5);\n const plot = plotArea(this.width(), this.height(), VERTICAL_INSETS);\n const yScale = linearScale(scale.min, scale.max, plot.y + plot.height, plot.y);\n const n = c.labels.length;\n const xAt = (i: number) => (n > 1 ? plot.x + (i / (n - 1)) * plot.width : plot.x + plot.width / 2);\n const baseline = yScale(0);\n\n const series: LineSeriesVm[] = active.map(({ s, i }) => {\n const pts: LinePoint[] = s.data.map((v, idx) => ({ x: xAt(idx), y: yScale(v), value: v, label: c.labels[idx] ?? '' }));\n const color = seriesColor(s.color, i);\n return {\n key: 'ser:' + s.name,\n name: s.name,\n color,\n path: linePath(pts, c.interpolation ?? 'linear'),\n area: c.area ? areaPath(pts, baseline, c.interpolation ?? 'linear') : null,\n points: pts,\n };\n });\n\n return {\n plot,\n series,\n grid: scale.ticks.map((t) => ({ x1: plot.x, y1: yScale(t), x2: plot.x + plot.width, y2: yScale(t) })),\n valueLabels: scale.ticks.map((t) => ({ x: plot.x - 8, y: yScale(t) + 3, text: formatNumber(t), anchor: 'end' as const })),\n catLabels: c.labels.map((l, idx) => ({ x: xAt(idx), y: plot.y + plot.height + 18, text: l, anchor: 'middle' as const })),\n showPoints: c.points ?? true,\n };\n });\n\n // --- Wykres słupkowy ---\n protected readonly barVm = computed<BarVm | null>(() => {\n const c = this.config();\n if (c.type !== 'bar') return null;\n const h = this.hidden();\n const orientation = c.orientation ?? 'vertical';\n const active = c.series.map((s, i) => ({ s, i })).filter(({ s }) => !h.has('ser:' + s.name));\n const plot = plotArea(this.width(), this.height(), orientation === 'vertical' ? VERTICAL_INSETS : HORIZONTAL_INSETS);\n const layout = barLayout(active.map(({ s }) => s.data), c.labels.length, plot, orientation, c.borderRadius ?? 4);\n const colors = active.map(({ s, i }) => seriesColor(s.color, i));\n const names = active.map(({ s }) => s.name);\n\n const bars = layout.bars.map((b, order) => {\n const tipX = orientation === 'vertical' ? b.rect.x + b.rect.width / 2 : b.rect.x + b.rect.width;\n const tipY = orientation === 'vertical' ? b.rect.y : b.rect.y + b.rect.height / 2;\n return {\n key: 'ser:' + names[b.seriesIndex],\n path: b.path,\n color: colors[b.seriesIndex],\n name: names[b.seriesIndex],\n label: c.labels[b.categoryIndex] ?? '',\n value: b.value,\n tipX,\n tipY,\n index: order,\n };\n });\n\n const cat =\n orientation === 'vertical'\n ? bandScale(c.labels.length, plot.x, plot.x + plot.width, 0.2)\n : bandScale(c.labels.length, plot.y, plot.y + plot.height, 0.2);\n\n if (orientation === 'vertical') {\n return {\n orientation,\n bars,\n grid: layout.ticks.map((t) => ({ x1: plot.x, y1: t.pos, x2: plot.x + plot.width, y2: t.pos })),\n valueLabels: layout.ticks.map((t) => ({ x: plot.x - 8, y: t.pos + 3, text: formatNumber(t.value), anchor: 'end' as const })),\n catLabels: c.labels.map((l, idx) => ({ x: cat.center(idx), y: plot.y + plot.height + 18, text: l, anchor: 'middle' as const })),\n };\n }\n return {\n orientation,\n bars,\n grid: layout.ticks.map((t) => ({ x1: t.pos, y1: plot.y, x2: t.pos, y2: plot.y + plot.height })),\n valueLabels: layout.ticks.map((t) => ({ x: t.pos, y: plot.y + plot.height + 18, text: formatNumber(t.value), anchor: 'middle' as const })),\n catLabels: c.labels.map((l, idx) => ({ x: plot.x - 8, y: cat.center(idx) + 3, text: l, anchor: 'end' as const })),\n };\n });\n\n // --- Pie / Doughnut / Polar Area ---\n protected readonly pieVm = computed<SliceVm[] | null>(() => {\n const c = this.config();\n if (c.type !== 'pie' && c.type !== 'doughnut' && c.type !== 'polarArea') return null;\n const h = this.hidden();\n const s0 = c.series[0];\n if (!s0) return [];\n const { cx, cy, radius } = radialArea(this.width(), this.height(), 8);\n const entries = c.labels\n .map((label, i) => ({ label, i, value: s0.data[i] ?? 0, color: seriesColor(s0.color, i) }))\n .filter((e) => !h.has('cat:' + e.i));\n const values = entries.map((e) => e.value);\n\n if (c.type === 'polarArea') {\n const max = Math.max(1, ...values.map((v) => Math.max(0, v)));\n const slices = polarSlices(values, cx, cy, radius, max);\n return slices.map((sl, k) => tipSlice(entries[k], sl.midAngle, radius * 0.62, cx, cy, sl.path));\n }\n const inner = c.type === 'doughnut' ? radius * (c.innerRadius ?? 0.6) : 0;\n const slices = pieSlices(values, cx, cy, radius, inner);\n return slices.map((sl, k) => tipSlice(entries[k], sl.midAngle, (radius + inner) / 2, cx, cy, sl.path));\n });\n\n // --- Radar ---\n protected readonly radarVm = computed<RadarVm | null>(() => {\n const c = this.config();\n if (c.type !== 'radar') return null;\n const h = this.hidden();\n const count = c.labels.length;\n const { cx, cy, radius } = radialArea(this.width(), this.height(), 30);\n const grid = radarGrid(count, cx, cy, radius, 4);\n const active = c.series.map((s, i) => ({ s, i })).filter(({ s }) => !h.has('ser:' + s.name));\n let max = 1;\n for (const { s } of active) for (const v of s.data) max = Math.max(max, v);\n\n const series: RadarSeriesVm[] = active.map(({ s, i }) => {\n const pts = radarPoints(s.data, cx, cy, radius, max);\n return {\n key: 'ser:' + s.name,\n name: s.name,\n color: seriesColor(s.color, i),\n polygon: polygonPath(pts),\n points: pts.map((p, idx) => ({ x: p.x, y: p.y, value: s.data[idx] ?? 0, label: c.labels[idx] ?? '' })),\n };\n });\n\n return {\n rings: grid.rings,\n axisLines: grid.axes.map((a) => ({ x1: cx, y1: cy, x2: a.end.x, y2: a.end.y })),\n axisLabels: grid.axes.map((a) => {\n const p = polarToCartesian(cx, cy, radius + 14, a.angle);\n const anchor: AxisLabel['anchor'] = Math.abs(p.x - cx) < 1 ? 'middle' : p.x > cx ? 'start' : 'end';\n return { x: p.x, y: p.y + 3, text: c.labels[a.labelIndex] ?? '', anchor };\n }),\n series,\n };\n });\n\n // --- Crosshair (prowadnica + pigułka etykiety osi X) dla wykresu liniowego ---\n protected readonly crosshair = computed(() => {\n const c = this.config();\n if (c.type !== 'line' || !c.crosshair) return null;\n const i = this.activeIndex();\n const vm = this.lineVm();\n if (i === null || !vm) return null;\n const cat = vm.catLabels[i];\n if (!cat) return null;\n const w = Math.max(28, cat.text.length * 7 + 16);\n return {\n x: cat.x,\n y1: vm.plot.y,\n y2: vm.plot.y + vm.plot.height,\n text: cat.text,\n labelX: cat.x,\n labelY: cat.y,\n pillX: cat.x - w / 2,\n pillY: cat.y - 13,\n pillW: w,\n pillH: 18,\n };\n });\n\n // --- Zdarzenia ---\n protected onLineEnter(idx: number, tipX: number, tipY: number, name: string, label: string, value: number, color: string): void {\n this.activeIndex.set(idx);\n this.showTip(tipX, tipY, name, label, value, color);\n }\n\n protected onLineLeave(): void {\n this.activeIndex.set(null);\n this.hideTip();\n }\n\n protected showTip(tipX: number, tipY: number, name: string, label: string, value: number, color: string): void {\n if (this.config().tooltip?.enabled === false) return;\n const fmt = this.config().tooltip?.format;\n const text = fmt ? fmt({ series: name, label, value }) : formatNumber(value);\n this.tooltip.set({ x: (tipX / this.width()) * 100, y: (tipY / this.height()) * 100, label, rows: [{ name, value: text, color }] });\n }\n\n protected hideTip(): void {\n this.tooltip.set(null);\n }\n\n protected onToggle(key: string): void {\n const set = new Set(this.hidden());\n if (set.has(key)) set.delete(key);\n else set.add(key);\n this.hidden.set(set);\n }\n\n protected onHighlight(key: string | null): void {\n this.highlighted.set(key);\n }\n\n /** Czy dany element ma być wygaszony (aktywne podświetlenie innego). */\n protected dim(key: string): boolean {\n const hi = this.highlighted();\n return hi !== null && hi !== key;\n }\n}\n\n// Buduje SliceVm z pozycją tooltipa na promieniu środka wycinka.\nfunction tipSlice(\n entry: { label: string; i: number; value: number; color: string },\n midAngle: number,\n tipRadius: number,\n cx: number,\n cy: number,\n path: string,\n): SliceVm {\n const p = polarToCartesian(cx, cy, tipRadius, midAngle);\n return { key: 'cat:' + entry.i, path, color: entry.color, label: entry.label, value: entry.value, tipX: p.x, tipY: p.y };\n}\n\nfunction styleFor(align: KptAlign | undefined): string {\n if (align === 'center') return 'center';\n if (align === 'end') return 'right';\n return 'left';\n}\n","/*\n * Rdzeń wykresów — czyste typy TypeScript (bez zależności od DOM/frameworka).\n * Współdzielone przez warstwę Angular (Faza 1) i React (Faza 2).\n */\n\nexport type KptChartType = 'line' | 'bar' | 'pie' | 'doughnut' | 'polarArea' | 'radar';\n\n/** Tryb interpolacji linii dla wykresu liniowego. */\nexport type KptLineInterpolation = 'linear' | 'cubic' | 'cubic-monotonic';\n\n/** Orientacja słupków. */\nexport type KptBarOrientation = 'vertical' | 'horizontal';\n\n/** Pojedyncza seria danych. Kolejność wartości odpowiada `labels`. */\nexport interface KptChartSeries {\n /** Nazwa serii (legenda, tooltip). */\n name: string;\n /** Wartości; długość zwykle równa liczbie etykiet. */\n data: number[];\n /** Kolor (CSS). Domyślnie z palety tokenów. */\n color?: string;\n}\n\nexport type KptLegendPosition = 'top' | 'bottom' | 'left' | 'right';\nexport type KptAlign = 'start' | 'center' | 'end';\nexport type KptPointStyle = 'circle' | 'rect' | 'rectRot' | 'triangle' | 'line';\n\nexport interface KptLegendTitle {\n display?: boolean;\n text?: string;\n position?: KptAlign;\n}\n\nexport interface KptLegendOptions {\n display?: boolean;\n position?: KptLegendPosition;\n align?: KptAlign;\n pointStyle?: KptPointStyle;\n title?: KptLegendTitle;\n}\n\nexport interface KptFont {\n family?: string;\n size?: number;\n weight?: string | number;\n}\n\nexport interface KptPadding {\n top?: number;\n bottom?: number;\n}\n\nexport interface KptTitleOptions {\n display?: boolean;\n text?: string;\n align?: KptAlign;\n color?: string;\n font?: KptFont;\n padding?: KptPadding;\n}\n\n/** Kontekst przekazywany do formatera tooltipa. */\nexport interface KptTooltipContext {\n series: string;\n label: string;\n value: number;\n}\n\nexport interface KptTooltipOptions {\n enabled?: boolean;\n format?: (ctx: KptTooltipContext) => string;\n}\n\nexport interface KptAnimationOptions {\n enabled?: boolean;\n /** Czas trwania w ms (domyślnie 400). */\n duration?: number;\n /** Opóźnienie startu w ms (domyślnie 0). */\n delay?: number;\n /** Przesunięcie kolejnych elementów w ms (`delay = index * stagger`). */\n stagger?: number;\n}\n\n/** Pełna konfiguracja wykresu. Jeden kształt dla wszystkich typów. */\nexport interface KptChartConfig {\n type: KptChartType;\n /** Etykiety osi kategorii / wycinków. */\n labels: string[];\n series: KptChartSeries[];\n\n // --- opcje zależne od typu ---\n /** Bar: orientacja słupków (domyślnie 'vertical'). */\n orientation?: KptBarOrientation;\n /** Line: tryb interpolacji (domyślnie 'linear'). */\n interpolation?: KptLineInterpolation;\n /** Line: wypełnienie obszaru pod linią. */\n area?: boolean;\n /** Line: punkty danych widoczne (domyślnie true). */\n points?: boolean;\n /** Line: pionowa prowadnica + podświetlona etykieta osi X przy hoverze punktu. */\n crosshair?: boolean;\n /** Doughnut/PolarArea/Radar: promień wewnętrzny 0..1 (doughnut, domyślnie 0.6). */\n innerRadius?: number;\n /** Bar: promień zaokrąglenia rogów w px (domyślnie 4). */\n borderRadius?: number;\n\n // --- opcje wspólne ---\n animation?: KptAnimationOptions;\n legend?: KptLegendOptions;\n title?: KptTitleOptions;\n subtitle?: KptTitleOptions;\n tooltip?: KptTooltipOptions;\n}\n\n/** Punkt w układzie SVG. */\nexport interface KptPoint {\n x: number;\n y: number;\n}\n\n/** Prostokąt obszaru rysowania (plot area). */\nexport interface KptRect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n","/* Rdzeń wykresów (pure TS) — barrel eksportów. */\nexport * from './types';\nexport * from './scale';\nexport * from './line';\nexport * from './bar';\nexport * from './arc';\nexport * from './radar';\nexport * from './layout';\nexport * from './color';\nexport * from './format';\n","/*\n * Public API — @konce-pt/angular/charts\n * Wykresy SVG dla Angulara (sygnały, zoneless). Rdzeń obliczeń: pure TS.\n */\nexport { KptChart } from './lib/chart.component';\n\nexport type {\n KptChartConfig,\n KptChartSeries,\n KptChartType,\n KptLineInterpolation,\n KptBarOrientation,\n KptLegendOptions,\n KptLegendPosition,\n KptLegendTitle,\n KptAlign,\n KptPointStyle,\n KptTitleOptions,\n KptTooltipOptions,\n KptTooltipContext,\n KptAnimationOptions,\n KptFont,\n KptPadding,\n} from './core/types';\n\n// Rdzeń obliczeniowy (pure TS) — przydatny do własnych rozszerzeń / SSR.\nexport {\n KPT_CHART_PALETTE,\n seriesColor,\n linePath,\n areaPath,\n pieSlices,\n polarSlices,\n barLayout,\n radarGrid,\n radarPoints,\n niceScale,\n} from './core';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["n","_forTrack0"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"konce-pt-angular-charts.mjs","sources":["../../charts/src/lib/chart-legend.component.ts","../../charts/src/lib/chart-tooltip.component.ts","../../charts/src/lib/chart.component.html","../../charts/src/lib/chart.component.ts","../../charts/src/public-api.ts","../../charts/src/konce-pt-angular-charts.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation, input, output } from '@angular/core';\nimport type { KptAlign, KptLegendPosition, KptLegendTitle, KptPointStyle } from '@konce-pt/chart';\n\nexport interface KptChartLegendItem {\n key: string;\n name: string;\n color: string;\n hidden: boolean;\n}\n\n/**\n * Legenda wykresu — klikalne elementy (toggle serii), podświetlanie na hover,\n * pozycjonowanie, wyrównanie, styl punktu i opcjonalny tytuł.\n * Element wewnętrzny biblioteki — nie jest częścią publicznego API.\n */\n@Component({\n selector: 'kpt-chart-legend',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"kpt-chart__legend\" [attr.data-position]=\"position()\" [attr.data-align]=\"align()\">\n @if (title()?.display && title()?.text) {\n <div class=\"kpt-chart__legend-title\" [attr.data-align]=\"title()?.position ?? 'start'\">{{ title()?.text }}</div>\n }\n <ul class=\"kpt-chart__legend-list\">\n @for (item of items(); track item.key) {\n <li>\n <button\n type=\"button\"\n class=\"kpt-chart__legend-item\"\n [class.kpt-chart__legend-item--hidden]=\"item.hidden\"\n (click)=\"seriesToggle.emit(item.key)\"\n (pointerenter)=\"highlight.emit(item.key)\"\n (pointerleave)=\"highlight.emit(null)\"\n >\n <span class=\"kpt-chart__legend-marker\" [attr.data-style]=\"pointStyle()\" [style.--kpt-chart-legend-color]=\"item.color\"></span>\n <span class=\"kpt-chart__legend-label\">{{ item.name }}</span>\n </button>\n </li>\n }\n </ul>\n </div>\n `,\n host: { class: 'kpt-chart-legend-host' },\n})\nexport class KptChartLegend {\n readonly items = input<KptChartLegendItem[]>([]);\n readonly position = input<KptLegendPosition>('bottom');\n readonly align = input<KptAlign>('center');\n readonly pointStyle = input<KptPointStyle>('circle');\n readonly title = input<KptLegendTitle | undefined>(undefined);\n\n /** Kliknięcie elementu — przełącz widoczność serii/wycinka (klucz). */\n readonly seriesToggle = output<string>();\n /** Wejście/wyjście kursora — podświetl serię (klucz) lub wyczyść (null). */\n readonly highlight = output<string | null>();\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, input } from '@angular/core';\n\nexport interface KptChartTooltipRow {\n name: string;\n value: string;\n color: string;\n}\n\nexport interface KptChartTooltipState {\n /** Pozycja pozioma w % szerokości kontenera (0..100). */\n x: number;\n /** Pozycja pionowa w % wysokości kontenera (0..100). */\n y: number;\n label: string;\n rows: KptChartTooltipRow[];\n}\n\n/**\n * Dymek (tooltip) wykresu — pozycjonowany procentowo względem kontenera\n * (niezależnie od skali SVG). Zabezpieczony przed wyjściem poza krawędzie.\n * Element wewnętrzny biblioteki — nie jest częścią publicznego API.\n */\n@Component({\n selector: 'kpt-chart-tooltip',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n @if (state(); as t) {\n <div class=\"kpt-chart__tooltip\" [class.kpt-chart__tooltip--flip]=\"t.y < 22\" [style.left.%]=\"clampX()\" [style.top.%]=\"t.y\" role=\"tooltip\">\n @if (t.label) {\n <div class=\"kpt-chart__tooltip-title\">{{ t.label }}</div>\n }\n @for (row of t.rows; track $index) {\n <div class=\"kpt-chart__tooltip-row\">\n <span class=\"kpt-chart__tooltip-dot\" [style.background-color]=\"row.color\"></span>\n <span class=\"kpt-chart__tooltip-name\">{{ row.name }}</span>\n <span class=\"kpt-chart__tooltip-val\">{{ row.value }}</span>\n </div>\n }\n </div>\n }\n `,\n host: { class: 'kpt-chart-tooltip-host' },\n})\nexport class KptChartTooltip {\n readonly state = input<KptChartTooltipState | null>(null);\n\n // Utrzymuje dymek w granicach kontenera (margines 6%).\n protected readonly clampX = computed(() => {\n const t = this.state();\n if (!t) return 50;\n return Math.min(94, Math.max(6, t.x));\n });\n}\n","<div class=\"kpt-chart\" [attr.data-legend]=\"legendOpts().display ? legendOpts().position : null\">\n @if (titleOpts()?.display && titleOpts()?.text) {\n <div\n class=\"kpt-chart__title\"\n [style.text-align]=\"titleStyle()\"\n [style.color]=\"titleOpts()?.color\"\n [style.font-family]=\"titleOpts()?.font?.family\"\n [style.font-size.px]=\"titleOpts()?.font?.size\"\n [style.font-weight]=\"titleOpts()?.font?.weight\"\n [style.padding-top.px]=\"titleOpts()?.padding?.top\"\n [style.padding-bottom.px]=\"titleOpts()?.padding?.bottom\"\n >\n {{ titleOpts()?.text }}\n </div>\n }\n @if (subtitleOpts()?.display && subtitleOpts()?.text) {\n <div\n class=\"kpt-chart__subtitle\"\n [style.text-align]=\"subtitleStyle()\"\n [style.color]=\"subtitleOpts()?.color\"\n [style.font-family]=\"subtitleOpts()?.font?.family\"\n [style.font-size.px]=\"subtitleOpts()?.font?.size\"\n [style.font-weight]=\"subtitleOpts()?.font?.weight\"\n [style.padding-top.px]=\"subtitleOpts()?.padding?.top\"\n [style.padding-bottom.px]=\"subtitleOpts()?.padding?.bottom\"\n >\n {{ subtitleOpts()?.text }}\n </div>\n }\n\n <div class=\"kpt-chart__body\">\n <div class=\"kpt-chart__canvas\">\n <svg [attr.viewBox]=\"'0 0 ' + width() + ' ' + height()\" class=\"kpt-chart__svg\" role=\"img\" preserveAspectRatio=\"xMidYMid meet\">\n @switch (type()) {\n @case ('line') {\n @if (lineVm(); as vm) {\n <g class=\"kpt-chart__grid\">\n @for (g of vm.grid; track $index) {\n <line class=\"kpt-chart__gridline\" [attr.x1]=\"g.x1\" [attr.y1]=\"g.y1\" [attr.x2]=\"g.x2\" [attr.y2]=\"g.y2\" />\n }\n </g>\n @if (crosshair(); as ch) {\n <line class=\"kpt-chart__crosshair\" [attr.x1]=\"ch.x\" [attr.y1]=\"ch.y1\" [attr.x2]=\"ch.x\" [attr.y2]=\"ch.y2\" />\n }\n <g class=\"kpt-chart__axis\">\n @for (l of vm.valueLabels; track $index) {\n <text [attr.x]=\"l.x\" [attr.y]=\"l.y\" [attr.text-anchor]=\"l.anchor\">{{ l.text }}</text>\n }\n @for (l of vm.catLabels; track $index) {\n <text [attr.x]=\"l.x\" [attr.y]=\"l.y\" [attr.text-anchor]=\"l.anchor\">{{ l.text }}</text>\n }\n </g>\n @if (crosshair(); as ch) {\n <g class=\"kpt-chart__cat-active\">\n <rect [attr.x]=\"ch.pillX\" [attr.y]=\"ch.pillY\" [attr.width]=\"ch.pillW\" [attr.height]=\"ch.pillH\" [attr.rx]=\"ch.pillH / 2\" />\n <text [attr.x]=\"ch.labelX\" [attr.y]=\"ch.labelY\" text-anchor=\"middle\">{{ ch.text }}</text>\n </g>\n }\n @for (s of vm.series; track s.key) {\n <g class=\"kpt-chart__series\" [class.kpt-chart__series--dim]=\"dim(s.key)\">\n @if (s.area) {\n <path class=\"kpt-chart__area\" [attr.d]=\"s.area\" [style.fill]=\"s.color\" />\n }\n <path class=\"kpt-chart__line\" [attr.d]=\"s.path\" [style.stroke]=\"s.color\" pathLength=\"1\" />\n @for (p of s.points; track $index) {\n @if (vm.showPoints) {\n <circle\n class=\"kpt-chart__point\"\n [class.kpt-chart__point--active]=\"activeIndex() === $index\"\n [attr.cx]=\"p.x\"\n [attr.cy]=\"p.y\"\n r=\"4\"\n [style.fill]=\"s.color\"\n [style.--kpt-chart-i]=\"$index\"\n />\n }\n <circle\n class=\"kpt-chart__hit\"\n [attr.cx]=\"p.x\"\n [attr.cy]=\"p.y\"\n r=\"12\"\n (pointerenter)=\"onLineEnter($index, p.x, p.y, s.name, p.label, p.value, s.color)\"\n (pointerleave)=\"onLineLeave()\"\n />\n }\n </g>\n }\n }\n }\n\n @case ('bar') {\n @if (barVm(); as vm) {\n <g class=\"kpt-chart__grid\">\n @for (g of vm.grid; track $index) {\n <line class=\"kpt-chart__gridline\" [attr.x1]=\"g.x1\" [attr.y1]=\"g.y1\" [attr.x2]=\"g.x2\" [attr.y2]=\"g.y2\" />\n }\n </g>\n <g class=\"kpt-chart__axis\">\n @for (l of vm.valueLabels; track $index) {\n <text [attr.x]=\"l.x\" [attr.y]=\"l.y\" [attr.text-anchor]=\"l.anchor\">{{ l.text }}</text>\n }\n @for (l of vm.catLabels; track $index) {\n <text [attr.x]=\"l.x\" [attr.y]=\"l.y\" [attr.text-anchor]=\"l.anchor\">{{ l.text }}</text>\n }\n </g>\n <g class=\"kpt-chart__bars\" [attr.data-orientation]=\"vm.orientation\">\n @for (b of vm.bars; track b.key + '#' + b.index) {\n <path\n class=\"kpt-chart__bar\"\n [class.kpt-chart__series--dim]=\"dim(b.key)\"\n [attr.d]=\"b.path\"\n [style.fill]=\"b.color\"\n [style.--kpt-chart-i]=\"b.index\"\n (pointerenter)=\"showTip(b.tipX, b.tipY, b.name, b.label, b.value, b.color)\"\n (pointerleave)=\"hideTip()\"\n />\n }\n </g>\n }\n }\n\n @case ('radar') {\n @if (radarVm(); as vm) {\n <g class=\"kpt-chart__grid\">\n @for (r of vm.rings; track $index) {\n <path class=\"kpt-chart__ring\" [attr.d]=\"r\" />\n }\n @for (a of vm.axisLines; track $index) {\n <line class=\"kpt-chart__gridline\" [attr.x1]=\"a.x1\" [attr.y1]=\"a.y1\" [attr.x2]=\"a.x2\" [attr.y2]=\"a.y2\" />\n }\n </g>\n <g class=\"kpt-chart__axis\">\n @for (l of vm.axisLabels; track $index) {\n <text [attr.x]=\"l.x\" [attr.y]=\"l.y\" [attr.text-anchor]=\"l.anchor\">{{ l.text }}</text>\n }\n </g>\n @for (s of vm.series; track s.key) {\n <g class=\"kpt-chart__series kpt-chart__radar\" [class.kpt-chart__series--dim]=\"dim(s.key)\">\n <path class=\"kpt-chart__radar-area\" [attr.d]=\"s.polygon\" [style.fill]=\"s.color\" [style.stroke]=\"s.color\" />\n @for (p of s.points; track $index) {\n <circle\n class=\"kpt-chart__point\"\n [attr.cx]=\"p.x\"\n [attr.cy]=\"p.y\"\n r=\"4\"\n [style.fill]=\"s.color\"\n [style.--kpt-chart-i]=\"$index\"\n (pointerenter)=\"showTip(p.x, p.y, s.name, p.label, p.value, s.color)\"\n (pointerleave)=\"hideTip()\"\n />\n }\n </g>\n }\n }\n }\n\n @default {\n @if (pieVm(); as slices) {\n <g class=\"kpt-chart__slices\">\n @for (sl of slices; track sl.key) {\n <path\n class=\"kpt-chart__slice\"\n [class.kpt-chart__series--dim]=\"dim(sl.key)\"\n [attr.d]=\"sl.path\"\n [style.fill]=\"sl.color\"\n [style.--kpt-chart-i]=\"$index\"\n (pointerenter)=\"showTip(sl.tipX, sl.tipY, sl.label, '', sl.value, sl.color)\"\n (pointerleave)=\"hideTip()\"\n />\n }\n </g>\n }\n }\n }\n </svg>\n\n <kpt-chart-tooltip [state]=\"tooltip()\" />\n </div>\n\n @if (legendOpts().display) {\n <kpt-chart-legend\n [items]=\"legendItems()\"\n [position]=\"legendOpts().position\"\n [align]=\"legendOpts().align\"\n [pointStyle]=\"legendOpts().pointStyle\"\n [title]=\"legendOpts().title\"\n (seriesToggle)=\"onToggle($event)\"\n (highlight)=\"onHighlight($event)\"\n />\n }\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, input, signal } from '@angular/core';\nimport {\n areaPath,\n bandScale,\n barLayout,\n extent,\n formatNumber,\n linePath,\n linearScale,\n niceScale,\n pieSlices,\n plotArea,\n polarSlices,\n polarToCartesian,\n polygonPath,\n radarGrid,\n radarPoints,\n radialArea,\n seriesColor,\n type KptAlign,\n type KptAnimationOptions,\n type KptChartConfig,\n} from '@konce-pt/chart';\nimport { KptChartLegend, type KptChartLegendItem } from './chart-legend.component';\nimport { KptChartTooltip, type KptChartTooltipState } from './chart-tooltip.component';\n\n// --- Modele widoku (geometria gotowa do związania w SVG) ---\ninterface AxisLabel {\n x: number;\n y: number;\n text: string;\n anchor: 'start' | 'middle' | 'end';\n}\ninterface GridLine {\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n}\ninterface LinePoint {\n x: number;\n y: number;\n value: number;\n label: string;\n}\ninterface LineSeriesVm {\n key: string;\n name: string;\n color: string;\n path: string;\n area: string | null;\n points: LinePoint[];\n}\ninterface LineVm {\n plot: { x: number; y: number; width: number; height: number };\n series: LineSeriesVm[];\n grid: GridLine[];\n valueLabels: AxisLabel[];\n catLabels: AxisLabel[];\n showPoints: boolean;\n}\ninterface BarVm {\n orientation: 'vertical' | 'horizontal';\n bars: { key: string; path: string; color: string; name: string; label: string; value: number; tipX: number; tipY: number; index: number }[];\n grid: GridLine[];\n valueLabels: AxisLabel[];\n catLabels: AxisLabel[];\n}\ninterface SliceVm {\n key: string;\n path: string;\n color: string;\n label: string;\n value: number;\n tipX: number;\n tipY: number;\n}\ninterface RadarSeriesVm {\n key: string;\n name: string;\n color: string;\n polygon: string;\n points: LinePoint[];\n}\ninterface RadarVm {\n rings: string[];\n axisLines: GridLine[];\n axisLabels: AxisLabel[];\n series: RadarSeriesVm[];\n}\n\nconst VERTICAL_INSETS = { top: 12, right: 16, bottom: 28, left: 46 };\nconst HORIZONTAL_INSETS = { top: 12, right: 16, bottom: 28, left: 76 };\n\n/**\n * Wykres SVG w pełni konfigurowalny przez obiekt `config`.\n * Typy: line, bar, pie, doughnut, polarArea, radar. Sygnały + zoneless,\n * natywne renderowanie SVG (bez manipulacji DOM). Rdzeń obliczeń: `../core`.\n *\n * @example\n * <kpt-chart [config]=\"{ type: 'line', labels: ['Sty','Lut','Mar'],\n * series: [{ name: 'Sprzedaż', data: [12, 19, 7] }] }\" />\n */\n@Component({\n selector: 'kpt-chart',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [KptChartLegend, KptChartTooltip],\n templateUrl: './chart.component.html',\n styleUrl: './chart.component.scss',\n host: {\n class: 'kpt-chart-host',\n '[class.kpt-chart--no-anim]': '!anim().enabled',\n '[style.--kpt-chart-duration]': \"anim().duration + 'ms'\",\n '[style.--kpt-chart-stagger]': \"anim().stagger + 'ms'\",\n '[style.--kpt-chart-delay]': \"anim().delay + 'ms'\",\n },\n})\nexport class KptChart {\n readonly config = input.required<KptChartConfig>();\n /** Szerokość viewBoxa (jednostki SVG). Wykres skaluje się do kontenera. */\n readonly width = input(600);\n /** Wysokość viewBoxa (jednostki SVG). */\n readonly height = input(360);\n\n // --- Stan interakcji ---\n protected readonly hidden = signal<ReadonlySet<string>>(new Set());\n protected readonly highlighted = signal<string | null>(null);\n protected readonly tooltip = signal<KptChartTooltipState | null>(null);\n /** Indeks kategorii pod kursorem (dla prowadnicy crosshair w wykresie liniowym). */\n protected readonly activeIndex = signal<number | null>(null);\n\n // --- Znormalizowana konfiguracja ---\n protected readonly type = computed(() => this.config().type);\n protected readonly anim = computed<Required<KptAnimationOptions>>(() => {\n const a = this.config().animation ?? {};\n return { enabled: a.enabled ?? true, duration: a.duration ?? 400, delay: a.delay ?? 0, stagger: a.stagger ?? 60 };\n });\n protected readonly legendOpts = computed(() => {\n const l = this.config().legend ?? {};\n return {\n display: l.display ?? true,\n position: l.position ?? ('bottom' as const),\n align: l.align ?? ('center' as const),\n pointStyle: l.pointStyle ?? ('circle' as const),\n title: l.title,\n };\n });\n protected readonly titleOpts = computed(() => this.config().title);\n protected readonly subtitleOpts = computed(() => this.config().subtitle);\n\n protected readonly titleStyle = computed(() => styleFor(this.titleOpts()?.align));\n protected readonly subtitleStyle = computed(() => styleFor(this.subtitleOpts()?.align));\n\n // --- Legenda ---\n protected readonly legendItems = computed<KptChartLegendItem[]>(() => {\n const c = this.config();\n const h = this.hidden();\n if (c.type === 'pie' || c.type === 'doughnut' || c.type === 'polarArea') {\n return c.labels.map((label, i) => {\n const key = 'cat:' + i;\n return { key, name: label, color: seriesColor(c.series[0]?.color, i), hidden: h.has(key) };\n });\n }\n return c.series.map((s, i) => {\n const key = 'ser:' + s.name;\n return { key, name: s.name, color: seriesColor(s.color, i), hidden: h.has(key) };\n });\n });\n\n // --- Wykres liniowy ---\n protected readonly lineVm = computed<LineVm | null>(() => {\n const c = this.config();\n if (c.type !== 'line') return null;\n const h = this.hidden();\n const active = c.series.map((s, i) => ({ s, i })).filter(({ s }) => !h.has('ser:' + s.name));\n const values: number[] = [];\n for (const { s } of active) values.push(...s.data);\n const [mn, mx] = extent(values.length ? values : [0]);\n const scale = niceScale(Math.min(0, mn), Math.max(0, mx), 5);\n const plot = plotArea(this.width(), this.height(), VERTICAL_INSETS);\n const yScale = linearScale(scale.min, scale.max, plot.y + plot.height, plot.y);\n const n = c.labels.length;\n const xAt = (i: number) => (n > 1 ? plot.x + (i / (n - 1)) * plot.width : plot.x + plot.width / 2);\n const baseline = yScale(0);\n\n const series: LineSeriesVm[] = active.map(({ s, i }) => {\n const pts: LinePoint[] = s.data.map((v, idx) => ({ x: xAt(idx), y: yScale(v), value: v, label: c.labels[idx] ?? '' }));\n const color = seriesColor(s.color, i);\n return {\n key: 'ser:' + s.name,\n name: s.name,\n color,\n path: linePath(pts, c.interpolation ?? 'linear'),\n area: c.area ? areaPath(pts, baseline, c.interpolation ?? 'linear') : null,\n points: pts,\n };\n });\n\n return {\n plot,\n series,\n grid: scale.ticks.map((t) => ({ x1: plot.x, y1: yScale(t), x2: plot.x + plot.width, y2: yScale(t) })),\n valueLabels: scale.ticks.map((t) => ({ x: plot.x - 8, y: yScale(t) + 3, text: formatNumber(t), anchor: 'end' as const })),\n catLabels: c.labels.map((l, idx) => ({ x: xAt(idx), y: plot.y + plot.height + 18, text: l, anchor: 'middle' as const })),\n showPoints: c.points ?? true,\n };\n });\n\n // --- Wykres słupkowy ---\n protected readonly barVm = computed<BarVm | null>(() => {\n const c = this.config();\n if (c.type !== 'bar') return null;\n const h = this.hidden();\n const orientation = c.orientation ?? 'vertical';\n const active = c.series.map((s, i) => ({ s, i })).filter(({ s }) => !h.has('ser:' + s.name));\n const plot = plotArea(this.width(), this.height(), orientation === 'vertical' ? VERTICAL_INSETS : HORIZONTAL_INSETS);\n const layout = barLayout(active.map(({ s }) => s.data), c.labels.length, plot, orientation, c.borderRadius ?? 4);\n const colors = active.map(({ s, i }) => seriesColor(s.color, i));\n const names = active.map(({ s }) => s.name);\n\n const bars = layout.bars.map((b, order) => {\n const tipX = orientation === 'vertical' ? b.rect.x + b.rect.width / 2 : b.rect.x + b.rect.width;\n const tipY = orientation === 'vertical' ? b.rect.y : b.rect.y + b.rect.height / 2;\n return {\n key: 'ser:' + names[b.seriesIndex],\n path: b.path,\n color: colors[b.seriesIndex],\n name: names[b.seriesIndex],\n label: c.labels[b.categoryIndex] ?? '',\n value: b.value,\n tipX,\n tipY,\n index: order,\n };\n });\n\n const cat =\n orientation === 'vertical'\n ? bandScale(c.labels.length, plot.x, plot.x + plot.width, 0.2)\n : bandScale(c.labels.length, plot.y, plot.y + plot.height, 0.2);\n\n if (orientation === 'vertical') {\n return {\n orientation,\n bars,\n grid: layout.ticks.map((t) => ({ x1: plot.x, y1: t.pos, x2: plot.x + plot.width, y2: t.pos })),\n valueLabels: layout.ticks.map((t) => ({ x: plot.x - 8, y: t.pos + 3, text: formatNumber(t.value), anchor: 'end' as const })),\n catLabels: c.labels.map((l, idx) => ({ x: cat.center(idx), y: plot.y + plot.height + 18, text: l, anchor: 'middle' as const })),\n };\n }\n return {\n orientation,\n bars,\n grid: layout.ticks.map((t) => ({ x1: t.pos, y1: plot.y, x2: t.pos, y2: plot.y + plot.height })),\n valueLabels: layout.ticks.map((t) => ({ x: t.pos, y: plot.y + plot.height + 18, text: formatNumber(t.value), anchor: 'middle' as const })),\n catLabels: c.labels.map((l, idx) => ({ x: plot.x - 8, y: cat.center(idx) + 3, text: l, anchor: 'end' as const })),\n };\n });\n\n // --- Pie / Doughnut / Polar Area ---\n protected readonly pieVm = computed<SliceVm[] | null>(() => {\n const c = this.config();\n if (c.type !== 'pie' && c.type !== 'doughnut' && c.type !== 'polarArea') return null;\n const h = this.hidden();\n const s0 = c.series[0];\n if (!s0) return [];\n const { cx, cy, radius } = radialArea(this.width(), this.height(), 8);\n const entries = c.labels\n .map((label, i) => ({ label, i, value: s0.data[i] ?? 0, color: seriesColor(s0.color, i) }))\n .filter((e) => !h.has('cat:' + e.i));\n const values = entries.map((e) => e.value);\n\n if (c.type === 'polarArea') {\n const max = Math.max(1, ...values.map((v) => Math.max(0, v)));\n const slices = polarSlices(values, cx, cy, radius, max);\n return slices.map((sl, k) => tipSlice(entries[k], sl.midAngle, radius * 0.62, cx, cy, sl.path));\n }\n const inner = c.type === 'doughnut' ? radius * (c.innerRadius ?? 0.6) : 0;\n const slices = pieSlices(values, cx, cy, radius, inner);\n return slices.map((sl, k) => tipSlice(entries[k], sl.midAngle, (radius + inner) / 2, cx, cy, sl.path));\n });\n\n // --- Radar ---\n protected readonly radarVm = computed<RadarVm | null>(() => {\n const c = this.config();\n if (c.type !== 'radar') return null;\n const h = this.hidden();\n const count = c.labels.length;\n const { cx, cy, radius } = radialArea(this.width(), this.height(), 30);\n const grid = radarGrid(count, cx, cy, radius, 4);\n const active = c.series.map((s, i) => ({ s, i })).filter(({ s }) => !h.has('ser:' + s.name));\n let max = 1;\n for (const { s } of active) for (const v of s.data) max = Math.max(max, v);\n\n const series: RadarSeriesVm[] = active.map(({ s, i }) => {\n const pts = radarPoints(s.data, cx, cy, radius, max);\n return {\n key: 'ser:' + s.name,\n name: s.name,\n color: seriesColor(s.color, i),\n polygon: polygonPath(pts),\n points: pts.map((p, idx) => ({ x: p.x, y: p.y, value: s.data[idx] ?? 0, label: c.labels[idx] ?? '' })),\n };\n });\n\n return {\n rings: grid.rings,\n axisLines: grid.axes.map((a) => ({ x1: cx, y1: cy, x2: a.end.x, y2: a.end.y })),\n axisLabels: grid.axes.map((a) => {\n const p = polarToCartesian(cx, cy, radius + 14, a.angle);\n const anchor: AxisLabel['anchor'] = Math.abs(p.x - cx) < 1 ? 'middle' : p.x > cx ? 'start' : 'end';\n return { x: p.x, y: p.y + 3, text: c.labels[a.labelIndex] ?? '', anchor };\n }),\n series,\n };\n });\n\n // --- Crosshair (prowadnica + pigułka etykiety osi X) dla wykresu liniowego ---\n protected readonly crosshair = computed(() => {\n const c = this.config();\n if (c.type !== 'line' || !c.crosshair) return null;\n const i = this.activeIndex();\n const vm = this.lineVm();\n if (i === null || !vm) return null;\n const cat = vm.catLabels[i];\n if (!cat) return null;\n const w = Math.max(28, cat.text.length * 7 + 16);\n return {\n x: cat.x,\n y1: vm.plot.y,\n y2: vm.plot.y + vm.plot.height,\n text: cat.text,\n labelX: cat.x,\n labelY: cat.y,\n pillX: cat.x - w / 2,\n pillY: cat.y - 13,\n pillW: w,\n pillH: 18,\n };\n });\n\n // --- Zdarzenia ---\n protected onLineEnter(idx: number, tipX: number, tipY: number, name: string, label: string, value: number, color: string): void {\n this.activeIndex.set(idx);\n this.showTip(tipX, tipY, name, label, value, color);\n }\n\n protected onLineLeave(): void {\n this.activeIndex.set(null);\n this.hideTip();\n }\n\n protected showTip(tipX: number, tipY: number, name: string, label: string, value: number, color: string): void {\n if (this.config().tooltip?.enabled === false) return;\n const fmt = this.config().tooltip?.format;\n const text = fmt ? fmt({ series: name, label, value }) : formatNumber(value);\n this.tooltip.set({ x: (tipX / this.width()) * 100, y: (tipY / this.height()) * 100, label, rows: [{ name, value: text, color }] });\n }\n\n protected hideTip(): void {\n this.tooltip.set(null);\n }\n\n protected onToggle(key: string): void {\n const set = new Set(this.hidden());\n if (set.has(key)) set.delete(key);\n else set.add(key);\n this.hidden.set(set);\n }\n\n protected onHighlight(key: string | null): void {\n this.highlighted.set(key);\n }\n\n /** Czy dany element ma być wygaszony (aktywne podświetlenie innego). */\n protected dim(key: string): boolean {\n const hi = this.highlighted();\n return hi !== null && hi !== key;\n }\n}\n\n// Buduje SliceVm z pozycją tooltipa na promieniu środka wycinka.\nfunction tipSlice(\n entry: { label: string; i: number; value: number; color: string },\n midAngle: number,\n tipRadius: number,\n cx: number,\n cy: number,\n path: string,\n): SliceVm {\n const p = polarToCartesian(cx, cy, tipRadius, midAngle);\n return { key: 'cat:' + entry.i, path, color: entry.color, label: entry.label, value: entry.value, tipX: p.x, tipY: p.y };\n}\n\nfunction styleFor(align: KptAlign | undefined): string {\n if (align === 'center') return 'center';\n if (align === 'end') return 'right';\n return 'left';\n}\n","/*\n * Public API — @konce-pt/angular/charts\n * Wykresy SVG dla Angulara (sygnały, zoneless). Rdzeń obliczeń mieszka w `@konce-pt/chart` —\n * paczce bez frameworka, wspólnej z portem Reacta; tu tylko re-eksport, żeby publiczne API\n * subpathu się nie zmieniło.\n */\nexport { KptChart } from './lib/chart.component';\n\nexport type {\n KptChartConfig,\n KptChartSeries,\n KptChartType,\n KptLineInterpolation,\n KptBarOrientation,\n KptLegendOptions,\n KptLegendPosition,\n KptLegendTitle,\n KptAlign,\n KptPointStyle,\n KptTitleOptions,\n KptTooltipOptions,\n KptTooltipContext,\n KptAnimationOptions,\n KptFont,\n KptPadding,\n} from '@konce-pt/chart';\n\n// Rdzeń obliczeniowy (pure TS) — przydatny do własnych rozszerzeń / SSR.\nexport {\n KPT_CHART_PALETTE,\n seriesColor,\n linePath,\n areaPath,\n pieSlices,\n polarSlices,\n barLayout,\n radarGrid,\n radarPoints,\n niceScale,\n} from '@konce-pt/chart';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_forTrack0"],"mappings":"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"}
|