@konce-pt/angular 0.1.0
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/LICENSE +21 -0
- package/dist/fesm2022/konce-pt-angular-icons.mjs +5166 -0
- package/dist/fesm2022/konce-pt-angular-icons.mjs.map +1 -0
- package/dist/fesm2022/konce-pt-angular.mjs +5863 -0
- package/dist/fesm2022/konce-pt-angular.mjs.map +1 -0
- package/dist/package.json +47 -0
- package/dist/src/lib/accordion/llms.txt +18 -0
- package/dist/src/lib/alert/llms.txt +19 -0
- package/dist/src/lib/app-shell/llms.txt +29 -0
- package/dist/src/lib/autocomplete/llms.txt +16 -0
- package/dist/src/lib/avatar/llms.txt +15 -0
- package/dist/src/lib/avatar-group/llms.txt +15 -0
- package/dist/src/lib/badge/llms.txt +16 -0
- package/dist/src/lib/bottom-sheet/llms.txt +16 -0
- package/dist/src/lib/breadcrumb/llms.txt +12 -0
- package/dist/src/lib/button/llms.txt +35 -0
- package/dist/src/lib/button-group/llms.txt +14 -0
- package/dist/src/lib/card/llms.txt +24 -0
- package/dist/src/lib/carousel/llms.txt +24 -0
- package/dist/src/lib/checkbox/llms.txt +15 -0
- package/dist/src/lib/chip/llms.txt +14 -0
- package/dist/src/lib/chips-input/llms.txt +18 -0
- package/dist/src/lib/color-picker/llms.txt +18 -0
- package/dist/src/lib/confirm/llms.txt +21 -0
- package/dist/src/lib/context-menu/llms.txt +17 -0
- package/dist/src/lib/data-table/llms.txt +62 -0
- package/dist/src/lib/data-view/llms.txt +18 -0
- package/dist/src/lib/date-range/llms.txt +24 -0
- package/dist/src/lib/datepicker/llms.txt +17 -0
- package/dist/src/lib/dialog/llms.txt +27 -0
- package/dist/src/lib/divider/llms.txt +19 -0
- package/dist/src/lib/drawer/llms.txt +17 -0
- package/dist/src/lib/empty/llms.txt +17 -0
- package/dist/src/lib/fab/llms.txt +18 -0
- package/dist/src/lib/fieldset/llms.txt +15 -0
- package/dist/src/lib/file-upload/llms.txt +23 -0
- package/dist/src/lib/form-field/llms.txt +37 -0
- package/dist/src/lib/galleria/llms.txt +15 -0
- package/dist/src/lib/icon/llms.txt +34 -0
- package/dist/src/lib/icon-button/llms.txt +15 -0
- package/dist/src/lib/image/llms.txt +15 -0
- package/dist/src/lib/input/llms.txt +38 -0
- package/dist/src/lib/input-mask/llms.txt +20 -0
- package/dist/src/lib/input-number/llms.txt +17 -0
- package/dist/src/lib/input-otp/llms.txt +19 -0
- package/dist/src/lib/knob/llms.txt +20 -0
- package/dist/src/lib/listbox/llms.txt +17 -0
- package/dist/src/lib/megamenu/llms.txt +21 -0
- package/dist/src/lib/menu/llms.txt +17 -0
- package/dist/src/lib/menubar/llms.txt +19 -0
- package/dist/src/lib/meter-group/llms.txt +15 -0
- package/dist/src/lib/order-list/llms.txt +17 -0
- package/dist/src/lib/paginator/llms.txt +18 -0
- package/dist/src/lib/panel/llms.txt +18 -0
- package/dist/src/lib/password/llms.txt +20 -0
- package/dist/src/lib/pick-list/llms.txt +17 -0
- package/dist/src/lib/popover/llms.txt +17 -0
- package/dist/src/lib/progress/llms.txt +16 -0
- package/dist/src/lib/radio-group/llms.txt +15 -0
- package/dist/src/lib/rating/llms.txt +14 -0
- package/dist/src/lib/rich-text/llms.txt +16 -0
- package/dist/src/lib/scroll-top/llms.txt +15 -0
- package/dist/src/lib/select/llms.txt +22 -0
- package/dist/src/lib/sidenav/llms.txt +20 -0
- package/dist/src/lib/skeleton/llms.txt +14 -0
- package/dist/src/lib/slider/llms.txt +13 -0
- package/dist/src/lib/speed-dial/llms.txt +16 -0
- package/dist/src/lib/spinner/llms.txt +10 -0
- package/dist/src/lib/split-button/llms.txt +26 -0
- package/dist/src/lib/splitter/llms.txt +21 -0
- package/dist/src/lib/stepper/llms.txt +19 -0
- package/dist/src/lib/switch/llms.txt +13 -0
- package/dist/src/lib/tabs/llms.txt +19 -0
- package/dist/src/lib/textarea/llms.txt +14 -0
- package/dist/src/lib/timeline/llms.txt +22 -0
- package/dist/src/lib/toast/llms.txt +22 -0
- package/dist/src/lib/toolbar/llms.txt +23 -0
- package/dist/src/lib/tooltip/llms.txt +19 -0
- package/dist/src/lib/tree/llms.txt +17 -0
- package/dist/types/konce-pt-angular-icons.d.ts +18 -0
- package/dist/types/konce-pt-angular.d.ts +1858 -0
- package/package.json +61 -0
|
@@ -0,0 +1,1858 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { TemplateRef, OnDestroy } from '@angular/core';
|
|
3
|
+
import { FormValueControl, WithOptionalFieldTree, ValidationError, FormCheckboxControl } from '@angular/forms/signals';
|
|
4
|
+
import { ConnectedPosition } from '@angular/cdk/overlay';
|
|
5
|
+
import * as _konce_pt_angular from '@konce-pt/angular';
|
|
6
|
+
|
|
7
|
+
type KptButtonVariant = 'filled' | 'tonal' | 'outline' | 'text' | 'danger';
|
|
8
|
+
type KptButtonSize = 'sm' | 'md' | 'lg';
|
|
9
|
+
/**
|
|
10
|
+
* Przycisk Koncept UI. Renderuje natywny `<button>` (zachowana semantyka i submit
|
|
11
|
+
* formularza). Wygląd sterowany tokenami `--kpt-button-*`.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* <kpt-button variant="filled" (click)="save()">Zapisz</kpt-button>
|
|
15
|
+
* <kpt-button variant="outline" size="sm" [disabled]="busy()">Anuluj</kpt-button>
|
|
16
|
+
*/
|
|
17
|
+
declare class KptButton {
|
|
18
|
+
/** Wariant wizualny. */
|
|
19
|
+
readonly variant: _angular_core.InputSignal<KptButtonVariant>;
|
|
20
|
+
/** Rozmiar. */
|
|
21
|
+
readonly size: _angular_core.InputSignal<KptButtonSize>;
|
|
22
|
+
/** Typ natywnego przycisku (istotne w formularzach). */
|
|
23
|
+
readonly type: _angular_core.InputSignal<"button" | "submit" | "reset">;
|
|
24
|
+
/** Wyłączony. */
|
|
25
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
26
|
+
/** Stan ładowania — pokazuje spinner i blokuje interakcję. */
|
|
27
|
+
readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
28
|
+
/** Rozciągnięcie na całą szerokość kontenera. */
|
|
29
|
+
readonly fullWidth: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
30
|
+
protected readonly isDisabled: _angular_core.Signal<boolean>;
|
|
31
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptButton, never>;
|
|
32
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptButton, "kpt-button", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Przycisk ikonowy (tylko ikona). Wymaga `ariaLabel` dla dostępności.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* <kpt-icon-button ariaLabel="Ustawienia"><kpt-icon name="menu" /></kpt-icon-button>
|
|
40
|
+
* <kpt-icon-button variant="filled" shape="square" ariaLabel="Usuń"><kpt-icon name="x" /></kpt-icon-button>
|
|
41
|
+
*/
|
|
42
|
+
declare class KptIconButton {
|
|
43
|
+
readonly variant: _angular_core.InputSignal<KptButtonVariant>;
|
|
44
|
+
readonly size: _angular_core.InputSignal<KptButtonSize>;
|
|
45
|
+
readonly shape: _angular_core.InputSignal<"round" | "square">;
|
|
46
|
+
readonly type: _angular_core.InputSignal<"button" | "submit" | "reset">;
|
|
47
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
48
|
+
readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
49
|
+
/** Etykieta dostępności (wymagana — przycisk nie ma tekstu). */
|
|
50
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
51
|
+
protected readonly isDisabled: _angular_core.Signal<boolean>;
|
|
52
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptIconButton, never>;
|
|
53
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptIconButton, "kpt-icon-button", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": true; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/** Opcja wyboru dla kontrolek typu select / radio-group. */
|
|
57
|
+
interface KptOption<T = unknown> {
|
|
58
|
+
label: string;
|
|
59
|
+
value: T;
|
|
60
|
+
disabled?: boolean;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Segmentowana grupa przycisków (toggle) — pojedynczy wybór z opcji. Signal Forms.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* <kpt-button-group [(value)]="view" [options]="[{label:'Lista',value:'list'},{label:'Siatka',value:'grid'}]" />
|
|
68
|
+
* <kpt-button-group [formField]="f.period" [options]="periods" />
|
|
69
|
+
*/
|
|
70
|
+
declare class KptButtonGroup<T = unknown> implements FormValueControl<T> {
|
|
71
|
+
readonly options: _angular_core.InputSignal<KptOption<T>[]>;
|
|
72
|
+
readonly value: _angular_core.ModelSignal<T>;
|
|
73
|
+
readonly size: _angular_core.InputSignal<"sm" | "md" | "lg">;
|
|
74
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
75
|
+
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
76
|
+
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
77
|
+
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
78
|
+
protected select(opt: KptOption<T>): void;
|
|
79
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptButtonGroup<any>, never>;
|
|
80
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptButtonGroup<any>, "kpt-button-group", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Floating Action Button (FAB) — okrągły, wyniesiony przycisk akcji. Wariant `extended` = pigułka z tekstem.
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* <kpt-fab ariaLabel="Dodaj"><kpt-icon name="plus" /></kpt-fab>
|
|
88
|
+
* <kpt-fab extended><kpt-icon name="plus" /> Nowy</kpt-fab>
|
|
89
|
+
*/
|
|
90
|
+
declare class KptFab {
|
|
91
|
+
readonly variant: _angular_core.InputSignal<"filled" | "tonal">;
|
|
92
|
+
readonly size: _angular_core.InputSignal<"md" | "mini">;
|
|
93
|
+
readonly extended: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
94
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
95
|
+
readonly type: _angular_core.InputSignal<"button" | "submit" | "reset">;
|
|
96
|
+
/** Wymagane dla wariantu okrągłego (bez tekstu). */
|
|
97
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
98
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptFab, never>;
|
|
99
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptFab, "kpt-fab", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "extended": { "alias": "extended"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
interface KptMenuItem<T = unknown> {
|
|
103
|
+
label?: string;
|
|
104
|
+
value?: T;
|
|
105
|
+
icon?: string;
|
|
106
|
+
disabled?: boolean;
|
|
107
|
+
danger?: boolean;
|
|
108
|
+
separator?: boolean;
|
|
109
|
+
/** Pozycje podrzędne (menubar / megamenu). */
|
|
110
|
+
items?: KptMenuItem<T>[];
|
|
111
|
+
/** Adres odnośnika (menubar / megamenu). */
|
|
112
|
+
url?: string;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Menu rozwijane (dropdown) na CDK Overlay. Trigger przez projekcję, pozycje przez `items`.
|
|
116
|
+
* Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`
|
|
117
|
+
*
|
|
118
|
+
* @example
|
|
119
|
+
* <kpt-menu [items]="items" (select)="onSelect($event)">
|
|
120
|
+
* <kpt-button variant="outline">Opcje</kpt-button>
|
|
121
|
+
* </kpt-menu>
|
|
122
|
+
*/
|
|
123
|
+
declare class KptMenu<T = unknown> {
|
|
124
|
+
readonly items: _angular_core.InputSignal<KptMenuItem<T>[]>;
|
|
125
|
+
readonly select: _angular_core.OutputEmitterRef<KptMenuItem<T>>;
|
|
126
|
+
protected readonly open: _angular_core.WritableSignal<boolean>;
|
|
127
|
+
protected readonly positions: ConnectedPosition[];
|
|
128
|
+
protected toggle(): void;
|
|
129
|
+
protected close(): void;
|
|
130
|
+
protected pick(item: KptMenuItem<T>): void;
|
|
131
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptMenu<any>, never>;
|
|
132
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptMenu<any>, "kpt-menu", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, { "select": "select"; }, never, ["*"], true, never>;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Przycisk dzielony (split button) — akcja główna + rozwijane menu dodatkowych akcji.
|
|
137
|
+
* Wymaga `import '@angular/cdk/overlay-prebuilt.css';`
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* <kpt-split-button [items]="items" (primaryClick)="save()" (select)="onItem($event)">Zapisz</kpt-split-button>
|
|
141
|
+
*/
|
|
142
|
+
declare class KptSplitButton<T = unknown> {
|
|
143
|
+
readonly variant: _angular_core.InputSignal<KptButtonVariant>;
|
|
144
|
+
readonly items: _angular_core.InputSignal<KptMenuItem<T>[]>;
|
|
145
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
146
|
+
readonly primaryClick: _angular_core.OutputEmitterRef<void>;
|
|
147
|
+
readonly select: _angular_core.OutputEmitterRef<KptMenuItem<T>>;
|
|
148
|
+
protected readonly open: _angular_core.WritableSignal<boolean>;
|
|
149
|
+
protected readonly positions: ConnectedPosition[];
|
|
150
|
+
protected pick(item: KptMenuItem<T>): void;
|
|
151
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptSplitButton<any>, never>;
|
|
152
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptSplitButton<any>, "kpt-split-button", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "primaryClick": "primaryClick"; "select": "select"; }, never, ["*"], true, never>;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Ikona Koncept UI (inline SVG, zestaw Tabler Icons — MIT). Rozmiar dziedziczy z `font-size`
|
|
157
|
+
* (1em) lub ustaw `size`; kolor z `currentColor`. Ikona musi być w rejestrze
|
|
158
|
+
* ([[KptIconRegistry]]) — wbudowany zestaw działa od razu, pełny zestaw dodaje
|
|
159
|
+
* `provideKptTablerIcons()` z `@konce-pt/angular/icons`.
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* <kpt-icon name="menu" />
|
|
163
|
+
* <kpt-icon name="check" size="1.25rem" />
|
|
164
|
+
*/
|
|
165
|
+
declare class KptIcon {
|
|
166
|
+
/** Nazwa ikony z rejestru (wbudowana lub zarejestrowana). */
|
|
167
|
+
readonly name: _angular_core.InputSignal<string>;
|
|
168
|
+
/** Rozmiar jako długość CSS (np. '1.25rem'); domyślnie dziedziczy z font-size. */
|
|
169
|
+
readonly size: _angular_core.InputSignal<string>;
|
|
170
|
+
private readonly host;
|
|
171
|
+
private readonly registry;
|
|
172
|
+
constructor();
|
|
173
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptIcon, never>;
|
|
174
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptIcon, "kpt-icon", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Rejestr ikon dla `kpt-icon`. Zawiera wbudowany zestaw (używany przez komponenty).
|
|
179
|
+
* Aby dodać pełny zestaw Tabler (5130 ikon), użyj `provideKptTablerIcons()`
|
|
180
|
+
* z `@konce-pt/angular/icons` lub zarejestruj własne przez `register()`.
|
|
181
|
+
*/
|
|
182
|
+
declare class KptIconRegistry {
|
|
183
|
+
private readonly icons;
|
|
184
|
+
private readonly _version;
|
|
185
|
+
/** Rośnie po każdej rejestracji — pozwala `kpt-icon` reagować na późne dodanie ikon. */
|
|
186
|
+
readonly version: _angular_core.Signal<number>;
|
|
187
|
+
/** Rejestruje (lub nadpisuje) ikony: `{ nazwa: 'inner svg' }`. */
|
|
188
|
+
register(icons: Record<string, string>): void;
|
|
189
|
+
/** Zwraca wewnętrzny SVG ikony lub undefined. */
|
|
190
|
+
get(name: string): string | undefined;
|
|
191
|
+
has(name: string): boolean;
|
|
192
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptIconRegistry, never>;
|
|
193
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<KptIconRegistry>;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
type KptIconName = 'menu' | 'x' | 'chevron-up' | 'chevron-down' | 'chevron-left' | 'chevron-right' | 'check' | 'search' | 'grip-vertical' | 'info' | 'alert-triangle' | 'circle-check' | 'circle-x' | 'calendar' | 'copy' | 'link' | 'code' | 'bold' | 'italic' | 'underline' | 'strikethrough' | 'list' | 'list-numbers' | 'clear-formatting' | 'star' | 'plus' | 'upload' | 'dots-vertical' | 'photo' | 'trash' | 'eye' | 'eye-off' | 'minus' | 'arrow-up' | 'arrow-down' | 'zoom-in' | 'info-circle';
|
|
197
|
+
|
|
198
|
+
type KptBadgeVariant = 'neutral' | 'primary' | 'success' | 'danger' | 'warning' | 'info';
|
|
199
|
+
/**
|
|
200
|
+
* Znacznik (badge) — licznik lub kropka statusu. Standalone lub nałożony na treść (`overlay`).
|
|
201
|
+
*
|
|
202
|
+
* @example
|
|
203
|
+
* <kpt-badge [value]="3" variant="danger" />
|
|
204
|
+
* <kpt-badge [value]="128" overlay><kpt-icon name="menu" /></kpt-badge>
|
|
205
|
+
* <kpt-badge dot variant="success" overlay><kpt-avatar name="AK" /></kpt-badge>
|
|
206
|
+
*/
|
|
207
|
+
declare class KptBadge {
|
|
208
|
+
readonly value: _angular_core.InputSignal<string | number | null>;
|
|
209
|
+
readonly variant: _angular_core.InputSignal<KptBadgeVariant>;
|
|
210
|
+
readonly dot: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
211
|
+
readonly overlay: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
212
|
+
readonly max: _angular_core.InputSignal<number>;
|
|
213
|
+
protected readonly display: _angular_core.Signal<string | number>;
|
|
214
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptBadge, never>;
|
|
215
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptBadge, "kpt-badge", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "dot": { "alias": "dot"; "required": false; "isSignal": true; }; "overlay": { "alias": "overlay"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
type KptChipVariant = 'neutral' | 'primary' | 'success' | 'danger' | 'warning' | 'info';
|
|
219
|
+
/**
|
|
220
|
+
* Chip / tag — etykieta, opcjonalnie usuwalna.
|
|
221
|
+
*
|
|
222
|
+
* @example
|
|
223
|
+
* <kpt-chip>Angular</kpt-chip>
|
|
224
|
+
* <kpt-chip variant="success" removable (removed)="onRemove()">UI</kpt-chip>
|
|
225
|
+
*/
|
|
226
|
+
declare class KptChip {
|
|
227
|
+
readonly variant: _angular_core.InputSignal<KptChipVariant>;
|
|
228
|
+
readonly removable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
229
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
230
|
+
readonly removed: _angular_core.OutputEmitterRef<void>;
|
|
231
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptChip, never>;
|
|
232
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptChip, "kpt-chip", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "removed": "removed"; }, never, ["*"], true, never>;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
type KptAvatarSize = 'sm' | 'md' | 'lg' | 'xl';
|
|
236
|
+
type KptAvatarShape = 'circle' | 'square';
|
|
237
|
+
/**
|
|
238
|
+
* Awatar — obraz, inicjały (z `name`) lub ikona.
|
|
239
|
+
*
|
|
240
|
+
* @example
|
|
241
|
+
* <kpt-avatar src="/u/anna.jpg" />
|
|
242
|
+
* <kpt-avatar name="Anna Kowalska" size="lg" />
|
|
243
|
+
* <kpt-avatar icon="user" shape="square" />
|
|
244
|
+
*/
|
|
245
|
+
declare class KptAvatar {
|
|
246
|
+
readonly src: _angular_core.InputSignal<string | null>;
|
|
247
|
+
readonly name: _angular_core.InputSignal<string>;
|
|
248
|
+
readonly icon: _angular_core.InputSignal<string | null>;
|
|
249
|
+
readonly size: _angular_core.InputSignal<KptAvatarSize>;
|
|
250
|
+
readonly shape: _angular_core.InputSignal<KptAvatarShape>;
|
|
251
|
+
protected readonly initials: _angular_core.Signal<string>;
|
|
252
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptAvatar, never>;
|
|
253
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptAvatar, "kpt-avatar", never, { "src": { "alias": "src"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Wskaźnik ładowania (spinner). Kolor z `currentColor`.
|
|
258
|
+
*
|
|
259
|
+
* @example
|
|
260
|
+
* <kpt-spinner />
|
|
261
|
+
* <kpt-spinner size="2rem" label="Wczytywanie danych" />
|
|
262
|
+
*/
|
|
263
|
+
declare class KptSpinner {
|
|
264
|
+
readonly size: _angular_core.InputSignal<string>;
|
|
265
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
266
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptSpinner, never>;
|
|
267
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptSpinner, "kpt-spinner", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
type KptProgressVariant = 'primary' | 'success' | 'danger' | 'warning' | 'info';
|
|
271
|
+
/**
|
|
272
|
+
* Wskaźnik postępu — liniowy lub kołowy, określony (0–100) lub nieokreślony (`value` = null).
|
|
273
|
+
*
|
|
274
|
+
* @example
|
|
275
|
+
* <kpt-progress [value]="60" />
|
|
276
|
+
* <kpt-progress type="circular" [value]="75" variant="success" />
|
|
277
|
+
* <kpt-progress [value]="null" /> <!-- indeterminate -->
|
|
278
|
+
*/
|
|
279
|
+
declare class KptProgress {
|
|
280
|
+
/** 0–100 lub null = nieokreślony. */
|
|
281
|
+
readonly value: _angular_core.InputSignal<number | null>;
|
|
282
|
+
readonly variant: _angular_core.InputSignal<KptProgressVariant>;
|
|
283
|
+
readonly type: _angular_core.InputSignal<"linear" | "circular">;
|
|
284
|
+
readonly diameter: _angular_core.InputSignal<number>;
|
|
285
|
+
protected readonly circumference: number;
|
|
286
|
+
protected readonly offset: _angular_core.Signal<number>;
|
|
287
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptProgress, never>;
|
|
288
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptProgress, "kpt-progress", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "diameter": { "alias": "diameter"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
type KptSkeletonVariant = 'text' | 'circle' | 'rect';
|
|
292
|
+
/**
|
|
293
|
+
* Placeholder ładowania (skeleton) z animacją shimmer.
|
|
294
|
+
*
|
|
295
|
+
* @example
|
|
296
|
+
* <kpt-skeleton variant="text" [lines]="3" />
|
|
297
|
+
* <kpt-skeleton variant="circle" width="3rem" height="3rem" />
|
|
298
|
+
* <kpt-skeleton variant="rect" width="100%" height="8rem" />
|
|
299
|
+
*/
|
|
300
|
+
declare class KptSkeleton {
|
|
301
|
+
readonly variant: _angular_core.InputSignal<KptSkeletonVariant>;
|
|
302
|
+
readonly width: _angular_core.InputSignal<string>;
|
|
303
|
+
readonly height: _angular_core.InputSignal<string>;
|
|
304
|
+
readonly lines: _angular_core.InputSignal<number>;
|
|
305
|
+
protected readonly lineArray: _angular_core.Signal<unknown[]>;
|
|
306
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptSkeleton, never>;
|
|
307
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptSkeleton, "kpt-skeleton", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "lines": { "alias": "lines"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
/**
|
|
311
|
+
* Wrapper pola formularza: etykieta, podpowiedź i komunikat błędu wokół dowolnej
|
|
312
|
+
* kontrolki (np. `kpt-input`). Prezentacyjny — stan błędu przekazuje się przez `error`
|
|
313
|
+
* (zwykle z pola Signal Forms). Wygląd sterowany tokenami `--kpt-form-field-*`.
|
|
314
|
+
*
|
|
315
|
+
* @example
|
|
316
|
+
* <kpt-form-field label="E-mail" [error]="emailError()" hint="Firmowy adres">
|
|
317
|
+
* <kpt-input [control]="f.email" type="email" />
|
|
318
|
+
* </kpt-form-field>
|
|
319
|
+
*/
|
|
320
|
+
declare class KptFormField {
|
|
321
|
+
/** Tekst etykiety. */
|
|
322
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
323
|
+
/** Podpowiedź pod kontrolką (ukrywana, gdy jest błąd). */
|
|
324
|
+
readonly hint: _angular_core.InputSignal<string>;
|
|
325
|
+
/** Komunikat błędu — gdy niepusty, pole jest oznaczone jako nieprawidłowe. */
|
|
326
|
+
readonly error: _angular_core.InputSignal<string | null>;
|
|
327
|
+
/** Oznacz pole jako wymagane (gwiazdka przy etykiecie). */
|
|
328
|
+
readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
329
|
+
/** Id kontrolki dla powiązania `label[for]`. */
|
|
330
|
+
readonly controlId: _angular_core.InputSignal<string>;
|
|
331
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptFormField, never>;
|
|
332
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptFormField, "kpt-form-field", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "controlId": { "alias": "controlId"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
type KptInputType = 'text' | 'email' | 'password' | 'number' | 'search' | 'tel' | 'url';
|
|
336
|
+
/**
|
|
337
|
+
* Pole tekstowe Koncept UI zintegrowane z Angular Signal Forms.
|
|
338
|
+
* Implementuje `FormValueControl<string>` — wiąż je dyrektywą `FormField`:
|
|
339
|
+
*
|
|
340
|
+
* <kpt-input [formField]="loginForm.email" type="email" />
|
|
341
|
+
*
|
|
342
|
+
* Stan pola (disabled/readonly/required/invalid/errors/touched) wiąże automatycznie
|
|
343
|
+
* dyrektywa `FormField`. Bez `ControlValueAccessor`. Wygląd: tokeny `--kpt-form-field-*`.
|
|
344
|
+
*/
|
|
345
|
+
declare class KptInput implements FormValueControl<string> {
|
|
346
|
+
/** Wartość pola (wymagane przez kontrakt FormValueControl). */
|
|
347
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
348
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
349
|
+
readonly readonly: _angular_core.InputSignal<boolean>;
|
|
350
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
351
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
352
|
+
readonly errors: _angular_core.InputSignal<readonly WithOptionalFieldTree<ValidationError>[]>;
|
|
353
|
+
readonly touched: _angular_core.InputSignal<boolean>;
|
|
354
|
+
/** Emitowane na `blur` — oznacza pole jako dotknięte. */
|
|
355
|
+
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
356
|
+
readonly type: _angular_core.InputSignal<KptInputType>;
|
|
357
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
358
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
359
|
+
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
360
|
+
protected onInput(event: Event): void;
|
|
361
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptInput, never>;
|
|
362
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptInput, "kpt-input", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "errors": { "alias": "errors"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* Pole wyboru (checkbox) zintegrowane z Signal Forms (`FormCheckboxControl`).
|
|
367
|
+
* Wiąż dyrektywą `FormField`: `<kpt-checkbox [formField]="f.terms" label="Akceptuję" />`.
|
|
368
|
+
*/
|
|
369
|
+
declare class KptCheckbox implements FormCheckboxControl {
|
|
370
|
+
/** Zaznaczenie (wymagane przez kontrakt FormCheckboxControl). */
|
|
371
|
+
readonly checked: _angular_core.ModelSignal<boolean>;
|
|
372
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
373
|
+
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
374
|
+
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
375
|
+
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
376
|
+
/** Etykieta obok pola. */
|
|
377
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
378
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptCheckbox, never>;
|
|
379
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptCheckbox, "kpt-checkbox", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "touch": "touch"; }, never, ["*"], true, never>;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
/**
|
|
383
|
+
* Przełącznik (switch/toggle) zintegrowany z Signal Forms (`FormCheckboxControl`).
|
|
384
|
+
* `<kpt-switch [formField]="f.notifications" label="Powiadomienia" />`
|
|
385
|
+
*/
|
|
386
|
+
declare class KptSwitch implements FormCheckboxControl {
|
|
387
|
+
readonly checked: _angular_core.ModelSignal<boolean>;
|
|
388
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
389
|
+
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
390
|
+
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
391
|
+
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
392
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
393
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptSwitch, never>;
|
|
394
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptSwitch, "kpt-switch", never, { "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "touch": "touch"; }, never, ["*"], true, never>;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* Grupa przycisków opcji (radio) zintegrowana z Signal Forms (`FormValueControl<T>`).
|
|
399
|
+
* Opcje przez `options`. `<kpt-radio-group [formField]="f.plan" [options]="plans" />`
|
|
400
|
+
*/
|
|
401
|
+
declare class KptRadioGroup<T = unknown> implements FormValueControl<T> {
|
|
402
|
+
readonly value: _angular_core.ModelSignal<T>;
|
|
403
|
+
readonly options: _angular_core.InputSignal<KptOption<T>[]>;
|
|
404
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
405
|
+
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
406
|
+
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
407
|
+
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
408
|
+
readonly name: _angular_core.InputSignal<string>;
|
|
409
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptRadioGroup<any>, never>;
|
|
410
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptRadioGroup<any>, "kpt-radio-group", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
/**
|
|
414
|
+
* Lista wyboru (select) na własnym panelu (CDK Overlay), zintegrowana z Signal Forms.
|
|
415
|
+
* Warianty: pojedynczy, z wyszukiwarką (`filter`) i wielokrotny (`multiple`, chipy).
|
|
416
|
+
*
|
|
417
|
+
* @example
|
|
418
|
+
* <kpt-select [formField]="f.role" [options]="roles" placeholder="Wybierz…" />
|
|
419
|
+
* <kpt-select [formField]="f.city" [options]="cities" filter placeholder="Szukaj miasta…" />
|
|
420
|
+
* <kpt-select [formField]="f.tags" [options]="tags" multiple filter placeholder="Tagi…" />
|
|
421
|
+
*/
|
|
422
|
+
declare class KptSelect<T = unknown> implements FormValueControl<unknown> {
|
|
423
|
+
readonly options: _angular_core.InputSignal<KptOption<T>[]>;
|
|
424
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
425
|
+
readonly multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
426
|
+
readonly filter: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
427
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
428
|
+
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
429
|
+
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
430
|
+
/** Wartość: pojedyncza (T) lub tablica (T[]) w trybie multiple. */
|
|
431
|
+
readonly value: _angular_core.ModelSignal<unknown>;
|
|
432
|
+
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
433
|
+
protected readonly open: _angular_core.WritableSignal<boolean>;
|
|
434
|
+
protected readonly filterText: _angular_core.WritableSignal<string>;
|
|
435
|
+
protected readonly activeIndex: _angular_core.WritableSignal<number>;
|
|
436
|
+
protected readonly positions: ConnectedPosition[];
|
|
437
|
+
private readonly selectedValues;
|
|
438
|
+
protected readonly selectedOptions: _angular_core.Signal<KptOption<T>[]>;
|
|
439
|
+
protected readonly filteredOptions: _angular_core.Signal<KptOption<T>[]>;
|
|
440
|
+
protected readonly singleLabel: _angular_core.Signal<string>;
|
|
441
|
+
protected readonly hasValue: _angular_core.Signal<boolean>;
|
|
442
|
+
protected isSelected(opt: KptOption<T>): boolean;
|
|
443
|
+
protected toggleOpen(): void;
|
|
444
|
+
protected close(): void;
|
|
445
|
+
protected pick(opt: KptOption<T>): void;
|
|
446
|
+
protected removeChip(opt: KptOption<T>, event: Event): void;
|
|
447
|
+
protected onFilterInput(event: Event): void;
|
|
448
|
+
protected onTriggerKeydown(event: KeyboardEvent): void;
|
|
449
|
+
protected onPanelKeydown(event: KeyboardEvent): void;
|
|
450
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptSelect<any>, never>;
|
|
451
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptSelect<any>, "kpt-select", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
interface DayCell$1 {
|
|
455
|
+
day: number;
|
|
456
|
+
iso: string;
|
|
457
|
+
inMonth: boolean;
|
|
458
|
+
today: boolean;
|
|
459
|
+
selected: boolean;
|
|
460
|
+
disabled: boolean;
|
|
461
|
+
}
|
|
462
|
+
/**
|
|
463
|
+
* Wybór daty z własnym kalendarzem (CDK Overlay), Signal Forms. Wartość ISO 'RRRR-MM-DD'.
|
|
464
|
+
* Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`
|
|
465
|
+
*
|
|
466
|
+
* @example
|
|
467
|
+
* <kpt-datepicker [formField]="f.birthDate" minDate="1900-01-01" />
|
|
468
|
+
*/
|
|
469
|
+
declare class KptDatepicker implements FormValueControl<string> {
|
|
470
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
471
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
472
|
+
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
473
|
+
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
474
|
+
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
475
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
476
|
+
readonly minDate: _angular_core.InputSignal<string | null>;
|
|
477
|
+
readonly maxDate: _angular_core.InputSignal<string | null>;
|
|
478
|
+
protected readonly weekdays: string[];
|
|
479
|
+
protected readonly open: _angular_core.WritableSignal<boolean>;
|
|
480
|
+
private readonly today;
|
|
481
|
+
private readonly view;
|
|
482
|
+
protected readonly positions: ConnectedPosition[];
|
|
483
|
+
protected readonly monthLabel: _angular_core.Signal<string>;
|
|
484
|
+
protected readonly display: _angular_core.Signal<string>;
|
|
485
|
+
protected readonly weeks: _angular_core.Signal<DayCell$1[][]>;
|
|
486
|
+
private parse;
|
|
487
|
+
protected toggleOpen(): void;
|
|
488
|
+
protected close(): void;
|
|
489
|
+
protected selectDay(cell: DayCell$1): void;
|
|
490
|
+
protected prevMonth(): void;
|
|
491
|
+
protected nextMonth(): void;
|
|
492
|
+
protected clear(event: Event): void;
|
|
493
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptDatepicker, never>;
|
|
494
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptDatepicker, "kpt-datepicker", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "minDate": { "alias": "minDate"; "required": false; "isSignal": true; }; "maxDate": { "alias": "maxDate"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
/**
|
|
498
|
+
* Pole wieloliniowe (textarea) na Signal Forms, z opcjonalnym auto-resize.
|
|
499
|
+
*
|
|
500
|
+
* @example
|
|
501
|
+
* <kpt-textarea [formField]="f.notes" placeholder="Notatki…" autoResize />
|
|
502
|
+
*/
|
|
503
|
+
declare class KptTextarea implements FormValueControl<string> {
|
|
504
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
505
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
506
|
+
readonly rows: _angular_core.InputSignal<number>;
|
|
507
|
+
readonly autoResize: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
508
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
509
|
+
readonly readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
510
|
+
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
511
|
+
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
512
|
+
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
513
|
+
private readonly ta;
|
|
514
|
+
constructor();
|
|
515
|
+
protected onInput(event: Event): void;
|
|
516
|
+
private resize;
|
|
517
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptTextarea, never>;
|
|
518
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptTextarea, "kpt-textarea", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "autoResize": { "alias": "autoResize"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
type KptRichTool = 'bold' | 'italic' | 'underline' | 'strike' | 'ul' | 'ol' | 'link' | 'clear';
|
|
522
|
+
/**
|
|
523
|
+
* Lekki edytor tekstu sformatowanego (contenteditable) z konfigurowalnym paskiem przycisków.
|
|
524
|
+
* Wartość = HTML. Bez zależności zewnętrznych. Signal Forms.
|
|
525
|
+
*
|
|
526
|
+
* @example
|
|
527
|
+
* <kpt-rich-text [formField]="f.body" [toolbar]="['bold','italic','ul','link']" />
|
|
528
|
+
*/
|
|
529
|
+
declare class KptRichText implements FormValueControl<string> {
|
|
530
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
531
|
+
readonly toolbar: _angular_core.InputSignal<KptRichTool[]>;
|
|
532
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
533
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
534
|
+
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
535
|
+
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
536
|
+
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
537
|
+
private readonly editor;
|
|
538
|
+
constructor();
|
|
539
|
+
protected icon(item: KptRichTool): KptIconName;
|
|
540
|
+
protected onInput(): void;
|
|
541
|
+
protected exec(item: KptRichTool): void;
|
|
542
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptRichText, never>;
|
|
543
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptRichText, "kpt-rich-text", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "toolbar": { "alias": "toolbar"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
/**
|
|
547
|
+
* Suwak wartości (slider) na Signal Forms.
|
|
548
|
+
*
|
|
549
|
+
* @example
|
|
550
|
+
* <kpt-slider [formField]="f.volume" [min]="0" [max]="100" [step]="5" showValue />
|
|
551
|
+
*/
|
|
552
|
+
declare class KptSlider implements FormValueControl<number> {
|
|
553
|
+
readonly value: _angular_core.ModelSignal<number>;
|
|
554
|
+
readonly min: _angular_core.InputSignal<number | undefined>;
|
|
555
|
+
readonly max: _angular_core.InputSignal<number | undefined>;
|
|
556
|
+
readonly step: _angular_core.InputSignal<number>;
|
|
557
|
+
readonly showValue: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
558
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
559
|
+
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
560
|
+
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
561
|
+
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
562
|
+
protected readonly percent: _angular_core.Signal<number>;
|
|
563
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptSlider, never>;
|
|
564
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptSlider, "kpt-slider", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "showValue": { "alias": "showValue"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
/**
|
|
568
|
+
* Ocena gwiazdkami (rating) na Signal Forms.
|
|
569
|
+
*
|
|
570
|
+
* @example
|
|
571
|
+
* <kpt-rating [formField]="f.score" [max]="5" />
|
|
572
|
+
* <kpt-rating [value]="4" readonly />
|
|
573
|
+
*/
|
|
574
|
+
declare class KptRating implements FormValueControl<number> {
|
|
575
|
+
readonly value: _angular_core.ModelSignal<number>;
|
|
576
|
+
/** Liczba gwiazdek. */
|
|
577
|
+
readonly count: _angular_core.InputSignal<number>;
|
|
578
|
+
readonly readonly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
579
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
580
|
+
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
581
|
+
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
582
|
+
protected readonly hover: _angular_core.WritableSignal<number>;
|
|
583
|
+
protected readonly stars: _angular_core.Signal<number[]>;
|
|
584
|
+
protected pick(star: number): void;
|
|
585
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptRating, never>;
|
|
586
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptRating, "kpt-rating", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "count": { "alias": "count"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
/**
|
|
590
|
+
* Wgrywanie plików (drag-drop + wybór). Wartość = File[]. Signal Forms.
|
|
591
|
+
*
|
|
592
|
+
* @example
|
|
593
|
+
* <kpt-file-upload [formField]="f.files" accept="image/*" multiple />
|
|
594
|
+
*/
|
|
595
|
+
declare class KptFileUpload implements FormValueControl<File[]> {
|
|
596
|
+
readonly value: _angular_core.ModelSignal<File[]>;
|
|
597
|
+
readonly accept: _angular_core.InputSignal<string>;
|
|
598
|
+
readonly multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
599
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
600
|
+
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
601
|
+
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
602
|
+
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
603
|
+
protected readonly dragover: _angular_core.WritableSignal<boolean>;
|
|
604
|
+
protected onSelect(event: Event): void;
|
|
605
|
+
protected onDragOver(event: DragEvent): void;
|
|
606
|
+
protected onDrop(event: DragEvent): void;
|
|
607
|
+
private addFiles;
|
|
608
|
+
protected remove(file: File, event: Event): void;
|
|
609
|
+
protected size(file: File): string;
|
|
610
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptFileUpload, never>;
|
|
611
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptFileUpload, "kpt-file-upload", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
/**
|
|
615
|
+
* Wybór koloru (swatch + hex + presety) na Signal Forms. Wartość = hex, np. '#3b82f6'.
|
|
616
|
+
*
|
|
617
|
+
* @example
|
|
618
|
+
* <kpt-color-picker [formField]="f.brand" />
|
|
619
|
+
*/
|
|
620
|
+
declare class KptColorPicker implements FormValueControl<string> {
|
|
621
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
622
|
+
readonly presets: _angular_core.InputSignal<string[]>;
|
|
623
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
624
|
+
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
625
|
+
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
626
|
+
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
627
|
+
protected onHex(event: Event): void;
|
|
628
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptColorPicker, never>;
|
|
629
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptColorPicker, "kpt-color-picker", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "presets": { "alias": "presets"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
interface KptDateRangeValue {
|
|
633
|
+
start: string;
|
|
634
|
+
end: string;
|
|
635
|
+
}
|
|
636
|
+
interface DayCell {
|
|
637
|
+
day: number;
|
|
638
|
+
iso: string;
|
|
639
|
+
inMonth: boolean;
|
|
640
|
+
isStart: boolean;
|
|
641
|
+
isEnd: boolean;
|
|
642
|
+
inRange: boolean;
|
|
643
|
+
disabled: boolean;
|
|
644
|
+
}
|
|
645
|
+
/**
|
|
646
|
+
* Wybór zakresu dat z kalendarzem (CDK Overlay), Signal Forms.
|
|
647
|
+
* Wartość: `{ start: 'RRRR-MM-DD', end: 'RRRR-MM-DD' }`.
|
|
648
|
+
* Wymaga `import '@angular/cdk/overlay-prebuilt.css';`
|
|
649
|
+
*
|
|
650
|
+
* @example
|
|
651
|
+
* <kpt-date-range [formField]="f.period" />
|
|
652
|
+
*/
|
|
653
|
+
declare class KptDateRange implements FormValueControl<KptDateRangeValue> {
|
|
654
|
+
readonly value: _angular_core.ModelSignal<KptDateRangeValue>;
|
|
655
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
656
|
+
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
657
|
+
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
658
|
+
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
659
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
660
|
+
protected readonly weekdays: string[];
|
|
661
|
+
protected readonly open: _angular_core.WritableSignal<boolean>;
|
|
662
|
+
private readonly today;
|
|
663
|
+
private readonly view;
|
|
664
|
+
protected readonly positions: ConnectedPosition[];
|
|
665
|
+
protected readonly monthLabel: _angular_core.Signal<string>;
|
|
666
|
+
protected readonly display: _angular_core.Signal<string>;
|
|
667
|
+
protected readonly weeks: _angular_core.Signal<DayCell[][]>;
|
|
668
|
+
protected toggleOpen(): void;
|
|
669
|
+
protected close(): void;
|
|
670
|
+
protected selectDay(cell: DayCell): void;
|
|
671
|
+
protected prevMonth(): void;
|
|
672
|
+
protected nextMonth(): void;
|
|
673
|
+
protected clear(event: Event): void;
|
|
674
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptDateRange, never>;
|
|
675
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptDateRange, "kpt-date-range", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
/**
|
|
679
|
+
* Pole liczbowe ze strzałkami krokowania na Signal Forms. Wartość = number | null.
|
|
680
|
+
*
|
|
681
|
+
* @example
|
|
682
|
+
* <kpt-input-number [formField]="f.qty" [min]="0" [max]="99" [step]="1" />
|
|
683
|
+
*/
|
|
684
|
+
declare class KptInputNumber implements FormValueControl<number | null> {
|
|
685
|
+
readonly value: _angular_core.ModelSignal<number | null>;
|
|
686
|
+
readonly min: _angular_core.InputSignal<number | undefined>;
|
|
687
|
+
readonly max: _angular_core.InputSignal<number | undefined>;
|
|
688
|
+
readonly step: _angular_core.InputSignal<number>;
|
|
689
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
690
|
+
readonly suffix: _angular_core.InputSignal<string>;
|
|
691
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
692
|
+
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
693
|
+
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
694
|
+
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
695
|
+
protected readonly display: _angular_core.Signal<string>;
|
|
696
|
+
protected readonly canInc: _angular_core.Signal<boolean>;
|
|
697
|
+
protected readonly canDec: _angular_core.Signal<boolean>;
|
|
698
|
+
protected onInput(event: Event): void;
|
|
699
|
+
protected step_(dir: 1 | -1): void;
|
|
700
|
+
private clamp;
|
|
701
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptInputNumber, never>;
|
|
702
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptInputNumber, "kpt-input-number", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "suffix": { "alias": "suffix"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
|
|
703
|
+
}
|
|
704
|
+
|
|
705
|
+
interface Strength {
|
|
706
|
+
score: 0 | 1 | 2 | 3 | 4;
|
|
707
|
+
label: string;
|
|
708
|
+
}
|
|
709
|
+
/**
|
|
710
|
+
* Pole hasła z przełącznikiem widoczności i opcjonalnym miernikiem siły. Signal Forms.
|
|
711
|
+
*
|
|
712
|
+
* @example
|
|
713
|
+
* <kpt-password [formField]="f.password" feedback />
|
|
714
|
+
*/
|
|
715
|
+
declare class KptPassword implements FormValueControl<string> {
|
|
716
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
717
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
718
|
+
readonly feedback: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
719
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
720
|
+
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
721
|
+
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
722
|
+
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
723
|
+
protected readonly visible: _angular_core.WritableSignal<boolean>;
|
|
724
|
+
protected readonly strength: _angular_core.Signal<Strength>;
|
|
725
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptPassword, never>;
|
|
726
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptPassword, "kpt-password", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "feedback": { "alias": "feedback"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
/**
|
|
730
|
+
* Pole kodu jednorazowego (OTP/PIN) — N osobnych pól, autofocus i wklejanie. Signal Forms.
|
|
731
|
+
* Wartość = string (sklejone znaki).
|
|
732
|
+
*
|
|
733
|
+
* @example
|
|
734
|
+
* <kpt-input-otp [formField]="f.code" [length]="6" integerOnly />
|
|
735
|
+
*/
|
|
736
|
+
declare class KptInputOtp implements FormValueControl<string> {
|
|
737
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
738
|
+
readonly length: _angular_core.InputSignal<number>;
|
|
739
|
+
readonly integerOnly: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
740
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
741
|
+
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
742
|
+
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
743
|
+
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
744
|
+
protected readonly slots: _angular_core.Signal<number[]>;
|
|
745
|
+
protected charAt(i: number): string;
|
|
746
|
+
protected onInput(i: number, event: Event): void;
|
|
747
|
+
protected onKeydown(i: number, event: KeyboardEvent): void;
|
|
748
|
+
protected onPaste(event: ClipboardEvent): void;
|
|
749
|
+
private setChar;
|
|
750
|
+
private focusSibling;
|
|
751
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptInputOtp, never>;
|
|
752
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptInputOtp, "kpt-input-otp", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "length": { "alias": "length"; "required": false; "isSignal": true; }; "integerOnly": { "alias": "integerOnly"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
/**
|
|
756
|
+
* Pole tagów — dodawanie Enter/przecinkiem, usuwanie Backspace/×. Signal Forms.
|
|
757
|
+
* Wartość = string[].
|
|
758
|
+
*
|
|
759
|
+
* @example
|
|
760
|
+
* <kpt-chips-input [formField]="f.tags" placeholder="Dodaj tag…" />
|
|
761
|
+
*/
|
|
762
|
+
declare class KptChipsInput implements FormValueControl<string[]> {
|
|
763
|
+
readonly value: _angular_core.ModelSignal<string[]>;
|
|
764
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
765
|
+
readonly allowDuplicates: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
766
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
767
|
+
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
768
|
+
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
769
|
+
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
770
|
+
protected onKeydown(event: KeyboardEvent): void;
|
|
771
|
+
protected commit(el: HTMLInputElement): void;
|
|
772
|
+
protected removeAt(index: number): void;
|
|
773
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptChipsInput, never>;
|
|
774
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptChipsInput, "kpt-chips-input", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "allowDuplicates": { "alias": "allowDuplicates"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
|
|
775
|
+
}
|
|
776
|
+
|
|
777
|
+
/**
|
|
778
|
+
* Pole z maską znakową na Signal Forms. Tokeny maski: `9`=cyfra, `a`=litera, `*`=alfanumeryczny.
|
|
779
|
+
* Pozostałe znaki maski to literały (np. spacje, nawiasy, myślniki).
|
|
780
|
+
*
|
|
781
|
+
* @example
|
|
782
|
+
* <kpt-input-mask [formField]="f.phone" mask="(999) 999-99-99" />
|
|
783
|
+
*/
|
|
784
|
+
declare class KptInputMask implements FormValueControl<string> {
|
|
785
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
786
|
+
readonly mask: _angular_core.InputSignal<string>;
|
|
787
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
788
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
789
|
+
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
790
|
+
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
791
|
+
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
792
|
+
protected onInput(event: Event): void;
|
|
793
|
+
private applyMask;
|
|
794
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptInputMask, never>;
|
|
795
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptInputMask, "kpt-input-mask", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "mask": { "alias": "mask"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
|
|
796
|
+
}
|
|
797
|
+
|
|
798
|
+
/**
|
|
799
|
+
* Lista wyboru (listbox) na Signal Forms. Pojedynczy lub wielokrotny wybór, opcjonalny filtr.
|
|
800
|
+
* Wartość: `T` (single) lub `T[]` (multiple).
|
|
801
|
+
*
|
|
802
|
+
* @example
|
|
803
|
+
* <kpt-listbox [formField]="f.role" [options]="roles" filter />
|
|
804
|
+
* <kpt-listbox [(value)]="tags" [options]="tagOptions" multiple />
|
|
805
|
+
*/
|
|
806
|
+
declare class KptListbox<T = unknown> implements FormValueControl<T | T[] | null> {
|
|
807
|
+
readonly value: _angular_core.ModelSignal<T | T[] | null>;
|
|
808
|
+
readonly options: _angular_core.InputSignal<KptOption<T>[]>;
|
|
809
|
+
readonly multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
810
|
+
readonly filter: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
811
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
812
|
+
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
813
|
+
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
814
|
+
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
815
|
+
protected readonly query: _angular_core.WritableSignal<string>;
|
|
816
|
+
protected readonly visible: _angular_core.Signal<KptOption<T>[]>;
|
|
817
|
+
protected isSelected(v: T): boolean;
|
|
818
|
+
protected toggle(v: T): void;
|
|
819
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptListbox<any>, never>;
|
|
820
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptListbox<any>, "kpt-listbox", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
|
|
821
|
+
}
|
|
822
|
+
|
|
823
|
+
/**
|
|
824
|
+
* Pokrętło (knob) — wybór wartości po łuku, myszką lub strzałkami. Signal Forms.
|
|
825
|
+
*
|
|
826
|
+
* @example
|
|
827
|
+
* <kpt-knob [formField]="f.level" [min]="0" [max]="100" [step]="1" />
|
|
828
|
+
*/
|
|
829
|
+
declare class KptKnob implements FormValueControl<number> {
|
|
830
|
+
private readonly host;
|
|
831
|
+
readonly value: _angular_core.ModelSignal<number>;
|
|
832
|
+
readonly min: _angular_core.InputSignal<number | undefined>;
|
|
833
|
+
readonly max: _angular_core.InputSignal<number | undefined>;
|
|
834
|
+
readonly step: _angular_core.InputSignal<number>;
|
|
835
|
+
readonly size: _angular_core.InputSignal<number>;
|
|
836
|
+
readonly stroke: _angular_core.InputSignal<number>;
|
|
837
|
+
readonly suffix: _angular_core.InputSignal<string>;
|
|
838
|
+
readonly showValue: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
839
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
840
|
+
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
841
|
+
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
842
|
+
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
843
|
+
private readonly startAngle;
|
|
844
|
+
private readonly sweep;
|
|
845
|
+
protected readonly rangePath: _angular_core.Signal<string>;
|
|
846
|
+
protected readonly valuePath: _angular_core.Signal<string>;
|
|
847
|
+
private ratio;
|
|
848
|
+
private arc;
|
|
849
|
+
protected onPointer(event: PointerEvent): void;
|
|
850
|
+
private setFromPoint;
|
|
851
|
+
private applyRatio;
|
|
852
|
+
protected onKeydown(event: KeyboardEvent): void;
|
|
853
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptKnob, never>;
|
|
854
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptKnob, "kpt-knob", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "stroke": { "alias": "stroke"; "required": false; "isSignal": true; }; "suffix": { "alias": "suffix"; "required": false; "isSignal": true; }; "showValue": { "alias": "showValue"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
type KptCardVariant = 'elevated' | 'outlined';
|
|
858
|
+
/**
|
|
859
|
+
* Karta Koncept UI — powierzchnia z wyniesieniem (elevated) lub obramowaniem (outlined).
|
|
860
|
+
* Opcjonalny nagłówek przez `header`; treść przez projekcję. Stopkę wstaw z atrybutem
|
|
861
|
+
* `kptCardFooter`.
|
|
862
|
+
*
|
|
863
|
+
* @example
|
|
864
|
+
* <kpt-card header="Ustawienia">
|
|
865
|
+
* <p>Treść karty…</p>
|
|
866
|
+
* <div kptCardFooter><kpt-button>Zapisz</kpt-button></div>
|
|
867
|
+
* </kpt-card>
|
|
868
|
+
*/
|
|
869
|
+
declare class KptCard {
|
|
870
|
+
/** Wariant wizualny. */
|
|
871
|
+
readonly variant: _angular_core.InputSignal<KptCardVariant>;
|
|
872
|
+
/** Opcjonalny tekst nagłówka. */
|
|
873
|
+
readonly header: _angular_core.InputSignal<string>;
|
|
874
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptCard, never>;
|
|
875
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptCard, "kpt-card", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; }, {}, never, ["*", "[kptCardFooter]"], true, never>;
|
|
876
|
+
}
|
|
877
|
+
|
|
878
|
+
type KptDividerOrientation = 'horizontal' | 'vertical';
|
|
879
|
+
/**
|
|
880
|
+
* Separator Koncept UI (linia pozioma lub pionowa). Kolor z `--kpt-color-border`.
|
|
881
|
+
*
|
|
882
|
+
* @example
|
|
883
|
+
* <kpt-divider />
|
|
884
|
+
* <kpt-divider orientation="vertical" />
|
|
885
|
+
* <kpt-divider inset />
|
|
886
|
+
*/
|
|
887
|
+
declare class KptDivider {
|
|
888
|
+
/** Orientacja linii. */
|
|
889
|
+
readonly orientation: _angular_core.InputSignal<KptDividerOrientation>;
|
|
890
|
+
/** Wcięcie (odstęp od krawędzi kontenera). */
|
|
891
|
+
readonly inset: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
892
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptDivider, never>;
|
|
893
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptDivider, "kpt-divider", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "inset": { "alias": "inset"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
894
|
+
}
|
|
895
|
+
|
|
896
|
+
/**
|
|
897
|
+
* Górny pasek (toolbar) — pozioma belka na treść aplikacji (logo, akcje).
|
|
898
|
+
* Elementowi z atrybutem `kptToolbarSpacer` nadaj elastyczny odstęp, aby rozepchnąć zawartość.
|
|
899
|
+
*
|
|
900
|
+
* @example
|
|
901
|
+
* <kpt-toolbar elevated>
|
|
902
|
+
* <strong>Koncept UI</strong>
|
|
903
|
+
* <span kptToolbarSpacer></span>
|
|
904
|
+
* <kpt-button variant="text">Wyloguj</kpt-button>
|
|
905
|
+
* </kpt-toolbar>
|
|
906
|
+
*/
|
|
907
|
+
declare class KptToolbar {
|
|
908
|
+
/** Dodaje cień (wyniesienie) pod paskiem. */
|
|
909
|
+
readonly elevated: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
910
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptToolbar, never>;
|
|
911
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptToolbar, "kpt-toolbar", never, { "elevated": { "alias": "elevated"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
912
|
+
}
|
|
913
|
+
|
|
914
|
+
/**
|
|
915
|
+
* Panel boczny (sidenav) — stylowany kontener nawigacji, zwykle umieszczany w slocie
|
|
916
|
+
* `kptShellSidenav` komponentu `kpt-app-shell`.
|
|
917
|
+
*
|
|
918
|
+
* @example
|
|
919
|
+
* <kpt-sidenav kptShellSidenav>
|
|
920
|
+
* <a href="#">Pulpit</a>
|
|
921
|
+
* <a href="#">Ustawienia</a>
|
|
922
|
+
* </kpt-sidenav>
|
|
923
|
+
*/
|
|
924
|
+
declare class KptSidenav {
|
|
925
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptSidenav, never>;
|
|
926
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptSidenav, "kpt-sidenav", never, {}, {}, never, ["*"], true, never>;
|
|
927
|
+
}
|
|
928
|
+
|
|
929
|
+
type KptSidenavMode = 'side' | 'over';
|
|
930
|
+
/**
|
|
931
|
+
* Szkielet aplikacji (app shell) w stylu Material: toolbar u góry, panel boczny i treść.
|
|
932
|
+
* Sloty projekcji: `[kptShellToolbar]`, `[kptShellSidenav]`, oraz treść domyślna.
|
|
933
|
+
*
|
|
934
|
+
* @example
|
|
935
|
+
* <kpt-app-shell [(sidenavOpen)]="navOpen" sidenavMode="side">
|
|
936
|
+
* <kpt-toolbar kptShellToolbar>…</kpt-toolbar>
|
|
937
|
+
* <kpt-sidenav kptShellSidenav>…</kpt-sidenav>
|
|
938
|
+
* <router-outlet />
|
|
939
|
+
* </kpt-app-shell>
|
|
940
|
+
*/
|
|
941
|
+
declare class KptAppShell {
|
|
942
|
+
/** Czy panel boczny jest otwarty (dwukierunkowe). */
|
|
943
|
+
readonly sidenavOpen: _angular_core.ModelSignal<boolean>;
|
|
944
|
+
/** Tryb panelu: 'side' rozpycha treść, 'over' nakłada się ze scrimem. */
|
|
945
|
+
readonly sidenavMode: _angular_core.InputSignal<KptSidenavMode>;
|
|
946
|
+
protected onScrimClick(): void;
|
|
947
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptAppShell, never>;
|
|
948
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptAppShell, "kpt-app-shell", never, { "sidenavOpen": { "alias": "sidenavOpen"; "required": false; "isSignal": true; }; "sidenavMode": { "alias": "sidenavMode"; "required": false; "isSignal": true; }; }, { "sidenavOpen": "sidenavOpenChange"; }, never, ["[kptShellToolbar]", "[kptShellSidenav]", "*"], true, never>;
|
|
949
|
+
}
|
|
950
|
+
|
|
951
|
+
/**
|
|
952
|
+
* Panel z nagłówkiem i opcjonalnym zwijaniem. Akcje nagłówka: atrybut `kptPanelActions`.
|
|
953
|
+
*
|
|
954
|
+
* @example
|
|
955
|
+
* <kpt-panel header="Ustawienia" toggleable>Treść…</kpt-panel>
|
|
956
|
+
*/
|
|
957
|
+
declare class KptPanel {
|
|
958
|
+
readonly header: _angular_core.InputSignal<string>;
|
|
959
|
+
readonly toggleable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
960
|
+
readonly collapsed: _angular_core.ModelSignal<boolean>;
|
|
961
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptPanel, never>;
|
|
962
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptPanel, "kpt-panel", never, { "header": { "alias": "header"; "required": false; "isSignal": true; }; "toggleable": { "alias": "toggleable"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; }, { "collapsed": "collapsedChange"; }, never, ["[kptPanelActions]", "*"], true, never>;
|
|
963
|
+
}
|
|
964
|
+
|
|
965
|
+
/**
|
|
966
|
+
* Grupa pól z legendą (fieldset), opcjonalnie zwijana.
|
|
967
|
+
*
|
|
968
|
+
* @example
|
|
969
|
+
* <kpt-fieldset legend="Dane osobowe" toggleable>…</kpt-fieldset>
|
|
970
|
+
*/
|
|
971
|
+
declare class KptFieldset {
|
|
972
|
+
readonly legend: _angular_core.InputSignal<string>;
|
|
973
|
+
readonly toggleable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
974
|
+
readonly collapsed: _angular_core.ModelSignal<boolean>;
|
|
975
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptFieldset, never>;
|
|
976
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptFieldset, "kpt-fieldset", never, { "legend": { "alias": "legend"; "required": false; "isSignal": true; }; "toggleable": { "alias": "toggleable"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; }, { "collapsed": "collapsedChange"; }, never, ["*"], true, never>;
|
|
977
|
+
}
|
|
978
|
+
|
|
979
|
+
type KptSplitterOrientation = 'horizontal' | 'vertical';
|
|
980
|
+
/**
|
|
981
|
+
* Splitter — dwa panele z przeciąganym uchwytem. Panele przez sloty `[kptSplitStart]` i `[kptSplitEnd]`.
|
|
982
|
+
* `horizontal` = panele obok siebie, `vertical` = jeden pod drugim.
|
|
983
|
+
*
|
|
984
|
+
* @example
|
|
985
|
+
* <kpt-splitter orientation="horizontal" [(startSize)]="size">
|
|
986
|
+
* <div kptSplitStart>Lewy</div>
|
|
987
|
+
* <div kptSplitEnd>Prawy</div>
|
|
988
|
+
* </kpt-splitter>
|
|
989
|
+
*/
|
|
990
|
+
declare class KptSplitter {
|
|
991
|
+
private readonly host;
|
|
992
|
+
readonly orientation: _angular_core.InputSignal<KptSplitterOrientation>;
|
|
993
|
+
/** Rozmiar pierwszego panelu w procentach (0–100). */
|
|
994
|
+
readonly startSize: _angular_core.ModelSignal<number>;
|
|
995
|
+
readonly minSize: _angular_core.InputSignal<number>;
|
|
996
|
+
protected readonly endSize: _angular_core.Signal<number>;
|
|
997
|
+
protected onPointer(event: PointerEvent): void;
|
|
998
|
+
protected onKeydown(event: KeyboardEvent): void;
|
|
999
|
+
private setSize;
|
|
1000
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptSplitter, never>;
|
|
1001
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptSplitter, "kpt-splitter", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "startSize": { "alias": "startSize"; "required": false; "isSignal": true; }; "minSize": { "alias": "minSize"; "required": false; "isSignal": true; }; }, { "startSize": "startSizeChange"; }, never, ["[kptSplitStart]", "[kptSplitEnd]"], true, never>;
|
|
1002
|
+
}
|
|
1003
|
+
|
|
1004
|
+
/**
|
|
1005
|
+
* Przycisk „do góry" — pojawia się po przewinięciu ponad `threshold` px.
|
|
1006
|
+
* Domyślnie działa na oknie; `target` przyjmuje selektor przewijanego elementu.
|
|
1007
|
+
*
|
|
1008
|
+
* @example
|
|
1009
|
+
* <kpt-scroll-top [threshold]="300" />
|
|
1010
|
+
*/
|
|
1011
|
+
declare class KptScrollTop {
|
|
1012
|
+
readonly threshold: _angular_core.InputSignal<number>;
|
|
1013
|
+
readonly target: _angular_core.InputSignal<string | null>;
|
|
1014
|
+
protected readonly visible: _angular_core.WritableSignal<boolean>;
|
|
1015
|
+
private scroller;
|
|
1016
|
+
constructor();
|
|
1017
|
+
private currentTop;
|
|
1018
|
+
protected scrollUp(): void;
|
|
1019
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptScrollTop, never>;
|
|
1020
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptScrollTop, "kpt-scroll-top", never, { "threshold": { "alias": "threshold"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1021
|
+
}
|
|
1022
|
+
|
|
1023
|
+
/**
|
|
1024
|
+
* Obraz z opcjonalnym podglądem pełnoekranowym (zoom).
|
|
1025
|
+
*
|
|
1026
|
+
* @example
|
|
1027
|
+
* <kpt-image src="/foto.jpg" alt="Zdjęcie" preview width="240px" />
|
|
1028
|
+
*/
|
|
1029
|
+
declare class KptImage {
|
|
1030
|
+
readonly src: _angular_core.InputSignal<string>;
|
|
1031
|
+
readonly alt: _angular_core.InputSignal<string>;
|
|
1032
|
+
readonly width: _angular_core.InputSignal<string | null>;
|
|
1033
|
+
readonly preview: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1034
|
+
protected readonly open: _angular_core.WritableSignal<boolean>;
|
|
1035
|
+
protected openPreview(): void;
|
|
1036
|
+
protected close(): void;
|
|
1037
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptImage, never>;
|
|
1038
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptImage, "kpt-image", never, { "src": { "alias": "src"; "required": true; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "preview": { "alias": "preview"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
interface KptMeterItem {
|
|
1042
|
+
label: string;
|
|
1043
|
+
value: number;
|
|
1044
|
+
color?: string;
|
|
1045
|
+
}
|
|
1046
|
+
/**
|
|
1047
|
+
* Wielosegmentowy miernik (meter group) z opcjonalną legendą.
|
|
1048
|
+
*
|
|
1049
|
+
* @example
|
|
1050
|
+
* <kpt-meter-group [values]="[{label:'Użyte', value:70}, {label:'Wolne', value:30}]" />
|
|
1051
|
+
*/
|
|
1052
|
+
declare class KptMeterGroup {
|
|
1053
|
+
readonly values: _angular_core.InputSignal<KptMeterItem[]>;
|
|
1054
|
+
/** Suma odniesienia; domyślnie suma wartości (100%). */
|
|
1055
|
+
readonly max: _angular_core.InputSignal<number | undefined>;
|
|
1056
|
+
readonly showLegend: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1057
|
+
private readonly palette;
|
|
1058
|
+
protected readonly sum: _angular_core.Signal<number>;
|
|
1059
|
+
protected total(): number;
|
|
1060
|
+
protected percent(item: KptMeterItem): number;
|
|
1061
|
+
protected fallback(i: number): string;
|
|
1062
|
+
protected round(n: number): number;
|
|
1063
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptMeterGroup, never>;
|
|
1064
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptMeterGroup, "kpt-meter-group", never, { "values": { "alias": "values"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "showLegend": { "alias": "showLegend"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1065
|
+
}
|
|
1066
|
+
|
|
1067
|
+
interface KptAvatarItem {
|
|
1068
|
+
name?: string;
|
|
1069
|
+
src?: string;
|
|
1070
|
+
icon?: string;
|
|
1071
|
+
}
|
|
1072
|
+
/**
|
|
1073
|
+
* Grupa nakładających się awatarów z licznikiem „+N". Buduje na `kpt-avatar`.
|
|
1074
|
+
*
|
|
1075
|
+
* @example
|
|
1076
|
+
* <kpt-avatar-group [avatars]="team" [max]="4" />
|
|
1077
|
+
*/
|
|
1078
|
+
declare class KptAvatarGroup {
|
|
1079
|
+
readonly avatars: _angular_core.InputSignal<KptAvatarItem[]>;
|
|
1080
|
+
readonly max: _angular_core.InputSignal<number>;
|
|
1081
|
+
readonly size: _angular_core.InputSignal<KptAvatarSize>;
|
|
1082
|
+
protected readonly shown: _angular_core.Signal<KptAvatarItem[]>;
|
|
1083
|
+
protected readonly overflow: _angular_core.Signal<number>;
|
|
1084
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptAvatarGroup, never>;
|
|
1085
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptAvatarGroup, "kpt-avatar-group", never, { "avatars": { "alias": "avatars"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1086
|
+
}
|
|
1087
|
+
|
|
1088
|
+
/**
|
|
1089
|
+
* Stan pusty (empty state) — ikona, tytuł, opis i opcjonalne akcje (projekcja).
|
|
1090
|
+
*
|
|
1091
|
+
* @example
|
|
1092
|
+
* <kpt-empty icon="search" title="Brak wyników" description="Zmień kryteria wyszukiwania.">
|
|
1093
|
+
* <kpt-button>Wyczyść filtry</kpt-button>
|
|
1094
|
+
* </kpt-empty>
|
|
1095
|
+
*/
|
|
1096
|
+
declare class KptEmpty {
|
|
1097
|
+
readonly icon: _angular_core.InputSignal<string | null>;
|
|
1098
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
1099
|
+
readonly description: _angular_core.InputSignal<string>;
|
|
1100
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptEmpty, never>;
|
|
1101
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptEmpty, "kpt-empty", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
1102
|
+
}
|
|
1103
|
+
|
|
1104
|
+
/**
|
|
1105
|
+
* Pojedyncza zakładka. Umieszczaj w `kpt-tabs`. Treść renderowana leniwie (gdy aktywna).
|
|
1106
|
+
*
|
|
1107
|
+
* @example
|
|
1108
|
+
* <kpt-tab label="Ogólne">…treść…</kpt-tab>
|
|
1109
|
+
*/
|
|
1110
|
+
declare class KptTab {
|
|
1111
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
1112
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1113
|
+
readonly content: _angular_core.Signal<TemplateRef<any>>;
|
|
1114
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptTab, never>;
|
|
1115
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptTab, "kpt-tab", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
1116
|
+
}
|
|
1117
|
+
|
|
1118
|
+
/**
|
|
1119
|
+
* Zakładki (tabs) — przełączanie widoków. Treść zakładek renderowana leniwie.
|
|
1120
|
+
*
|
|
1121
|
+
* @example
|
|
1122
|
+
* <kpt-tabs [(activeIndex)]="tab">
|
|
1123
|
+
* <kpt-tab label="Ogólne">…</kpt-tab>
|
|
1124
|
+
* <kpt-tab label="Zaawansowane">…</kpt-tab>
|
|
1125
|
+
* </kpt-tabs>
|
|
1126
|
+
*/
|
|
1127
|
+
declare class KptTabs {
|
|
1128
|
+
protected readonly tabs: _angular_core.Signal<readonly KptTab[]>;
|
|
1129
|
+
readonly activeIndex: _angular_core.ModelSignal<number>;
|
|
1130
|
+
protected readonly activeTab: _angular_core.Signal<KptTab>;
|
|
1131
|
+
protected select(index: number): void;
|
|
1132
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptTabs, never>;
|
|
1133
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptTabs, "kpt-tabs", never, { "activeIndex": { "alias": "activeIndex"; "required": false; "isSignal": true; }; }, { "activeIndex": "activeIndexChange"; }, ["tabs"], never, true, never>;
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1136
|
+
/**
|
|
1137
|
+
* Panel akordeonu. Umieszczaj w `kpt-accordion`. Stan `expanded` jest dwukierunkowy.
|
|
1138
|
+
*/
|
|
1139
|
+
declare class KptAccordionPanel {
|
|
1140
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
1141
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1142
|
+
readonly expanded: _angular_core.ModelSignal<boolean>;
|
|
1143
|
+
private readonly accordion;
|
|
1144
|
+
protected toggle(): void;
|
|
1145
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptAccordionPanel, never>;
|
|
1146
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptAccordionPanel, "kpt-accordion-panel", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; }, never, ["*"], true, never>;
|
|
1147
|
+
}
|
|
1148
|
+
|
|
1149
|
+
/**
|
|
1150
|
+
* Akordeon — grupa rozwijanych paneli. `multi` pozwala otworzyć wiele naraz.
|
|
1151
|
+
*
|
|
1152
|
+
* @example
|
|
1153
|
+
* <kpt-accordion>
|
|
1154
|
+
* <kpt-accordion-panel title="Sekcja 1">…</kpt-accordion-panel>
|
|
1155
|
+
* <kpt-accordion-panel title="Sekcja 2">…</kpt-accordion-panel>
|
|
1156
|
+
* </kpt-accordion>
|
|
1157
|
+
*/
|
|
1158
|
+
declare class KptAccordion {
|
|
1159
|
+
readonly multi: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1160
|
+
private readonly panels;
|
|
1161
|
+
/** Wywoływane przez panel przy otwarciu — zamyka pozostałe, gdy nie `multi`. */
|
|
1162
|
+
onOpen(opened: KptAccordionPanel): void;
|
|
1163
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptAccordion, never>;
|
|
1164
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptAccordion, "kpt-accordion", never, { "multi": { "alias": "multi"; "required": false; "isSignal": true; }; }, {}, ["panels"], ["*"], true, never>;
|
|
1165
|
+
}
|
|
1166
|
+
|
|
1167
|
+
interface KptBreadcrumbItem {
|
|
1168
|
+
label: string;
|
|
1169
|
+
url?: string;
|
|
1170
|
+
}
|
|
1171
|
+
/**
|
|
1172
|
+
* Ścieżka nawigacji (breadcrumbs).
|
|
1173
|
+
*
|
|
1174
|
+
* @example
|
|
1175
|
+
* <kpt-breadcrumb [items]="[{label:'Start',url:'/'},{label:'Ustawienia'}]" />
|
|
1176
|
+
*/
|
|
1177
|
+
declare class KptBreadcrumb {
|
|
1178
|
+
readonly items: _angular_core.InputSignal<KptBreadcrumbItem[]>;
|
|
1179
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptBreadcrumb, never>;
|
|
1180
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptBreadcrumb, "kpt-breadcrumb", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1181
|
+
}
|
|
1182
|
+
|
|
1183
|
+
/**
|
|
1184
|
+
* Krok w `kpt-stepper`. Treść renderowana leniwie (gdy krok aktywny).
|
|
1185
|
+
*
|
|
1186
|
+
* @example
|
|
1187
|
+
* <kpt-step label="Konto">…</kpt-step>
|
|
1188
|
+
*/
|
|
1189
|
+
declare class KptStep {
|
|
1190
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
1191
|
+
readonly content: _angular_core.Signal<TemplateRef<any>>;
|
|
1192
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptStep, never>;
|
|
1193
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptStep, "kpt-step", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
1194
|
+
}
|
|
1195
|
+
|
|
1196
|
+
/**
|
|
1197
|
+
* Kreator kroków (stepper). Nagłówek z numerowanymi krokami + aktywna treść.
|
|
1198
|
+
* Metody `next()`/`prev()`/`goTo()` do sterowania (np. z przycisków).
|
|
1199
|
+
*
|
|
1200
|
+
* @example
|
|
1201
|
+
* <kpt-stepper #s [(activeIndex)]="step">
|
|
1202
|
+
* <kpt-step label="Konto">…<kpt-button (click)="s.next()">Dalej</kpt-button></kpt-step>
|
|
1203
|
+
* <kpt-step label="Profil">…</kpt-step>
|
|
1204
|
+
* </kpt-stepper>
|
|
1205
|
+
*/
|
|
1206
|
+
declare class KptStepper {
|
|
1207
|
+
protected readonly steps: _angular_core.Signal<readonly KptStep[]>;
|
|
1208
|
+
readonly activeIndex: _angular_core.ModelSignal<number>;
|
|
1209
|
+
protected readonly activeStep: _angular_core.Signal<KptStep>;
|
|
1210
|
+
goTo(index: number): void;
|
|
1211
|
+
next(): void;
|
|
1212
|
+
prev(): void;
|
|
1213
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptStepper, never>;
|
|
1214
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptStepper, "kpt-stepper", never, { "activeIndex": { "alias": "activeIndex"; "required": false; "isSignal": true; }; }, { "activeIndex": "activeIndexChange"; }, ["steps"], never, true, never>;
|
|
1215
|
+
}
|
|
1216
|
+
|
|
1217
|
+
/**
|
|
1218
|
+
* Paginator Koncept UI. Sterowany sygnałami; `pageIndex` i `pageSize` są dwukierunkowe.
|
|
1219
|
+
*
|
|
1220
|
+
* @example
|
|
1221
|
+
* <kpt-paginator [length]="total()" [(pageIndex)]="page" [(pageSize)]="size" />
|
|
1222
|
+
*/
|
|
1223
|
+
declare class KptPaginator {
|
|
1224
|
+
/** Łączna liczba elementów. */
|
|
1225
|
+
readonly length: _angular_core.InputSignal<number>;
|
|
1226
|
+
/** Rozmiar strony (dwukierunkowe). */
|
|
1227
|
+
readonly pageSize: _angular_core.ModelSignal<number>;
|
|
1228
|
+
/** Indeks strony od 0 (dwukierunkowe). */
|
|
1229
|
+
readonly pageIndex: _angular_core.ModelSignal<number>;
|
|
1230
|
+
/** Dostępne rozmiary strony. */
|
|
1231
|
+
readonly pageSizeOptions: _angular_core.InputSignal<number[]>;
|
|
1232
|
+
readonly totalPages: _angular_core.Signal<number>;
|
|
1233
|
+
readonly rangeStart: _angular_core.Signal<number>;
|
|
1234
|
+
readonly rangeEnd: _angular_core.Signal<number>;
|
|
1235
|
+
readonly canPrev: _angular_core.Signal<boolean>;
|
|
1236
|
+
readonly canNext: _angular_core.Signal<boolean>;
|
|
1237
|
+
constructor();
|
|
1238
|
+
prev(): void;
|
|
1239
|
+
next(): void;
|
|
1240
|
+
onSizeChange(event: Event): void;
|
|
1241
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptPaginator, never>;
|
|
1242
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptPaginator, "kpt-paginator", never, { "length": { "alias": "length"; "required": true; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "pageIndex": { "alias": "pageIndex"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; }, { "pageSize": "pageSizeChange"; "pageIndex": "pageIndexChange"; }, never, never, true, never>;
|
|
1243
|
+
}
|
|
1244
|
+
|
|
1245
|
+
interface KptColumn {
|
|
1246
|
+
/** Nazwa pola w wierszu. */
|
|
1247
|
+
field: string;
|
|
1248
|
+
/** Nagłówek kolumny. */
|
|
1249
|
+
header: string;
|
|
1250
|
+
/** Czy kolumna jest sortowalna. */
|
|
1251
|
+
sortable?: boolean;
|
|
1252
|
+
/** Wyrównanie zawartości. */
|
|
1253
|
+
align?: 'start' | 'center' | 'end';
|
|
1254
|
+
/** Szerokość kolumny (np. '10rem', '20%'). Wymagane dla kolumn zamrożonych. */
|
|
1255
|
+
width?: string;
|
|
1256
|
+
/** Zamrożenie (sticky) — obsługiwane dla wiodących, sąsiadujących kolumn. */
|
|
1257
|
+
frozen?: boolean;
|
|
1258
|
+
}
|
|
1259
|
+
type SortDir = 'asc' | 'desc' | null;
|
|
1260
|
+
/** Stan przekazywany w trybie lazy przy każdej zmianie sortowania/filtra/strony. */
|
|
1261
|
+
interface KptTableLazyState {
|
|
1262
|
+
pageIndex: number;
|
|
1263
|
+
pageSize: number;
|
|
1264
|
+
sortField: string | null;
|
|
1265
|
+
sortDir: SortDir;
|
|
1266
|
+
filter: string;
|
|
1267
|
+
}
|
|
1268
|
+
/**
|
|
1269
|
+
* Flagowa tabela danych Koncept UI (w duchu PrimeNG): kolumny konfiguracją, sortowanie,
|
|
1270
|
+
* filtr globalny, paginacja, zaznaczanie wierszy i własne szablony komórek (`kptCell`).
|
|
1271
|
+
* Sygnałowa, OnPush. Stylowanie tokenami `--kpt-table-*`.
|
|
1272
|
+
*
|
|
1273
|
+
* @example
|
|
1274
|
+
* <kpt-data-table [columns]="cols" [data]="rows" filterable [pageSize]="10"
|
|
1275
|
+
* selectable="multiple" rowKey="id" [(selection)]="picked">
|
|
1276
|
+
* <ng-template kptCell="status" let-value="value">
|
|
1277
|
+
* <span class="badge">{{ value }}</span>
|
|
1278
|
+
* </ng-template>
|
|
1279
|
+
* </kpt-data-table>
|
|
1280
|
+
*/
|
|
1281
|
+
declare class KptDataTable<T = Record<string, unknown>> {
|
|
1282
|
+
readonly columns: _angular_core.InputSignal<readonly KptColumn[]>;
|
|
1283
|
+
readonly data: _angular_core.InputSignal<readonly T[]>;
|
|
1284
|
+
readonly filterable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1285
|
+
/** Rozmiar strony; 0 wyłącza paginację. */
|
|
1286
|
+
readonly pageSize: _angular_core.InputSignal<number>;
|
|
1287
|
+
readonly pageSizeOptions: _angular_core.InputSignal<number[]>;
|
|
1288
|
+
readonly selectable: _angular_core.InputSignal<"none" | "single" | "multiple">;
|
|
1289
|
+
readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1290
|
+
readonly emptyMessage: _angular_core.InputSignal<string>;
|
|
1291
|
+
/** Pole identyfikujące wiersz (dla zaznaczania). Bez niego — porównanie po referencji. */
|
|
1292
|
+
readonly rowKey: _angular_core.InputSignal<string | null>;
|
|
1293
|
+
/** Wysokość przewijalnego obszaru (np. '400px'); sticky header pozostaje widoczny. */
|
|
1294
|
+
readonly scrollHeight: _angular_core.InputSignal<string | null>;
|
|
1295
|
+
/** Wirtualizacja wierszy dla dużych zbiorów (renderuje tylko widoczne). Wymaga `scrollHeight`. */
|
|
1296
|
+
readonly virtualScroll: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1297
|
+
/** Wysokość wiersza w px (stała, wymagana przy virtualScroll). */
|
|
1298
|
+
readonly rowHeight: _angular_core.InputSignal<number>;
|
|
1299
|
+
/** Umożliwia przestawianie kolumn metodą przeciągnij-i-upuść. */
|
|
1300
|
+
readonly reorderable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1301
|
+
/** Pokazuje przycisk eksportu do CSV. */
|
|
1302
|
+
readonly exportable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1303
|
+
/** Nazwa pliku eksportu CSV. */
|
|
1304
|
+
readonly exportFilename: _angular_core.InputSignal<string>;
|
|
1305
|
+
/** Tryb serwerowy: bez filtrowania/sortowania/paginacji po stronie klienta. */
|
|
1306
|
+
readonly lazy: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1307
|
+
/** Łączna liczba rekordów (wymagane w trybie lazy dla paginacji). */
|
|
1308
|
+
readonly totalRecords: _angular_core.InputSignal<number | null>;
|
|
1309
|
+
readonly selection: _angular_core.ModelSignal<T[]>;
|
|
1310
|
+
readonly rowClick: _angular_core.OutputEmitterRef<T>;
|
|
1311
|
+
/** Emitowane w trybie lazy przy zmianie sortowania/filtra/strony. */
|
|
1312
|
+
readonly lazyLoad: _angular_core.OutputEmitterRef<KptTableLazyState>;
|
|
1313
|
+
/** Kolumny w bieżącej kolejności (po ewentualnym przestawieniu). */
|
|
1314
|
+
protected readonly orderedColumns: _angular_core.WritableSignal<readonly KptColumn[]>;
|
|
1315
|
+
private readonly scrollEl;
|
|
1316
|
+
protected readonly scrollTop: _angular_core.WritableSignal<number>;
|
|
1317
|
+
protected readonly viewportHeight: _angular_core.WritableSignal<number>;
|
|
1318
|
+
private readonly buffer;
|
|
1319
|
+
constructor();
|
|
1320
|
+
protected onScroll(event: Event): void;
|
|
1321
|
+
protected readonly virtualStart: _angular_core.Signal<number>;
|
|
1322
|
+
protected readonly virtualEnd: _angular_core.Signal<number>;
|
|
1323
|
+
protected readonly virtualRows: _angular_core.Signal<T[]>;
|
|
1324
|
+
protected readonly topPad: _angular_core.Signal<number>;
|
|
1325
|
+
protected readonly bottomPad: _angular_core.Signal<number>;
|
|
1326
|
+
protected readonly dragIndex: _angular_core.WritableSignal<number | null>;
|
|
1327
|
+
protected onColDragStart(index: number, event: DragEvent): void;
|
|
1328
|
+
protected onColDragOver(event: DragEvent): void;
|
|
1329
|
+
protected onColDrop(index: number, event: DragEvent): void;
|
|
1330
|
+
protected onColDragEnd(): void;
|
|
1331
|
+
exportCsv(): void;
|
|
1332
|
+
private readonly cellDefs;
|
|
1333
|
+
private readonly cellMap;
|
|
1334
|
+
protected cellTemplate(field: string): TemplateRef<unknown> | null;
|
|
1335
|
+
protected readonly filterText: _angular_core.WritableSignal<string>;
|
|
1336
|
+
protected readonly sortField: _angular_core.WritableSignal<string | null>;
|
|
1337
|
+
protected readonly sortDir: _angular_core.WritableSignal<SortDir>;
|
|
1338
|
+
protected readonly pageIndex: _angular_core.WritableSignal<number>;
|
|
1339
|
+
protected readonly pageSizeState: _angular_core.WritableSignal<number>;
|
|
1340
|
+
private readonly filtered;
|
|
1341
|
+
private readonly sorted;
|
|
1342
|
+
protected readonly filteredCount: _angular_core.Signal<number>;
|
|
1343
|
+
protected readonly paged: _angular_core.Signal<readonly T[]>;
|
|
1344
|
+
protected readonly colspan: _angular_core.Signal<number>;
|
|
1345
|
+
protected readonly displayCount: _angular_core.Signal<number>;
|
|
1346
|
+
private parseWidthPx;
|
|
1347
|
+
/** Mapa pole → przesunięcie left (px) dla wiodących zamrożonych kolumn. */
|
|
1348
|
+
private readonly frozenOffsets;
|
|
1349
|
+
protected readonly hasFrozen: _angular_core.Signal<boolean>;
|
|
1350
|
+
protected frozenLeft(field: string): number | null;
|
|
1351
|
+
protected isFrozen(field: string): boolean;
|
|
1352
|
+
protected toggleSort(col: KptColumn): void;
|
|
1353
|
+
protected sortIconName(col: KptColumn): KptIconName;
|
|
1354
|
+
protected ariaSort(col: KptColumn): 'ascending' | 'descending' | 'none';
|
|
1355
|
+
protected onFilter(event: Event): void;
|
|
1356
|
+
private sameRow;
|
|
1357
|
+
protected isSelected(row: T): boolean;
|
|
1358
|
+
protected toggleRow(row: T): void;
|
|
1359
|
+
protected readonly pageAllSelected: _angular_core.Signal<boolean>;
|
|
1360
|
+
protected toggleAllOnPage(): void;
|
|
1361
|
+
protected onRowClick(row: T): void;
|
|
1362
|
+
protected getValue(row: T, field: string): unknown;
|
|
1363
|
+
protected trackRow: (row: T) => unknown;
|
|
1364
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptDataTable<any>, never>;
|
|
1365
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptDataTable<any>, "kpt-data-table", never, { "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "filterable": { "alias": "filterable"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "rowKey": { "alias": "rowKey"; "required": false; "isSignal": true; }; "scrollHeight": { "alias": "scrollHeight"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "rowHeight": { "alias": "rowHeight"; "required": false; "isSignal": true; }; "reorderable": { "alias": "reorderable"; "required": false; "isSignal": true; }; "exportable": { "alias": "exportable"; "required": false; "isSignal": true; }; "exportFilename": { "alias": "exportFilename"; "required": false; "isSignal": true; }; "lazy": { "alias": "lazy"; "required": false; "isSignal": true; }; "totalRecords": { "alias": "totalRecords"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; "isSignal": true; }; }, { "selection": "selectionChange"; "rowClick": "rowClick"; "lazyLoad": "lazyLoad"; }, ["cellDefs"], never, true, never>;
|
|
1366
|
+
}
|
|
1367
|
+
|
|
1368
|
+
/**
|
|
1369
|
+
* Własny szablon komórki dla kolumny `kpt-data-table`. Kontekst: `$implicit` = wiersz,
|
|
1370
|
+
* `value` = wartość pola.
|
|
1371
|
+
*
|
|
1372
|
+
* @example
|
|
1373
|
+
* <kpt-data-table [columns]="cols" [data]="rows">
|
|
1374
|
+
* <ng-template kptCell="status" let-row let-value="value">
|
|
1375
|
+
* <span class="badge">{{ value }}</span>
|
|
1376
|
+
* </ng-template>
|
|
1377
|
+
* </kpt-data-table>
|
|
1378
|
+
*/
|
|
1379
|
+
declare class KptCellDef {
|
|
1380
|
+
/** Nazwa pola kolumny, dla której obowiązuje szablon. */
|
|
1381
|
+
readonly kptCell: _angular_core.InputSignal<string>;
|
|
1382
|
+
readonly template: TemplateRef<any>;
|
|
1383
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptCellDef, never>;
|
|
1384
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KptCellDef, "ng-template[kptCell]", never, { "kptCell": { "alias": "kptCell"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1385
|
+
}
|
|
1386
|
+
|
|
1387
|
+
interface KptTreeNode<T = unknown> {
|
|
1388
|
+
label: string;
|
|
1389
|
+
value?: T;
|
|
1390
|
+
icon?: string;
|
|
1391
|
+
children?: KptTreeNode<T>[];
|
|
1392
|
+
expanded?: boolean;
|
|
1393
|
+
disabled?: boolean;
|
|
1394
|
+
}
|
|
1395
|
+
/**
|
|
1396
|
+
* Drzewo hierarchiczne (rozwijanie, zaznaczanie, ikony). Dane przez `nodes`.
|
|
1397
|
+
*
|
|
1398
|
+
* @example
|
|
1399
|
+
* <kpt-tree [nodes]="tree" selectable [(selected)]="node" (nodeClick)="open($event)" />
|
|
1400
|
+
*/
|
|
1401
|
+
declare class KptTree<T = unknown> {
|
|
1402
|
+
readonly nodes: _angular_core.InputSignal<KptTreeNode<T>[]>;
|
|
1403
|
+
readonly selectable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1404
|
+
readonly selected: _angular_core.ModelSignal<KptTreeNode<T> | null>;
|
|
1405
|
+
readonly nodeClick: _angular_core.OutputEmitterRef<KptTreeNode<T>>;
|
|
1406
|
+
private readonly version;
|
|
1407
|
+
protected has(node: KptTreeNode<T>): boolean;
|
|
1408
|
+
protected isOpen(node: KptTreeNode<T>): boolean;
|
|
1409
|
+
protected isSelected(node: KptTreeNode<T>): boolean;
|
|
1410
|
+
protected toggle(node: KptTreeNode<T>, event: Event): void;
|
|
1411
|
+
protected onRow(node: KptTreeNode<T>): void;
|
|
1412
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptTree<any>, never>;
|
|
1413
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptTree<any>, "kpt-tree", never, { "nodes": { "alias": "nodes"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; }, { "selected": "selectedChange"; "nodeClick": "nodeClick"; }, never, never, true, never>;
|
|
1414
|
+
}
|
|
1415
|
+
|
|
1416
|
+
interface KptTimelineItem {
|
|
1417
|
+
title: string;
|
|
1418
|
+
description?: string;
|
|
1419
|
+
time?: string;
|
|
1420
|
+
icon?: string;
|
|
1421
|
+
variant?: 'neutral' | 'primary' | 'success' | 'danger' | 'warning' | 'info';
|
|
1422
|
+
}
|
|
1423
|
+
/**
|
|
1424
|
+
* Oś czasu (timeline) — pionowa lista zdarzeń z markerami.
|
|
1425
|
+
*
|
|
1426
|
+
* @example
|
|
1427
|
+
* <kpt-timeline [items]="[{title:'Utworzono', time:'10:00', variant:'success', icon:'check'}]" />
|
|
1428
|
+
*/
|
|
1429
|
+
declare class KptTimeline {
|
|
1430
|
+
readonly items: _angular_core.InputSignal<KptTimelineItem[]>;
|
|
1431
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptTimeline, never>;
|
|
1432
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptTimeline, "kpt-timeline", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1433
|
+
}
|
|
1434
|
+
|
|
1435
|
+
/**
|
|
1436
|
+
* Karuzela slajdów. Dane przez `items`, szablon slajdu przez projekcję `<ng-template let-item>`.
|
|
1437
|
+
*
|
|
1438
|
+
* @example
|
|
1439
|
+
* <kpt-carousel [items]="photos">
|
|
1440
|
+
* <ng-template let-photo><img [src]="photo" style="width:100%" /></ng-template>
|
|
1441
|
+
* </kpt-carousel>
|
|
1442
|
+
*/
|
|
1443
|
+
declare class KptCarousel<T = unknown> {
|
|
1444
|
+
readonly items: _angular_core.InputSignal<T[]>;
|
|
1445
|
+
readonly activeIndex: _angular_core.ModelSignal<number>;
|
|
1446
|
+
protected readonly slideTpl: _angular_core.Signal<TemplateRef<any>>;
|
|
1447
|
+
next(): void;
|
|
1448
|
+
prev(): void;
|
|
1449
|
+
goTo(index: number): void;
|
|
1450
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptCarousel<any>, never>;
|
|
1451
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptCarousel<any>, "kpt-carousel", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "activeIndex": { "alias": "activeIndex"; "required": false; "isSignal": true; }; }, { "activeIndex": "activeIndexChange"; }, ["slideTpl"], never, true, never>;
|
|
1452
|
+
}
|
|
1453
|
+
|
|
1454
|
+
/**
|
|
1455
|
+
* DataView — prezentacja listy elementów w układzie lista/siatka, z opcjonalną paginacją.
|
|
1456
|
+
* Szablon elementu przez projekcję `<ng-template let-item>`.
|
|
1457
|
+
*
|
|
1458
|
+
* @example
|
|
1459
|
+
* <kpt-data-view [items]="products" [pageSize]="6">
|
|
1460
|
+
* <ng-template let-p><div>{{ p.name }}</div></ng-template>
|
|
1461
|
+
* </kpt-data-view>
|
|
1462
|
+
*/
|
|
1463
|
+
declare class KptDataView<T = unknown> {
|
|
1464
|
+
readonly items: _angular_core.InputSignal<T[]>;
|
|
1465
|
+
readonly layout: _angular_core.ModelSignal<"list" | "grid">;
|
|
1466
|
+
readonly pageSize: _angular_core.InputSignal<number>;
|
|
1467
|
+
readonly paginated: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1468
|
+
protected readonly itemTpl: _angular_core.Signal<TemplateRef<any>>;
|
|
1469
|
+
protected readonly pageIndex: _angular_core.ModelSignal<number>;
|
|
1470
|
+
protected readonly showPager: _angular_core.Signal<boolean>;
|
|
1471
|
+
protected readonly pageItems: _angular_core.Signal<T[]>;
|
|
1472
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptDataView<any>, never>;
|
|
1473
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptDataView<any>, "kpt-data-view", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "paginated": { "alias": "paginated"; "required": false; "isSignal": true; }; "pageIndex": { "alias": "pageIndex"; "required": false; "isSignal": true; }; }, { "layout": "layoutChange"; "pageIndex": "pageIndexChange"; }, ["itemTpl"], never, true, never>;
|
|
1474
|
+
}
|
|
1475
|
+
|
|
1476
|
+
/**
|
|
1477
|
+
* PickList — transfer elementów między dwiema listami (źródło ↔ cel).
|
|
1478
|
+
* Szablon elementu przez projekcję `<ng-template let-item>`.
|
|
1479
|
+
*
|
|
1480
|
+
* @example
|
|
1481
|
+
* <kpt-pick-list [(source)]="available" [(target)]="selected" sourceHeader="Dostępne" targetHeader="Wybrane">
|
|
1482
|
+
* <ng-template let-item>{{ item.name }}</ng-template>
|
|
1483
|
+
* </kpt-pick-list>
|
|
1484
|
+
*/
|
|
1485
|
+
declare class KptPickList<T = unknown> {
|
|
1486
|
+
readonly source: _angular_core.ModelSignal<T[]>;
|
|
1487
|
+
readonly target: _angular_core.ModelSignal<T[]>;
|
|
1488
|
+
readonly sourceHeader: _angular_core.InputSignal<string>;
|
|
1489
|
+
readonly targetHeader: _angular_core.InputSignal<string>;
|
|
1490
|
+
protected readonly itemTpl: _angular_core.Signal<TemplateRef<any>>;
|
|
1491
|
+
protected readonly selSource: _angular_core.WritableSignal<Set<T>>;
|
|
1492
|
+
protected readonly selTarget: _angular_core.WritableSignal<Set<T>>;
|
|
1493
|
+
protected toggle(side: 'source' | 'target', item: T): void;
|
|
1494
|
+
protected move(from: 'source' | 'target', all: boolean): void;
|
|
1495
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptPickList<any>, never>;
|
|
1496
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptPickList<any>, "kpt-pick-list", never, { "source": { "alias": "source"; "required": false; "isSignal": true; }; "target": { "alias": "target"; "required": false; "isSignal": true; }; "sourceHeader": { "alias": "sourceHeader"; "required": false; "isSignal": true; }; "targetHeader": { "alias": "targetHeader"; "required": false; "isSignal": true; }; }, { "source": "sourceChange"; "target": "targetChange"; }, ["itemTpl"], never, true, never>;
|
|
1497
|
+
}
|
|
1498
|
+
|
|
1499
|
+
/**
|
|
1500
|
+
* OrderList — lista z ręcznym porządkowaniem elementów (w górę/dół).
|
|
1501
|
+
* Szablon elementu przez projekcję `<ng-template let-item>`.
|
|
1502
|
+
*
|
|
1503
|
+
* @example
|
|
1504
|
+
* <kpt-order-list [(items)]="tasks" header="Kolejność">
|
|
1505
|
+
* <ng-template let-item>{{ item.name }}</ng-template>
|
|
1506
|
+
* </kpt-order-list>
|
|
1507
|
+
*/
|
|
1508
|
+
declare class KptOrderList<T = unknown> {
|
|
1509
|
+
readonly items: _angular_core.ModelSignal<T[]>;
|
|
1510
|
+
readonly header: _angular_core.InputSignal<string>;
|
|
1511
|
+
protected readonly itemTpl: _angular_core.Signal<TemplateRef<any>>;
|
|
1512
|
+
protected readonly selected: _angular_core.WritableSignal<number | null>;
|
|
1513
|
+
protected moveSelected(dir: -1 | 1): void;
|
|
1514
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptOrderList<any>, never>;
|
|
1515
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptOrderList<any>, "kpt-order-list", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; }, { "items": "itemsChange"; }, ["itemTpl"], never, true, never>;
|
|
1516
|
+
}
|
|
1517
|
+
|
|
1518
|
+
interface KptGalleriaItem {
|
|
1519
|
+
src: string;
|
|
1520
|
+
thumbnail?: string;
|
|
1521
|
+
alt?: string;
|
|
1522
|
+
}
|
|
1523
|
+
/**
|
|
1524
|
+
* Galleria — duży podgląd obrazu z paskiem miniatur i nawigacją.
|
|
1525
|
+
*
|
|
1526
|
+
* @example
|
|
1527
|
+
* <kpt-galleria [items]="photos" [(activeIndex)]="idx" />
|
|
1528
|
+
*/
|
|
1529
|
+
declare class KptGalleria {
|
|
1530
|
+
readonly items: _angular_core.InputSignal<KptGalleriaItem[]>;
|
|
1531
|
+
readonly activeIndex: _angular_core.ModelSignal<number>;
|
|
1532
|
+
readonly showThumbnails: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1533
|
+
protected readonly current: _angular_core.Signal<KptGalleriaItem>;
|
|
1534
|
+
protected next(): void;
|
|
1535
|
+
protected prev(): void;
|
|
1536
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptGalleria, never>;
|
|
1537
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptGalleria, "kpt-galleria", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "activeIndex": { "alias": "activeIndex"; "required": false; "isSignal": true; }; "showThumbnails": { "alias": "showThumbnails"; "required": false; "isSignal": true; }; }, { "activeIndex": "activeIndexChange"; }, never, never, true, never>;
|
|
1538
|
+
}
|
|
1539
|
+
|
|
1540
|
+
type KptAlertVariant = 'info' | 'success' | 'warning' | 'danger';
|
|
1541
|
+
/**
|
|
1542
|
+
* Komunikat inline (alert). Warianty info/success/warning/danger, opcjonalny tytuł i zamykanie.
|
|
1543
|
+
*
|
|
1544
|
+
* @example
|
|
1545
|
+
* <kpt-alert variant="success" title="Zapisano">Zmiany zostały zapisane.</kpt-alert>
|
|
1546
|
+
*/
|
|
1547
|
+
declare class KptAlert {
|
|
1548
|
+
readonly variant: _angular_core.InputSignal<KptAlertVariant>;
|
|
1549
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
1550
|
+
readonly dismissible: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1551
|
+
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
1552
|
+
protected readonly visible: _angular_core.WritableSignal<boolean>;
|
|
1553
|
+
protected iconName(): KptIconName;
|
|
1554
|
+
protected dismiss(): void;
|
|
1555
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptAlert, never>;
|
|
1556
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptAlert, "kpt-alert", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["*"], true, never>;
|
|
1557
|
+
}
|
|
1558
|
+
|
|
1559
|
+
/**
|
|
1560
|
+
* Okno modalne na natywnym `<dialog>` (focus trap, ESC, backdrop w standardzie).
|
|
1561
|
+
* Sterowane sygnałem `open` (dwukierunkowe). Stopkę wstaw z atrybutem `kptDialogFooter`.
|
|
1562
|
+
*
|
|
1563
|
+
* @example
|
|
1564
|
+
* <kpt-dialog [(open)]="confirmOpen" header="Usunąć?">
|
|
1565
|
+
* Tej operacji nie można cofnąć.
|
|
1566
|
+
* <div kptDialogFooter>
|
|
1567
|
+
* <kpt-button variant="text" (click)="confirmOpen.set(false)">Anuluj</kpt-button>
|
|
1568
|
+
* <kpt-button variant="danger" (click)="remove()">Usuń</kpt-button>
|
|
1569
|
+
* </div>
|
|
1570
|
+
* </kpt-dialog>
|
|
1571
|
+
*/
|
|
1572
|
+
declare class KptDialog {
|
|
1573
|
+
/** Otwarcie okna (dwukierunkowe). */
|
|
1574
|
+
readonly open: _angular_core.ModelSignal<boolean>;
|
|
1575
|
+
readonly header: _angular_core.InputSignal<string>;
|
|
1576
|
+
/** Pozwala zamknąć klawiszem Esc / przyciskiem ×. */
|
|
1577
|
+
readonly dismissible: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1578
|
+
private readonly dialogRef;
|
|
1579
|
+
constructor();
|
|
1580
|
+
protected onCancel(event: Event): void;
|
|
1581
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptDialog, never>;
|
|
1582
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptDialog, "kpt-dialog", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, ["*", "[kptDialogFooter]"], true, never>;
|
|
1583
|
+
}
|
|
1584
|
+
|
|
1585
|
+
interface KptToast {
|
|
1586
|
+
id: number;
|
|
1587
|
+
message: string;
|
|
1588
|
+
title?: string;
|
|
1589
|
+
variant: KptAlertVariant;
|
|
1590
|
+
/** Czas życia w ms; 0 = bez auto-zamykania. */
|
|
1591
|
+
duration: number;
|
|
1592
|
+
}
|
|
1593
|
+
type KptToastOptions = Partial<Omit<KptToast, 'id' | 'message'>>;
|
|
1594
|
+
/**
|
|
1595
|
+
* Serwis powiadomień (toastów). Wstrzyknij i wywołuj `show`/`success`/`error`/...;
|
|
1596
|
+
* umieść `<kpt-toast-container />` raz w aplikacji, aby je renderować.
|
|
1597
|
+
*/
|
|
1598
|
+
declare class KptToastService {
|
|
1599
|
+
private readonly _toasts;
|
|
1600
|
+
readonly toasts: _angular_core.Signal<KptToast[]>;
|
|
1601
|
+
private seq;
|
|
1602
|
+
show(message: string, options?: KptToastOptions): number;
|
|
1603
|
+
info(message: string, options?: KptToastOptions): number;
|
|
1604
|
+
success(message: string, options?: KptToastOptions): number;
|
|
1605
|
+
warning(message: string, options?: KptToastOptions): number;
|
|
1606
|
+
error(message: string, options?: KptToastOptions): number;
|
|
1607
|
+
dismiss(id: number): void;
|
|
1608
|
+
clear(): void;
|
|
1609
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptToastService, never>;
|
|
1610
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<KptToastService>;
|
|
1611
|
+
}
|
|
1612
|
+
|
|
1613
|
+
/**
|
|
1614
|
+
* Kontener renderujący toasty z `KptToastService`. Umieść raz w aplikacji
|
|
1615
|
+
* (np. w komponencie głównym): `<kpt-toast-container />`.
|
|
1616
|
+
*/
|
|
1617
|
+
declare class KptToastContainer {
|
|
1618
|
+
private readonly service;
|
|
1619
|
+
protected readonly toasts: _angular_core.Signal<_konce_pt_angular.KptToast[]>;
|
|
1620
|
+
protected dismiss(id: number): void;
|
|
1621
|
+
protected icon(variant: KptAlertVariant): KptIconName;
|
|
1622
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptToastContainer, never>;
|
|
1623
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptToastContainer, "kpt-toast-container", never, {}, {}, never, never, true, never>;
|
|
1624
|
+
}
|
|
1625
|
+
|
|
1626
|
+
type KptTooltipPosition = 'top' | 'bottom' | 'left' | 'right';
|
|
1627
|
+
/**
|
|
1628
|
+
* Dymek podpowiedzi (tooltip) pokazywany na hover/focus hosta. Lekki — element dodawany
|
|
1629
|
+
* do `body` i pozycjonowany względem hosta (działa w trybie zoneless).
|
|
1630
|
+
*
|
|
1631
|
+
* @example
|
|
1632
|
+
* <kpt-button kptTooltip="Zapisz zmiany" kptTooltipPosition="bottom">Zapisz</kpt-button>
|
|
1633
|
+
*/
|
|
1634
|
+
declare class KptTooltip implements OnDestroy {
|
|
1635
|
+
readonly text: _angular_core.InputSignal<string>;
|
|
1636
|
+
readonly position: _angular_core.InputSignal<KptTooltipPosition>;
|
|
1637
|
+
private readonly host;
|
|
1638
|
+
private tip?;
|
|
1639
|
+
protected show(): void;
|
|
1640
|
+
protected hide(): void;
|
|
1641
|
+
private reposition;
|
|
1642
|
+
ngOnDestroy(): void;
|
|
1643
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptTooltip, never>;
|
|
1644
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KptTooltip, "[kptTooltip]", never, { "text": { "alias": "kptTooltip"; "required": true; "isSignal": true; }; "position": { "alias": "kptTooltipPosition"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1645
|
+
}
|
|
1646
|
+
|
|
1647
|
+
/**
|
|
1648
|
+
* Popover — dowolna treść w dymku na CDK Overlay (bogatszy niż tooltip). Slot triggera:
|
|
1649
|
+
* atrybut `kptPopoverTrigger`; reszta treści trafia do panelu.
|
|
1650
|
+
* Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`
|
|
1651
|
+
*
|
|
1652
|
+
* @example
|
|
1653
|
+
* <kpt-popover>
|
|
1654
|
+
* <kpt-button kptPopoverTrigger variant="outline">Szczegóły</kpt-button>
|
|
1655
|
+
* <div>Bogata treść popovera…</div>
|
|
1656
|
+
* </kpt-popover>
|
|
1657
|
+
*/
|
|
1658
|
+
declare class KptPopover {
|
|
1659
|
+
readonly placement: _angular_core.InputSignal<"bottom" | "top">;
|
|
1660
|
+
protected readonly open: _angular_core.WritableSignal<boolean>;
|
|
1661
|
+
protected readonly positions: ConnectedPosition[];
|
|
1662
|
+
protected toggle(): void;
|
|
1663
|
+
protected close(): void;
|
|
1664
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptPopover, never>;
|
|
1665
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptPopover, "kpt-popover", never, { "placement": { "alias": "placement"; "required": false; "isSignal": true; }; }, {}, never, ["[kptPopoverTrigger]", "*"], true, never>;
|
|
1666
|
+
}
|
|
1667
|
+
|
|
1668
|
+
/**
|
|
1669
|
+
* Pole z podpowiedziami (autocomplete) na CDK Overlay, Signal Forms. Wartość = wpisany tekst.
|
|
1670
|
+
* Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`
|
|
1671
|
+
*
|
|
1672
|
+
* @example
|
|
1673
|
+
* <kpt-autocomplete [formField]="f.city" [options]="cities" placeholder="Miasto…" />
|
|
1674
|
+
*/
|
|
1675
|
+
declare class KptAutocomplete implements FormValueControl<string> {
|
|
1676
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
1677
|
+
readonly options: _angular_core.InputSignal<string[]>;
|
|
1678
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
1679
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1680
|
+
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1681
|
+
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1682
|
+
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
1683
|
+
protected readonly open: _angular_core.WritableSignal<boolean>;
|
|
1684
|
+
protected readonly activeIndex: _angular_core.WritableSignal<number>;
|
|
1685
|
+
protected readonly positions: ConnectedPosition[];
|
|
1686
|
+
protected readonly filtered: _angular_core.Signal<string[]>;
|
|
1687
|
+
protected onInput(event: Event): void;
|
|
1688
|
+
protected onFocus(): void;
|
|
1689
|
+
protected onBlur(): void;
|
|
1690
|
+
protected pick(opt: string): void;
|
|
1691
|
+
protected onKeydown(event: KeyboardEvent): void;
|
|
1692
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptAutocomplete, never>;
|
|
1693
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptAutocomplete, "kpt-autocomplete", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "touched": { "alias": "touched"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
|
|
1694
|
+
}
|
|
1695
|
+
|
|
1696
|
+
type KptDrawerPosition = 'left' | 'right' | 'top' | 'bottom';
|
|
1697
|
+
/**
|
|
1698
|
+
* Panel wysuwany (drawer / off-canvas) sterowany sygnałem `open`. Niezależny od app-shell.
|
|
1699
|
+
*
|
|
1700
|
+
* @example
|
|
1701
|
+
* <kpt-drawer [(open)]="menuOpen" position="right" header="Filtry">
|
|
1702
|
+
* Treść panelu…
|
|
1703
|
+
* </kpt-drawer>
|
|
1704
|
+
*/
|
|
1705
|
+
declare class KptDrawer {
|
|
1706
|
+
readonly open: _angular_core.ModelSignal<boolean>;
|
|
1707
|
+
readonly position: _angular_core.InputSignal<KptDrawerPosition>;
|
|
1708
|
+
readonly header: _angular_core.InputSignal<string>;
|
|
1709
|
+
readonly dismissible: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1710
|
+
readonly closeOnBackdrop: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1711
|
+
protected onBackdrop(): void;
|
|
1712
|
+
protected close(): void;
|
|
1713
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptDrawer, never>;
|
|
1714
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptDrawer, "kpt-drawer", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "closeOnBackdrop": { "alias": "closeOnBackdrop"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, ["*"], true, never>;
|
|
1715
|
+
}
|
|
1716
|
+
|
|
1717
|
+
/**
|
|
1718
|
+
* Menu kontekstowe (PPM) na obszarze projekcji. Panel pozycjonowany do kursora.
|
|
1719
|
+
*
|
|
1720
|
+
* @example
|
|
1721
|
+
* <kpt-context-menu [items]="items" (select)="onSelect($event)">
|
|
1722
|
+
* <div class="obszar">Kliknij prawym przyciskiem</div>
|
|
1723
|
+
* </kpt-context-menu>
|
|
1724
|
+
*/
|
|
1725
|
+
declare class KptContextMenu<T = unknown> {
|
|
1726
|
+
readonly items: _angular_core.InputSignal<KptMenuItem<T>[]>;
|
|
1727
|
+
readonly select: _angular_core.OutputEmitterRef<KptMenuItem<T>>;
|
|
1728
|
+
protected readonly open: _angular_core.WritableSignal<boolean>;
|
|
1729
|
+
protected readonly x: _angular_core.WritableSignal<number>;
|
|
1730
|
+
protected readonly y: _angular_core.WritableSignal<number>;
|
|
1731
|
+
protected onContext(event: MouseEvent): void;
|
|
1732
|
+
protected close(): void;
|
|
1733
|
+
protected pick(item: KptMenuItem<T>): void;
|
|
1734
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptContextMenu<any>, never>;
|
|
1735
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptContextMenu<any>, "kpt-context-menu", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, { "select": "select"; }, never, ["*"], true, never>;
|
|
1736
|
+
}
|
|
1737
|
+
|
|
1738
|
+
/**
|
|
1739
|
+
* Pozioma belka menu z rozwijanymi pod-menu. Pozycje bez `items` działają jak akcje/linki.
|
|
1740
|
+
*
|
|
1741
|
+
* @example
|
|
1742
|
+
* <kpt-menubar [items]="items" (select)="onSelect($event)" />
|
|
1743
|
+
*/
|
|
1744
|
+
declare class KptMenubar<T = unknown> {
|
|
1745
|
+
readonly items: _angular_core.InputSignal<KptMenuItem<T>[]>;
|
|
1746
|
+
readonly select: _angular_core.OutputEmitterRef<KptMenuItem<T>>;
|
|
1747
|
+
protected readonly openIndex: _angular_core.WritableSignal<number | null>;
|
|
1748
|
+
protected toggle(i: number, item: KptMenuItem<T>): void;
|
|
1749
|
+
protected pick(item: KptMenuItem<T>): void;
|
|
1750
|
+
protected closeAll(): void;
|
|
1751
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptMenubar<any>, never>;
|
|
1752
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptMenubar<any>, "kpt-menubar", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, { "select": "select"; }, never, never, true, never>;
|
|
1753
|
+
}
|
|
1754
|
+
|
|
1755
|
+
/**
|
|
1756
|
+
* Mega-menu — pozioma belka z szerokim, wielokolumnowym panelem.
|
|
1757
|
+
* Struktura: pozycja górna → `items` (kolumny) → każda kolumna `items` (odnośniki).
|
|
1758
|
+
*
|
|
1759
|
+
* @example
|
|
1760
|
+
* <kpt-megamenu [items]="items" (select)="onSelect($event)" />
|
|
1761
|
+
*/
|
|
1762
|
+
declare class KptMegamenu<T = unknown> {
|
|
1763
|
+
readonly items: _angular_core.InputSignal<KptMenuItem<T>[]>;
|
|
1764
|
+
readonly select: _angular_core.OutputEmitterRef<KptMenuItem<T>>;
|
|
1765
|
+
protected readonly openIndex: _angular_core.WritableSignal<number | null>;
|
|
1766
|
+
protected activeColumns(): KptMenuItem<T>[];
|
|
1767
|
+
protected toggle(i: number): void;
|
|
1768
|
+
protected pick(link: KptMenuItem<T>): void;
|
|
1769
|
+
protected closeAll(): void;
|
|
1770
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptMegamenu<any>, never>;
|
|
1771
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptMegamenu<any>, "kpt-megamenu", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, { "select": "select"; }, never, never, true, never>;
|
|
1772
|
+
}
|
|
1773
|
+
|
|
1774
|
+
interface KptConfirmOptions {
|
|
1775
|
+
message: string;
|
|
1776
|
+
header?: string;
|
|
1777
|
+
acceptLabel?: string;
|
|
1778
|
+
rejectLabel?: string;
|
|
1779
|
+
/** Wariant przycisku akceptacji. */
|
|
1780
|
+
variant?: 'filled' | 'danger';
|
|
1781
|
+
icon?: string;
|
|
1782
|
+
}
|
|
1783
|
+
interface KptConfirmRequest extends KptConfirmOptions {
|
|
1784
|
+
id: number;
|
|
1785
|
+
resolve: (accepted: boolean) => void;
|
|
1786
|
+
}
|
|
1787
|
+
/**
|
|
1788
|
+
* Serwis potwierdzeń. Wstrzyknij i wywołaj `confirm(...)` (zwraca Promise<boolean>);
|
|
1789
|
+
* umieść `<kpt-confirm-container />` raz w aplikacji.
|
|
1790
|
+
*
|
|
1791
|
+
* @example
|
|
1792
|
+
* if (await confirm.confirm({ message: 'Usunąć rekord?', variant: 'danger' })) { ... }
|
|
1793
|
+
*/
|
|
1794
|
+
declare class KptConfirmService {
|
|
1795
|
+
private readonly _current;
|
|
1796
|
+
readonly current: _angular_core.Signal<KptConfirmRequest | null>;
|
|
1797
|
+
private seq;
|
|
1798
|
+
confirm(options: KptConfirmOptions): Promise<boolean>;
|
|
1799
|
+
accept(): void;
|
|
1800
|
+
reject(): void;
|
|
1801
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptConfirmService, never>;
|
|
1802
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<KptConfirmService>;
|
|
1803
|
+
}
|
|
1804
|
+
|
|
1805
|
+
/**
|
|
1806
|
+
* Kontener potwierdzeń — renderuje aktywne żądanie z `KptConfirmService` na `kpt-dialog`.
|
|
1807
|
+
* Umieść raz w aplikacji (np. obok `<kpt-toast-container />`).
|
|
1808
|
+
*/
|
|
1809
|
+
declare class KptConfirmContainer {
|
|
1810
|
+
protected readonly service: KptConfirmService;
|
|
1811
|
+
protected readonly req: _angular_core.Signal<_konce_pt_angular.KptConfirmRequest | null>;
|
|
1812
|
+
protected readonly isOpen: _angular_core.Signal<boolean>;
|
|
1813
|
+
protected onOpenChange(open: boolean): void;
|
|
1814
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptConfirmContainer, never>;
|
|
1815
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptConfirmContainer, "kpt-confirm-container", never, {}, {}, never, never, true, never>;
|
|
1816
|
+
}
|
|
1817
|
+
|
|
1818
|
+
/**
|
|
1819
|
+
* Arkusz wysuwany z dołu ekranu (bottom sheet). Sterowany sygnałem `open`.
|
|
1820
|
+
*
|
|
1821
|
+
* @example
|
|
1822
|
+
* <kpt-bottom-sheet [(open)]="sheetOpen" header="Udostępnij">
|
|
1823
|
+
* Treść arkusza…
|
|
1824
|
+
* </kpt-bottom-sheet>
|
|
1825
|
+
*/
|
|
1826
|
+
declare class KptBottomSheet {
|
|
1827
|
+
readonly open: _angular_core.ModelSignal<boolean>;
|
|
1828
|
+
readonly header: _angular_core.InputSignal<string>;
|
|
1829
|
+
readonly closeOnBackdrop: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1830
|
+
protected onBackdrop(): void;
|
|
1831
|
+
protected close(): void;
|
|
1832
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptBottomSheet, never>;
|
|
1833
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptBottomSheet, "kpt-bottom-sheet", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "closeOnBackdrop": { "alias": "closeOnBackdrop"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, ["*"], true, never>;
|
|
1834
|
+
}
|
|
1835
|
+
|
|
1836
|
+
type KptSpeedDialDirection = 'up' | 'down' | 'left' | 'right';
|
|
1837
|
+
/**
|
|
1838
|
+
* Speed dial — FAB rozwijający zestaw akcji. Buduje na `kpt-fab`.
|
|
1839
|
+
*
|
|
1840
|
+
* @example
|
|
1841
|
+
* <kpt-speed-dial [items]="actions" direction="up" (select)="onAction($event)" />
|
|
1842
|
+
*/
|
|
1843
|
+
declare class KptSpeedDial<T = unknown> {
|
|
1844
|
+
readonly items: _angular_core.InputSignal<KptMenuItem<T>[]>;
|
|
1845
|
+
readonly direction: _angular_core.InputSignal<KptSpeedDialDirection>;
|
|
1846
|
+
readonly icon: _angular_core.InputSignal<string>;
|
|
1847
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
1848
|
+
readonly select: _angular_core.OutputEmitterRef<KptMenuItem<T>>;
|
|
1849
|
+
protected readonly open: _angular_core.WritableSignal<boolean>;
|
|
1850
|
+
protected toggle(): void;
|
|
1851
|
+
protected close(): void;
|
|
1852
|
+
protected pick(item: KptMenuItem<T>): void;
|
|
1853
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptSpeedDial<any>, never>;
|
|
1854
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptSpeedDial<any>, "kpt-speed-dial", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "select": "select"; }, never, never, true, never>;
|
|
1855
|
+
}
|
|
1856
|
+
|
|
1857
|
+
export { KptAccordion, KptAccordionPanel, KptAlert, KptAppShell, KptAutocomplete, KptAvatar, KptAvatarGroup, KptBadge, KptBottomSheet, KptBreadcrumb, KptButton, KptButtonGroup, KptCard, KptCarousel, KptCellDef, KptCheckbox, KptChip, KptChipsInput, KptColorPicker, KptConfirmContainer, KptConfirmService, KptContextMenu, KptDataTable, KptDataView, KptDateRange, KptDatepicker, KptDialog, KptDivider, KptDrawer, KptEmpty, KptFab, KptFieldset, KptFileUpload, KptFormField, KptGalleria, KptIcon, KptIconButton, KptIconRegistry, KptImage, KptInput, KptInputMask, KptInputNumber, KptInputOtp, KptKnob, KptListbox, KptMegamenu, KptMenu, KptMenubar, KptMeterGroup, KptOrderList, KptPaginator, KptPanel, KptPassword, KptPickList, KptPopover, KptProgress, KptRadioGroup, KptRating, KptRichText, KptScrollTop, KptSelect, KptSidenav, KptSkeleton, KptSlider, KptSpeedDial, KptSpinner, KptSplitButton, KptSplitter, KptStep, KptStepper, KptSwitch, KptTab, KptTabs, KptTextarea, KptTimeline, KptToastContainer, KptToastService, KptToolbar, KptTooltip, KptTree };
|
|
1858
|
+
export type { KptAlertVariant, KptAvatarItem, KptAvatarShape, KptAvatarSize, KptBadgeVariant, KptBreadcrumbItem, KptButtonSize, KptButtonVariant, KptCardVariant, KptChipVariant, KptColumn, KptConfirmOptions, KptConfirmRequest, KptDateRangeValue, KptDividerOrientation, KptDrawerPosition, KptGalleriaItem, KptIconName, KptInputType, KptMenuItem, KptMeterItem, KptOption, KptProgressVariant, KptRichTool, KptSidenavMode, KptSkeletonVariant, KptSpeedDialDirection, KptSplitterOrientation, KptTableLazyState, KptTimelineItem, KptToast, KptToastOptions, KptTooltipPosition, KptTreeNode };
|