@konce-pt/angular 0.1.2 → 0.3.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/README.md +3 -1
- package/dist/README.md +3 -1
- package/dist/fesm2022/konce-pt-angular.mjs +2415 -346
- package/dist/fesm2022/konce-pt-angular.mjs.map +1 -1
- package/dist/package.json +1 -1
- package/dist/src/lib/accordion/llms.txt +2 -0
- package/dist/src/lib/card/llms.txt +21 -0
- package/dist/src/lib/data-table/llms.txt +34 -5
- package/dist/src/lib/date-range/llms.txt +9 -4
- package/dist/src/lib/datepicker/llms.txt +16 -4
- package/dist/src/lib/fieldset/llms.txt +2 -0
- package/dist/src/lib/form-field/llms.txt +20 -0
- package/dist/src/lib/icon/llms.txt +3 -1
- package/dist/src/lib/megamenu/llms.txt +2 -0
- package/dist/src/lib/menubar/llms.txt +2 -0
- package/dist/src/lib/panel/llms.txt +2 -0
- package/dist/src/lib/rich-text/llms.txt +26 -5
- package/dist/src/lib/slider/llms.txt +8 -1
- package/dist/src/lib/stepper/llms.txt +2 -0
- package/dist/src/lib/switch/llms.txt +5 -1
- package/dist/src/lib/switch-group/llms.txt +24 -0
- package/dist/src/lib/tabs/llms.txt +2 -0
- package/dist/types/konce-pt-angular.d.ts +448 -31
- package/package.json +1 -1
|
@@ -193,7 +193,7 @@ declare class KptIconRegistry {
|
|
|
193
193
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<KptIconRegistry>;
|
|
194
194
|
}
|
|
195
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';
|
|
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' | 'phone' | 'map-pin' | 'world' | 'clock' | 'align-left' | 'align-center' | 'align-right' | 'align-justified' | 'palette' | 'highlight' | 'clipboard' | 'clipboard-text' | 'table' | 'pencil';
|
|
197
197
|
|
|
198
198
|
type KptBadgeVariant = 'neutral' | 'primary' | 'success' | 'danger' | 'warning' | 'info';
|
|
199
199
|
/**
|
|
@@ -312,10 +312,21 @@ declare class KptSkeleton {
|
|
|
312
312
|
* kontrolki (np. `kpt-input`). Prezentacyjny — stan błędu przekazuje się przez `error`
|
|
313
313
|
* (zwykle z pola Signal Forms). Wygląd sterowany tokenami `--kpt-form-field-*`.
|
|
314
314
|
*
|
|
315
|
+
* Etykieta ma 4 warianty (`labelType`): `fixed` (domyślny, nad kontrolką) oraz trzy warianty
|
|
316
|
+
* unoszącej się etykiety (Float Label) z animowanym przejściem: `over` (nad obramowaniem),
|
|
317
|
+
* `in` (u góry wewnątrz pola) i `on` (na obramowaniu, notch). Uniesienie następuje przy focusie
|
|
318
|
+
* (CSS `:focus-within`) lub gdy pole jest wypełnione (wykrywane po zdarzeniach `input`/`change`
|
|
319
|
+
* oraz wartości początkowej) — bez wymogu placeholdera na kontrolce.
|
|
320
|
+
*
|
|
315
321
|
* @example
|
|
316
322
|
* <kpt-form-field label="E-mail" [error]="emailError()" hint="Firmowy adres">
|
|
317
323
|
* <kpt-input [control]="f.email" type="email" />
|
|
318
324
|
* </kpt-form-field>
|
|
325
|
+
*
|
|
326
|
+
* @example
|
|
327
|
+
* <kpt-form-field label="E-mail" labelType="over">
|
|
328
|
+
* <kpt-input />
|
|
329
|
+
* </kpt-form-field>
|
|
319
330
|
*/
|
|
320
331
|
declare class KptFormField {
|
|
321
332
|
/** Tekst etykiety. */
|
|
@@ -328,8 +339,20 @@ declare class KptFormField {
|
|
|
328
339
|
readonly required: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
329
340
|
/** Id kontrolki dla powiązania `label[for]`. */
|
|
330
341
|
readonly controlId: _angular_core.InputSignal<string>;
|
|
342
|
+
/**
|
|
343
|
+
* Wariant etykiety: `fixed` (domyślnie, statyczna nad kontrolką) lub Float Label —
|
|
344
|
+
* `over` (nad obramowaniem), `in` (u góry wewnątrz pola), `on` (na obramowaniu, notch).
|
|
345
|
+
* Uniesienie następuje przy focusie lub wypełnieniu pola.
|
|
346
|
+
*/
|
|
347
|
+
readonly labelType: _angular_core.InputSignal<"fixed" | "over" | "in" | "on">;
|
|
348
|
+
private readonly host;
|
|
349
|
+
/** Czy projektowana kontrolka ma wartość — steruje uniesieniem etykiety w wariantach float. */
|
|
350
|
+
protected readonly filled: _angular_core.WritableSignal<boolean>;
|
|
351
|
+
constructor();
|
|
352
|
+
/** Odczytuje wartość projektowanego `input`/`textarea` i aktualizuje stan `filled`. */
|
|
353
|
+
protected updateFilled(): void;
|
|
331
354
|
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>;
|
|
355
|
+
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; }; "labelType": { "alias": "labelType"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
333
356
|
}
|
|
334
357
|
|
|
335
358
|
type KptInputType = 'text' | 'email' | 'password' | 'number' | 'search' | 'tel' | 'url';
|
|
@@ -382,6 +405,10 @@ declare class KptCheckbox implements FormCheckboxControl {
|
|
|
382
405
|
/**
|
|
383
406
|
* Przełącznik (switch/toggle) zintegrowany z Signal Forms (`FormCheckboxControl`).
|
|
384
407
|
* `<kpt-switch [formField]="f.notifications" label="Powiadomienia" />`
|
|
408
|
+
*
|
|
409
|
+
* Wariant z tekstem stanu: `onLabel`/`offLabel` — wyświetlany tekst zmienia się
|
|
410
|
+
* przy przełączaniu (np. „Włączony”/„Wyłączony”).
|
|
411
|
+
* `<kpt-switch [(checked)]="on" onLabel="Włączony" offLabel="Wyłączony" />`
|
|
385
412
|
*/
|
|
386
413
|
declare class KptSwitch implements FormCheckboxControl {
|
|
387
414
|
readonly checked: _angular_core.ModelSignal<boolean>;
|
|
@@ -390,8 +417,51 @@ declare class KptSwitch implements FormCheckboxControl {
|
|
|
390
417
|
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
391
418
|
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
392
419
|
readonly label: _angular_core.InputSignal<string>;
|
|
420
|
+
/** Pozycja etykiety `label` względem przełącznika: 'end' (prawo, domyślnie) lub 'start' (lewo). */
|
|
421
|
+
readonly labelPosition: _angular_core.InputSignal<"start" | "end">;
|
|
422
|
+
/** Tekst stanu włączonego (wyświetlany, gdy `checked`). */
|
|
423
|
+
readonly onLabel: _angular_core.InputSignal<string>;
|
|
424
|
+
/** Tekst stanu wyłączonego (wyświetlany, gdy nie `checked`). */
|
|
425
|
+
readonly offLabel: _angular_core.InputSignal<string>;
|
|
426
|
+
protected readonly hasStateLabels: _angular_core.Signal<boolean>;
|
|
427
|
+
/** Tekst zależny od stanu przełącznika. */
|
|
428
|
+
protected readonly stateLabel: _angular_core.Signal<string>;
|
|
393
429
|
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>;
|
|
430
|
+
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; }; "labelPosition": { "alias": "labelPosition"; "required": false; "isSignal": true; }; "onLabel": { "alias": "onLabel"; "required": false; "isSignal": true; }; "offLabel": { "alias": "offLabel"; "required": false; "isSignal": true; }; }, { "checked": "checkedChange"; "touch": "touch"; }, never, ["*"], true, never>;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
/**
|
|
434
|
+
* Grupa przełączników. Domyślnie pojedynczy wybór (wzajemnie wykluczające się) —
|
|
435
|
+
* włączenie jednego wyłącza pozostałe, a wartość to `value` wybranej opcji (lub `null`).
|
|
436
|
+
* Z `multiple` przechodzi w tryb wielokrotny — wartość to tablica `T[]` zaznaczonych opcji.
|
|
437
|
+
* Zintegrowana z Signal Forms (`FormValueControl<T | T[] | null>`).
|
|
438
|
+
*
|
|
439
|
+
* @example
|
|
440
|
+
* <kpt-switch-group [(value)]="plan" [options]="plans" />
|
|
441
|
+
* <kpt-switch-group multiple [(value)]="tags" [options]="tagOptions" />
|
|
442
|
+
*/
|
|
443
|
+
declare class KptSwitchGroup<T = unknown> implements FormValueControl<unknown> {
|
|
444
|
+
readonly value: _angular_core.ModelSignal<unknown>;
|
|
445
|
+
readonly options: _angular_core.InputSignal<KptOption<T>[]>;
|
|
446
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
447
|
+
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
448
|
+
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
449
|
+
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
450
|
+
/** Układ: 'vertical' (domyślnie) lub 'horizontal'. */
|
|
451
|
+
readonly orientation: _angular_core.InputSignal<"vertical" | "horizontal">;
|
|
452
|
+
/** Tryb wielokrotnego wyboru — wartość to tablica `T[]` zaznaczonych opcji. Domyślnie false (pojedynczy wybór). */
|
|
453
|
+
readonly multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
454
|
+
/**
|
|
455
|
+
* Czy ponowne kliknięcie aktywnej opcji ją odznacza (value = null). Dotyczy tylko trybu pojedynczego —
|
|
456
|
+
* w trybie `multiple` odznaczanie jest zawsze dozwolone. Domyślnie tak.
|
|
457
|
+
*/
|
|
458
|
+
readonly allowDeselect: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
459
|
+
/** Aktualna wartość jako tablica (tryb multiple) — normalizuje `null`/pojedynczą wartość. */
|
|
460
|
+
private readonly selectedValues;
|
|
461
|
+
protected isChecked(optValue: T): boolean;
|
|
462
|
+
protected onToggle(opt: KptOption<T>, checked: boolean): void;
|
|
463
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptSwitchGroup<any>, never>;
|
|
464
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptSwitchGroup<any>, "kpt-switch-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; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "allowDeselect": { "alias": "allowDeselect"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
|
|
395
465
|
}
|
|
396
466
|
|
|
397
467
|
/**
|
|
@@ -459,12 +529,26 @@ interface DayCell$1 {
|
|
|
459
529
|
selected: boolean;
|
|
460
530
|
disabled: boolean;
|
|
461
531
|
}
|
|
532
|
+
interface GridCell {
|
|
533
|
+
label: string;
|
|
534
|
+
value: string;
|
|
535
|
+
selected: boolean;
|
|
536
|
+
disabled: boolean;
|
|
537
|
+
}
|
|
538
|
+
/** Granulacja wyboru. */
|
|
539
|
+
type KptDatepickerMode = 'date' | 'monthYear' | 'year' | 'month' | 'datetime' | 'time';
|
|
462
540
|
/**
|
|
463
|
-
* Wybór daty z własnym kalendarzem (CDK Overlay), Signal Forms.
|
|
541
|
+
* Wybór daty/godziny z własnym kalendarzem (CDK Overlay), Signal Forms.
|
|
542
|
+
* Granulacja przez `selectionMode`: data, miesiąc+rok, rok, miesiąc, data+godzina, sama godzina.
|
|
543
|
+
* Godzina na tarczy zegara (dwa etapy: godziny → minuty), format 12/24h przez `hourFormat`.
|
|
544
|
+
* Format wartości zależy od trybu: 'RRRR-MM-DD' / 'RRRR-MM' / 'RRRR' / 'MM'
|
|
545
|
+
* / 'RRRR-MM-DDTHH:mm' (datetime) / 'HH:mm' (time). Czas przechowywany zawsze 24h.
|
|
464
546
|
* Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`
|
|
465
547
|
*
|
|
466
548
|
* @example
|
|
467
549
|
* <kpt-datepicker [formField]="f.birthDate" minDate="1900-01-01" />
|
|
550
|
+
* <kpt-datepicker selectionMode="datetime" [hourFormat]="12" [(value)]="meetingAt" />
|
|
551
|
+
* <kpt-datepicker selectionMode="time" [(value)]="alarm" />
|
|
468
552
|
*/
|
|
469
553
|
declare class KptDatepicker implements FormValueControl<string> {
|
|
470
554
|
readonly value: _angular_core.ModelSignal<string>;
|
|
@@ -473,25 +557,106 @@ declare class KptDatepicker implements FormValueControl<string> {
|
|
|
473
557
|
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
474
558
|
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
475
559
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
560
|
+
readonly displayFormat: _angular_core.InputSignal<"pl" | "iso">;
|
|
561
|
+
/** Granulacja wyboru. */
|
|
562
|
+
readonly selectionMode: _angular_core.InputSignal<KptDatepickerMode>;
|
|
563
|
+
/** Prezentacja miesiąca w trybie 'month': słownie ('long') lub liczbą ('number'). */
|
|
564
|
+
readonly monthDisplay: _angular_core.InputSignal<"number" | "long">;
|
|
565
|
+
/** Format godziny: 24 lub 12 (z AM/PM). */
|
|
566
|
+
readonly hourFormat: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
567
|
+
/** Krok minut (snap na tarczy). */
|
|
568
|
+
readonly minuteStep: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
476
569
|
readonly minDate: _angular_core.InputSignal<string | null>;
|
|
477
570
|
readonly maxDate: _angular_core.InputSignal<string | null>;
|
|
571
|
+
protected readonly effectivePlaceholder: _angular_core.Signal<string>;
|
|
478
572
|
protected readonly weekdays: string[];
|
|
479
573
|
protected readonly open: _angular_core.WritableSignal<boolean>;
|
|
480
574
|
private readonly today;
|
|
481
575
|
private readonly view;
|
|
576
|
+
protected readonly timeStr: _angular_core.WritableSignal<string>;
|
|
577
|
+
protected readonly dtView: _angular_core.WritableSignal<"calendar" | "clock">;
|
|
578
|
+
private readonly pendingDate;
|
|
482
579
|
protected readonly positions: ConnectedPosition[];
|
|
580
|
+
protected readonly viewYear: _angular_core.Signal<number>;
|
|
483
581
|
protected readonly monthLabel: _angular_core.Signal<string>;
|
|
582
|
+
protected readonly yearPageStart: _angular_core.Signal<number>;
|
|
583
|
+
protected readonly yearRangeLabel: _angular_core.Signal<string>;
|
|
584
|
+
private formatTime;
|
|
585
|
+
/** Etykieta czasu na pasku trybu datetime (uwzględnia AM/PM). */
|
|
586
|
+
protected readonly timeBarLabel: _angular_core.Signal<string>;
|
|
484
587
|
protected readonly display: _angular_core.Signal<string>;
|
|
588
|
+
private readonly selectedDateIso;
|
|
485
589
|
protected readonly weeks: _angular_core.Signal<DayCell$1[][]>;
|
|
486
|
-
|
|
590
|
+
protected readonly monthCells: _angular_core.Signal<GridCell[]>;
|
|
591
|
+
protected readonly yearCells: _angular_core.Signal<GridCell[]>;
|
|
592
|
+
private parseDate;
|
|
593
|
+
private parseTime;
|
|
594
|
+
private parseDateTime;
|
|
595
|
+
private isYearDisabled;
|
|
596
|
+
private isMonthYearDisabled;
|
|
597
|
+
private initialView;
|
|
598
|
+
private syncTimeFromValue;
|
|
487
599
|
protected toggleOpen(): void;
|
|
488
600
|
protected close(): void;
|
|
489
601
|
protected selectDay(cell: DayCell$1): void;
|
|
602
|
+
protected selectCell(cell: GridCell): void;
|
|
603
|
+
protected openClock(): void;
|
|
604
|
+
protected backToCalendar(): void;
|
|
605
|
+
protected commit(): void;
|
|
490
606
|
protected prevMonth(): void;
|
|
491
607
|
protected nextMonth(): void;
|
|
608
|
+
protected prevYear(): void;
|
|
609
|
+
protected nextYear(): void;
|
|
610
|
+
protected prevYearPage(): void;
|
|
611
|
+
protected nextYearPage(): void;
|
|
492
612
|
protected clear(event: Event): void;
|
|
493
613
|
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>;
|
|
614
|
+
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; }; "displayFormat": { "alias": "displayFormat"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "monthDisplay": { "alias": "monthDisplay"; "required": false; "isSignal": true; }; "hourFormat": { "alias": "hourFormat"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "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>;
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
interface ClockMark {
|
|
618
|
+
label: string;
|
|
619
|
+
hour24: number;
|
|
620
|
+
x: number;
|
|
621
|
+
y: number;
|
|
622
|
+
inner: boolean;
|
|
623
|
+
selected: boolean;
|
|
624
|
+
}
|
|
625
|
+
/**
|
|
626
|
+
* Tarcza zegara (wybór godziny) — dwa etapy: godziny → minuty, klik lub przeciąganie.
|
|
627
|
+
* Format 12/24h (`hourFormat`); w 24h dodatkowy wewnętrzny pierścień 13–00, w 12h AM/PM.
|
|
628
|
+
* Wartość `HH:mm` (zawsze 24h). Używana przez `kpt-datepicker` i `kpt-date-range`.
|
|
629
|
+
*
|
|
630
|
+
* @example
|
|
631
|
+
* <kpt-clock [(value)]="time" [hourFormat]="12" [minuteStep]="5" />
|
|
632
|
+
*/
|
|
633
|
+
declare class KptClock {
|
|
634
|
+
readonly value: _angular_core.ModelSignal<string>;
|
|
635
|
+
readonly hourFormat: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
636
|
+
readonly minuteStep: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
637
|
+
protected readonly hour: _angular_core.WritableSignal<number>;
|
|
638
|
+
protected readonly minute: _angular_core.WritableSignal<number>;
|
|
639
|
+
protected readonly clockPhase: _angular_core.WritableSignal<"hours" | "minutes">;
|
|
640
|
+
constructor();
|
|
641
|
+
private parse;
|
|
642
|
+
private emit;
|
|
643
|
+
protected readonly ampm: _angular_core.Signal<"AM" | "PM">;
|
|
644
|
+
protected readonly hour12: _angular_core.Signal<number>;
|
|
645
|
+
protected readonly hourLabel: _angular_core.Signal<string>;
|
|
646
|
+
protected readonly minuteLabel: _angular_core.Signal<string>;
|
|
647
|
+
private from12h;
|
|
648
|
+
protected readonly hourMarks: _angular_core.Signal<ClockMark[]>;
|
|
649
|
+
protected readonly minuteMarks: _angular_core.Signal<ClockMark[]>;
|
|
650
|
+
protected readonly handAngle: _angular_core.Signal<number>;
|
|
651
|
+
protected readonly handInner: _angular_core.Signal<boolean>;
|
|
652
|
+
protected setPhase(phase: 'hours' | 'minutes'): void;
|
|
653
|
+
protected setAmpm(target: 'AM' | 'PM'): void;
|
|
654
|
+
protected pickHour(mark: ClockMark): void;
|
|
655
|
+
protected pickMinute(mark: ClockMark): void;
|
|
656
|
+
protected onDialPointer(event: PointerEvent, face: HTMLElement): void;
|
|
657
|
+
protected onDialUp(): void;
|
|
658
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptClock, never>;
|
|
659
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptClock, "kpt-clock", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "hourFormat": { "alias": "hourFormat"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
|
|
495
660
|
}
|
|
496
661
|
|
|
497
662
|
/**
|
|
@@ -518,50 +683,170 @@ declare class KptTextarea implements FormValueControl<string> {
|
|
|
518
683
|
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
684
|
}
|
|
520
685
|
|
|
521
|
-
type KptRichTool = 'bold' | 'italic' | 'underline' | 'strike' | 'ul' | 'ol' | 'link' | 'clear';
|
|
686
|
+
type KptRichTool = 'copy' | 'paste' | 'pasteText' | 'heading' | 'bold' | 'italic' | 'underline' | 'strike' | 'ul' | 'ol' | 'foreColor' | 'backColor' | 'alignLeft' | 'alignCenter' | 'alignRight' | 'alignJustify' | 'link' | 'table' | 'clear' | 'html';
|
|
687
|
+
/** Pasek: płaska lista narzędzi lub grupy (sekcje rozdzielone separatorem). */
|
|
688
|
+
type KptRichToolbar = KptRichTool[] | KptRichTool[][];
|
|
522
689
|
/**
|
|
523
|
-
* Lekki edytor tekstu sformatowanego (contenteditable) z konfigurowalnym paskiem
|
|
524
|
-
*
|
|
690
|
+
* Lekki edytor tekstu sformatowanego (contenteditable) z konfigurowalnym paskiem sekcji.
|
|
691
|
+
* Narzędzia: schowek (kopiuj / wklej / wklej bez formatowania), styl (nagłówki H1–H6 / paragraf),
|
|
692
|
+
* bold/italic/underline/strike/ul/ol, kolor tekstu i tła (popover), wyrównania, link, czyszczenie.
|
|
693
|
+
* `toolbar` przyjmuje płaską listę lub grupy (sekcje). Wartość = HTML. Signal Forms.
|
|
694
|
+
* Wymaga stylów overlay CDK (popover kolorów): `import '@angular/cdk/overlay-prebuilt.css';`
|
|
525
695
|
*
|
|
526
696
|
* @example
|
|
527
|
-
* <kpt-rich-text [formField]="f.body"
|
|
697
|
+
* <kpt-rich-text [formField]="f.body" />
|
|
698
|
+
* <kpt-rich-text [(value)]="v" [toolbar]="[['bold','italic'],['ul','ol'],['link']]" />
|
|
528
699
|
*/
|
|
529
700
|
declare class KptRichText implements FormValueControl<string> {
|
|
530
701
|
readonly value: _angular_core.ModelSignal<string>;
|
|
531
|
-
readonly toolbar: _angular_core.InputSignal<
|
|
702
|
+
readonly toolbar: _angular_core.InputSignal<KptRichToolbar>;
|
|
532
703
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
533
704
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
534
705
|
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
535
706
|
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
536
707
|
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
708
|
+
protected readonly swatches: string[];
|
|
537
709
|
private readonly editor;
|
|
710
|
+
private savedRange;
|
|
711
|
+
protected readonly colorOpen: _angular_core.WritableSignal<boolean>;
|
|
712
|
+
protected readonly colorKind: _angular_core.WritableSignal<"foreColor" | "backColor" | "cellBg">;
|
|
713
|
+
protected readonly sourceView: _angular_core.WritableSignal<boolean>;
|
|
714
|
+
protected readonly styleOpen: _angular_core.WritableSignal<boolean>;
|
|
715
|
+
protected readonly tableOpen: _angular_core.WritableSignal<boolean>;
|
|
716
|
+
protected readonly gridR: _angular_core.WritableSignal<number>;
|
|
717
|
+
protected readonly gridC: _angular_core.WritableSignal<number>;
|
|
718
|
+
protected readonly gridRows: number[];
|
|
719
|
+
protected readonly gridCols: number[];
|
|
720
|
+
protected readonly menuOpen: _angular_core.WritableSignal<boolean>;
|
|
721
|
+
protected readonly menuPoint: _angular_core.WritableSignal<{
|
|
722
|
+
x: number;
|
|
723
|
+
y: number;
|
|
724
|
+
}>;
|
|
725
|
+
protected readonly borderOpen: _angular_core.WritableSignal<boolean>;
|
|
726
|
+
protected readonly borderTarget: _angular_core.WritableSignal<"table" | "cell">;
|
|
727
|
+
private ctxCell;
|
|
728
|
+
private resize;
|
|
729
|
+
protected readonly selCount: _angular_core.WritableSignal<number>;
|
|
730
|
+
private selCells;
|
|
731
|
+
private selAnchor;
|
|
732
|
+
private selecting;
|
|
733
|
+
private canSplitCtx;
|
|
734
|
+
protected readonly styleOptions: {
|
|
735
|
+
tag: string;
|
|
736
|
+
label: string;
|
|
737
|
+
}[];
|
|
738
|
+
protected readonly styleLabel: _angular_core.Signal<string>;
|
|
739
|
+
protected readonly activeCmds: _angular_core.WritableSignal<Set<string>>;
|
|
740
|
+
protected readonly currentBlock: _angular_core.WritableSignal<string>;
|
|
741
|
+
protected readonly positions: ConnectedPosition[];
|
|
742
|
+
/** Sekcje paska (normalizacja płaskiej listy do jednej grupy). */
|
|
743
|
+
protected readonly sections: _angular_core.Signal<KptRichTool[][]>;
|
|
538
744
|
constructor();
|
|
539
745
|
protected icon(item: KptRichTool): KptIconName;
|
|
746
|
+
protected aria(item: KptRichTool): string;
|
|
747
|
+
protected isActive(item: KptRichTool): boolean;
|
|
748
|
+
private inEditor;
|
|
749
|
+
private refreshState;
|
|
540
750
|
protected onInput(): void;
|
|
751
|
+
protected onSource(event: Event): void;
|
|
752
|
+
private focusEditor;
|
|
753
|
+
private saveSelection;
|
|
754
|
+
private restoreSelection;
|
|
541
755
|
protected exec(item: KptRichTool): void;
|
|
756
|
+
protected openStyle(): void;
|
|
757
|
+
protected closeStyle(): void;
|
|
758
|
+
protected pickStyle(tag: string): void;
|
|
759
|
+
protected openColor(kind: 'foreColor' | 'backColor'): void;
|
|
760
|
+
protected closeColor(): void;
|
|
761
|
+
protected applyColor(color: string): void;
|
|
762
|
+
protected onColorInput(event: Event): void;
|
|
763
|
+
private pasteRich;
|
|
764
|
+
private pastePlain;
|
|
765
|
+
/** Natywne wklejanie — oczyść (bez śmieci z Worda/WWW). */
|
|
766
|
+
protected onPaste(event: ClipboardEvent): void;
|
|
767
|
+
protected closeTable(): void;
|
|
768
|
+
protected gridHover(r: number, c: number): void;
|
|
769
|
+
protected insertTable(rows: number, cols: number): void;
|
|
770
|
+
protected onContextMenu(event: MouseEvent): void;
|
|
771
|
+
protected closeMenu(): void;
|
|
772
|
+
private ctxTable;
|
|
773
|
+
private afterTableOp;
|
|
774
|
+
protected insertColumn(dir: 'left' | 'right'): void;
|
|
775
|
+
protected deleteColumn(): void;
|
|
776
|
+
protected insertRow(dir: 'above' | 'below'): void;
|
|
777
|
+
protected deleteRow(): void;
|
|
778
|
+
/** Zamień komórki wiersza między `<td>` a `<th>` (wiersz nagłówka). */
|
|
779
|
+
protected toggleHeaderRow(): void;
|
|
780
|
+
/** Zamień komórki kolumny między `<td>` a `<th>` (kolumna nagłówka). */
|
|
781
|
+
protected toggleHeaderColumn(): void;
|
|
782
|
+
private swapCellTag;
|
|
783
|
+
protected deleteTable(): void;
|
|
784
|
+
protected alignCell(a: 'left' | 'center' | 'right'): void;
|
|
785
|
+
/** Komórki objęte operacją: zaznaczenie (jeśli jest) lub bieżąca komórka menu. */
|
|
786
|
+
private activeCells;
|
|
787
|
+
protected openCellBg(): void;
|
|
788
|
+
protected openBorder(): void;
|
|
789
|
+
protected closeBorder(): void;
|
|
790
|
+
private borderCells;
|
|
791
|
+
protected setBorderWidth(w: 'none' | 'thin' | 'medium' | 'thick'): void;
|
|
792
|
+
protected setBorderColor(color: string): void;
|
|
793
|
+
protected onBorderColorInput(event: Event): void;
|
|
794
|
+
private normalizeColWidths;
|
|
795
|
+
protected onEditorMouseDown(event: MouseEvent): void;
|
|
796
|
+
protected onEditorMouseMove(event: MouseEvent): void;
|
|
797
|
+
private onResizeMove;
|
|
798
|
+
private onResizeEnd;
|
|
799
|
+
private buildGrid;
|
|
800
|
+
private selectRegion;
|
|
801
|
+
private clearSelection;
|
|
802
|
+
protected mergeCells(): void;
|
|
803
|
+
protected splitCell(): void;
|
|
804
|
+
/** Komórka w wierszu, przed którą wstawić (pierwsza o origin-col > gridCol), lub null (na koniec). */
|
|
805
|
+
private cellBeforeGridCol;
|
|
806
|
+
protected canMerge(): boolean;
|
|
807
|
+
protected canSplit(): boolean;
|
|
808
|
+
private sanitizeHtml;
|
|
542
809
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptRichText, never>;
|
|
543
810
|
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
811
|
}
|
|
545
812
|
|
|
813
|
+
/** Wartość suwaka: pojedyncza liczba lub para `[min, max]` w trybie `range`. */
|
|
814
|
+
type KptSliderValue = number | [number, number];
|
|
546
815
|
/**
|
|
547
816
|
* Suwak wartości (slider) na Signal Forms.
|
|
817
|
+
* W trybie `range` udostępnia dwa uchwyty, a wartość jest parą `[min, max]`.
|
|
548
818
|
*
|
|
549
819
|
* @example
|
|
550
820
|
* <kpt-slider [formField]="f.volume" [min]="0" [max]="100" [step]="5" showValue />
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
readonly
|
|
555
|
-
|
|
821
|
+
* <kpt-slider range [(value)]="zakres" [min]="0" [max]="100" showValue />
|
|
822
|
+
*/
|
|
823
|
+
declare class KptSlider implements FormValueControl<KptSliderValue> {
|
|
824
|
+
readonly value: _angular_core.ModelSignal<KptSliderValue>;
|
|
825
|
+
/** Tryb zakresu: dwa uchwyty; wartość jako para `[min, max]`. */
|
|
826
|
+
readonly range: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
827
|
+
readonly min: _angular_core.InputSignal<KptSliderValue | undefined>;
|
|
828
|
+
readonly max: _angular_core.InputSignal<KptSliderValue | undefined>;
|
|
556
829
|
readonly step: _angular_core.InputSignal<number>;
|
|
557
830
|
readonly showValue: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
558
831
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
559
832
|
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
560
833
|
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
561
834
|
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
562
|
-
|
|
835
|
+
private toNum;
|
|
836
|
+
protected readonly minN: _angular_core.Signal<number>;
|
|
837
|
+
protected readonly maxN: _angular_core.Signal<number>;
|
|
838
|
+
/** Bieżąca para `[low, high]` — również dla trybu pojedynczego (low = min). */
|
|
839
|
+
private readonly pair;
|
|
840
|
+
protected readonly single: _angular_core.Signal<number>;
|
|
841
|
+
protected readonly low: _angular_core.Signal<number>;
|
|
842
|
+
protected readonly high: _angular_core.Signal<number>;
|
|
843
|
+
protected setLow(v: number): void;
|
|
844
|
+
protected setHigh(v: number): void;
|
|
845
|
+
private pct;
|
|
846
|
+
protected readonly lowPct: _angular_core.Signal<number>;
|
|
847
|
+
protected readonly highPct: _angular_core.Signal<number>;
|
|
563
848
|
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>;
|
|
849
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptSlider, "kpt-slider", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "range": { "alias": "range"; "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
850
|
}
|
|
566
851
|
|
|
567
852
|
/**
|
|
@@ -633,6 +918,8 @@ interface KptDateRangeValue {
|
|
|
633
918
|
start: string;
|
|
634
919
|
end: string;
|
|
635
920
|
}
|
|
921
|
+
/** Granulacja zakresu: same daty, daty z godziną, same godziny. */
|
|
922
|
+
type KptDateRangeMode = 'date' | 'datetime' | 'time';
|
|
636
923
|
interface DayCell {
|
|
637
924
|
day: number;
|
|
638
925
|
iso: string;
|
|
@@ -644,11 +931,14 @@ interface DayCell {
|
|
|
644
931
|
}
|
|
645
932
|
/**
|
|
646
933
|
* Wybór zakresu dat z kalendarzem (CDK Overlay), Signal Forms.
|
|
647
|
-
*
|
|
934
|
+
* `mode`: 'date' (domyślnie), 'datetime' (data+godzina, tarcza zegara), 'time' (sama godzina).
|
|
935
|
+
* Wartość: `{ start, end }` — daty 'RRRR-MM-DD', datetime 'RRRR-MM-DDTHH:mm', godziny 'HH:mm'.
|
|
648
936
|
* Wymaga `import '@angular/cdk/overlay-prebuilt.css';`
|
|
649
937
|
*
|
|
650
938
|
* @example
|
|
651
939
|
* <kpt-date-range [formField]="f.period" />
|
|
940
|
+
* <kpt-date-range mode="datetime" [hourFormat]="12" [(value)]="span" />
|
|
941
|
+
* <kpt-date-range mode="time" [(value)]="hours" />
|
|
652
942
|
*/
|
|
653
943
|
declare class KptDateRange implements FormValueControl<KptDateRangeValue> {
|
|
654
944
|
readonly value: _angular_core.ModelSignal<KptDateRangeValue>;
|
|
@@ -657,22 +947,36 @@ declare class KptDateRange implements FormValueControl<KptDateRangeValue> {
|
|
|
657
947
|
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
658
948
|
readonly touch: _angular_core.OutputEmitterRef<void>;
|
|
659
949
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
950
|
+
readonly displayFormat: _angular_core.InputSignal<"pl" | "iso">;
|
|
951
|
+
readonly mode: _angular_core.InputSignal<KptDateRangeMode>;
|
|
952
|
+
readonly hourFormat: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
953
|
+
readonly minuteStep: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
660
954
|
protected readonly weekdays: string[];
|
|
661
955
|
protected readonly open: _angular_core.WritableSignal<boolean>;
|
|
662
956
|
private readonly today;
|
|
663
957
|
private readonly view;
|
|
958
|
+
protected readonly startTime: _angular_core.WritableSignal<string>;
|
|
959
|
+
protected readonly endTime: _angular_core.WritableSignal<string>;
|
|
960
|
+
protected readonly timeEnd: _angular_core.WritableSignal<"start" | "end">;
|
|
961
|
+
private readonly startDate;
|
|
962
|
+
private readonly endDate;
|
|
664
963
|
protected readonly positions: ConnectedPosition[];
|
|
665
964
|
protected readonly monthLabel: _angular_core.Signal<string>;
|
|
965
|
+
private datePart;
|
|
966
|
+
private timePart;
|
|
967
|
+
private fmtDate;
|
|
968
|
+
private fmtTime;
|
|
666
969
|
protected readonly display: _angular_core.Signal<string>;
|
|
667
970
|
protected readonly weeks: _angular_core.Signal<DayCell[][]>;
|
|
668
971
|
protected toggleOpen(): void;
|
|
669
972
|
protected close(): void;
|
|
670
973
|
protected selectDay(cell: DayCell): void;
|
|
974
|
+
protected commit(): void;
|
|
671
975
|
protected prevMonth(): void;
|
|
672
976
|
protected nextMonth(): void;
|
|
673
977
|
protected clear(event: Event): void;
|
|
674
978
|
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>;
|
|
979
|
+
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; }; "displayFormat": { "alias": "displayFormat"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "hourFormat": { "alias": "hourFormat"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
|
|
676
980
|
}
|
|
677
981
|
|
|
678
982
|
/**
|
|
@@ -858,7 +1162,9 @@ type KptCardVariant = 'elevated' | 'outlined';
|
|
|
858
1162
|
/**
|
|
859
1163
|
* Karta Koncept UI — powierzchnia z wyniesieniem (elevated) lub obramowaniem (outlined).
|
|
860
1164
|
* Opcjonalny nagłówek przez `header`; treść przez projekcję. Stopkę wstaw z atrybutem
|
|
861
|
-
* `kptCardFooter`.
|
|
1165
|
+
* `kptCardFooter`. Dla bogatych układów (media/profil) ustaw `flush` (body bez paddingu)
|
|
1166
|
+
* i użyj reużywalnych klas: `kpt-card__media`, `__lead`, `__title`, `__subtitle`,
|
|
1167
|
+
* `__section`, `__tags`, `__meta`, `__avatar`, `__actions`.
|
|
862
1168
|
*
|
|
863
1169
|
* @example
|
|
864
1170
|
* <kpt-card header="Ustawienia">
|
|
@@ -871,8 +1177,10 @@ declare class KptCard {
|
|
|
871
1177
|
readonly variant: _angular_core.InputSignal<KptCardVariant>;
|
|
872
1178
|
/** Opcjonalny tekst nagłówka. */
|
|
873
1179
|
readonly header: _angular_core.InputSignal<string>;
|
|
1180
|
+
/** Body bez wewnętrznego paddingu — dla układów zarządzających własnymi sekcjami. */
|
|
1181
|
+
readonly flush: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
874
1182
|
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>;
|
|
1183
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptCard, "kpt-card", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "flush": { "alias": "flush"; "required": false; "isSignal": true; }; }, {}, never, ["*", "[kptCardFooter]"], true, never>;
|
|
876
1184
|
}
|
|
877
1185
|
|
|
878
1186
|
type KptDividerOrientation = 'horizontal' | 'vertical';
|
|
@@ -958,8 +1266,10 @@ declare class KptPanel {
|
|
|
958
1266
|
readonly header: _angular_core.InputSignal<string>;
|
|
959
1267
|
readonly toggleable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
960
1268
|
readonly collapsed: _angular_core.ModelSignal<boolean>;
|
|
1269
|
+
readonly animated: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1270
|
+
readonly animationDuration: _angular_core.InputSignal<number>;
|
|
961
1271
|
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>;
|
|
1272
|
+
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; }; "animated": { "alias": "animated"; "required": false; "isSignal": true; }; "animationDuration": { "alias": "animationDuration"; "required": false; "isSignal": true; }; }, { "collapsed": "collapsedChange"; }, never, ["[kptPanelActions]", "*"], true, never>;
|
|
963
1273
|
}
|
|
964
1274
|
|
|
965
1275
|
/**
|
|
@@ -972,8 +1282,10 @@ declare class KptFieldset {
|
|
|
972
1282
|
readonly legend: _angular_core.InputSignal<string>;
|
|
973
1283
|
readonly toggleable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
974
1284
|
readonly collapsed: _angular_core.ModelSignal<boolean>;
|
|
1285
|
+
readonly animated: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1286
|
+
readonly animationDuration: _angular_core.InputSignal<number>;
|
|
975
1287
|
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>;
|
|
1288
|
+
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; }; "animated": { "alias": "animated"; "required": false; "isSignal": true; }; "animationDuration": { "alias": "animationDuration"; "required": false; "isSignal": true; }; }, { "collapsed": "collapsedChange"; }, never, ["*"], true, never>;
|
|
977
1289
|
}
|
|
978
1290
|
|
|
979
1291
|
type KptSplitterOrientation = 'horizontal' | 'vertical';
|
|
@@ -1127,10 +1439,19 @@ declare class KptTab {
|
|
|
1127
1439
|
declare class KptTabs {
|
|
1128
1440
|
protected readonly tabs: _angular_core.Signal<readonly KptTab[]>;
|
|
1129
1441
|
readonly activeIndex: _angular_core.ModelSignal<number>;
|
|
1442
|
+
readonly animated: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1443
|
+
readonly animationDuration: _angular_core.InputSignal<number>;
|
|
1444
|
+
private readonly tabBtns;
|
|
1445
|
+
protected readonly inkX: _angular_core.WritableSignal<number>;
|
|
1446
|
+
protected readonly inkW: _angular_core.WritableSignal<number>;
|
|
1447
|
+
protected readonly direction: _angular_core.WritableSignal<number>;
|
|
1130
1448
|
protected readonly activeTab: _angular_core.Signal<KptTab>;
|
|
1449
|
+
protected readonly activePanels: _angular_core.Signal<KptTab[]>;
|
|
1450
|
+
constructor();
|
|
1451
|
+
protected measureInk(): void;
|
|
1131
1452
|
protected select(index: number): void;
|
|
1132
1453
|
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>;
|
|
1454
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptTabs, "kpt-tabs", never, { "activeIndex": { "alias": "activeIndex"; "required": false; "isSignal": true; }; "animated": { "alias": "animated"; "required": false; "isSignal": true; }; "animationDuration": { "alias": "animationDuration"; "required": false; "isSignal": true; }; }, { "activeIndex": "activeIndexChange"; }, ["tabs"], never, true, never>;
|
|
1134
1455
|
}
|
|
1135
1456
|
|
|
1136
1457
|
/**
|
|
@@ -1141,6 +1462,7 @@ declare class KptAccordionPanel {
|
|
|
1141
1462
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1142
1463
|
readonly expanded: _angular_core.ModelSignal<boolean>;
|
|
1143
1464
|
private readonly accordion;
|
|
1465
|
+
protected readonly animMs: _angular_core.Signal<string>;
|
|
1144
1466
|
protected toggle(): void;
|
|
1145
1467
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptAccordionPanel, never>;
|
|
1146
1468
|
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>;
|
|
@@ -1157,11 +1479,13 @@ declare class KptAccordionPanel {
|
|
|
1157
1479
|
*/
|
|
1158
1480
|
declare class KptAccordion {
|
|
1159
1481
|
readonly multi: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1482
|
+
readonly animated: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1483
|
+
readonly animationDuration: _angular_core.InputSignal<number>;
|
|
1160
1484
|
private readonly panels;
|
|
1161
1485
|
/** Wywoływane przez panel przy otwarciu — zamyka pozostałe, gdy nie `multi`. */
|
|
1162
1486
|
onOpen(opened: KptAccordionPanel): void;
|
|
1163
1487
|
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>;
|
|
1488
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptAccordion, "kpt-accordion", never, { "multi": { "alias": "multi"; "required": false; "isSignal": true; }; "animated": { "alias": "animated"; "required": false; "isSignal": true; }; "animationDuration": { "alias": "animationDuration"; "required": false; "isSignal": true; }; }, {}, ["panels"], ["*"], true, never>;
|
|
1165
1489
|
}
|
|
1166
1490
|
|
|
1167
1491
|
interface KptBreadcrumbItem {
|
|
@@ -1206,12 +1530,16 @@ declare class KptStep {
|
|
|
1206
1530
|
declare class KptStepper {
|
|
1207
1531
|
protected readonly steps: _angular_core.Signal<readonly KptStep[]>;
|
|
1208
1532
|
readonly activeIndex: _angular_core.ModelSignal<number>;
|
|
1533
|
+
readonly animated: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1534
|
+
readonly animationDuration: _angular_core.InputSignal<number>;
|
|
1535
|
+
protected readonly direction: _angular_core.WritableSignal<number>;
|
|
1209
1536
|
protected readonly activeStep: _angular_core.Signal<KptStep>;
|
|
1537
|
+
protected readonly activePanels: _angular_core.Signal<KptStep[]>;
|
|
1210
1538
|
goTo(index: number): void;
|
|
1211
1539
|
next(): void;
|
|
1212
1540
|
prev(): void;
|
|
1213
1541
|
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>;
|
|
1542
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptStepper, "kpt-stepper", never, { "activeIndex": { "alias": "activeIndex"; "required": false; "isSignal": true; }; "animated": { "alias": "animated"; "required": false; "isSignal": true; }; "animationDuration": { "alias": "animationDuration"; "required": false; "isSignal": true; }; }, { "activeIndex": "activeIndexChange"; }, ["steps"], never, true, never>;
|
|
1215
1543
|
}
|
|
1216
1544
|
|
|
1217
1545
|
/**
|
|
@@ -1242,6 +1570,23 @@ declare class KptPaginator {
|
|
|
1242
1570
|
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
1571
|
}
|
|
1244
1572
|
|
|
1573
|
+
/** Rodzaj kontrolki filtra w nagłówku kolumny. */
|
|
1574
|
+
type KptColumnFilterType = 'text' | 'number' | 'select' | 'dateRange' | 'numberRange' | 'slider';
|
|
1575
|
+
interface KptColumnFilter {
|
|
1576
|
+
type: KptColumnFilterType;
|
|
1577
|
+
/** Opcje dla `type: 'select'`. */
|
|
1578
|
+
options?: KptOption<unknown>[];
|
|
1579
|
+
/** Wielokrotny wybór dla `type: 'select'`. */
|
|
1580
|
+
multiple?: boolean;
|
|
1581
|
+
/** Placeholder kontrolki. */
|
|
1582
|
+
placeholder?: string;
|
|
1583
|
+
/** Dolna granica dla `type: 'slider'` (domyślnie 0). */
|
|
1584
|
+
min?: number;
|
|
1585
|
+
/** Górna granica dla `type: 'slider'` (domyślnie 100). */
|
|
1586
|
+
max?: number;
|
|
1587
|
+
/** Krok dla `type: 'slider'` (domyślnie 1). */
|
|
1588
|
+
step?: number;
|
|
1589
|
+
}
|
|
1245
1590
|
interface KptColumn {
|
|
1246
1591
|
/** Nazwa pola w wierszu. */
|
|
1247
1592
|
field: string;
|
|
@@ -1255,6 +1600,8 @@ interface KptColumn {
|
|
|
1255
1600
|
width?: string;
|
|
1256
1601
|
/** Zamrożenie (sticky) — obsługiwane dla wiodących, sąsiadujących kolumn. */
|
|
1257
1602
|
frozen?: boolean;
|
|
1603
|
+
/** Filtr kolumny w wierszu nagłówka (input/number/select/zakres dat). */
|
|
1604
|
+
filter?: KptColumnFilter;
|
|
1258
1605
|
}
|
|
1259
1606
|
type SortDir = 'asc' | 'desc' | null;
|
|
1260
1607
|
/** Stan przekazywany w trybie lazy przy każdej zmianie sortowania/filtra/strony. */
|
|
@@ -1264,6 +1611,8 @@ interface KptTableLazyState {
|
|
|
1264
1611
|
sortField: string | null;
|
|
1265
1612
|
sortDir: SortDir;
|
|
1266
1613
|
filter: string;
|
|
1614
|
+
/** Wartości filtrów per kolumna (pole → wartość kontrolki). */
|
|
1615
|
+
columnFilters: Record<string, unknown>;
|
|
1267
1616
|
}
|
|
1268
1617
|
/**
|
|
1269
1618
|
* Flagowa tabela danych Koncept UI: kolumny konfiguracją, sortowanie,
|
|
@@ -1282,6 +1631,8 @@ declare class KptDataTable<T = Record<string, unknown>> {
|
|
|
1282
1631
|
readonly columns: _angular_core.InputSignal<readonly KptColumn[]>;
|
|
1283
1632
|
readonly data: _angular_core.InputSignal<readonly T[]>;
|
|
1284
1633
|
readonly filterable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1634
|
+
/** Pozycja wiersza filtrów kolumn względem etykiet: nad ('top') lub pod ('bottom'). */
|
|
1635
|
+
readonly filterRowPosition: _angular_core.InputSignal<"bottom" | "top">;
|
|
1285
1636
|
/** Rozmiar strony; 0 wyłącza paginację. */
|
|
1286
1637
|
readonly pageSize: _angular_core.InputSignal<number>;
|
|
1287
1638
|
readonly pageSizeOptions: _angular_core.InputSignal<number[]>;
|
|
@@ -1306,7 +1657,13 @@ declare class KptDataTable<T = Record<string, unknown>> {
|
|
|
1306
1657
|
readonly lazy: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1307
1658
|
/** Łączna liczba rekordów (wymagane w trybie lazy dla paginacji). */
|
|
1308
1659
|
readonly totalRecords: _angular_core.InputSignal<number | null>;
|
|
1660
|
+
/** Rozwijane wiersze: dodaje kolumnę z przełącznikiem i renderuje szablon `kptRowDetail`. */
|
|
1661
|
+
readonly expandable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1662
|
+
/** Zezwala na rozwinięcie wielu wierszy naraz (domyślnie tak). */
|
|
1663
|
+
readonly multiExpand: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1309
1664
|
readonly selection: _angular_core.ModelSignal<T[]>;
|
|
1665
|
+
/** Rozwinięte wiersze (dwukierunkowo). */
|
|
1666
|
+
readonly expandedRows: _angular_core.ModelSignal<T[]>;
|
|
1310
1667
|
readonly rowClick: _angular_core.OutputEmitterRef<T>;
|
|
1311
1668
|
/** Emitowane w trybie lazy przy zmianie sortowania/filtra/strony. */
|
|
1312
1669
|
readonly lazyLoad: _angular_core.OutputEmitterRef<KptTableLazyState>;
|
|
@@ -1316,6 +1673,8 @@ declare class KptDataTable<T = Record<string, unknown>> {
|
|
|
1316
1673
|
protected readonly scrollTop: _angular_core.WritableSignal<number>;
|
|
1317
1674
|
protected readonly viewportHeight: _angular_core.WritableSignal<number>;
|
|
1318
1675
|
private readonly buffer;
|
|
1676
|
+
private readonly theadEl;
|
|
1677
|
+
protected readonly theadOffset: _angular_core.WritableSignal<number>;
|
|
1319
1678
|
constructor();
|
|
1320
1679
|
protected onScroll(event: Event): void;
|
|
1321
1680
|
protected readonly virtualStart: _angular_core.Signal<number>;
|
|
@@ -1324,19 +1683,45 @@ declare class KptDataTable<T = Record<string, unknown>> {
|
|
|
1324
1683
|
protected readonly topPad: _angular_core.Signal<number>;
|
|
1325
1684
|
protected readonly bottomPad: _angular_core.Signal<number>;
|
|
1326
1685
|
protected readonly dragIndex: _angular_core.WritableSignal<number | null>;
|
|
1686
|
+
/** Kolumna przeciągalna tylko gdy `reorderable` i nie jest zamrożona (frozen musi zostać wiodąca). */
|
|
1687
|
+
protected isColDraggable(col: KptColumn): boolean;
|
|
1688
|
+
/** Liczba wiodących kolumn zamrożonych — poza nie wolno upuszczać ani ich przesuwać. */
|
|
1689
|
+
private frozenLeadCount;
|
|
1327
1690
|
protected onColDragStart(index: number, event: DragEvent): void;
|
|
1328
|
-
protected onColDragOver(event: DragEvent): void;
|
|
1691
|
+
protected onColDragOver(index: number, event: DragEvent): void;
|
|
1329
1692
|
protected onColDrop(index: number, event: DragEvent): void;
|
|
1330
1693
|
protected onColDragEnd(): void;
|
|
1331
1694
|
exportCsv(): void;
|
|
1332
1695
|
private readonly cellDefs;
|
|
1333
1696
|
private readonly cellMap;
|
|
1334
1697
|
protected cellTemplate(field: string): TemplateRef<unknown> | null;
|
|
1698
|
+
private readonly rowDetailDef;
|
|
1699
|
+
protected readonly rowDetailTpl: _angular_core.Signal<TemplateRef<any> | null>;
|
|
1700
|
+
/** Kolumna z przełącznikiem widoczna, gdy włączono `expandable` i podano szablon `kptRowDetail`. */
|
|
1701
|
+
protected readonly hasRowDetail: _angular_core.Signal<boolean>;
|
|
1702
|
+
protected isExpanded(row: T): boolean;
|
|
1703
|
+
protected toggleExpand(row: T): void;
|
|
1335
1704
|
protected readonly filterText: _angular_core.WritableSignal<string>;
|
|
1705
|
+
protected readonly columnFilters: _angular_core.WritableSignal<Record<string, unknown>>;
|
|
1336
1706
|
protected readonly sortField: _angular_core.WritableSignal<string | null>;
|
|
1337
1707
|
protected readonly sortDir: _angular_core.WritableSignal<SortDir>;
|
|
1338
1708
|
protected readonly pageIndex: _angular_core.WritableSignal<number>;
|
|
1339
1709
|
protected readonly pageSizeState: _angular_core.WritableSignal<number>;
|
|
1710
|
+
protected readonly hasColumnFilters: _angular_core.Signal<boolean>;
|
|
1711
|
+
protected setColumnFilter(field: string, value: unknown): void;
|
|
1712
|
+
/** Input liczbowy — pozostaw tylko cyfry i zsynchronizuj DOM z wartością. */
|
|
1713
|
+
protected onNumberFilter(field: string, event: Event): void;
|
|
1714
|
+
/** Bieżąca wartość filtra zakresu liczbowego (min/max) dla kolumny. */
|
|
1715
|
+
protected rangeVal(field: string): {
|
|
1716
|
+
min: string;
|
|
1717
|
+
max: string;
|
|
1718
|
+
};
|
|
1719
|
+
/** Aktualizuj jedną granicę zakresu (min/max), pozostawiając tylko cyfry. */
|
|
1720
|
+
protected setRangeFilter(field: string, bound: 'min' | 'max', event: Event): void;
|
|
1721
|
+
/** Bieżąca para `[lo, hi]` filtra suwakowego dla kolumny (domyślnie pełen zakres). */
|
|
1722
|
+
protected sliderVal(col: KptColumn): [number, number];
|
|
1723
|
+
private static toIso;
|
|
1724
|
+
private matchesColumnFilters;
|
|
1340
1725
|
private readonly filtered;
|
|
1341
1726
|
private readonly sorted;
|
|
1342
1727
|
protected readonly filteredCount: _angular_core.Signal<number>;
|
|
@@ -1345,8 +1730,14 @@ declare class KptDataTable<T = Record<string, unknown>> {
|
|
|
1345
1730
|
protected readonly displayCount: _angular_core.Signal<number>;
|
|
1346
1731
|
private parseWidthPx;
|
|
1347
1732
|
/** Mapa pole → przesunięcie left (px) dla wiodących zamrożonych kolumn. */
|
|
1733
|
+
/** Suma szerokości wiodących kolumn systemowych (rozwijanie + zaznaczanie) w px. */
|
|
1734
|
+
private readonly leadingStickyWidth;
|
|
1348
1735
|
private readonly frozenOffsets;
|
|
1349
1736
|
protected readonly hasFrozen: _angular_core.Signal<boolean>;
|
|
1737
|
+
/** Sticky-left kolumny rozwijania (px) — 0, gdy tabela ma kolumny zamrożone. */
|
|
1738
|
+
protected readonly expanderStickyLeft: _angular_core.Signal<0 | null>;
|
|
1739
|
+
/** Sticky-left kolumny zaznaczania (px) — za kolumną rozwijania, jeśli obecna. */
|
|
1740
|
+
protected readonly checkboxStickyLeft: _angular_core.Signal<number | null>;
|
|
1350
1741
|
protected frozenLeft(field: string): number | null;
|
|
1351
1742
|
protected isFrozen(field: string): boolean;
|
|
1352
1743
|
protected toggleSort(col: KptColumn): void;
|
|
@@ -1357,12 +1748,13 @@ declare class KptDataTable<T = Record<string, unknown>> {
|
|
|
1357
1748
|
protected isSelected(row: T): boolean;
|
|
1358
1749
|
protected toggleRow(row: T): void;
|
|
1359
1750
|
protected readonly pageAllSelected: _angular_core.Signal<boolean>;
|
|
1751
|
+
protected readonly pageSomeSelected: _angular_core.Signal<boolean>;
|
|
1360
1752
|
protected toggleAllOnPage(): void;
|
|
1361
1753
|
protected onRowClick(row: T): void;
|
|
1362
1754
|
protected getValue(row: T, field: string): unknown;
|
|
1363
1755
|
protected trackRow: (row: T) => unknown;
|
|
1364
1756
|
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>;
|
|
1757
|
+
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; }; "filterRowPosition": { "alias": "filterRowPosition"; "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; }; "expandable": { "alias": "expandable"; "required": false; "isSignal": true; }; "multiExpand": { "alias": "multiExpand"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; "isSignal": true; }; "expandedRows": { "alias": "expandedRows"; "required": false; "isSignal": true; }; }, { "selection": "selectionChange"; "expandedRows": "expandedRowsChange"; "rowClick": "rowClick"; "lazyLoad": "lazyLoad"; }, ["cellDefs", "rowDetailDef"], never, true, never>;
|
|
1366
1758
|
}
|
|
1367
1759
|
|
|
1368
1760
|
/**
|
|
@@ -1384,6 +1776,23 @@ declare class KptCellDef {
|
|
|
1384
1776
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KptCellDef, "ng-template[kptCell]", never, { "kptCell": { "alias": "kptCell"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1385
1777
|
}
|
|
1386
1778
|
|
|
1779
|
+
/**
|
|
1780
|
+
* Szablon rozwijanego wiersza (row detail) dla `kpt-data-table`. Renderowany pod
|
|
1781
|
+
* wierszem po rozwinięciu. Kontekst: `$implicit` = wiersz. Wymaga `expandable`.
|
|
1782
|
+
*
|
|
1783
|
+
* @example
|
|
1784
|
+
* <kpt-data-table [columns]="cols" [data]="rows" expandable>
|
|
1785
|
+
* <ng-template kptRowDetail let-row>
|
|
1786
|
+
* <div class="szczegoly">{{ row.opis }}</div>
|
|
1787
|
+
* </ng-template>
|
|
1788
|
+
* </kpt-data-table>
|
|
1789
|
+
*/
|
|
1790
|
+
declare class KptRowDetailDef {
|
|
1791
|
+
readonly template: TemplateRef<any>;
|
|
1792
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptRowDetailDef, never>;
|
|
1793
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KptRowDetailDef, "ng-template[kptRowDetail]", never, {}, {}, never, never, true, never>;
|
|
1794
|
+
}
|
|
1795
|
+
|
|
1387
1796
|
interface KptTreeNode<T = unknown> {
|
|
1388
1797
|
label: string;
|
|
1389
1798
|
value?: T;
|
|
@@ -1737,6 +2146,9 @@ declare class KptContextMenu<T = unknown> {
|
|
|
1737
2146
|
|
|
1738
2147
|
/**
|
|
1739
2148
|
* Pozioma belka menu z rozwijanymi pod-menu. Pozycje bez `items` działają jak akcje/linki.
|
|
2149
|
+
* Pod-menu renderowane przez CDK Overlay (doczepiane do `body`), więc nie są przycinane
|
|
2150
|
+
* przez rodzica z `overflow: hidden`. Wymaga stylów overlay CDK:
|
|
2151
|
+
* `import '@angular/cdk/overlay-prebuilt.css';`
|
|
1740
2152
|
*
|
|
1741
2153
|
* @example
|
|
1742
2154
|
* <kpt-menubar [items]="items" (select)="onSelect($event)" />
|
|
@@ -1745,6 +2157,7 @@ declare class KptMenubar<T = unknown> {
|
|
|
1745
2157
|
readonly items: _angular_core.InputSignal<KptMenuItem<T>[]>;
|
|
1746
2158
|
readonly select: _angular_core.OutputEmitterRef<KptMenuItem<T>>;
|
|
1747
2159
|
protected readonly openIndex: _angular_core.WritableSignal<number | null>;
|
|
2160
|
+
protected readonly positions: ConnectedPosition[];
|
|
1748
2161
|
protected toggle(i: number, item: KptMenuItem<T>): void;
|
|
1749
2162
|
protected pick(item: KptMenuItem<T>): void;
|
|
1750
2163
|
protected closeAll(): void;
|
|
@@ -1755,6 +2168,9 @@ declare class KptMenubar<T = unknown> {
|
|
|
1755
2168
|
/**
|
|
1756
2169
|
* Mega-menu — pozioma belka z szerokim, wielokolumnowym panelem.
|
|
1757
2170
|
* Struktura: pozycja górna → `items` (kolumny) → każda kolumna `items` (odnośniki).
|
|
2171
|
+
* Panel renderowany przez CDK Overlay (doczepiony do `body`), więc nie jest przycinany
|
|
2172
|
+
* przez rodzica z `overflow: hidden`. Wymaga stylów overlay CDK:
|
|
2173
|
+
* `import '@angular/cdk/overlay-prebuilt.css';`
|
|
1758
2174
|
*
|
|
1759
2175
|
* @example
|
|
1760
2176
|
* <kpt-megamenu [items]="items" (select)="onSelect($event)" />
|
|
@@ -1763,6 +2179,7 @@ declare class KptMegamenu<T = unknown> {
|
|
|
1763
2179
|
readonly items: _angular_core.InputSignal<KptMenuItem<T>[]>;
|
|
1764
2180
|
readonly select: _angular_core.OutputEmitterRef<KptMenuItem<T>>;
|
|
1765
2181
|
protected readonly openIndex: _angular_core.WritableSignal<number | null>;
|
|
2182
|
+
protected readonly positions: ConnectedPosition[];
|
|
1766
2183
|
protected activeColumns(): KptMenuItem<T>[];
|
|
1767
2184
|
protected toggle(i: number): void;
|
|
1768
2185
|
protected pick(link: KptMenuItem<T>): void;
|
|
@@ -1854,5 +2271,5 @@ declare class KptSpeedDial<T = unknown> {
|
|
|
1854
2271
|
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
2272
|
}
|
|
1856
2273
|
|
|
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 };
|
|
2274
|
+
export { KptAccordion, KptAccordionPanel, KptAlert, KptAppShell, KptAutocomplete, KptAvatar, KptAvatarGroup, KptBadge, KptBottomSheet, KptBreadcrumb, KptButton, KptButtonGroup, KptCard, KptCarousel, KptCellDef, KptCheckbox, KptChip, KptChipsInput, KptClock, 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, KptRowDetailDef, KptScrollTop, KptSelect, KptSidenav, KptSkeleton, KptSlider, KptSpeedDial, KptSpinner, KptSplitButton, KptSplitter, KptStep, KptStepper, KptSwitch, KptSwitchGroup, KptTab, KptTabs, KptTextarea, KptTimeline, KptToastContainer, KptToastService, KptToolbar, KptTooltip, KptTree };
|
|
2275
|
+
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, KptRichToolbar, KptSidenavMode, KptSkeletonVariant, KptSliderValue, KptSpeedDialDirection, KptSplitterOrientation, KptTableLazyState, KptTimelineItem, KptToast, KptToastOptions, KptTooltipPosition, KptTreeNode };
|