@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 +75 -0
- package/README.md +18 -1
- package/charts/src/lib/llms.txt +6 -0
- package/fesm2022/konce-pt-angular-charts.mjs.map +1 -1
- package/fesm2022/konce-pt-angular-icons.mjs +25 -3
- package/fesm2022/konce-pt-angular-icons.mjs.map +1 -1
- package/fesm2022/konce-pt-angular.mjs +119 -46
- package/fesm2022/konce-pt-angular.mjs.map +1 -1
- package/package.json +8 -8
- package/src/lib/app-shell/llms.txt +6 -0
- package/src/lib/card/llms.txt +6 -0
- package/src/lib/icon/llms.txt +37 -9
- package/src/lib/menu/llms.txt +9 -1
- package/src/lib/paginator/llms.txt +5 -1
- package/types/konce-pt-angular-icons.d.ts +15 -2
- package/types/konce-pt-angular-icons.d.ts.map +1 -1
- package/types/konce-pt-angular.d.ts +87 -47
- package/types/konce-pt-angular.d.ts.map +1 -1
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
|
-
|
|
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).
|
package/charts/src/lib/llms.txt
CHANGED
|
@@ -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":";;;;;;;IAsBQ,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAsF;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAmB;IAAA,EAAA,CAAA,eAAA,EAAM;;;;IAAzB,EAAA,CAAA,SAAA,EAAmB;IAAnB,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,KAAA,EAAA,EAAA,IAAA,CAAmB;;;;AAKrG,IADF,6BAAI,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAQD;IAHC,EAAA,CAAA,aAAA,CAAA,OAAA,EAAA,SAAA,qDAAA,GAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAS,MAAA,CAAA,YAAA,CAAA,IAAA,CAAA,OAAA,CAAA,GAAA,CAA2B,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,cAAA,EAAA,SAAA,4DAAA,GAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACrB,MAAA,CAAA,SAAA,CAAA,IAAA,CAAA,OAAA,CAAA,GAAA,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,cAAA,EAAA,SAAA,4DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACzB,MAAA,CAAA,SAAA,CAAA,IAAA,CAAe,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAC;IAErC,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAA6H;IAC7H,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAsC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAe;IAAA,EAAA,CAAA,eAAA,EAAO,EACrD,EACN;;;;IARD,EAAA,CAAA,SAAA,EAAoD;IAApD,EAAA,CAAA,WAAA,CAAA,gCAAA,EAAA,OAAA,CAAA,MAAA,CAAoD;IAKoB,EAAA,CAAA,SAAA,EAA6C;IAA7C,EAAA,CAAA,WAAA,CAAA,8BAAA,EAAA,OAAA,CAAA,KAAA,CAA6C;;IAC/E,EAAA,CAAA,SAAA,CAAA,CAAA,CAAe;IAAf,EAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,IAAA,CAAe;;AA1BnE;;;;AAIG;MA+BU,cAAc,CAAA;AA9B3B,IAAA,WAAA,GAAA;QA+BW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAuB,EAAE;kFAAC;QACvC,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAoB,QAAQ;qFAAC;QAC7C,IAAA,CAAA,KAAK,GAAG,KAAK,CAAW,QAAQ;kFAAC;QACjC,IAAA,CAAA,UAAU,GAAG,KAAK,CAAgB,QAAQ;uFAAC;QAC3C,IAAA,CAAA,KAAK,GAAG,KAAK,CAA6B,SAAS;kFAAC;;QAGpD,IAAA,CAAA,YAAY,GAAG,MAAM,EAAU;;QAE/B,IAAA,CAAA,SAAS,GAAG,MAAM,EAAiB;AAC7C,IAAA;+GAXY,cAAc,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAd,cAAc,EAAA,SAAA,EAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,uBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,UAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,cAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,CAAA,EAAA,yBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,uBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YAzBvB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA6F;YAC3F,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,qCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAyC;YAGzC,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAmC;YACjC,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,6BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,IAAA,EAAAA,YAAA,CAcC;AAEL,YADE,oBAAK,EACD;;;YApBJ,EAAA,CAAA,SAAA,EAEC;YAFD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,KAAA,EAAA,EAAA,OAAA,IAAA,GAAA,CAAA,KAAA,EAAA,EAAA,IAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;YAEC,EAAA,CAAA,SAAA,CAAA,CAAA,CAcC;AAdD,YAAA,EAAA,CAAA,UAAA,CAAA,WAAO,CAcN;;;iFAMI,cAAc,EAAA,CAAA;cA9B1B,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE,kBAAkB;gBAC5B,eAAe,EAAE,uBAAuB,CAAC,MAAM;gBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,gBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;AAuBT,EAAA,CAAA;AACD,gBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE;AACzC,aAAA;;kFACY,cAAc,EAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;ICfjB,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAsC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAa;IAAA,EAAA,CAAA,eAAA,EAAM;;;IAAnB,EAAA,CAAA,SAAA,EAAa;IAAb,EAAA,CAAA,iBAAA,CAAA,IAAA,CAAA,KAAA,CAAa;;;IAGnD,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAoC;IAClC,EAAA,CAAA,YAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAiF;IACjF,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAsC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAc;IAAA,EAAA,CAAA,eAAA,EAAO;IAC3D,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAqC;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAe;AACtD,IADsD,oBAAO,EACvD;;;IAHiC,EAAA,CAAA,SAAA,EAAoC;IAApC,EAAA,CAAA,WAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,KAAA,CAAoC;IACnC,EAAA,CAAA,SAAA,CAAA,CAAA,CAAc;IAAd,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,IAAA,CAAc;IACf,EAAA,CAAA,SAAA,CAAA,CAAA,CAAe;IAAf,EAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,KAAA,CAAe;;;IAR1D,EAAA,CAAA,iBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAyI;IACvI,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,oDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAe;IAGf,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAMC;IACH,EAAA,CAAA,eAAA,EAAM;;;;AAXgG,IAA1B,4CAAyB,CAAA,KAAA,EAAA,IAAA,CAAA,CAAA,EAAA,GAAA,CAAoB;IAAzF,EAAA,CAAA,WAAA,CAAA,0BAAA,EAAA,IAAA,CAAA,CAAA,GAAA,EAAA,CAA2C;IACzE,EAAA,CAAA,SAAA,EAEC;IAFD,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,KAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;IACD,EAAA,CAAA,SAAA,EAMC;IAND,EAAA,CAAA,UAAA,CAAA,IAAA,CAAA,IAAA,CAMC;;AArBT;;;;AAIG;MAuBU,eAAe,CAAA;AAtB5B,IAAA,WAAA,GAAA;QAuBW,IAAA,CAAA,KAAK,GAAG,KAAK,CAA8B,IAAI;kFAAC;;AAGtC,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAK;AACxC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,CAAC;AAAE,gBAAA,OAAO,EAAE;AACjB,YAAA,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;mFAAC;AACH,IAAA;gHATY,eAAe,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAf,eAAe,EAAA,SAAA,EAAA,CAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,wBAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,MAAA,EAAA,SAAA,EAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,CAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,wBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,wBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YAjBxB,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,sCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAqB;;;YAArB,EAAA,CAAA,aAAA,CAAA,CAAA,OAAA,GAAA,GAAA,CAAA,KAAA,EAAA,IAAA,CAAA,GAAA,CAAA,CAAA,EAAA,OAAA,CAaC;;;iFAIQ,eAAe,EAAA,CAAA;cAtB3B,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE,mBAAmB;gBAC7B,eAAe,EAAE,uBAAuB,CAAC,MAAM;gBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,gBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;AAeT,EAAA,CAAA;AACD,gBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE;AAC1C,aAAA;;kFACY,eAAe,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;;;kDC8DJ,GAAG,GAAA,KAAA,CAAA,KAAA;;IAxGvB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CASC;IACC,EAAA,CAAA,MAAA,CAAA,CAAA,CACF;IAAA,EAAA,CAAA,YAAA,EAAM;;;IATJ,EAAA,CAAA,WAAA,CAAA,YAAA,EAAA,MAAA,CAAA,UAAA,EAAA,CAAiC,CAAA,OAAA,EAAA,MAAA,CAAA,SAAA,EAAA,EAAA,KAAA,CACC,CAAA,aAAA,EAAA,MAAA,CAAA,SAAA,EAAA,EAAA,IAAA,EAAA,MAAA,CACa,CAAA,WAAA,EAAA,MAAA,CAAA,SAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,CACD,CAAA,aAAA,EAAA,MAAA,CAAA,SAAA,EAAA,EAAA,IAAA,EAAA,MAAA,CACC,CAAA,aAAA,EAAA,MAAA,CAAA,SAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,IAAA,CACG,CAAA,gBAAA,EAAA,MAAA,CAAA,SAAA,EAAA,EAAA,OAAA,EAAA,MAAA,EAAA,IAAA,CACM;IAExD,EAAA,CAAA,SAAA,EACF;IADE,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,SAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CACF;;;IAGA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CASC;IACC,EAAA,CAAA,MAAA,CAAA,CAAA,CACF;IAAA,EAAA,CAAA,YAAA,EAAM;;;IATJ,EAAA,CAAA,WAAA,CAAA,YAAA,EAAA,MAAA,CAAA,aAAA,EAAA,CAAoC,CAAA,OAAA,EAAA,MAAA,CAAA,YAAA,EAAA,EAAA,KAAA,CACC,CAAA,aAAA,EAAA,MAAA,CAAA,YAAA,EAAA,EAAA,IAAA,EAAA,MAAA,CACa,CAAA,WAAA,EAAA,MAAA,CAAA,YAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,CACD,CAAA,aAAA,EAAA,MAAA,CAAA,YAAA,EAAA,EAAA,IAAA,EAAA,MAAA,CACC,CAAA,aAAA,EAAA,MAAA,CAAA,YAAA,EAAA,EAAA,OAAA,EAAA,GAAA,EAAA,IAAA,CACG,CAAA,gBAAA,EAAA,MAAA,CAAA,YAAA,EAAA,EAAA,OAAA,EAAA,MAAA,EAAA,IAAA,CACM;IAE3D,EAAA,CAAA,SAAA,EACF;IADE,EAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,MAAA,CAAA,YAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CACF;;;;IAWc,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAwG;;;;;;;IAI1G,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAA2G;;;;;;;IAIzG,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAkE;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAY;IAAA,EAAA,CAAA,YAAA,EAAO;;;;IAAnB,EAAA,CAAA,SAAA,EAAY;IAAZ,EAAA,CAAA,iBAAA,CAAA,IAAA,CAAA,IAAA,CAAY;;;;IAG9E,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAkE;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAY;IAAA,EAAA,CAAA,YAAA,EAAO;;;;IAAnB,EAAA,CAAA,SAAA,EAAY;IAAZ,EAAA,CAAA,iBAAA,CAAA,IAAA,CAAA,IAAA,CAAY;;;;IAIhF,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAiC;IAC/B,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,CAA0H;IAC1H,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAqE;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAa;AACpF,IADoF,iBAAO,EACvF;;;IAFI,EAAA,CAAA,SAAA,EAAmB;;IACnB,EAAA,CAAA,SAAA,EAAoB;;IAA2C,EAAA,CAAA,SAAA,EAAa;IAAb,EAAA,CAAA,iBAAA,CAAA,KAAA,CAAA,IAAA,CAAa;;;;IAMhF,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAyE;;;IAAzB,EAAA,CAAA,WAAA,CAAA,MAAA,EAAA,IAAA,CAAA,KAAA,CAAsB;;;;;IAKpE,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAQE;;;;;;;AADA,IADA,kCAAsB,CAAA,mBAAA,EAAA,UAAA,CACQ;IAL9B,EAAA,CAAA,WAAA,CAAA,0BAAA,EAAA,MAAA,CAAA,WAAA,EAAA,KAAA,UAAA,CAA2D;;;;;IAH/D,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,iEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAqB;;IAWrB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAOE;AADA,IADA,EAAA,CAAA,UAAA,CAAA,cAAA,EAAA,SAAA,kFAAA,GAAA,EAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,KAAA,GAAA,OAAA,CAAA,SAAA,CAAA,CAAA,MAAA,UAAA,GAAA,OAAA,CAAA,MAAA,CAAA,CAAA,MAAA,IAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAgB,MAAA,CAAA,WAAA,CAAA,UAAA,EAAA,KAAA,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA,EAAA,IAAA,CAAA,IAAA,EAAA,KAAA,CAAA,KAAA,EAAA,KAAA,CAAA,KAAA,EAAA,IAAA,CAAA,KAAA,CAAgE,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,cAAA,EAAA,SAAA,kFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACjE,oBAAa,CAAA,CAAA,CAAA,CAAA,CAAC;IANhC,EAAA,CAAA,YAAA,EAOE;;;;IAlBF,EAAA,CAAA,aAAA,CAAA,MAAA,CAAA,UAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAUC;IAGC,EAAA,CAAA,SAAA,EAAe;;;;;IAnBrB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAyE;IACvE,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,2DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAc;IAGd,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAA0F;IAC1F,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,mDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,CAoBC;IACH,EAAA,CAAA,YAAA,EAAI;;;;IA1ByB,EAAA,CAAA,WAAA,CAAA,wBAAA,EAAA,MAAA,CAAA,GAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAA2C;IACtE,EAAA,CAAA,SAAA,EAEC;IAFD,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,IAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAEC;IAC+C,EAAA,CAAA,SAAA,EAAwB;IAAxB,EAAA,CAAA,WAAA,CAAA,QAAA,EAAA,IAAA,CAAA,KAAA,CAAwB;;IACxE,EAAA,CAAA,SAAA,EAoBC;IApBD,EAAA,CAAA,UAAA,CAAA,IAAA,CAAA,MAAA,CAoBC;;;;IAhDL,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAA2B;IACzB,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,EAAA,EAAA,EAAA,CAAA,sBAAA,CAEC;IACH,EAAA,CAAA,YAAA,EAAI;IACJ,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,oDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAA0B;IAG1B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAA2B;IACzB,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,CAEC;IACD,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,CAEC;IACH,EAAA,CAAA,YAAA,EAAI;IACJ,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,oDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAA0B;IAM1B,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,6CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,UAAA,CA4BC;;;;;;IAjDC,EAAA,CAAA,SAAA,EAEC;IAFD,EAAA,CAAA,UAAA,CAAA,MAAA,CAAA,IAAA,CAEC;IAEH,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;IAFD,EAAA,CAAA,aAAA,CAAA,CAAA,OAAA,GAAA,MAAA,CAAA,SAAA,EAAA,IAAA,CAAA,GAAA,CAAA,CAAA,EAAA,OAAA,CAEC;IAEC,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;IAFD,EAAA,CAAA,UAAA,CAAA,MAAA,CAAA,WAAA,CAEC;IACD,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;IAFD,EAAA,CAAA,UAAA,CAAA,MAAA,CAAA,SAAA,CAEC;IAEH,EAAA,CAAA,SAAA,CAAA,CAAA,CAKC;IALD,EAAA,CAAA,aAAA,CAAA,CAAA,OAAA,GAAA,MAAA,CAAA,SAAA,EAAA,IAAA,CAAA,GAAA,CAAA,CAAA,EAAA,OAAA,CAKC;IACD,EAAA,CAAA,SAAA,EA4BC;IA5BD,EAAA,CAAA,UAAA,CAAA,MAAA,CAAA,MAAA,CA4BC;;;IAnDH,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,CAAA,CAAuB;;;;IAAvB,EAAA,CAAA,aAAA,CAAA,CAAA,OAAA,GAAA,MAAA,CAAA,MAAA,EAAA,IAAA,CAAA,GAAA,CAAA,CAAA,EAAA,OAAA,CAoDC;;;;IAOK,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAwG;;;;;;;IAKxG,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAkE;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAY;IAAA,EAAA,CAAA,YAAA,EAAO;;;;IAAnB,EAAA,CAAA,SAAA,EAAY;IAAZ,EAAA,CAAA,iBAAA,CAAA,KAAA,CAAA,IAAA,CAAY;;;;IAG9E,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAkE;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAY;IAAA,EAAA,CAAA,YAAA,EAAO;;;;IAAnB,EAAA,CAAA,SAAA,EAAY;IAAZ,EAAA,CAAA,iBAAA,CAAA,KAAA,CAAA,IAAA,CAAY;;;;;IAK9E,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAQE;AADA,IADA,EAAA,CAAA,UAAA,CAAA,cAAA,EAAA,SAAA,0EAAA,GAAA,EAAA,MAAA,KAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAgB,MAAA,CAAA,OAAA,CAAA,KAAA,CAAA,IAAA,EAAA,KAAA,CAAA,IAAA,EAAA,KAAA,CAAA,IAAA,EAAA,KAAA,CAAA,KAAA,EAAA,KAAA,CAAA,KAAA,EAAA,KAAA,CAAA,KAAA,CAA0D,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,cAAA,EAAA,SAAA,0EAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAC3D,gBAAS,CAAA,CAAA,CAAA,CAAA,CAAC;IAP5B,EAAA,CAAA,YAAA,EAQE;;;;AAHA,IADA,mCAAsB,CAAA,mBAAA,EAAA,KAAA,CAAA,KAAA,CACS;IAH/B,EAAA,CAAA,WAAA,CAAA,wBAAA,EAAA,MAAA,CAAA,GAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAA2C;;;;;IAjBjD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAA2B;IACzB,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,EAAA,EAAA,EAAA,CAAA,sBAAA,CAEC;IACH,EAAA,CAAA,YAAA,EAAI;IACJ,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAA2B;IACzB,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,CAEC;IACD,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,CAEC;IACH,EAAA,CAAA,YAAA,EAAI;IACJ,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAoE;IAClE,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,6CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,EAAA,EAAA,UAAA,CAUC;IACH,EAAA,CAAA,YAAA,EAAI;;;IAxBF,EAAA,CAAA,SAAA,EAEC;IAFD,EAAA,CAAA,UAAA,CAAA,MAAA,CAAA,IAAA,CAEC;IAGD,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;IAFD,EAAA,CAAA,UAAA,CAAA,MAAA,CAAA,WAAA,CAEC;IACD,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;IAFD,EAAA,CAAA,UAAA,CAAA,MAAA,CAAA,SAAA,CAEC;IAEwB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAwC;;IACjE,EAAA,CAAA,SAAA,EAUC;IAVD,EAAA,CAAA,UAAA,CAAA,MAAA,CAAA,IAAA,CAUC;;;IAzBL,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,CAAA,CAAsB;;;;IAAtB,EAAA,CAAA,aAAA,CAAA,CAAA,OAAA,GAAA,MAAA,CAAA,KAAA,EAAA,IAAA,CAAA,GAAA,CAAA,CAAA,EAAA,OAAA,CA2BC;;;;IAOK,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAA6C;;;;;;;IAG7C,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAwG;;;;;;;IAKxG,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAkE;IAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAY;IAAA,EAAA,CAAA,YAAA,EAAO;;;;IAAnB,EAAA,CAAA,SAAA,EAAY;IAAZ,EAAA,CAAA,iBAAA,CAAA,KAAA,CAAA,IAAA,CAAY;;;;;IAO5E,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CASE;AADA,IADA,EAAA,CAAA,UAAA,CAAA,cAAA,EAAA,SAAA,iFAAA,GAAA,EAAA,MAAA,KAAA,GAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,SAAA,CAAA,CAAA,MAAA,KAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAgB,MAAA,CAAA,OAAA,CAAA,KAAA,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA,EAAA,KAAA,CAAA,IAAA,EAAA,KAAA,CAAA,KAAA,EAAA,KAAA,CAAA,KAAA,EAAA,KAAA,CAAA,KAAA,CAAoD,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,cAAA,EAAA,SAAA,iFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACrD,gBAAS,CAAA,CAAA,CAAA,CAAA,CAAC;IAR5B,EAAA,CAAA,YAAA,EASE;;;;;AAHA,IADA,mCAAsB,CAAA,mBAAA,EAAA,UAAA,CACQ;;;;;IATpC,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAA0F;IACxF,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAA2G;IAC3G,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,EAAA,EAAA,CAAA,sBAAA,CAWC;IACH,EAAA,CAAA,YAAA,EAAI;;;;IAd0C,EAAA,CAAA,WAAA,CAAA,wBAAA,EAAA,MAAA,CAAA,GAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAA2C;IAC9B,EAAA,CAAA,SAAA,EAAsB;AAAC,IAAvB,mCAAsB,CAAA,QAAA,EAAA,KAAA,CAAA,KAAA,CAAyB;;IACxG,EAAA,CAAA,SAAA,EAWC;IAXD,EAAA,CAAA,UAAA,CAAA,KAAA,CAAA,MAAA,CAWC;;;;IA3BL,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAA2B;IACzB,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,EAAA,EAAA,EAAA,CAAA,sBAAA,CAEC;IACD,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,EAAA,EAAA,EAAA,CAAA,sBAAA,CAEC;IACH,EAAA,CAAA,YAAA,EAAI;IACJ,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAA2B;IACzB,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,CAEC;IACH,EAAA,CAAA,YAAA,EAAI;IACJ,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,UAAA,CAgBC;;;IA5BC,EAAA,CAAA,SAAA,EAEC;IAFD,EAAA,CAAA,UAAA,CAAA,MAAA,CAAA,KAAA,CAEC;IACD,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;IAFD,EAAA,CAAA,UAAA,CAAA,MAAA,CAAA,SAAA,CAEC;IAGD,EAAA,CAAA,SAAA,CAAA,CAAA,CAEC;IAFD,EAAA,CAAA,UAAA,CAAA,MAAA,CAAA,UAAA,CAEC;IAEH,EAAA,CAAA,SAAA,CAAA,CAAA,CAgBC;IAhBD,EAAA,CAAA,UAAA,CAAA,MAAA,CAAA,MAAA,CAgBC;;;IA9BH,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,CAAA,CAAwB;;;;IAAxB,EAAA,CAAA,aAAA,CAAA,CAAA,OAAA,GAAA,MAAA,CAAA,OAAA,EAAA,IAAA,CAAA,GAAA,CAAA,CAAA,EAAA,OAAA,CA+BC;;;;;IAOK,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAQE;AADA,IADA,gOAAgB,MAAA,CAAA,OAAA,CAAA,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA,KAAA,EAAoC,EAAE,6BAAqB,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,cAAA,EAAA,SAAA,yEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAC5D,gBAAS,CAAA,CAAA,CAAA,CAAA,CAAC;IAP5B,EAAA,CAAA,YAAA,EAQE;;;;;AAHA,IADA,oCAAuB,CAAA,mBAAA,EAAA,UAAA,CACO;IAH9B,EAAA,CAAA,WAAA,CAAA,wBAAA,EAAA,MAAA,CAAA,GAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAA4C;;;;;IAJlD,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAA6B;IAC3B,EAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,4CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,EAAA,EAAA,UAAA,CAUC;IACH,EAAA,CAAA,YAAA,EAAI;;IAXF,EAAA,CAAA,SAAA,EAUC;IAVD,EAAA,CAAA,UAAA,CAAA,GAAA,CAUC;;;IAZL,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,sCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAA0B;;;;IAA1B,EAAA,CAAA,aAAA,CAAA,CAAA,OAAA,GAAA,MAAA,CAAA,KAAA,EAAA,IAAA,CAAA,GAAA,CAAA,CAAA,EAAA,OAAA,CAcC;;;;IASP,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,kBAAA,EAAA,EAAA,CAQE;AADA,IADA,EAAA,CAAA,UAAA,CAAA,cAAA,EAAA,SAAA,yEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAgB,MAAA,CAAA,QAAA,CAAA,MAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,WAAA,EAAA,SAAA,sEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CACpB,0BAAmB,CAAA,CAAA,CAAA,CAAA,CAAC;IAPnC,EAAA,CAAA,YAAA,EAQE;;;AAHA,IAJA,4CAAuB,CAAA,UAAA,EAAA,MAAA,CAAA,UAAA,EAAA,CAAA,QAAA,CACW,CAAA,OAAA,EAAA,MAAA,CAAA,UAAA,EAAA,CAAA,KAAA,CACN,8CACU,CAAA,OAAA,EAAA,MAAA,CAAA,UAAA,EAAA,CAAA,KAAA,CACV;;AC9FpC,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;AACpE,MAAM,iBAAiB,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;AAEtE;;;;;;;;AAQG;MAgBU,QAAQ,CAAA;AAfrB,IAAA,WAAA,GAAA;QAgBW,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ;mFAAkB;;QAEzC,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,GAAG;kFAAC;;QAElB,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,GAAG;mFAAC;;AAGT,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAsB,IAAI,GAAG,EAAE;mFAAC;QAC/C,IAAA,CAAA,WAAW,GAAG,MAAM,CAAgB,IAAI;wFAAC;QACzC,IAAA,CAAA,OAAO,GAAG,MAAM,CAA8B,IAAI;oFAAC;;QAEnD,IAAA,CAAA,WAAW,GAAG,MAAM,CAAgB,IAAI;wFAAC;;QAGzC,IAAA,CAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI;iFAAC;AACzC,QAAA,IAAA,CAAA,IAAI,GAAG,QAAQ,CAAgC,MAAK;YACrE,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,IAAI,EAAE;AACvC,YAAA,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE,EAAE;QACnH,CAAC;iFAAC;AACiB,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;YAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,IAAI,EAAE;YACpC,OAAO;AACL,gBAAA,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI;AAC1B,gBAAA,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAK,QAAkB;AAC3C,gBAAA,KAAK,EAAE,CAAC,CAAC,KAAK,IAAK,QAAkB;AACrC,gBAAA,UAAU,EAAE,CAAC,CAAC,UAAU,IAAK,QAAkB;gBAC/C,KAAK,EAAE,CAAC,CAAC,KAAK;aACf;QACH,CAAC;uFAAC;QACiB,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK;sFAAC;QAC/C,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ;yFAAC;AAErD,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC;uFAAC;AAC9D,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC;0FAAC;;AAGpE,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAuB,MAAK;AACnE,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AACvB,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AACvB,YAAA,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE;gBACvE,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAI;AAC/B,oBAAA,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC;AACtB,oBAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAC5F,gBAAA,CAAC,CAAC;YACJ;YACA,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AAC3B,gBAAA,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI;AAC3B,gBAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAClF,YAAA,CAAC,CAAC;QACJ,CAAC;wFAAC;;AAGiB,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAgB,MAAK;AACvD,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AACvB,YAAA,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;AAAE,gBAAA,OAAO,IAAI;AAClC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;YACvB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YAC5F,MAAM,MAAM,GAAa,EAAE;AAC3B,YAAA,KAAK,MAAM,EAAE,CAAC,EAAE,IAAI,MAAM;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAClD,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5D,YAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC;YACnE,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9E,YAAA,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM;YACzB,MAAM,GAAG,GAAG,CAAC,CAAS,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AAClG,YAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC;AAE1B,YAAA,MAAM,MAAM,GAAmB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAI;gBACrD,MAAM,GAAG,GAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACtH,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;gBACrC,OAAO;AACL,oBAAA,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI;oBACpB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,KAAK;oBACL,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,aAAa,IAAI,QAAQ,CAAC;oBAChD,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,aAAa,IAAI,QAAQ,CAAC,GAAG,IAAI;AAC1E,oBAAA,MAAM,EAAE,GAAG;iBACZ;AACH,YAAA,CAAC,CAAC;YAEF,OAAO;gBACL,IAAI;gBACJ,MAAM;gBACN,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACrG,gBAAA,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAc,EAAE,CAAC,CAAC;gBACzH,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,QAAiB,EAAE,CAAC,CAAC;AACxH,gBAAA,UAAU,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI;aAC7B;QACH,CAAC;mFAAC;;AAGiB,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAe,MAAK;AACrD,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AACvB,YAAA,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK;AAAE,gBAAA,OAAO,IAAI;AACjC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AACvB,YAAA,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,IAAI,UAAU;YAC/C,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YAC5F,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,WAAW,KAAK,UAAU,GAAG,eAAe,GAAG,iBAAiB,CAAC;AACpH,YAAA,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC;YAChH,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAChE,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC;AAE3C,YAAA,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAAI;AACxC,gBAAA,MAAM,IAAI,GAAG,WAAW,KAAK,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK;AAC/F,gBAAA,MAAM,IAAI,GAAG,WAAW,KAAK,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;gBACjF,OAAO;oBACL,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;oBAClC,IAAI,EAAE,CAAC,CAAC,IAAI;AACZ,oBAAA,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;AAC5B,oBAAA,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;oBAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE;oBACtC,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,IAAI;oBACJ,IAAI;AACJ,oBAAA,KAAK,EAAE,KAAK;iBACb;AACH,YAAA,CAAC,CAAC;AAEF,YAAA,MAAM,GAAG,GACP,WAAW,KAAK;kBACZ,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG;kBAC3D,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;AAEnE,YAAA,IAAI,WAAW,KAAK,UAAU,EAAE;gBAC9B,OAAO;oBACL,WAAW;oBACX,IAAI;AACJ,oBAAA,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;oBAC9F,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAc,EAAE,CAAC,CAAC;oBAC5H,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,QAAiB,EAAE,CAAC,CAAC;iBAChI;YACH;YACA,OAAO;gBACL,WAAW;gBACX,IAAI;AACJ,gBAAA,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC/F,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAiB,EAAE,CAAC,CAAC;gBAC1I,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,KAAc,EAAE,CAAC,CAAC;aAClH;QACH,CAAC;kFAAC;;AAGiB,QAAA,IAAA,CAAA,KAAK,GAAG,QAAQ,CAAmB,MAAK;AACzD,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AACvB,YAAA,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;AAAE,gBAAA,OAAO,IAAI;AACpF,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;YACvB,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACtB,YAAA,IAAI,CAAC,EAAE;AAAE,gBAAA,OAAO,EAAE;YAClB,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACrE,YAAA,MAAM,OAAO,GAAG,CAAC,CAAC;AACf,iBAAA,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;AACzF,iBAAA,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,YAAA,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;AAE1C,YAAA,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE;AAC1B,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7D,gBAAA,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC;AACvD,gBAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YACjG;YACA,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,UAAU,GAAG,MAAM,IAAI,CAAC,CAAC,WAAW,IAAI,GAAG,CAAC,GAAG,CAAC;AACzE,YAAA,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC;AACvD,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,KAAK,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;QACxG,CAAC;kFAAC;;AAGiB,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAiB,MAAK;AACzD,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AACvB,YAAA,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;AAAE,gBAAA,OAAO,IAAI;AACnC,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;AACvB,YAAA,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM;YAC7B,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;AACtE,YAAA,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YAC5F,IAAI,GAAG,GAAG,CAAC;AACX,YAAA,KAAK,MAAM,EAAE,CAAC,EAAE,IAAI,MAAM;AAAE,gBAAA,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI;oBAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;AAE1E,YAAA,MAAM,MAAM,GAAoB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAI;AACtD,gBAAA,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC;gBACpD,OAAO;AACL,oBAAA,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI;oBACpB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AAC9B,oBAAA,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC;oBACzB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;iBACvG;AACH,YAAA,CAAC,CAAC;YAEF,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,gBAAA,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC/E,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;AAC9B,oBAAA,MAAM,CAAC,GAAG,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC;AACxD,oBAAA,MAAM,MAAM,GAAwB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,KAAK;AAClG,oBAAA,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE;AAC3E,gBAAA,CAAC,CAAC;gBACF,MAAM;aACP;QACH,CAAC;oFAAC;;AAGiB,QAAA,IAAA,CAAA,SAAS,GAAG,QAAQ,CAAC,MAAK;AAC3C,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE;YACvB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS;AAAE,gBAAA,OAAO,IAAI;AAClD,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE;AAC5B,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE;AAAE,gBAAA,OAAO,IAAI;YAClC,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AAC3B,YAAA,IAAI,CAAC,GAAG;AAAE,gBAAA,OAAO,IAAI;AACrB,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC;YAChD,OAAO;gBACL,CAAC,EAAE,GAAG,CAAC,CAAC;AACR,gBAAA,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;gBACb,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;gBAC9B,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,MAAM,EAAE,GAAG,CAAC,CAAC;gBACb,MAAM,EAAE,GAAG,CAAC,CAAC;AACb,gBAAA,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;AACpB,gBAAA,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE;AACjB,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,KAAK,EAAE,EAAE;aACV;QACH,CAAC;sFAAC;AAwCH,IAAA;;AArCW,IAAA,WAAW,CAAC,GAAW,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,KAAa,EAAE,KAAa,EAAE,KAAa,EAAA;AACtH,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;IACrD;IAEU,WAAW,GAAA;AACnB,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,OAAO,EAAE;IAChB;IAEU,OAAO,CAAC,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,KAAa,EAAE,KAAa,EAAE,KAAa,EAAA;QACrG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,KAAK;YAAE;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM;QACzC,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC;QAC5E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IACpI;IAEU,OAAO,GAAA;AACf,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IACxB;AAEU,IAAA,QAAQ,CAAC,GAAW,EAAA;QAC5B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AAClC,QAAA,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AAAE,YAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;;AAC5B,YAAA,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AACjB,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;IACtB;AAEU,IAAA,WAAW,CAAC,GAAkB,EAAA;AACtC,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;IAC3B;;AAGU,IAAA,GAAG,CAAC,GAAW,EAAA;AACvB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE;AAC7B,QAAA,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,GAAG;IAClC;yGArQW,QAAQ,GAAA,CAAA,CAAA,CAAA,CAAA;oEAAR,QAAQ,EAAA,SAAA,EAAA,CAAA,CAAA,WAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,qBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAAR,YAAA,EAAA,CAAA,WAAA,CAAA,0BAAA,EAAA,GAAA,CAAA,IAAA,EAAM,CAAA,QAAA,GACZ,IAAI,CADU,CAAA,yBAAA,EAAR,GAAA,CAAA,IAAA,EAAM,CAAA,OAAA,GACb,IAAI,CADW,CAAA,uBAAA,EAAR,GAAA,CAAA,IAAA,EAAM,CAAA,KAAA,GACf,IAAI,CADa;AAAR,YAAA,EAAA,CAAA,WAAA,CAAA,oBAAA,EAAA,CAAC,UAAM,CAAA,OAAA,CAAC;;YDtHrB,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAgG;YAC9F,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAiD;YAcjD,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAuD;AAgBrD,YADF,8BAA6B,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CACI;;YAC7B,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAA8H;AA4H1H,YA1HA,EAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,CAAA,CAAgB,CAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,CAAA,CAwDD,mCA+BE,CAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,CAAA,CAmCP;YAkBd,EAAA,CAAA,YAAA,EAAM;;YAEN,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,mBAAA,EAAA,CAAA,CAAyC;YAC3C,EAAA,CAAA,YAAA,EAAM;YAEN,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,CAA4B;AAYhC,YADE,iBAAM,EACF;;;;YA9LJ,EAAA,CAAA,SAAA,EAaC;YAbD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,SAAA,EAAA,EAAA,OAAA,IAAA,GAAA,CAAA,SAAA,EAAA,EAAA,IAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAaC;YACD,EAAA,CAAA,SAAA,EAaC;YAbD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,YAAA,EAAA,EAAA,OAAA,IAAA,GAAA,CAAA,YAAA,EAAA,EAAA,IAAA,GAAA,CAAA,GAAA,CAAA,CAAA,CAaC;YAIQ,EAAA,CAAA,SAAA,CAAA,CAAA,CAAkD;;YACrD,EAAA,CAAA,SAAA,EA4IC;AA5ID,YAAA,EAAA,CAAA,aAAA,CAAA,CAAA,OAAA,GAAA,GAAA,CAAA,IAAA,EAAA,MAAA,MAAM,GAAA,CAAA,GAAA,OAAA,KAAN,KAAK,GAAA,CAAA,GAAA,OAAA,KAAL,OAAO,GAAA,CAAA,GAAA,CAAA,CA4IN;YAGgB,EAAA,CAAA,SAAA,CAAA,CAAA,CAAmB;YAAnB,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,GAAA,CAAA,OAAA,EAAA,CAAmB;YAGxC,EAAA,CAAA,SAAA,EAUC;YAVD,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,UAAA,EAAA,CAAA,OAAA,GAAA,EAAA,GAAA,CAAA,CAAA,CAUC;AClFO,QAAA,CAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,cAAc,EAAE,eAAe,CAAA,EAAA,MAAA,EAAA,CAAA,w4OAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;iFAW9B,QAAQ,EAAA,CAAA;cAfpB,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAAA,eAAA,EACJ,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B,CAAC,cAAc,EAAE,eAAe,CAAC,EAAA,IAAA,EAGpC;AACJ,oBAAA,KAAK,EAAE,gBAAgB;AACvB,oBAAA,4BAA4B,EAAE,iBAAiB;AAC/C,oBAAA,8BAA8B,EAAE,wBAAwB;AACxD,oBAAA,6BAA6B,EAAE,uBAAuB;AACtD,oBAAA,2BAA2B,EAAE,qBAAqB;AACnD,iBAAA,EAAA,QAAA,EAAA,y1QAAA,EAAA,MAAA,EAAA,CAAA,4jOAAA,CAAA,EAAA;;kFAEU,QAAQ,EAAA,EAAA,SAAA,EAAA,UAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA,GAAA;AAwQrB;AACA,SAAS,QAAQ,CACf,KAAiE,EACjE,QAAgB,EAChB,SAAiB,EACjB,EAAU,EACV,EAAU,EACV,IAAY,EAAA;AAEZ,IAAA,MAAM,CAAC,GAAG,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC;AACvD,IAAA,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;AAC1H;AAEA,SAAS,QAAQ,CAAC,KAA2B,EAAA;IAC3C,IAAI,KAAK,KAAK,QAAQ;AAAE,QAAA,OAAO,QAAQ;IACvC,IAAI,KAAK,KAAK,KAAK;AAAE,QAAA,OAAO,OAAO;AACnC,IAAA,OAAO,MAAM;AACf;;AC/YA;;;;;AAKG;;ACLH;;AAEG;;;;"}
|
|
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
|
|
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 —
|
|
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
|
|
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;;;;"}
|