@konce-pt/angular 0.8.1 → 0.8.3

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 CHANGED
@@ -1,5 +1,106 @@
1
1
  # @konce-pt/angular
2
2
 
3
+ ## 0.8.3
4
+
5
+ ### Patch Changes
6
+
7
+ - 8f9e7e2: Placeholder pola e-mail w słownikach EN/PL wskazuje `example.com` zamiast `company.com`
8
+ i `firma.pl`. Obie dotychczasowe domeny są realnie zarejestrowane, a RFC 2606 rezerwuje
9
+ `example.com` właśnie na przykłady — przy okazji `@konce-pt/i18n` znika z alertu
10
+ „URL strings" skanerów łańcucha dostaw.
11
+
12
+ Do dokumentacji dochodzi sekcja „Skanery bezpieczeństwa" (korzeniowy arkusz projektu oraz
13
+ arkusze `@konce-pt/react` i `@konce-pt/map`, wzmianka w README obu paczek publikowanych).
14
+ Tłumaczy trzy alerty Socket.dev, z których każdy jest dopasowaniem stringów, nie znaleziskiem
15
+ w kodzie: klucze i18n czytane jak domeny (`.email`, `.today`, `.save` i reszta to prawdziwe
16
+ TLD-y), domyślne endpointy mapy wraz z opcjami do ich nadpisania oraz `innerHTML` w silniku
17
+ Google karmiony wyłącznie HTML-em z `renderMarkerHtml()`, gdzie dane przechodzą przez
18
+ `escapeHtml()` i whitelistę tokenów.
19
+
20
+ - Updated dependencies [8f9e7e2]
21
+ - @konce-pt/i18n@0.8.3
22
+ - @konce-pt/map@0.8.3
23
+ - @konce-pt/chart@0.8.3
24
+ - @konce-pt/datetime@0.8.3
25
+ - @konce-pt/icons@0.8.3
26
+ - @konce-pt/roadmap@0.8.3
27
+ - @konce-pt/table@0.8.3
28
+
29
+ ## 0.8.2
30
+
31
+ ### Minor Changes
32
+
33
+ - Zestaw wbudowany rośnie z 58 do 84 ikon o staple powłoki aplikacji (`sun`, `moon`, `bell`,
34
+ `settings`, `users`, `logout`, `layout-dashboard`…). Wcześniej brakowało ich na tyle, że
35
+ pierwszym odruchem był pełny Tabler i 1,2 MB w bundlu — typowy panel administracyjny nie
36
+ potrzebuje już niczego poza zestawem startowym.
37
+
38
+ Sam Tabler przestaje być jednym literałem: każda z 5130 ikon to osobny eksport niosący własną
39
+ nazwę rejestru (PascalCase, bo camelCase zderza się z `function`/`package`/`switch`, a odwrotna
40
+ konwersja jest niejednoznaczna dla `BrandHtml5`). Podzbiór rejestruje `provideKptIcons([...])`
41
+ w Angularze i `registerKptIcons([...])` w Reakcie — obie z rdzenia, bo subpath ikon importuje
42
+ komplet statycznie i parametr nic by tam nie odchudził. Adnotacje `@__PURE__` na eksportach
43
+ zbiorczych są konieczne, nie kosmetyczne: bez nich bundler trzyma tablicę `ALL`, a przez nią
44
+ wszystkie stałe. Zmierzone esbuildem: import dwóch ikon to 658 B zamiast 1 290 823 B.
45
+
46
+ - Trigger menu nie miał `aria-haspopup` ani `aria-expanded` w żadnym z portów. Atrybuty trafiają
47
+ na kontrolkę wewnątrz slotu, nie na opakowanie `.kpt-menu__trigger` — nadanie roli opakowaniu
48
+ zrobiłoby zagnieżdżoną kontrolkę i drugi tab stop.
49
+
50
+ `open` w Angularze przestaje być `protected` i staje się `model<boolean>()`, co domyka parytet
51
+ z portem React (`open` / `defaultOpen` / `onOpenChange`).
52
+
53
+ ### Patch Changes
54
+
55
+ - Dyrektywa przełącznika nawigacji nakładała `aria-expanded`/`aria-controls` wyłącznie na natywny
56
+ `<button>`, żeby nie naruszyć `aria-allowed-attr`. Na `kpt-icon-button` — czyli w typowym użyciu —
57
+ nie zostawało nic i czytnik ekranu nie wiedział, czy panel jest otwarty. Gdy host nie jest natywną
58
+ kontrolką, atrybuty schodzą na jego wewnętrzny `<button>`; etykieta zostaje przy komponencie.
59
+ - Panel promocyjny ekranu logowania ustawiał tylko `color`, więc komponenty wstawione
60
+ w `[kptAuthPromo]` czytały tokeny powierzchni z jasnego motywu i wychodziły prostokątem wyciętym
61
+ w gradiencie. Tokeny są przemapowane lokalnie, wszystkie liczone od `--kpt-color-primary-contrast`,
62
+ więc slot wygląda poprawnie w obu motywach. Arkusz jest wspólny, więc poprawka dotyczy też portu
63
+ React.
64
+ - Detekcja breakpointów sprawdza obecność `matchMedia`, nie samo środowisko. jsdom melduje się jako
65
+ przeglądarka i dostarcza `window`, ale `matchMedia` nie implementuje — każdy test aplikacji
66
+ dotykający `KptAppShell` wywalał się na TypeError i wymagał stubu po stronie konsumenta.
67
+ W porcie React zastępczy magazyn nie trafia już do cache, więc stub podstawiony później zostaje
68
+ podchwycony.
69
+ - Uzupełnienia dokumentacji. `kptCardFooter` musi być bezpośrednim dzieckiem `kpt-card` — projekcja
70
+ treści nie sięga głębiej, więc stopka zamknięta w `<form>` cicho lądowała w body i nic o tym nie
71
+ ostrzegało. W wykresach `font-size: 11px` wewnątrz SVG to 11 jednostek viewBoxa, nie pikseli, więc
72
+ `width`/`height` są skalą tekstu, a nie samymi proporcjami.
73
+
74
+ README `@konce-pt/react` dostaje pełną wersję angielską z odznakami npm (wersja, pobrania, rozmiar
75
+ minzip, typy, licencja) i polskie lustro poniżej — tak jak README portu Angulara. `homepage` paczki
76
+ wskazuje playground Reacta pod `ui.konce.pt/react`.
77
+
78
+ - Angular renderował `E-mail *`, React `E-mail*` — różnicę robił węzeł tekstowy z szablonu, który
79
+ JSX usuwa. Odstęp przed gwiazdką pola wymaganego daje teraz wyłącznie `margin-inline-start`, więc
80
+ oba porty wyglądają identycznie.
81
+ - `pageSize` spoza `pageSizeOptions` nie miał odpowiadającej opcji w selekcie: kontrolka pokazywała
82
+ pierwszą pozycję, a tabela stronicowała po innej liczbie. Bieżąca wartość dokłada się teraz do
83
+ listy opcji. React przy okazji przestaje ostrzegać w konsoli o `value` bez dopasowania.
84
+ - `readonly KptTimelineItem[]` i podobne stałe aplikacji nie przechodziły przez inputy (TS4104), bo
85
+ te deklarowały tablice mutowalne — mimo że komponenty ich nie mutują. Rozszerzone są wyłącznie
86
+ `input<T[]>`; `model<T[]>` zostaje nietknięte, bo `ModelSignal` jest inwariantny i `readonly`
87
+ zerwałoby two-way binding u konsumentów. Przy okazji zagnieżdżone `KptMenuItem.items`,
88
+ `KptTreeNode.children` i `KptColumnEdit.options`.
89
+ - 18 reguł wspólnego arkusza celowało w custom elementy Angulara (`kpt-icon`, `kpt-paginator`,
90
+ `kpt-select`, `kpt-date-range`), których port React nie renderuje — znikały tam po cichu, m.in.
91
+ wyrównanie paginatora i kolor ikon w menu. Hosty Angulara i tak noszą odpowiednie klasy, więc
92
+ selektor klasowy działa w obu portach. Generator arkusza dostaje bramkę: goły selektor elementowy
93
+ `kpt-*` wywala build.
94
+ - Updated dependencies
95
+ - Updated dependencies
96
+ - @konce-pt/chart@0.8.2
97
+ - @konce-pt/icons@0.8.2
98
+ - @konce-pt/datetime@0.8.2
99
+ - @konce-pt/i18n@0.8.2
100
+ - @konce-pt/map@0.8.2
101
+ - @konce-pt/roadmap@0.8.2
102
+ - @konce-pt/table@0.8.2
103
+
3
104
  ## 0.8.1
