@konce-pt/angular 0.7.9 → 0.7.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +63 -0
- package/fesm2022/konce-pt-angular-charts.mjs +8 -8
- package/fesm2022/konce-pt-angular-charts.mjs.map +1 -1
- package/fesm2022/konce-pt-angular.mjs +1680 -587
- package/fesm2022/konce-pt-angular.mjs.map +1 -1
- package/package.json +1 -1
- package/src/lib/auth/llms.txt +104 -0
- package/src/lib/context-menu/llms.txt +2 -2
- package/src/lib/i18n/llms.txt +2 -2
- package/src/lib/input/llms.txt +2 -0
- package/src/lib/megamenu/llms.txt +1 -1
- package/src/lib/menu/llms.txt +2 -2
- package/src/lib/menubar/llms.txt +2 -2
- package/src/lib/password/llms.txt +3 -0
- package/src/lib/rich-text/llms.txt +20 -1
- package/src/lib/speed-dial/llms.txt +2 -2
- package/src/lib/split-button/llms.txt +2 -2
- package/types/konce-pt-angular.d.ts +367 -38
- package/types/konce-pt-angular.d.ts.map +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { InjectionToken, Signal, EnvironmentProviders, TemplateRef, OnDestroy } from '@angular/core';
|
|
3
|
+
import * as _angular_forms_signals from '@angular/forms/signals';
|
|
3
4
|
import { FormValueControl, WithOptionalFieldTree, ValidationError, FormCheckboxControl } from '@angular/forms/signals';
|
|
4
5
|
import { ConnectedPosition } from '@angular/cdk/overlay';
|
|
5
6
|
import * as _konce_pt_angular from '@konce-pt/angular';
|
|
@@ -359,6 +360,8 @@ interface KptMessages {
|
|
|
359
360
|
strike: string;
|
|
360
361
|
ul: string;
|
|
361
362
|
ol: string;
|
|
363
|
+
indent: string;
|
|
364
|
+
outdent: string;
|
|
362
365
|
foreColor: string;
|
|
363
366
|
backColor: string;
|
|
364
367
|
alignLeft: string;
|
|
@@ -410,6 +413,49 @@ interface KptMessages {
|
|
|
410
413
|
customColor: string;
|
|
411
414
|
};
|
|
412
415
|
};
|
|
416
|
+
/** Ekran uwierzytelniania (kpt-auth). */
|
|
417
|
+
auth: {
|
|
418
|
+
signInTitle: string;
|
|
419
|
+
signInSubtitle: string;
|
|
420
|
+
signUpTitle: string;
|
|
421
|
+
signUpSubtitle: string;
|
|
422
|
+
forgotTitle: string;
|
|
423
|
+
forgotSubtitle: string;
|
|
424
|
+
name: string;
|
|
425
|
+
email: string;
|
|
426
|
+
emailPlaceholder: string;
|
|
427
|
+
password: string;
|
|
428
|
+
/** Interpolacja: {min} — minimalna długość hasła. */
|
|
429
|
+
passwordHint: string;
|
|
430
|
+
confirmPassword: string;
|
|
431
|
+
remember: string;
|
|
432
|
+
terms: string;
|
|
433
|
+
forgotLink: string;
|
|
434
|
+
backToSignIn: string;
|
|
435
|
+
signInSubmit: string;
|
|
436
|
+
signUpSubmit: string;
|
|
437
|
+
resetSubmit: string;
|
|
438
|
+
orContinueWith: string;
|
|
439
|
+
/** Interpolacja: {provider} — nazwa dostawcy (etykieta przycisku). */
|
|
440
|
+
continueWith: string;
|
|
441
|
+
noAccount: string;
|
|
442
|
+
haveAccount: string;
|
|
443
|
+
signInSwitch: string;
|
|
444
|
+
signUpSwitch: string;
|
|
445
|
+
errorRequired: string;
|
|
446
|
+
errorEmail: string;
|
|
447
|
+
/** Interpolacja: {min}. */
|
|
448
|
+
errorMinLength: string;
|
|
449
|
+
errorMismatch: string;
|
|
450
|
+
errorInvalid: string;
|
|
451
|
+
/** Treść panelu promocyjnego — zachęca do trybu przeciwnego niż bieżący. */
|
|
452
|
+
promo: {
|
|
453
|
+
signInTitle: string;
|
|
454
|
+
signInText: string;
|
|
455
|
+
signUpTitle: string;
|
|
456
|
+
signUpText: string;
|
|
457
|
+
};
|
|
458
|
+
};
|
|
413
459
|
}
|
|
414
460
|
declare const KPT_MESSAGES_EN: KptMessages;
|
|
415
461
|
declare const KPT_MESSAGES_PL: KptMessages;
|
|
@@ -526,20 +572,20 @@ interface KptMenuItem<T = unknown> {
|
|
|
526
572
|
* Wymaga stylów overlay CDK: `import '@angular/cdk/overlay-prebuilt.css';`
|
|
527
573
|
*
|
|
528
574
|
* @example
|
|
529
|
-
* <kpt-menu [items]="items" (
|
|
575
|
+
* <kpt-menu [items]="items" (selected)="onSelect($event)">
|
|
530
576
|
* <kpt-button variant="outline">Opcje</kpt-button>
|
|
531
577
|
* </kpt-menu>
|
|
532
578
|
*/
|
|
533
579
|
declare class KptMenu<T = unknown> {
|
|
534
580
|
readonly items: _angular_core.InputSignal<KptMenuItem<T>[]>;
|
|
535
|
-
readonly
|
|
581
|
+
readonly selected: _angular_core.OutputEmitterRef<KptMenuItem<T>>;
|
|
536
582
|
protected readonly open: _angular_core.WritableSignal<boolean>;
|
|
537
583
|
protected readonly positions: ConnectedPosition[];
|
|
538
584
|
protected toggle(): void;
|
|
539
585
|
protected close(): void;
|
|
540
586
|
protected pick(item: KptMenuItem<T>): void;
|
|
541
587
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptMenu<any>, never>;
|
|
542
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptMenu<any>, "kpt-menu", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, { "
|
|
588
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptMenu<any>, "kpt-menu", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, { "selected": "selected"; }, never, ["*"], true, never>;
|
|
543
589
|
}
|
|
544
590
|
|
|
545
591
|
/**
|
|
@@ -547,20 +593,20 @@ declare class KptMenu<T = unknown> {
|
|
|
547
593
|
* Wymaga `import '@angular/cdk/overlay-prebuilt.css';`
|
|
548
594
|
*
|
|
549
595
|
* @example
|
|
550
|
-
* <kpt-split-button [items]="items" (primaryClick)="save()" (
|
|
596
|
+
* <kpt-split-button [items]="items" (primaryClick)="save()" (selected)="onItem($event)">Zapisz</kpt-split-button>
|
|
551
597
|
*/
|
|
552
598
|
declare class KptSplitButton<T = unknown> {
|
|
553
599
|
readonly variant: _angular_core.InputSignal<KptButtonVariant>;
|
|
554
600
|
readonly items: _angular_core.InputSignal<KptMenuItem<T>[]>;
|
|
555
601
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
556
602
|
readonly primaryClick: _angular_core.OutputEmitterRef<void>;
|
|
557
|
-
readonly
|
|
603
|
+
readonly selected: _angular_core.OutputEmitterRef<KptMenuItem<T>>;
|
|
558
604
|
protected readonly i18n: KptI18n;
|
|
559
605
|
protected readonly open: _angular_core.WritableSignal<boolean>;
|
|
560
606
|
protected readonly positions: ConnectedPosition[];
|
|
561
607
|
protected pick(item: KptMenuItem<T>): void;
|
|
562
608
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptSplitButton<any>, never>;
|
|
563
|
-
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"; "
|
|
609
|
+
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"; "selected": "selected"; }, never, ["*"], true, never>;
|
|
564
610
|
}
|
|
565
611
|
|
|
566
612
|
/**
|
|
@@ -619,7 +665,7 @@ declare class KptIconRegistry {
|
|
|
619
665
|
*/
|
|
620
666
|
declare function renderKptIconSvg(inner: string | undefined, cssClass?: string): string;
|
|
621
667
|
|
|
622
|
-
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' | 'mail' | 'share' | 'external-link' | 'crosshair' | 'adjustments-horizontal';
|
|
668
|
+
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' | 'indent-increase' | 'indent-decrease' | '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' | 'mail' | 'share' | 'external-link' | 'crosshair' | 'adjustments-horizontal';
|
|
623
669
|
|
|
624
670
|
/** Nazwa breakpointa z tokenów `--kpt-breakpoint-*` (mobile-first). */
|
|
625
671
|
type KptBreakpoint = 'sm' | 'md' | 'lg' | 'xl' | '2xl';
|
|
@@ -884,9 +930,11 @@ declare class KptInput implements FormValueControl<string> {
|
|
|
884
930
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
885
931
|
readonly id: _angular_core.InputSignal<string>;
|
|
886
932
|
readonly ariaLabel: _angular_core.InputSignal<string | null>;
|
|
933
|
+
/** Podpowiedź autouzupełniania dla przeglądarki i menedżera haseł (np. 'email', 'current-password'). */
|
|
934
|
+
readonly autocomplete: _angular_core.InputSignal<string | null>;
|
|
887
935
|
protected onInput(event: Event): void;
|
|
888
936
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptInput, never>;
|
|
889
|
-
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>;
|
|
937
|
+
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; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "touch": "touch"; }, never, never, true, never>;
|
|
890
938
|
}
|
|
891
939
|
|
|
892
940
|
/**
|
|
@@ -1155,7 +1203,17 @@ declare class KptDatepicker implements FormValueControl<string> {
|
|
|
1155
1203
|
private formatTime;
|
|
1156
1204
|
/** Etykieta czasu na pasku trybu datetime (uwzględnia AM/PM). */
|
|
1157
1205
|
protected readonly timeBarLabel: _angular_core.Signal<string>;
|
|
1206
|
+
/**
|
|
1207
|
+
* Tekst w triggerze. Każdy tryb ma własny format wartości, więc `display` tylko rozdziela
|
|
1208
|
+
* robotę — formatowanie siedzi w metodach `display*` niżej. Wartość niepasująca do formatu
|
|
1209
|
+
* trybu daje pusty string (trigger nie pokazuje śmieci, np. po ręcznej podmianie modelu).
|
|
1210
|
+
*/
|
|
1158
1211
|
protected readonly display: _angular_core.Signal<string>;
|
|
1212
|
+
private displayMonthYear;
|
|
1213
|
+
private displayMonth;
|
|
1214
|
+
private displayTime;
|
|
1215
|
+
private displayDateTime;
|
|
1216
|
+
private displayDate;
|
|
1159
1217
|
private readonly selectedDateIso;
|
|
1160
1218
|
protected readonly weeks: _angular_core.Signal<DayCell$1[][]>;
|
|
1161
1219
|
/** Rok/miesiąc bieżącej wartości — zaznaczenie w siatkach wyższych poziomów. */
|
|
@@ -1226,7 +1284,11 @@ declare class KptClock {
|
|
|
1226
1284
|
protected readonly hourLabel: _angular_core.Signal<string>;
|
|
1227
1285
|
protected readonly minuteLabel: _angular_core.Signal<string>;
|
|
1228
1286
|
private from12h;
|
|
1287
|
+
/** W 12h jeden pierścień; w 24h zewnętrzny (12, 1–11) i wewnętrzny (00, 13–23). */
|
|
1229
1288
|
protected readonly hourMarks: _angular_core.Signal<ClockMark[]>;
|
|
1289
|
+
private marks12h;
|
|
1290
|
+
private marks24hOuter;
|
|
1291
|
+
private marks24hInner;
|
|
1230
1292
|
protected readonly minuteMarks: _angular_core.Signal<ClockMark[]>;
|
|
1231
1293
|
protected readonly handAngle: _angular_core.Signal<number>;
|
|
1232
1294
|
protected readonly handInner: _angular_core.Signal<boolean>;
|
|
@@ -1235,6 +1297,10 @@ declare class KptClock {
|
|
|
1235
1297
|
protected pickHour(mark: ClockMark): void;
|
|
1236
1298
|
protected pickMinute(mark: ClockMark): void;
|
|
1237
1299
|
protected onDialPointer(event: PointerEvent, face: HTMLElement): void;
|
|
1300
|
+
/** Godzina z kąta; w 24h o pierścieniu (a więc o 12–23 vs 0–11) decyduje promień kliknięcia. */
|
|
1301
|
+
private setHourFromAngle;
|
|
1302
|
+
/** Minuta z kąta, dociągnięta do `minuteStep`. */
|
|
1303
|
+
private setMinuteFromAngle;
|
|
1238
1304
|
protected onDialUp(): void;
|
|
1239
1305
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptClock, never>;
|
|
1240
1306
|
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>;
|
|
@@ -1266,7 +1332,7 @@ declare class KptTextarea implements FormValueControl<string> {
|
|
|
1266
1332
|
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>;
|
|
1267
1333
|
}
|
|
1268
1334
|
|
|
1269
|
-
type KptRichTool = 'copy' | 'paste' | 'pasteText' | 'heading' | 'bold' | 'italic' | 'underline' | 'strike' | 'ul' | 'ol' | 'foreColor' | 'backColor' | 'alignLeft' | 'alignCenter' | 'alignRight' | 'alignJustify' | 'link' | 'table' | 'clear' | 'html';
|
|
1335
|
+
type KptRichTool = 'copy' | 'paste' | 'pasteText' | 'heading' | 'bold' | 'italic' | 'underline' | 'strike' | 'ul' | 'ol' | 'indent' | 'outdent' | 'foreColor' | 'backColor' | 'alignLeft' | 'alignCenter' | 'alignRight' | 'alignJustify' | 'link' | 'table' | 'clear' | 'html';
|
|
1270
1336
|
/** Pasek: płaska lista narzędzi lub grupy (sekcje rozdzielone separatorem). */
|
|
1271
1337
|
type KptRichToolbar = KptRichTool[] | KptRichTool[][];
|
|
1272
1338
|
/**
|
|
@@ -1284,6 +1350,8 @@ declare class KptRichText implements FormValueControl<string> {
|
|
|
1284
1350
|
readonly value: _angular_core.ModelSignal<string>;
|
|
1285
1351
|
readonly toolbar: _angular_core.InputSignal<KptRichToolbar>;
|
|
1286
1352
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
1353
|
+
/** Maksymalna głębokość zagnieżdżenia list (Tab / „Dodaj wcięcie"). */
|
|
1354
|
+
readonly maxListLevel: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
1287
1355
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1288
1356
|
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1289
1357
|
readonly touched: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
@@ -1323,6 +1391,8 @@ declare class KptRichText implements FormValueControl<string> {
|
|
|
1323
1391
|
}[]>;
|
|
1324
1392
|
protected readonly styleLabel: _angular_core.Signal<string>;
|
|
1325
1393
|
protected readonly activeCmds: _angular_core.WritableSignal<Set<string>>;
|
|
1394
|
+
protected readonly canIndent: _angular_core.WritableSignal<boolean>;
|
|
1395
|
+
protected readonly canOutdent: _angular_core.WritableSignal<boolean>;
|
|
1326
1396
|
protected readonly currentBlock: _angular_core.WritableSignal<string>;
|
|
1327
1397
|
protected readonly positions: ConnectedPosition[];
|
|
1328
1398
|
/** Sekcje paska (normalizacja płaskiej listy do jednej grupy). */
|
|
@@ -1331,7 +1401,23 @@ declare class KptRichText implements FormValueControl<string> {
|
|
|
1331
1401
|
protected icon(item: KptRichTool): KptIconName;
|
|
1332
1402
|
protected aria(item: KptRichTool): string;
|
|
1333
1403
|
protected isActive(item: KptRichTool): boolean;
|
|
1404
|
+
/** `aria-pressed` tylko dla przełączników — wcięcia są akcjami, nie stanem. */
|
|
1405
|
+
protected pressed(item: KptRichTool): boolean | null;
|
|
1406
|
+
/** Wcięcia są aktywne wyłącznie tam, gdzie faktycznie coś zrobią (kursor w liście). */
|
|
1407
|
+
protected enabled(item: KptRichTool): boolean;
|
|
1334
1408
|
private inEditor;
|
|
1409
|
+
/**
|
|
1410
|
+
* Jedyne wywołanie `document.execCommand` w komponencie. API jest formalnie deprecated, ale nie
|
|
1411
|
+
* ma zamiennika: to jedyny sposób formatowania, który trafia do natywnego stosu undo przeglądarki
|
|
1412
|
+
* (Ctrl+Z). Własna implementacja komend wymagałaby własnej historii — czyli przepisania edytora.
|
|
1413
|
+
*/
|
|
1414
|
+
private legacyExec;
|
|
1415
|
+
/** Stan komendy dla podświetlenia narzędzi; nieobsługiwana komenda → `false`. */
|
|
1416
|
+
private legacyState;
|
|
1417
|
+
/** Komendy aktywne dla bieżącego zaznaczenia (podświetlenie narzędzi). */
|
|
1418
|
+
private activeCommands;
|
|
1419
|
+
/** Tag bloku, w którym stoi kursor (dla selecta stylu); domyślnie paragraf. */
|
|
1420
|
+
private blockTag;
|
|
1335
1421
|
private refreshState;
|
|
1336
1422
|
protected onInput(): void;
|
|
1337
1423
|
protected onSource(event: Event): void;
|
|
@@ -1339,6 +1425,33 @@ declare class KptRichText implements FormValueControl<string> {
|
|
|
1339
1425
|
private saveSelection;
|
|
1340
1426
|
private restoreSelection;
|
|
1341
1427
|
protected exec(item: KptRichTool): void;
|
|
1428
|
+
/** Najbliższy punkt listy zawierający węzeł (tylko wewnątrz edytora). */
|
|
1429
|
+
private closestItem;
|
|
1430
|
+
/** Poziom punktu w obrębie edytora (1 = najwyższy). */
|
|
1431
|
+
private level;
|
|
1432
|
+
/** Najgłębszy poziom w poddrzewie punktu — wcięcie przenosi podpunkty razem z rodzicem. */
|
|
1433
|
+
private deepest;
|
|
1434
|
+
private canIndentItem;
|
|
1435
|
+
private canOutdentItem;
|
|
1436
|
+
/**
|
|
1437
|
+
* Punkty listy objęte zaznaczeniem. Przy zaznaczeniu wielu punktów operujemy na ich wspólnym
|
|
1438
|
+
* poziomie zagnieżdżenia — inaczej podpunkt dostałby wcięcie dwa razy (raz sam, raz z rodzicem).
|
|
1439
|
+
*/
|
|
1440
|
+
private listItems;
|
|
1441
|
+
/** Zagnieżdża punkt w podliście poprzedniego punktu (poprawne `li > ul > li`). */
|
|
1442
|
+
private indentItem;
|
|
1443
|
+
/** Wyciąga punkt poziom wyżej; rodzeństwo po nim trafia do jego podlisty (kolejność bez zmian). */
|
|
1444
|
+
private outdentItem;
|
|
1445
|
+
/** Zwraca `true`, gdy DOM faktycznie się zmienił — od tego zależy `preventDefault()` dla Taba. */
|
|
1446
|
+
private shiftItems;
|
|
1447
|
+
/**
|
|
1448
|
+
* Tab: wcięcie w liście, przeskok komórki w tabeli (lista w komórce ma pierwszeństwo; gdy nie da
|
|
1449
|
+
* się już wciąć — przechodzimy do sąsiedniej komórki). Poza nimi i na krawędziach zostawiamy Tab
|
|
1450
|
+
* natywny — inaczej edytor byłby pułapką klawiaturową (WCAG 2.1.2).
|
|
1451
|
+
*/
|
|
1452
|
+
protected onKeydown(event: KeyboardEvent): void;
|
|
1453
|
+
/** Przeskok do sąsiedniej komórki z zaznaczeniem jej treści; `false` = koniec tabeli. */
|
|
1454
|
+
private moveCell;
|
|
1342
1455
|
protected openStyle(): void;
|
|
1343
1456
|
protected closeStyle(): void;
|
|
1344
1457
|
protected pickStyle(tag: string): void;
|
|
@@ -1346,6 +1459,8 @@ declare class KptRichText implements FormValueControl<string> {
|
|
|
1346
1459
|
protected closeColor(): void;
|
|
1347
1460
|
protected applyColor(color: string): void;
|
|
1348
1461
|
protected onColorInput(event: Event): void;
|
|
1462
|
+
/** Kopiowanie przez async Clipboard API (jak wklejanie); fallback na starą komendę. */
|
|
1463
|
+
private copySelection;
|
|
1349
1464
|
private pasteRich;
|
|
1350
1465
|
private pastePlain;
|
|
1351
1466
|
/** Natywne wklejanie — oczyść (bez śmieci z Worda/WWW). */
|
|
@@ -1383,6 +1498,10 @@ declare class KptRichText implements FormValueControl<string> {
|
|
|
1383
1498
|
private onResizeMove;
|
|
1384
1499
|
private onResizeEnd;
|
|
1385
1500
|
private buildGrid;
|
|
1501
|
+
/** Jeden przebieg rozszerzania granic o komórki wystające poza region; `true` = coś się zmieniło. */
|
|
1502
|
+
private growBounds;
|
|
1503
|
+
/** Komórki leżące w prostokącie siatki (scalone trafiają raz — to `Set`). */
|
|
1504
|
+
private cellsInRegion;
|
|
1386
1505
|
private selectRegion;
|
|
1387
1506
|
private clearSelection;
|
|
1388
1507
|
protected mergeCells(): void;
|
|
@@ -1398,8 +1517,13 @@ declare class KptRichText implements FormValueControl<string> {
|
|
|
1398
1517
|
*/
|
|
1399
1518
|
private sanitizeUrl;
|
|
1400
1519
|
private sanitizeHtml;
|
|
1520
|
+
/** Tag spoza allowlisty rozwijamy do dzieci; atrybuty czyścimy po kolei. */
|
|
1521
|
+
private sanitizeElement;
|
|
1522
|
+
private sanitizeAttribute;
|
|
1523
|
+
/** Deklaracje `style` z allowlisty; `null`, gdy nie zostaje nic. */
|
|
1524
|
+
private sanitizeStyleAttr;
|
|
1401
1525
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptRichText, never>;
|
|
1402
|
-
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>;
|
|
1526
|
+
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; }; "maxListLevel": { "alias": "maxListLevel"; "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>;
|
|
1403
1527
|
}
|
|
1404
1528
|
|
|
1405
1529
|
/** Wartość suwaka: pojedyncza liczba lub para `[min, max]` w trybie `range`. */
|
|
@@ -1660,6 +1784,13 @@ interface Strength {
|
|
|
1660
1784
|
declare class KptPassword implements FormValueControl<string> {
|
|
1661
1785
|
readonly value: _angular_core.ModelSignal<string>;
|
|
1662
1786
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
1787
|
+
/** Id natywnego pola — pozwala związać etykietę przez `kpt-form-field [controlId]`. */
|
|
1788
|
+
readonly id: _angular_core.InputSignal<string>;
|
|
1789
|
+
/**
|
|
1790
|
+
* Podpowiedź autouzupełniania. Rejestracja i reset hasła wymagają `new-password` — inaczej
|
|
1791
|
+
* menedżer haseł podstawia stare hasło zamiast zaproponować nowe.
|
|
1792
|
+
*/
|
|
1793
|
+
readonly autocomplete: _angular_core.InputSignal<string | null>;
|
|
1663
1794
|
readonly feedback: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1664
1795
|
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1665
1796
|
readonly invalid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
@@ -1671,7 +1802,7 @@ declare class KptPassword implements FormValueControl<string> {
|
|
|
1671
1802
|
protected readonly visible: _angular_core.WritableSignal<boolean>;
|
|
1672
1803
|
protected readonly strength: _angular_core.Signal<Strength>;
|
|
1673
1804
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptPassword, never>;
|
|
1674
|
-
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>;
|
|
1805
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptPassword, "kpt-password", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "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>;
|
|
1675
1806
|
}
|
|
1676
1807
|
|
|
1677
1808
|
/**
|
|
@@ -2018,6 +2149,202 @@ declare class KptShellNavToggle {
|
|
|
2018
2149
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KptShellNavToggle, "[kptShellNavToggle]", never, { "label": { "alias": "kptShellNavToggle"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2019
2150
|
}
|
|
2020
2151
|
|
|
2152
|
+
/** Tryb ekranu — logowanie, rejestracja, odzyskiwanie hasła. */
|
|
2153
|
+
type KptAuthMode = 'signIn' | 'signUp' | 'forgot';
|
|
2154
|
+
/**
|
|
2155
|
+
* Układ ekranu:
|
|
2156
|
+
* - `slider` — panel promo przesuwa się nad formularzami przy zmianie trybu,
|
|
2157
|
+
* - `split` — panel promo stoi w miejscu, zmienia się tylko formularz.
|
|
2158
|
+
*/
|
|
2159
|
+
type KptAuthLayout = 'slider' | 'split';
|
|
2160
|
+
/** Układ przycisków dostawców: pełnowymiarowa lista albo siatka ikon z podpisami. */
|
|
2161
|
+
type KptAuthProviderLayout = 'list' | 'grid';
|
|
2162
|
+
/** Dostawca logowania zewnętrznego (OAuth/SSO/dowolny własny). */
|
|
2163
|
+
interface KptAuthProvider {
|
|
2164
|
+
/** Identyfikator zwracany w `providerSelect` i wiążący własny szablon `kptAuthProvider`. */
|
|
2165
|
+
id: string;
|
|
2166
|
+
/** Widoczna etykieta — jednocześnie nazwa dostępna przycisku. */
|
|
2167
|
+
label: string;
|
|
2168
|
+
/** Nazwa ikony z rejestru `kpt-icon` (np. `brand-google` z pełnego zestawu Tabler). */
|
|
2169
|
+
icon?: string;
|
|
2170
|
+
/** Alternatywa dla `icon`: adres obrazka (wierne, wielokolorowe logo marki). */
|
|
2171
|
+
iconUrl?: string;
|
|
2172
|
+
/** Drugi wiersz opisu — tylko w układzie `list`. */
|
|
2173
|
+
description?: string;
|
|
2174
|
+
}
|
|
2175
|
+
/** Wartość formularza logowania. */
|
|
2176
|
+
interface KptAuthSignInValue {
|
|
2177
|
+
email: string;
|
|
2178
|
+
password: string;
|
|
2179
|
+
remember: boolean;
|
|
2180
|
+
}
|
|
2181
|
+
/** Wartość formularza rejestracji. */
|
|
2182
|
+
interface KptAuthSignUpValue {
|
|
2183
|
+
name: string;
|
|
2184
|
+
email: string;
|
|
2185
|
+
password: string;
|
|
2186
|
+
terms: boolean;
|
|
2187
|
+
}
|
|
2188
|
+
/** Wartość formularza odzyskiwania hasła. */
|
|
2189
|
+
interface KptAuthResetValue {
|
|
2190
|
+
email: string;
|
|
2191
|
+
}
|
|
2192
|
+
|
|
2193
|
+
/**
|
|
2194
|
+
* Ekran uwierzytelniania: logowanie, rejestracja i odzyskiwanie hasła w jednym komponencie,
|
|
2195
|
+
* z panelem promocyjnym i listą dostawców zewnętrznych (OAuth/SSO).
|
|
2196
|
+
*
|
|
2197
|
+
* Komponent jest prezentacyjny — nie woła API ani nie nawiguje. Wywołania backendu podpina
|
|
2198
|
+
* aplikacja pod `signIn` / `signUp` / `resetPassword` / `providerSelect`, a stan operacji
|
|
2199
|
+
* podaje z powrotem przez `busy`, `error` i `notice`.
|
|
2200
|
+
*
|
|
2201
|
+
* Układ `slider` przesuwa panel promocyjny nad formularzami przy zmianie trybu; `split`
|
|
2202
|
+
* zostawia go nieruchomo i przełącza sam formularz. Poniżej breakpointu `md` oba układy
|
|
2203
|
+
* schodzą do jednej kolumny.
|
|
2204
|
+
*
|
|
2205
|
+
* @example
|
|
2206
|
+
* <kpt-auth
|
|
2207
|
+
* [providers]="[{ id: 'google', label: 'Google', icon: 'brand-google' }]"
|
|
2208
|
+
* [busy]="loading()"
|
|
2209
|
+
* [error]="serverError()"
|
|
2210
|
+
* (signIn)="login($event)"
|
|
2211
|
+
* (providerSelect)="oauth($event.id)"
|
|
2212
|
+
* >
|
|
2213
|
+
* <img kptAuthBrand src="/logo.svg" alt="Konce" />
|
|
2214
|
+
* <div kptAuthPromo><h3>Witaj ponownie</h3><p>Zaloguj się, by wrócić do pracy.</p></div>
|
|
2215
|
+
* </kpt-auth>
|
|
2216
|
+
*/
|
|
2217
|
+
declare class KptAuth {
|
|
2218
|
+
/** Aktywny tryb ekranu (dwukierunkowy — aplikacja może go wymusić po nawigacji). */
|
|
2219
|
+
readonly mode: _angular_core.ModelSignal<KptAuthMode>;
|
|
2220
|
+
/** Układ: przesuwany panel promocyjny albo nieruchomy split-screen. */
|
|
2221
|
+
readonly layout: _angular_core.InputSignal<KptAuthLayout>;
|
|
2222
|
+
/** Dostawcy logowania zewnętrznego. */
|
|
2223
|
+
readonly providers: _angular_core.InputSignal<KptAuthProvider[]>;
|
|
2224
|
+
/** Układ przycisków dostawców: lista pełnej szerokości albo siatka ikon. */
|
|
2225
|
+
readonly providerLayout: _angular_core.InputSignal<KptAuthProviderLayout>;
|
|
2226
|
+
/** Pole „imię i nazwisko" w rejestracji. */
|
|
2227
|
+
readonly showName: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2228
|
+
/** Wymagana zgoda na regulamin w rejestracji. */
|
|
2229
|
+
readonly requireTerms: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2230
|
+
/** Przełącznik „zapamiętaj mnie" przy logowaniu. */
|
|
2231
|
+
readonly showRemember: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2232
|
+
/** Operacja w toku — przyciski w stanie ładowania, pola zablokowane. */
|
|
2233
|
+
readonly busy: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2234
|
+
/** Komunikat błędu z serwera (np. „nieprawidłowe dane logowania"). */
|
|
2235
|
+
readonly error: _angular_core.InputSignal<string | null>;
|
|
2236
|
+
/** Komunikat powodzenia (np. „wysłaliśmy link na podany adres"). */
|
|
2237
|
+
readonly notice: _angular_core.InputSignal<string | null>;
|
|
2238
|
+
/**
|
|
2239
|
+
* Tytuł panelu promocyjnego. `null` (domyślnie) = tekst z i18n zależny od trybu,
|
|
2240
|
+
* `''` = brak tytułu (miejsce dla slotu `[kptAuthPromo]`).
|
|
2241
|
+
*/
|
|
2242
|
+
readonly promoTitle: _angular_core.InputSignal<string | null>;
|
|
2243
|
+
/** Tekst panelu promocyjnego; zasady jak w `promoTitle`. */
|
|
2244
|
+
readonly promoText: _angular_core.InputSignal<string | null>;
|
|
2245
|
+
/** Animacja przejścia między trybami. */
|
|
2246
|
+
readonly animated: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2247
|
+
/** Czas animacji w ms. */
|
|
2248
|
+
readonly animationDuration: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
2249
|
+
readonly signIn: _angular_core.OutputEmitterRef<KptAuthSignInValue>;
|
|
2250
|
+
readonly signUp: _angular_core.OutputEmitterRef<KptAuthSignUpValue>;
|
|
2251
|
+
readonly resetPassword: _angular_core.OutputEmitterRef<KptAuthResetValue>;
|
|
2252
|
+
readonly providerSelect: _angular_core.OutputEmitterRef<KptAuthProvider>;
|
|
2253
|
+
protected readonly i18n: KptI18n;
|
|
2254
|
+
private readonly injector;
|
|
2255
|
+
private readonly uid;
|
|
2256
|
+
/** Nagłówek panelu dostaje fokus po zmianie trybu — inaczej zmiana nie zostaje ogłoszona. */
|
|
2257
|
+
private readonly headings;
|
|
2258
|
+
private readonly providerDefs;
|
|
2259
|
+
protected readonly ids: {
|
|
2260
|
+
signIn: string;
|
|
2261
|
+
signUp: string;
|
|
2262
|
+
forgot: string;
|
|
2263
|
+
email: string;
|
|
2264
|
+
password: string;
|
|
2265
|
+
name: string;
|
|
2266
|
+
regEmail: string;
|
|
2267
|
+
regPassword: string;
|
|
2268
|
+
regConfirm: string;
|
|
2269
|
+
resetEmail: string;
|
|
2270
|
+
};
|
|
2271
|
+
/** W trybie `signUp` formularz i panel promocyjny zamieniają się stronami. */
|
|
2272
|
+
protected readonly signUpActive: _angular_core.Signal<boolean>;
|
|
2273
|
+
protected readonly headingId: _angular_core.Signal<string>;
|
|
2274
|
+
protected readonly title: _angular_core.Signal<string>;
|
|
2275
|
+
protected readonly subtitle: _angular_core.Signal<string>;
|
|
2276
|
+
/** Panel promocyjny zachęca do trybu przeciwnego do bieżącego. */
|
|
2277
|
+
protected readonly promoMode: _angular_core.Signal<KptAuthMode>;
|
|
2278
|
+
protected readonly promoHeading: _angular_core.Signal<string>;
|
|
2279
|
+
protected readonly promoBody: _angular_core.Signal<string>;
|
|
2280
|
+
private readonly signInModel;
|
|
2281
|
+
protected readonly signInForm: _angular_forms_signals.FieldTree<KptAuthSignInValue, string | number, "writable">;
|
|
2282
|
+
private readonly signUpModel;
|
|
2283
|
+
protected readonly signUpForm: _angular_forms_signals.FieldTree<{
|
|
2284
|
+
name: string;
|
|
2285
|
+
email: string;
|
|
2286
|
+
password: string;
|
|
2287
|
+
confirm: string;
|
|
2288
|
+
terms: boolean;
|
|
2289
|
+
}, string | number, "writable">;
|
|
2290
|
+
private readonly resetModel;
|
|
2291
|
+
protected readonly resetForm: _angular_forms_signals.FieldTree<KptAuthResetValue, string | number, "writable">;
|
|
2292
|
+
protected readonly signInInvalid: _angular_core.Signal<boolean>;
|
|
2293
|
+
protected readonly signUpInvalid: _angular_core.Signal<boolean>;
|
|
2294
|
+
protected readonly resetInvalid: _angular_core.Signal<boolean>;
|
|
2295
|
+
protected readonly signInEmailError: _angular_core.Signal<string | null>;
|
|
2296
|
+
protected readonly signInPasswordError: _angular_core.Signal<string | null>;
|
|
2297
|
+
protected readonly signUpNameError: _angular_core.Signal<string | null>;
|
|
2298
|
+
protected readonly signUpEmailError: _angular_core.Signal<string | null>;
|
|
2299
|
+
protected readonly signUpPasswordError: _angular_core.Signal<string | null>;
|
|
2300
|
+
protected readonly signUpConfirmError: _angular_core.Signal<string | null>;
|
|
2301
|
+
protected readonly signUpTermsError: _angular_core.Signal<string | null>;
|
|
2302
|
+
protected readonly resetEmailError: _angular_core.Signal<string | null>;
|
|
2303
|
+
/**
|
|
2304
|
+
* Komunikat błędu składamy z `kind` w chwili renderowania, a nie w walidatorze — dzięki temu
|
|
2305
|
+
* zmiana języka w runtime przerysowuje komunikaty (walidatory tworzą się raz, przy starcie).
|
|
2306
|
+
* Bramka „nie strasz czerwienią świeżego pola" żyje tu, w prezentacji.
|
|
2307
|
+
*/
|
|
2308
|
+
private errorText;
|
|
2309
|
+
protected setMode(mode: KptAuthMode): void;
|
|
2310
|
+
protected onSignIn(): void;
|
|
2311
|
+
protected onSignUp(): void;
|
|
2312
|
+
protected onReset(): void;
|
|
2313
|
+
protected templateFor(provider: KptAuthProvider): _angular_core.TemplateRef<any> | null;
|
|
2314
|
+
protected selectProvider(provider: KptAuthProvider): void;
|
|
2315
|
+
/** Kontekst szablonu własnego dostawcy: `$implicit` = dostawca, `select` = zgłoszenie wyboru. */
|
|
2316
|
+
protected providerContext(provider: KptAuthProvider): {
|
|
2317
|
+
$implicit: KptAuthProvider;
|
|
2318
|
+
select: () => void;
|
|
2319
|
+
};
|
|
2320
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptAuth, never>;
|
|
2321
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptAuth, "kpt-auth", never, { "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "providers": { "alias": "providers"; "required": false; "isSignal": true; }; "providerLayout": { "alias": "providerLayout"; "required": false; "isSignal": true; }; "showName": { "alias": "showName"; "required": false; "isSignal": true; }; "requireTerms": { "alias": "requireTerms"; "required": false; "isSignal": true; }; "showRemember": { "alias": "showRemember"; "required": false; "isSignal": true; }; "busy": { "alias": "busy"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "notice": { "alias": "notice"; "required": false; "isSignal": true; }; "promoTitle": { "alias": "promoTitle"; "required": false; "isSignal": true; }; "promoText": { "alias": "promoText"; "required": false; "isSignal": true; }; "animated": { "alias": "animated"; "required": false; "isSignal": true; }; "animationDuration": { "alias": "animationDuration"; "required": false; "isSignal": true; }; }, { "mode": "modeChange"; "signIn": "signIn"; "signUp": "signUp"; "resetPassword": "resetPassword"; "providerSelect": "providerSelect"; }, ["providerDefs"], ["[kptAuthBrand]", "[kptAuthFields]", "[kptAuthFields]", "[kptAuthSso]", "[kptAuthFooter]", "[kptAuthPromo]"], true, never>;
|
|
2322
|
+
}
|
|
2323
|
+
|
|
2324
|
+
/**
|
|
2325
|
+
* Własny szablon przycisku jednego dostawcy logowania w `kpt-auth`. Kontekst: `$implicit` =
|
|
2326
|
+
* obiekt dostawcy, `select` = funkcja zgłaszająca wybór (emituje `providerSelect`).
|
|
2327
|
+
*
|
|
2328
|
+
* Przydatne, gdy logo marki nie przechodzi przez rejestr ikon (gradienty i `fill-rule` są
|
|
2329
|
+
* wycinane przy sanityzacji) albo gdy przycisk ma mieć inny układ niż wbudowany.
|
|
2330
|
+
*
|
|
2331
|
+
* @example
|
|
2332
|
+
* <kpt-auth [providers]="providers">
|
|
2333
|
+
* <ng-template kptAuthProvider="google" let-p let-select="select">
|
|
2334
|
+
* <button type="button" class="my-google" (click)="select()">
|
|
2335
|
+
* <img src="/google.svg" alt="" /> {{ p.label }}
|
|
2336
|
+
* </button>
|
|
2337
|
+
* </ng-template>
|
|
2338
|
+
* </kpt-auth>
|
|
2339
|
+
*/
|
|
2340
|
+
declare class KptAuthProviderDef {
|
|
2341
|
+
/** Identyfikator dostawcy, dla którego obowiązuje szablon. */
|
|
2342
|
+
readonly kptAuthProvider: _angular_core.InputSignal<string>;
|
|
2343
|
+
readonly template: TemplateRef<any>;
|
|
2344
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptAuthProviderDef, never>;
|
|
2345
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KptAuthProviderDef, "ng-template[kptAuthProvider]", never, { "kptAuthProvider": { "alias": "kptAuthProvider"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2346
|
+
}
|
|
2347
|
+
|
|
2021
2348
|
/**
|
|
2022
2349
|
* Panel z nagłówkiem i opcjonalnym zwijaniem. Akcje nagłówka: atrybut `kptPanelActions`.
|
|
2023
2350
|
*
|
|
@@ -2338,18 +2665,6 @@ declare class KptPaginator {
|
|
|
2338
2665
|
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>;
|
|
2339
2666
|
}
|
|
2340
2667
|
|
|
2341
|
-
/** Wbudowana agregacja kolumny w wierszu podsumowania. */
|
|
2342
|
-
type KptSummaryFn = 'sum' | 'avg' | 'min' | 'max' | 'count';
|
|
2343
|
-
interface KptColumnSummary {
|
|
2344
|
-
/**
|
|
2345
|
-
* Agregacja wbudowana albo własna funkcja liczona na całym zbiorze wierszy
|
|
2346
|
-
* (po filtrach, ze wszystkich stron).
|
|
2347
|
-
*/
|
|
2348
|
-
fn: KptSummaryFn | ((rows: readonly Record<string, unknown>[]) => unknown);
|
|
2349
|
-
/** Formatowanie wyniku (np. waluta). Bez niego wartość renderowana jest surowo. */
|
|
2350
|
-
format?: (value: unknown) => string;
|
|
2351
|
-
}
|
|
2352
|
-
|
|
2353
2668
|
/** Rodzaj kontrolki filtra w nagłówku kolumny. */
|
|
2354
2669
|
type KptColumnFilterType = 'text' | 'number' | 'select' | 'dateRange' | 'numberRange' | 'slider';
|
|
2355
2670
|
interface KptColumnFilter {
|
|
@@ -2367,6 +2682,19 @@ interface KptColumnFilter {
|
|
|
2367
2682
|
/** Krok dla `type: 'slider'` (domyślnie 1). */
|
|
2368
2683
|
step?: number;
|
|
2369
2684
|
}
|
|
2685
|
+
|
|
2686
|
+
/** Wbudowana agregacja kolumny w wierszu podsumowania. */
|
|
2687
|
+
type KptSummaryFn = 'sum' | 'avg' | 'min' | 'max' | 'count';
|
|
2688
|
+
interface KptColumnSummary {
|
|
2689
|
+
/**
|
|
2690
|
+
* Agregacja wbudowana albo własna funkcja liczona na całym zbiorze wierszy
|
|
2691
|
+
* (po filtrach, ze wszystkich stron).
|
|
2692
|
+
*/
|
|
2693
|
+
fn: KptSummaryFn | ((rows: readonly Record<string, unknown>[]) => unknown);
|
|
2694
|
+
/** Formatowanie wyniku (np. waluta). Bez niego wartość renderowana jest surowo. */
|
|
2695
|
+
format?: (value: unknown) => string;
|
|
2696
|
+
}
|
|
2697
|
+
|
|
2370
2698
|
/** Rodzaj kontrolki edycji inline komórki. */
|
|
2371
2699
|
type KptColumnEditType = 'text' | 'number' | 'date' | 'select' | 'multiselect';
|
|
2372
2700
|
interface KptColumnEdit {
|
|
@@ -2583,7 +2911,7 @@ declare class KptDataTable<T = Record<string, unknown>> {
|
|
|
2583
2911
|
protected setRangeFilter(field: string, bound: 'min' | 'max', event: Event): void;
|
|
2584
2912
|
/** Bieżąca para `[lo, hi]` filtra suwakowego dla kolumny (domyślnie pełen zakres). */
|
|
2585
2913
|
protected sliderVal(col: KptColumn): [number, number];
|
|
2586
|
-
|
|
2914
|
+
/** Semantyka dopasowania siedzi w `./column-filter` — tu zostaje tylko spięcie ze stanem. */
|
|
2587
2915
|
private matchesColumnFilters;
|
|
2588
2916
|
private readonly filtered;
|
|
2589
2917
|
private readonly sorted;
|
|
@@ -2614,6 +2942,7 @@ declare class KptDataTable<T = Record<string, unknown>> {
|
|
|
2614
2942
|
protected readonly summaryLabelSpan: _angular_core.Signal<number>;
|
|
2615
2943
|
/** Gotowe teksty komórek podsumowania (pole → tekst); pusty string dla braku wartości. */
|
|
2616
2944
|
private readonly summaryTexts;
|
|
2945
|
+
private formatSummary;
|
|
2617
2946
|
protected summaryText(field: string): string;
|
|
2618
2947
|
private parseWidthPx;
|
|
2619
2948
|
/** Mapa pole → przesunięcie left (px) dla wiodących zamrożonych kolumn. */
|
|
@@ -3079,13 +3408,13 @@ declare class KptDrawer {
|
|
|
3079
3408
|
* Menu kontekstowe (PPM) na obszarze projekcji. Panel pozycjonowany do kursora.
|
|
3080
3409
|
*
|
|
3081
3410
|
* @example
|
|
3082
|
-
* <kpt-context-menu [items]="items" (
|
|
3411
|
+
* <kpt-context-menu [items]="items" (selected)="onSelect($event)">
|
|
3083
3412
|
* <div class="obszar">Kliknij prawym przyciskiem</div>
|
|
3084
3413
|
* </kpt-context-menu>
|
|
3085
3414
|
*/
|
|
3086
3415
|
declare class KptContextMenu<T = unknown> {
|
|
3087
3416
|
readonly items: _angular_core.InputSignal<KptMenuItem<T>[]>;
|
|
3088
|
-
readonly
|
|
3417
|
+
readonly selected: _angular_core.OutputEmitterRef<KptMenuItem<T>>;
|
|
3089
3418
|
protected readonly open: _angular_core.WritableSignal<boolean>;
|
|
3090
3419
|
protected readonly x: _angular_core.WritableSignal<number>;
|
|
3091
3420
|
protected readonly y: _angular_core.WritableSignal<number>;
|
|
@@ -3093,7 +3422,7 @@ declare class KptContextMenu<T = unknown> {
|
|
|
3093
3422
|
protected close(): void;
|
|
3094
3423
|
protected pick(item: KptMenuItem<T>): void;
|
|
3095
3424
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptContextMenu<any>, never>;
|
|
3096
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptContextMenu<any>, "kpt-context-menu", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, { "
|
|
3425
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptContextMenu<any>, "kpt-context-menu", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, { "selected": "selected"; }, never, ["*"], true, never>;
|
|
3097
3426
|
}
|
|
3098
3427
|
|
|
3099
3428
|
/**
|
|
@@ -3103,18 +3432,18 @@ declare class KptContextMenu<T = unknown> {
|
|
|
3103
3432
|
* `import '@angular/cdk/overlay-prebuilt.css';`
|
|
3104
3433
|
*
|
|
3105
3434
|
* @example
|
|
3106
|
-
* <kpt-menubar [items]="items" (
|
|
3435
|
+
* <kpt-menubar [items]="items" (selected)="onSelect($event)" />
|
|
3107
3436
|
*/
|
|
3108
3437
|
declare class KptMenubar<T = unknown> {
|
|
3109
3438
|
readonly items: _angular_core.InputSignal<KptMenuItem<T>[]>;
|
|
3110
|
-
readonly
|
|
3439
|
+
readonly selected: _angular_core.OutputEmitterRef<KptMenuItem<T>>;
|
|
3111
3440
|
protected readonly openIndex: _angular_core.WritableSignal<number | null>;
|
|
3112
3441
|
protected readonly positions: ConnectedPosition[];
|
|
3113
3442
|
protected toggle(i: number, item: KptMenuItem<T>): void;
|
|
3114
3443
|
protected pick(item: KptMenuItem<T>): void;
|
|
3115
3444
|
protected closeAll(): void;
|
|
3116
3445
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptMenubar<any>, never>;
|
|
3117
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptMenubar<any>, "kpt-menubar", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, { "
|
|
3446
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptMenubar<any>, "kpt-menubar", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, { "selected": "selected"; }, never, never, true, never>;
|
|
3118
3447
|
}
|
|
3119
3448
|
|
|
3120
3449
|
/**
|
|
@@ -3125,11 +3454,11 @@ declare class KptMenubar<T = unknown> {
|
|
|
3125
3454
|
* `import '@angular/cdk/overlay-prebuilt.css';`
|
|
3126
3455
|
*
|
|
3127
3456
|
* @example
|
|
3128
|
-
* <kpt-megamenu [items]="items" (
|
|
3457
|
+
* <kpt-megamenu [items]="items" (selected)="onSelect($event)" />
|
|
3129
3458
|
*/
|
|
3130
3459
|
declare class KptMegamenu<T = unknown> {
|
|
3131
3460
|
readonly items: _angular_core.InputSignal<KptMenuItem<T>[]>;
|
|
3132
|
-
readonly
|
|
3461
|
+
readonly selected: _angular_core.OutputEmitterRef<KptMenuItem<T>>;
|
|
3133
3462
|
protected readonly openIndex: _angular_core.WritableSignal<number | null>;
|
|
3134
3463
|
protected readonly positions: ConnectedPosition[];
|
|
3135
3464
|
protected activeColumns(): KptMenuItem<T>[];
|
|
@@ -3137,7 +3466,7 @@ declare class KptMegamenu<T = unknown> {
|
|
|
3137
3466
|
protected pick(link: KptMenuItem<T>): void;
|
|
3138
3467
|
protected closeAll(): void;
|
|
3139
3468
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptMegamenu<any>, never>;
|
|
3140
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptMegamenu<any>, "kpt-megamenu", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, { "
|
|
3469
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KptMegamenu<any>, "kpt-megamenu", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, { "selected": "selected"; }, never, never, true, never>;
|
|
3141
3470
|
}
|
|
3142
3471
|
|
|
3143
3472
|
interface KptConfirmOptions {
|
|
@@ -3209,7 +3538,7 @@ type KptSpeedDialDirection = 'up' | 'down' | 'left' | 'right';
|
|
|
3209
3538
|
* Speed dial — FAB rozwijający zestaw akcji. Buduje na `kpt-fab`.
|
|
3210
3539
|
*
|
|
3211
3540
|
* @example
|
|
3212
|
-
* <kpt-speed-dial [items]="actions" direction="up" (
|
|
3541
|
+
* <kpt-speed-dial [items]="actions" direction="up" (selected)="onAction($event)" />
|
|
3213
3542
|
*/
|
|
3214
3543
|
declare class KptSpeedDial<T = unknown> {
|
|
3215
3544
|
readonly items: _angular_core.InputSignal<KptMenuItem<T>[]>;
|
|
@@ -3217,7 +3546,7 @@ declare class KptSpeedDial<T = unknown> {
|
|
|
3217
3546
|
readonly icon: _angular_core.InputSignal<string>;
|
|
3218
3547
|
/** Etykieta a11y FAB (stan zamknięty); bez wartości używa i18n (`speedDial.actions`). */
|
|
3219
3548
|
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
3220
|
-
readonly
|
|
3549
|
+
readonly selected: _angular_core.OutputEmitterRef<KptMenuItem<T>>;
|
|
3221
3550
|
protected readonly i18n: KptI18n;
|
|
3222
3551
|
protected readonly effectiveAriaLabel: _angular_core.Signal<string>;
|
|
3223
3552
|
protected readonly open: _angular_core.WritableSignal<boolean>;
|
|
@@ -3225,9 +3554,9 @@ declare class KptSpeedDial<T = unknown> {
|
|
|
3225
3554
|
protected close(): void;
|
|
3226
3555
|
protected pick(item: KptMenuItem<T>): void;
|
|
3227
3556
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KptSpeedDial<any>, never>;
|
|
3228
|
-
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; }; }, { "
|
|
3557
|
+
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; }; }, { "selected": "selected"; }, never, never, true, never>;
|
|
3229
3558
|
}
|
|
3230
3559
|
|
|
3231
|
-
export { KPT_BREAKPOINTS, KPT_FORM_FIELD_CONTROL, KPT_I18N_CONFIG, KPT_MESSAGES_EN, KPT_MESSAGES_PL, KptAccordion, KptAccordionPanel, KptAlert, KptAppShell, KptAutocomplete, KptAvatar, KptAvatarGroup, KptBadge, KptBottomSheet, KptBreadcrumb, KptBreakpointObserver, KptButton, KptButtonGroup, KptCard, KptCarousel, KptCellDef, KptCellEditDef, KptCheckbox, KptChip, KptChipsInput, KptClock, KptColorPicker, KptConfirmContainer, KptConfirmService, KptContextMenu, KptDataTable, KptDataView, KptDateRange, KptDatepicker, KptDialog, KptDivider, KptDrawer, KptEmpty, KptFab, KptFieldset, KptFileUpload, KptFormField, KptGalleria, KptI18n, 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, KptShellNavToggle, KptSidenav, KptSkeleton, KptSlider, KptSpeedDial, KptSpinner, KptSplitButton, KptSplitter, KptStep, KptStepper, KptSwitch, KptSwitchGroup, KptTab, KptTabs, KptTextarea, KptTimeline, KptToastContainer, KptToastService, KptToolbar, KptTooltip, KptTree, provideKptI18n, renderKptIconSvg };
|
|
3232
|
-
export type { DeepPartial, KptAlertVariant, KptAvatarItem, KptAvatarShape, KptAvatarSize, KptBadgeSize, KptBadgeVariant, KptBreadcrumbItem, KptBreakpoint, KptButtonSize, KptButtonVariant, KptCardVariant, KptCellEditEvent, KptChipVariant, KptColumn, KptColumnEdit, KptColumnEditType, KptColumnSummary, KptConfirmOptions, KptConfirmRequest, KptDateRangeValue, KptDatepickerMode, KptDatepickerView, KptDividerOrientation, KptDrawerPosition, KptFormFieldControl, KptGalleriaItem, KptI18nConfig, KptIconName, KptInputType, KptLocale, KptMenuItem, KptMessages, KptMeterItem, KptOption, KptProgressVariant, KptRichTool, KptRichToolbar, KptSidenavMode, KptSkeletonVariant, KptSliderValue, KptSpeedDialDirection, KptSplitterOrientation, KptSummaryFn, KptTableLazyState, KptTimelineItem, KptToast, KptToastOptions, KptTooltipPosition, KptTreeNode };
|
|
3560
|
+
export { KPT_BREAKPOINTS, KPT_FORM_FIELD_CONTROL, KPT_I18N_CONFIG, KPT_MESSAGES_EN, KPT_MESSAGES_PL, KptAccordion, KptAccordionPanel, KptAlert, KptAppShell, KptAuth, KptAuthProviderDef, KptAutocomplete, KptAvatar, KptAvatarGroup, KptBadge, KptBottomSheet, KptBreadcrumb, KptBreakpointObserver, KptButton, KptButtonGroup, KptCard, KptCarousel, KptCellDef, KptCellEditDef, KptCheckbox, KptChip, KptChipsInput, KptClock, KptColorPicker, KptConfirmContainer, KptConfirmService, KptContextMenu, KptDataTable, KptDataView, KptDateRange, KptDatepicker, KptDialog, KptDivider, KptDrawer, KptEmpty, KptFab, KptFieldset, KptFileUpload, KptFormField, KptGalleria, KptI18n, 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, KptShellNavToggle, KptSidenav, KptSkeleton, KptSlider, KptSpeedDial, KptSpinner, KptSplitButton, KptSplitter, KptStep, KptStepper, KptSwitch, KptSwitchGroup, KptTab, KptTabs, KptTextarea, KptTimeline, KptToastContainer, KptToastService, KptToolbar, KptTooltip, KptTree, provideKptI18n, renderKptIconSvg };
|
|
3561
|
+
export type { DeepPartial, KptAlertVariant, KptAuthLayout, KptAuthMode, KptAuthProvider, KptAuthProviderLayout, KptAuthResetValue, KptAuthSignInValue, KptAuthSignUpValue, KptAvatarItem, KptAvatarShape, KptAvatarSize, KptBadgeSize, KptBadgeVariant, KptBreadcrumbItem, KptBreakpoint, KptButtonSize, KptButtonVariant, KptCardVariant, KptCellEditEvent, KptChipVariant, KptColumn, KptColumnEdit, KptColumnEditType, KptColumnFilter, KptColumnFilterType, KptColumnSummary, KptConfirmOptions, KptConfirmRequest, KptDateRangeValue, KptDatepickerMode, KptDatepickerView, KptDividerOrientation, KptDrawerPosition, KptFormFieldControl, KptGalleriaItem, KptI18nConfig, KptIconName, KptInputType, KptLocale, KptMenuItem, KptMessages, KptMeterItem, KptOption, KptProgressVariant, KptRichTool, KptRichToolbar, KptSidenavMode, KptSkeletonVariant, KptSliderValue, KptSpeedDialDirection, KptSplitterOrientation, KptSummaryFn, KptTableLazyState, KptTimelineItem, KptToast, KptToastOptions, KptTooltipPosition, KptTreeNode };
|
|
3233
3562
|
//# sourceMappingURL=konce-pt-angular.d.ts.map
|