@konce-pt/angular 0.8.1 → 0.8.2

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,80 @@
1
1
  # @konce-pt/angular
2
2
 
3
+ ## 0.8.2
4
+
5
+ ### Minor Changes
6
+
7
+ - Zestaw wbudowany rośnie z 58 do 84 ikon o staple powłoki aplikacji (`sun`, `moon`, `bell`,
8
+ `settings`, `users`, `logout`, `layout-dashboard`…). Wcześniej brakowało ich na tyle, że
9
+ pierwszym odruchem był pełny Tabler i 1,2 MB w bundlu — typowy panel administracyjny nie
10
+ potrzebuje już niczego poza zestawem startowym.
11
+
12
+ Sam Tabler przestaje być jednym literałem: każda z 5130 ikon to osobny eksport niosący własną
13
+ nazwę rejestru (PascalCase, bo camelCase zderza się z `function`/`package`/`switch`, a odwrotna
14
+ konwersja jest niejednoznaczna dla `BrandHtml5`). Podzbiór rejestruje `provideKptIcons([...])`
15
+ w Angularze i `registerKptIcons([...])` w Reakcie — obie z rdzenia, bo subpath ikon importuje
16
+ komplet statycznie i parametr nic by tam nie odchudził. Adnotacje `@__PURE__` na eksportach
17
+ zbiorczych są konieczne, nie kosmetyczne: bez nich bundler trzyma tablicę `ALL`, a przez nią
18
+ wszystkie stałe. Zmierzone esbuildem: import dwóch ikon to 658 B zamiast 1 290 823 B.
19
+
20
+ - Trigger menu nie miał `aria-haspopup` ani `aria-expanded` w żadnym z portów. Atrybuty trafiają
21
+ na kontrolkę wewnątrz slotu, nie na opakowanie `.kpt-menu__trigger` — nadanie roli opakowaniu
22
+ zrobiłoby zagnieżdżoną kontrolkę i drugi tab stop.
23
+
24
+ `open` w Angularze przestaje być `protected` i staje się `model<boolean>()`, co domyka parytet
25
+ z portem React (`open` / `defaultOpen` / `onOpenChange`).
26
+
27
+ ### Patch Changes
28
+
29
+ - Dyrektywa przełącznika nawigacji nakładała `aria-expanded`/`aria-controls` wyłącznie na natywny
30
+ `<button>`, żeby nie naruszyć `aria-allowed-attr`. Na `kpt-icon-button` — czyli w typowym użyciu —
31
+ nie zostawało nic i czytnik ekranu nie wiedział, czy panel jest otwarty. Gdy host nie jest natywną
32
+ kontrolką, atrybuty schodzą na jego wewnętrzny `<button>`; etykieta zostaje przy komponencie.
33
+ - Panel promocyjny ekranu logowania ustawiał tylko `color`, więc komponenty wstawione
34
+ w `[kptAuthPromo]` czytały tokeny powierzchni z jasnego motywu i wychodziły prostokątem wyciętym
35
+ w gradiencie. Tokeny są przemapowane lokalnie, wszystkie liczone od `--kpt-color-primary-contrast`,
36
+ więc slot wygląda poprawnie w obu motywach. Arkusz jest wspólny, więc poprawka dotyczy też portu
37
+ React.
38
+ - Detekcja breakpointów sprawdza obecność `matchMedia`, nie samo środowisko. jsdom melduje się jako
39
+ przeglądarka i dostarcza `window`, ale `matchMedia` nie implementuje — każdy test aplikacji
40
+ dotykający `KptAppShell` wywalał się na TypeError i wymagał stubu po stronie konsumenta.
41
+ W porcie React zastępczy magazyn nie trafia już do cache, więc stub podstawiony później zostaje
42
+ podchwycony.
43
+ - Uzupełnienia dokumentacji. `kptCardFooter` musi być bezpośrednim dzieckiem `kpt-card` — projekcja
44
+ 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
45
+ ostrzegało. W wykresach `font-size: 11px` wewnątrz SVG to 11 jednostek viewBoxa, nie pikseli, więc
46
+ `width`/`height` są skalą tekstu, a nie samymi proporcjami.
47
+
48
+ README `@konce-pt/react` dostaje pełną wersję angielską z odznakami npm (wersja, pobrania, rozmiar
49
+ minzip, typy, licencja) i polskie lustro poniżej — tak jak README portu Angulara. `homepage` paczki
50
+ wskazuje playground Reacta pod `ui.konce.pt/react`.
51
+
52
+ - Angular renderował `E-mail *`, React `E-mail*` — różnicę robił węzeł tekstowy z szablonu, który
53
+ JSX usuwa. Odstęp przed gwiazdką pola wymaganego daje teraz wyłącznie `margin-inline-start`, więc
54
+ oba porty wyglądają identycznie.
55
+ - `pageSize` spoza `pageSizeOptions` nie miał odpowiadającej opcji w selekcie: kontrolka pokazywała
56
+ pierwszą pozycję, a tabela stronicowała po innej liczbie. Bieżąca wartość dokłada się teraz do
57
+ listy opcji. React przy okazji przestaje ostrzegać w konsoli o `value` bez dopasowania.
58
+ - `readonly KptTimelineItem[]` i podobne stałe aplikacji nie przechodziły przez inputy (TS4104), bo
59
+ te deklarowały tablice mutowalne — mimo że komponenty ich nie mutują. Rozszerzone są wyłącznie
60
+ `input<T[]>`; `model<T[]>` zostaje nietknięte, bo `ModelSignal` jest inwariantny i `readonly`
61
+ zerwałoby two-way binding u konsumentów. Przy okazji zagnieżdżone `KptMenuItem.items`,
62
+ `KptTreeNode.children` i `KptColumnEdit.options`.
63
+ - 18 reguł wspólnego arkusza celowało w custom elementy Angulara (`kpt-icon`, `kpt-paginator`,
64
+ `kpt-select`, `kpt-date-range`), których port React nie renderuje — znikały tam po cichu, m.in.
65
+ wyrównanie paginatora i kolor ikon w menu. Hosty Angulara i tak noszą odpowiednie klasy, więc
66
+ selektor klasowy działa w obu portach. Generator arkusza dostaje bramkę: goły selektor elementowy
67
+ `kpt-*` wywala build.
68
+ - Updated dependencies
69
+ - Updated dependencies
70
+ - @konce-pt/chart@0.8.2
71
+ - @konce-pt/icons@0.8.2
72
+ - @konce-pt/datetime@0.8.2
73
+ - @konce-pt/i18n@0.8.2
74
+ - @konce-pt/map@0.8.2
75
+ - @konce-pt/roadmap@0.8.2
76
+ - @konce-pt/table@0.8.2
77
+
3
78
  ## 0.8.1
4
79
 
5
80
  ### 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).
@@ -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;;;;"}