4
105
 
5
106
  ### Patch Changes
package/README.md CHANGED
@@ -188,13 +188,30 @@ All visuals are driven by `var(--kpt-*)` tokens (three tiers: primitives → sem
188
188
 
189
189
  ## Icons
190
190
 
191
- A built-in set is bundled. For the full **Tabler Icons** set (MIT), opt in via the secondary entry point:
191
+ **84 icons are built in and need no configuration** — what the components themselves draw plus the
192
+ staples of an application shell (`sun`, `moon`, `bell`, `settings`, `users`, `logout`,
193
+ `layout-dashboard`, `home`, `activity`, `chart-bar`, `brand-github` …). A typical admin panel needs
194
+ nothing else.
195
+
196
+ For the full **Tabler Icons** set (MIT, 5130 icons) there are two paths, and the difference is the
197
+ bundle. Every icon is its own export, so importing by name lets the bundler keep just those:
192
198
 
193
199
  ```ts
200
+ // Production — two icons reach the bundle.
201
+ import { LayoutDashboard, Rocket } from '@konce-pt/angular/icons';
202
+ import { provideKptIcons } from '@konce-pt/angular';
203
+ // providers: [provideKptIcons([LayoutDashboard, Rocket])]
204
+
205
+ // Prototype — every icon, about 1.2 MB.
194
206
  import { provideKptTablerIcons } from '@konce-pt/angular/icons';
195
207
  // providers: [provideKptTablerIcons()]
196
208
  ```
197
209
 
210
+ `provideKptIcons` comes from the **core** entry point on purpose: `@konce-pt/angular/icons` imports
211
+ the whole set statically, so a subset parameter there could not shrink anything. For the same
212
+ reason `provideKptIcons(tabler)` with a namespace import (`import * as tabler`) registers
213
+ everything — handing a namespace object to a function blocks static analysis.
214
+
198
215
  ## Internationalization (i18n)
199
216
 
200
217
  Component labels ship in **English (default)** and **Polish**. The `KptI18n` service is `providedIn: 'root'`, so **English works out of the box with no provider**. Call `provideKptI18n(...)` only to start in Polish (or another language), or to register/override dictionaries. All user-facing strings — aria-labels, empty states, paginator, calendars, rich-text menus — read from this signal-based service, so switching locale updates the UI instantly (zoneless-friendly).
@@ -234,6 +251,7 @@ Calendar weekday/month names come from the browser's `Intl` API for the active l
234
251
  - **Storybook** — interactive docs for every component.
235
252
  - **Playground** — live demos with copyable HTML/TS/SCSS.
236
253
  - **`llms.txt`** — LLM-friendly API sheets per component, shipped inside the package; the project-wide sheet lives at [ui.konce.pt/llms.txt](https://ui.konce.pt/llms.txt).
254
+ - **Security scanners** — Socket.dev and similar tools flag i18n keys as domain names (`.email`, `.today` and friends are real TLDs) and the map's default endpoints; the [project sheet](https://ui.konce.pt/llms.txt) explains each alert under "Security scanners".
237
255
  - Repository: [gitlab.com/konce-pt/koncept-ui](https://gitlab.com/konce-pt/koncept-ui)
238
256
 
239
257
  ## License
@@ -330,6 +348,10 @@ Formularze (Signal Forms), przyciski i akcje, layout, nawigacja, dane (z flagow
330
348
 
331
349
  Storybook (interaktywne docs), playground (dema z kopiowaniem kodu), `llms.txt` (opisy API — obok każdego komponentu w paczce, całość projektu pod [ui.konce.pt/llms.txt](https://ui.konce.pt/llms.txt)). Repozytorium: [gitlab.com/konce-pt/koncept-ui](https://gitlab.com/konce-pt/koncept-ui).
332
350
 
351
+ Alerty skanerów łańcucha dostaw (Socket.dev i podobne) — klucze i18n czytane jak domeny
352
+ oraz domyślne endpointy mapy — omawia sekcja „Skanery bezpieczeństwa" w
353
+ [arkuszu projektu](https://ui.konce.pt/llms-pl.txt).
354
+
333
355
  ### Licencja
334
356
 
335
357
  MIT © konce.pt
@@ -17,6 +17,12 @@ Import: `import { KptChart } from '@konce-pt/angular/charts';`
17
17
  - `config: KptChartConfig` (required) — a single object driving everything
18
18
  - `width` / `height`: viewBox units (600×360); the chart scales to its container
19
19
 
20
+ The whole drawing lives in that coordinate system, TYPOGRAPHY INCLUDED: the axis labels are set in
21
+ `font-size: 11px`, but inside an SVG that means 11 user units, not 11 device pixels. Render a
22
+ 600-unit chart in a 300px column and the labels come out at roughly half size. `width`/`height` are
23
+ therefore not just an aspect ratio — they are the text scale. In a narrow container shrink them
24
+ proportionally (`width={300} height={180}`) instead of letting a 600-unit chart squeeze itself.
25
+
20
26
  ## KptChartConfig (in brief)
21
27
  - `labels: string[]`, `series: { name; data: number[]; color? }[]`
22
28
  - `legend`: `{ display?, position: top|bottom|left|right, align: start|center|end, pointStyle: circle|rect|rectRot|triangle|line, title? }`
@@ -1 +1 @@
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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"}
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<readonly 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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"}
@@ -1,22 +1,38 @@
1
1
  import { KPT_TABLER_ICONS } from '@konce-pt/icons/tabler';
2
- export { KPT_TABLER_ICONS, KPT_TABLER_ICON_NAMES } from '@konce-pt/icons/tabler';
2
+ export * from '@konce-pt/icons/tabler';
3
3
  import { provideAppInitializer, inject } from '@angular/core';
4
4
  import { KptIconRegistry } from '@konce-pt/angular';
5
5
 
6
6
  /*
7
7
  * Re-eksport pełnego zestawu Tabler z `@konce-pt/icons/tabler`.
8
8
  * Dane są wspólne dla portów Angulara i Reacta — tutaj zostaje tylko ścieżka importu.
9
+ *
10
+ * `export *` udostępnia 5130 ikon jako osobne eksporty (import po nazwie wchodzi do bundla
11
+ * pojedynczo) obok dwóch eksportów zbiorczych, które wciągają komplet.
9
12
  */
10
13
 
11
14
  /**
12
15
  * Rejestruje pełny zestaw Tabler Icons (5130) w `KptIconRegistry`, dzięki czemu
13
16
  * `kpt-icon` może użyć dowolnej ikony po nazwie.
14
17
  *
18
+ * Wciąga komplet (~1,2 MB), więc to ścieżka prototypowa. W produkcji zaimportuj ikony
19
+ * po nazwie i podaj je do `provideKptIcons([...])` z rdzenia `@konce-pt/angular` — tamta
20
+ * funkcja nie importuje pełnego zestawu, więc bundler zostawia wyłącznie użyte ikony.
21
+ *
15
22
  * @example
16
- * // main.ts
23
+ * // main.ts — prototyp: wszystkie ikony
17
24
  * bootstrapApplication(App, {
18
25
  * providers: [provideKptTablerIcons()],
19
26
  * });
27
+ *
28
+ * @example
29
+ * // main.ts — produkcja: tylko to, czego używasz
30
+ * import { LayoutDashboard, Rocket } from '@konce-pt/angular/icons';
31
+ * import { provideKptIcons } from '@konce-pt/angular';
32
+ *
33
+ * bootstrapApplication(App, {
34
+ * providers: [provideKptIcons([LayoutDashboard, Rocket])],
35
+ * });
20
36
  */
21
37
  function provideKptTablerIcons() {
22
38
  return provideAppInitializer(() => {
@@ -25,8 +41,14 @@ function provideKptTablerIcons() {
25
41
  }
26
42
 
27
43
  /*
28
- * @konce-pt/angular/icons — pełny zestaw Tabler Icons (MIT) dla `kpt-icon`.
44
+ * @konce-pt/angular/icons — zestaw Tabler Icons (MIT) dla `kpt-icon`.
29
45
  * Opcjonalny (pobierany tylko przy imporcie), by nie powiększać rdzenia biblioteki.
46
+ *
47
+ * Dwie ścieżki, świadomie rozdzielone:
48
+ * - `provideKptTablerIcons()` rejestruje KOMPLET (~1,2 MB) — do prototypu i Storybooka,
49
+ * - import ikon po nazwie + `provideKptIcons([...])` z rdzenia `@konce-pt/angular`
50
+ * wciąga wyłącznie użyte ikony. `provideKptIcons` stoi w rdzeniu właśnie dlatego,
51
+ * że ten moduł importuje pełny zestaw statycznie.
30
52
  */
31
53
 
32
54
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"konce-pt-angular-icons.mjs","sources":["../../icons/src/tabler-icons.ts","../../icons/src/provider.ts","../../icons/src/public-api.ts","../../icons/src/konce-pt-angular-icons.ts"],"sourcesContent":["/*\n * Re-eksport pełnego zestawu Tabler z `@konce-pt/icons/tabler`.\n * Dane są wspólne dla portów Angulara i Reacta — tutaj zostaje tylko ścieżka importu.\n */\n\nexport { KPT_TABLER_ICONS, KPT_TABLER_ICON_NAMES } from '@konce-pt/icons/tabler';\n","import { EnvironmentProviders, inject, provideAppInitializer } from '@angular/core';\nimport { KptIconRegistry } from '@konce-pt/angular';\nimport { KPT_TABLER_ICONS } from './tabler-icons';\n\n/**\n * Rejestruje pełny zestaw Tabler Icons (5130) w `KptIconRegistry`, dzięki czemu\n * `kpt-icon` może użyć dowolnej ikony po nazwie.\n *\n * @example\n * // main.ts\n * bootstrapApplication(App, {\n * providers: [provideKptTablerIcons()],\n * });\n */\nexport function provideKptTablerIcons(): EnvironmentProviders {\n return provideAppInitializer(() => {\n inject(KptIconRegistry).register(KPT_TABLER_ICONS);\n });\n}\n","/*\n * @konce-pt/angular/icons — pełny zestaw Tabler Icons (MIT) dla `kpt-icon`.\n * Opcjonalny (pobierany tylko przy imporcie), by nie powiększać rdzenia biblioteki.\n */\nexport { KPT_TABLER_ICONS, KPT_TABLER_ICON_NAMES } from './tabler-icons';\nexport { provideKptTablerIcons } from './provider';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAAA;;;AAGG;;ACCH;;;;;;;;;AASG;SACa,qBAAqB,GAAA;IACnC,OAAO,qBAAqB,CAAC,MAAK;QAChC,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AACpD,IAAA,CAAC,CAAC;AACJ;;AClBA;;;AAGG;;ACHH;;AAEG;;;;"}
1
+ {"version":3,"file":"konce-pt-angular-icons.mjs","sources":["../../icons/src/tabler-icons.ts","../../icons/src/provider.ts","../../icons/src/public-api.ts","../../icons/src/konce-pt-angular-icons.ts"],"sourcesContent":["/*\n * Re-eksport pełnego zestawu Tabler z `@konce-pt/icons/tabler`.\n * Dane są wspólne dla portów Angulara i Reacta — tutaj zostaje tylko ścieżka importu.\n *\n * `export *` udostępnia 5130 ikon jako osobne eksporty (import po nazwie wchodzi do bundla\n * pojedynczo) obok dwóch eksportów zbiorczych, które wciągają komplet.\n */\n\nexport * from '@konce-pt/icons/tabler';\n","import { EnvironmentProviders, inject, provideAppInitializer } from '@angular/core';\nimport { KptIconRegistry } from '@konce-pt/angular';\nimport { KPT_TABLER_ICONS } from './tabler-icons';\n\n/**\n * Rejestruje pełny zestaw Tabler Icons (5130) w `KptIconRegistry`, dzięki czemu\n * `kpt-icon` może użyć dowolnej ikony po nazwie.\n *\n * Wciąga komplet (~1,2 MB), więc to ścieżka prototypowa. W produkcji zaimportuj ikony\n * po nazwie i podaj je do `provideKptIcons([...])` z rdzenia `@konce-pt/angular` — tamta\n * funkcja nie importuje pełnego zestawu, więc bundler zostawia wyłącznie użyte ikony.\n *\n * @example\n * // main.ts — prototyp: wszystkie ikony\n * bootstrapApplication(App, {\n * providers: [provideKptTablerIcons()],\n * });\n *\n * @example\n * // main.ts — produkcja: tylko to, czego używasz\n * import { LayoutDashboard, Rocket } from '@konce-pt/angular/icons';\n * import { provideKptIcons } from '@konce-pt/angular';\n *\n * bootstrapApplication(App, {\n * providers: [provideKptIcons([LayoutDashboard, Rocket])],\n * });\n */\nexport function provideKptTablerIcons(): EnvironmentProviders {\n return provideAppInitializer(() => {\n inject(KptIconRegistry).register(KPT_TABLER_ICONS);\n });\n}\n","/*\n * @konce-pt/angular/icons — zestaw Tabler Icons (MIT) dla `kpt-icon`.\n * Opcjonalny (pobierany tylko przy imporcie), by nie powiększać rdzenia biblioteki.\n *\n * Dwie ścieżki, świadomie rozdzielone:\n * - `provideKptTablerIcons()` rejestruje KOMPLET (~1,2 MB) — do prototypu i Storybooka,\n * - import ikon po nazwie + `provideKptIcons([...])` z rdzenia `@konce-pt/angular`\n * wciąga wyłącznie użyte ikony. `provideKptIcons` stoi w rdzeniu właśnie dlatego,\n * że ten moduł importuje pełny zestaw statycznie.\n */\nexport * from './tabler-icons';\nexport { provideKptTablerIcons } from './provider';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAAA;;;;;;AAMG;;ACFH;;;;;;;;;;;;;;;;;;;;;;AAsBG;SACa,qBAAqB,GAAA;IACnC,OAAO,qBAAqB,CAAC,MAAK;QAChC,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AACpD,IAAA,CAAC,CAAC;AACJ;;AC/BA;;;;;;;;;AASG;;ACTH;;AAEG;;;;"}