@koobiq/components 20.2.0 → 20.3.1
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/accordion/_accordion-theme.scss +5 -1
- package/accordion/accordion-tokens.scss +2 -0
- package/accordion/accordion-trigger.scss +6 -0
- package/accordion/accordion.scss +21 -0
- package/accordion/index.d.ts +55 -8
- package/actions-panel/index.d.ts +25 -13
- package/app-switcher/app-switcher-dropdown-app.scss +7 -5
- package/app-switcher/app-switcher-dropdown-site.scss +6 -4
- package/app-switcher/index.d.ts +41 -4
- package/app-switcher/kbq-app-switcher-list-item.scss +6 -8
- package/autocomplete/index.d.ts +24 -9
- package/breadcrumbs/index.d.ts +1 -1
- package/button/index.d.ts +2 -2
- package/button-toggle/button-toggle-tokens.scss +2 -0
- package/button-toggle/button-toggle.scss +9 -0
- package/button-toggle/index.d.ts +5 -0
- package/checkbox/index.d.ts +33 -29
- package/clamped-text/index.d.ts +1 -1
- package/code-block/index.d.ts +24 -19
- package/content-panel/index.d.ts +1 -1
- package/core/index.d.ts +1125 -199
- package/core/option/_action-container-mixins.scss +28 -0
- package/core/option/_option-theme.scss +24 -0
- package/core/option/action.scss +7 -0
- package/core/styles/_koobiq-theme.scss +2 -0
- package/core/styles/_tokens.scss +1 -0
- package/core/styles/common/_connected-overlay.scss +6 -3
- package/core/styles/common/_select.scss +12 -0
- package/core/styles/common/_tokens.scss +0 -9
- package/core/styles/theming/_index.scss +0 -1
- package/core/styles/theming/_theming.scss +34 -5
- package/datepicker/index.d.ts +46 -15
- package/dl/dl.scss +26 -0
- package/dl/index.d.ts +8 -1
- package/dropdown/_dropdown-theme.scss +28 -2
- package/dropdown/dropdown-item.scss +13 -0
- package/dropdown/dropdown.scss +7 -1
- package/dropdown/index.d.ts +264 -17
- package/dynamic-translation/index.d.ts +1 -1
- package/fesm2022/koobiq-components-accordion.mjs +106 -46
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +57 -46
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +16 -16
- package/fesm2022/koobiq-components-app-switcher.mjs +233 -38
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +54 -31
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +13 -13
- package/fesm2022/koobiq-components-breadcrumbs.mjs +25 -25
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +17 -12
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +25 -25
- package/fesm2022/koobiq-components-checkbox.mjs +69 -92
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-clamped-text.mjs +13 -13
- package/fesm2022/koobiq-components-code-block.mjs +56 -69
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-content-panel.mjs +29 -29
- package/fesm2022/koobiq-components-core.mjs +2454 -795
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +160 -121
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-divider.mjs +7 -7
- package/fesm2022/koobiq-components-dl.mjs +23 -15
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +754 -155
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-dynamic-translation.mjs +13 -13
- package/fesm2022/koobiq-components-ellipsis-center.mjs +7 -7
- package/fesm2022/koobiq-components-empty-state.mjs +19 -19
- package/fesm2022/koobiq-components-file-upload.mjs +74 -42
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +605 -192
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-flag.mjs +7 -7
- package/fesm2022/koobiq-components-form-field.mjs +359 -165
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +39 -21
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +172 -27
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-input.mjs +41 -24
- package/fesm2022/koobiq-components-input.mjs.map +1 -1
- package/fesm2022/koobiq-components-link.mjs +8 -8
- package/fesm2022/koobiq-components-list.mjs +657 -143
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs +16 -16
- package/fesm2022/koobiq-components-markdown.mjs +14 -11
- package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +70 -38
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +69 -54
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +23 -22
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +16 -17
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +26 -21
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-bar.mjs +13 -13
- package/fesm2022/koobiq-components-progress-spinner.mjs +13 -13
- package/fesm2022/koobiq-components-radio.mjs +10 -10
- package/fesm2022/koobiq-components-resizer.mjs +33 -14
- package/fesm2022/koobiq-components-resizer.mjs.map +1 -1
- package/fesm2022/koobiq-components-scrollbar.mjs +10 -10
- package/fesm2022/koobiq-components-search-expandable.mjs +7 -7
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +420 -107
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +14 -14
- package/fesm2022/koobiq-components-sidepanel.mjs +26 -26
- package/fesm2022/koobiq-components-skeleton.mjs +10 -10
- package/fesm2022/koobiq-components-split-button.mjs +7 -7
- package/fesm2022/koobiq-components-splitter.mjs +17 -17
- package/fesm2022/koobiq-components-table.mjs +15 -13
- package/fesm2022/koobiq-components-table.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +56 -58
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +283 -122
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +13 -8
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-time-range.mjs +29 -24
- package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
- package/fesm2022/koobiq-components-timepicker.mjs +58 -26
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +76 -39
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +7 -7
- package/fesm2022/koobiq-components-toast.mjs +51 -26
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +72 -64
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +115 -36
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-top-bar.mjs +13 -13
- package/fesm2022/koobiq-components-tree-select.mjs +190 -56
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +302 -81
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +27 -27
- package/file-upload/index.d.ts +25 -6
- package/file-upload/multiple-file-upload.component.scss +14 -0
- package/filter-bar/_filter-bar-theme.scss +0 -6
- package/filter-bar/index.d.ts +222 -9
- package/filter-bar/pipes/pipe-multi-tree-select.scss +0 -6
- package/filter-bar/pipes/pipe-multiselect.scss +0 -6
- package/filter-bar/pipes/pipe-tree-select.scss +0 -6
- package/form-field/_form-field-theme.scss +76 -20
- package/form-field/fieldset.scss +10 -0
- package/form-field/form-field-tokens.scss +15 -1
- package/form-field/form-field.scss +15 -19
- package/form-field/index.d.ts +148 -68
- package/icon/index.d.ts +31 -6
- package/inline-edit/index.d.ts +57 -4
- package/inline-edit/inline-edit.scss +10 -0
- package/input/index.d.ts +17 -2
- package/list/_list-theme.scss +42 -10
- package/list/index.d.ts +326 -79
- package/list/list-tokens.scss +43 -8
- package/list/list.scss +186 -12
- package/markdown/index.d.ts +1 -1
- package/modal/index.d.ts +22 -5
- package/modal/modal-tokens.scss +1 -1
- package/navbar/index.d.ts +16 -1
- package/navbar/navbar-brand.scss +6 -0
- package/navbar/vertical-navbar.scss +6 -0
- package/notification-center/notification-item.scss +6 -0
- package/package.json +3 -6
- package/popover/index.d.ts +2 -2
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
- package/prebuilt-themes/theme.css +1 -1
- package/resizer/index.d.ts +12 -0
- package/schematics/migrations/deprecated-icons/README.md +29 -4
- package/schematics/migrations/deprecated-icons/data.js +7 -0
- package/schematics/migrations/deprecated-icons/index.js +62 -35
- package/schematics/migrations/new-icons-pack/README.md +37 -2
- package/schematics/migrations/new-icons-pack/data.js +8 -0
- package/schematics/migrations/new-icons-pack/index.js +144 -53
- package/schematics/ng-add/index.js +3 -3
- package/schematics/utils/angular-parsing.js +30 -12
- package/schematics/utils/ast.js +31 -0
- package/schematics/utils/icon-migration.js +530 -0
- package/schematics/utils/typescript.js +44 -0
- package/scrollbar/index.d.ts +1 -1
- package/select/index.d.ts +163 -18
- package/select/select-tokens.scss +0 -1
- package/select/select.scss +0 -2
- package/splitter/index.d.ts +1 -1
- package/table/_table-theme.scss +4 -0
- package/table/index.d.ts +2 -1
- package/table/table.scss +8 -0
- package/tabs/index.d.ts +0 -1
- package/tags/index.d.ts +128 -29
- package/textarea/index.d.ts +5 -0
- package/time-range/index.d.ts +1 -1
- package/timepicker/index.d.ts +4 -0
- package/timezone/index.d.ts +9 -5
- package/toast/index.d.ts +26 -3
- package/toggle/index.d.ts +34 -14
- package/tooltip/index.d.ts +54 -11
- package/tree/_tree-theme.scss +25 -5
- package/tree/index.d.ts +71 -3
- package/tree/tree-option.scss +2 -8
- package/tree-select/_tree-select-theme.scss +22 -0
- package/tree-select/index.d.ts +83 -16
- package/core/styles/_tokens.kbq.import.scss +0 -4
- package/core/styles/theming/_components-theming.scss +0 -1927
- package/filter-bar/pipes/pipe-select.scss +0 -5
- package/overflow-items/overflow-items.scss +0 -20
package/tags/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { OnDestroy, AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, DoCheck, QueryList, OnChanges,
|
|
2
|
+
import { Signal, OnDestroy, AfterContentInit, AfterViewInit, ChangeDetectorRef, ElementRef, DoCheck, QueryList, InjectionToken, OnChanges, Provider } from '@angular/core';
|
|
3
3
|
import { NgControl, ControlValueAccessor, NgForm, FormGroupDirective } from '@angular/forms';
|
|
4
4
|
import { KbqAutocompleteTrigger } from '@koobiq/components/autocomplete';
|
|
5
5
|
import * as i2 from '@angular/cdk/drag-drop';
|
|
@@ -12,14 +12,23 @@ import { FocusOrigin } from '@angular/cdk/a11y';
|
|
|
12
12
|
import { KbqIcon } from '@koobiq/components/icon';
|
|
13
13
|
import * as i1$1 from '@angular/cdk/platform';
|
|
14
14
|
|
|
15
|
-
/**
|
|
16
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Interface for a text control that is used to drive interaction with a kbq-tag-list.
|
|
17
|
+
*
|
|
18
|
+
* @docs-private
|
|
19
|
+
*/
|
|
17
20
|
interface KbqTagTextControl {
|
|
18
21
|
id: string;
|
|
19
22
|
placeholder: string;
|
|
20
23
|
focused: boolean;
|
|
21
24
|
empty: boolean;
|
|
22
|
-
|
|
25
|
+
/** Whether the control's value was filled in by the browser. */
|
|
26
|
+
autofilled?: Signal<boolean>;
|
|
27
|
+
/**
|
|
28
|
+
* @deprecated Unused by the library: validation lives on the `<kbq-tag-list>` control.
|
|
29
|
+
* Will be removed in a future major release.
|
|
30
|
+
*/
|
|
31
|
+
ngControl?: NgControl | null;
|
|
23
32
|
focus(): void;
|
|
24
33
|
}
|
|
25
34
|
|
|
@@ -389,6 +398,13 @@ declare class KbqTagList implements KbqFormFieldControl<any>, ControlValueAccess
|
|
|
389
398
|
private _placeholder;
|
|
390
399
|
/** Whether any tags or the kbqTagInput inside of this tag-list has focus. */
|
|
391
400
|
get focused(): boolean;
|
|
401
|
+
/**
|
|
402
|
+
* Implemented as part of KbqFormFieldControl. Forwarded from the registered `kbqTagInput`, which
|
|
403
|
+
* is the element the browser actually autofills — the tag list itself is not an input.
|
|
404
|
+
*
|
|
405
|
+
* @docs-private
|
|
406
|
+
*/
|
|
407
|
+
readonly autofilled: _angular_core.Signal<boolean>;
|
|
392
408
|
/**
|
|
393
409
|
* Implemented as part of KbqFormFieldControl.
|
|
394
410
|
* @docs-private
|
|
@@ -469,8 +485,15 @@ declare class KbqTagList implements KbqFormFieldControl<any>, ControlValueAccess
|
|
|
469
485
|
errorState: boolean;
|
|
470
486
|
/** The tag input to add more tags */
|
|
471
487
|
private tagInput;
|
|
488
|
+
/**
|
|
489
|
+
* The same control as `tagInput`, kept in a signal so `autofilled` can track it reactively —
|
|
490
|
+
* `registerInput()` runs after the first read.
|
|
491
|
+
*/
|
|
492
|
+
private readonly registeredInput;
|
|
472
493
|
/** True when the next `tags.changes` emission is triggered by a UI action, not programmatic update. */
|
|
473
494
|
private pendingUIChange;
|
|
495
|
+
/** Shared range selection state used by pointer and keyboard interactions. */
|
|
496
|
+
private rangeSelection;
|
|
474
497
|
/**
|
|
475
498
|
* When a tag is destroyed, we store the index of the destroyed tag until the tags
|
|
476
499
|
* query list notifies about the update. This is necessary because we cannot determine an
|
|
@@ -530,6 +553,12 @@ declare class KbqTagList implements KbqFormFieldControl<any>, ControlValueAccess
|
|
|
530
553
|
* @docs-private
|
|
531
554
|
*/
|
|
532
555
|
focusInput(): void;
|
|
556
|
+
/**
|
|
557
|
+
* Establishes a range origin or extends the current range to the specified tag.
|
|
558
|
+
*
|
|
559
|
+
* @docs-private
|
|
560
|
+
*/
|
|
561
|
+
handleSelectionInteraction(tag: KbqTag, extendRange: boolean): void;
|
|
533
562
|
/**
|
|
534
563
|
* Pass events to the keyboard manager. Available here for tests.
|
|
535
564
|
*
|
|
@@ -576,6 +605,8 @@ declare class KbqTagList implements KbqFormFieldControl<any>, ControlValueAccess
|
|
|
576
605
|
* @docs-private
|
|
577
606
|
*/
|
|
578
607
|
removeSelected(): void;
|
|
608
|
+
/** Whether the rendered tags no longer match the value this control last reported. */
|
|
609
|
+
private hasTagsValueChanged;
|
|
579
610
|
private propagateTagsChanges;
|
|
580
611
|
private resetTags;
|
|
581
612
|
/** Listens to user-generated selection events on each tag. */
|
|
@@ -588,6 +619,8 @@ declare class KbqTagList implements KbqFormFieldControl<any>, ControlValueAccess
|
|
|
588
619
|
private setupDropListInitialProperties;
|
|
589
620
|
private syncDropListDisabledState;
|
|
590
621
|
private setupFocusMonitor;
|
|
622
|
+
private extendSelectionTo;
|
|
623
|
+
private setRangeOrigin;
|
|
591
624
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqTagList, never>;
|
|
592
625
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqTagList, "kbq-tag-list", ["kbqTagList"], { "value": { "alias": "value"; "required": false; }; "required": { "alias": "required"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "draggable": { "alias": "draggable"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "removable": { "alias": "removable"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; }, { "dropped": "dropped"; "valueChange": "valueChange"; "change": "change"; }, ["cleaner", "tags"], ["*", "kbq-cleaner"], true, [{ directive: typeof i2.CdkDropList; inputs: {}; outputs: {}; }]>;
|
|
593
626
|
static ngAcceptInputType_disabled: unknown;
|
|
@@ -602,10 +635,42 @@ interface KbqTagInputEvent {
|
|
|
602
635
|
/** The value of the input. */
|
|
603
636
|
value: string;
|
|
604
637
|
}
|
|
638
|
+
/** Contexts a `KbqTagSeparator` can be active in. */
|
|
639
|
+
type KbqTagSeparatorContext = 'input' | 'paste';
|
|
640
|
+
/** Defines a character or pattern that ends a tag, and the contexts in which it applies. */
|
|
605
641
|
interface KbqTagSeparator {
|
|
642
|
+
/** Regular expression used to match/split this separator in text. */
|
|
606
643
|
symbol: RegExp;
|
|
607
|
-
|
|
644
|
+
/**
|
|
645
|
+
* `KeyboardEvent.key` that triggers this separator while typing.
|
|
646
|
+
* Omit for separators with no single-keystroke equivalent (e.g. a run of whitespace) —
|
|
647
|
+
* those are implicitly paste-only, since they can never match a `keydown`.
|
|
648
|
+
*/
|
|
649
|
+
key?: string;
|
|
650
|
+
/**
|
|
651
|
+
* Numeric key code gating whether this separator is enabled, set via `kbqTagInputSeparatorKeyCodes`.
|
|
652
|
+
* Omit together with `key` for separators that should always be active regardless of that input.
|
|
653
|
+
*/
|
|
654
|
+
keyCode?: number;
|
|
655
|
+
/**
|
|
656
|
+
* Contexts this separator applies to.
|
|
657
|
+
* @default ['input', 'paste']
|
|
658
|
+
*/
|
|
659
|
+
appliesTo?: KbqTagSeparatorContext[];
|
|
660
|
+
}
|
|
661
|
+
/** Default options for the tags module that can be overridden. */
|
|
662
|
+
interface KbqTagsDefaultOptions {
|
|
663
|
+
/** The list of key codes that will trigger a tagEnd event. */
|
|
664
|
+
separatorKeyCodes: number[];
|
|
665
|
+
/** Custom separator definitions to use instead of the built-in defaults. */
|
|
666
|
+
separators?: KbqTagSeparator[];
|
|
667
|
+
/** Whether the tagEnd event will be emitted when text is pasted. */
|
|
668
|
+
addOnPaste?: boolean;
|
|
608
669
|
}
|
|
670
|
+
/** Injection token to be used to override the default options. */
|
|
671
|
+
declare const KBQ_TAGS_DEFAULT_OPTIONS: InjectionToken<KbqTagsDefaultOptions>;
|
|
672
|
+
/** Utility provider for `KBQ_TAGS_DEFAULT_OPTIONS`. */
|
|
673
|
+
declare const kbqTagsDefaultOptionsProvider: (options: Partial<KbqTagsDefaultOptions>) => Provider;
|
|
609
674
|
/**
|
|
610
675
|
* Directive that adds tag-specific behaviors to an input element inside `<kbq-form-field>`.
|
|
611
676
|
* May be placed inside or outside of an `<kbq-tag-list>`.
|
|
@@ -614,10 +679,28 @@ declare class KbqTagInput implements KbqTagTextControl, OnChanges {
|
|
|
614
679
|
private elementRef;
|
|
615
680
|
private defaultOptions;
|
|
616
681
|
private trimDirective;
|
|
617
|
-
|
|
682
|
+
/**
|
|
683
|
+
* The form control instance bound to the input, if any.
|
|
684
|
+
*
|
|
685
|
+
* @deprecated Read only, and unused by the library: validation lives on the `<kbq-tag-list>`
|
|
686
|
+
* control. Binding `[formControl]`/`[ngModel]` to the input itself stays supported — it is what
|
|
687
|
+
* `kbqAutocomplete` drives the input through — only its validators are not consulted.
|
|
688
|
+
* Will be removed in a future major release.
|
|
689
|
+
* @docs-private
|
|
690
|
+
*/
|
|
691
|
+
ngControl: NgControl | null;
|
|
692
|
+
/**
|
|
693
|
+
* The autocomplete trigger attached to the input, if any.
|
|
694
|
+
* @docs-private
|
|
695
|
+
*/
|
|
618
696
|
autocompleteTrigger?: KbqAutocompleteTrigger | null | undefined;
|
|
619
|
-
/**
|
|
697
|
+
/**
|
|
698
|
+
* Whether the control is focused.
|
|
699
|
+
* @docs-private
|
|
700
|
+
*/
|
|
620
701
|
focused: boolean;
|
|
702
|
+
/** Whether the control's value was filled in by the browser. */
|
|
703
|
+
readonly autofilled: _angular_core.Signal<boolean>;
|
|
621
704
|
/**
|
|
622
705
|
* The list of key codes that will trigger a tagEnd event.
|
|
623
706
|
*
|
|
@@ -625,7 +708,12 @@ declare class KbqTagInput implements KbqTagTextControl, OnChanges {
|
|
|
625
708
|
*/
|
|
626
709
|
set separatorKeyCodes(value: number[]);
|
|
627
710
|
private _separatorKeyCodes;
|
|
628
|
-
/**
|
|
711
|
+
/**
|
|
712
|
+
* The effective set of separators: entries gated by `keyCode` are included only when that
|
|
713
|
+
* code is present in `separatorKeyCodes`; entries without a `keyCode` (no single-keystroke
|
|
714
|
+
* equivalent, e.g. a run of whitespace) are always included.
|
|
715
|
+
* @docs-private
|
|
716
|
+
*/
|
|
629
717
|
get separators(): KbqTagSeparator[];
|
|
630
718
|
private _separators;
|
|
631
719
|
/** Emitted when a tag is to be added. */
|
|
@@ -662,45 +750,56 @@ declare class KbqTagInput implements KbqTagTextControl, OnChanges {
|
|
|
662
750
|
ngOnChanges(): void;
|
|
663
751
|
/** @docs-private */
|
|
664
752
|
onKeydown(event: KeyboardEvent): void;
|
|
665
|
-
/**
|
|
753
|
+
/**
|
|
754
|
+
* Checks to see if the blur should emit the (tagEnd) event.
|
|
755
|
+
* @docs-private
|
|
756
|
+
*/
|
|
666
757
|
blur(event: FocusEvent): void;
|
|
758
|
+
/**
|
|
759
|
+
* @deprecated No-op. Validation belongs to the `<kbq-tag-list>` form control, which
|
|
760
|
+
* revalidates itself whenever its value changes. Will be removed in a future major release.
|
|
761
|
+
* @docs-private
|
|
762
|
+
*/
|
|
667
763
|
triggerValidation(): void;
|
|
668
|
-
/**
|
|
764
|
+
/**
|
|
765
|
+
* Checks to see if the (tagEnd) event needs to be emitted.
|
|
766
|
+
* @docs-private
|
|
767
|
+
*/
|
|
669
768
|
emitTagEnd(): void;
|
|
769
|
+
/**
|
|
770
|
+
* Whether the current input value duplicates an existing tag.
|
|
771
|
+
* @docs-private
|
|
772
|
+
*/
|
|
670
773
|
get hasDuplicates(): boolean;
|
|
774
|
+
/** @docs-private */
|
|
671
775
|
onInput(): void;
|
|
776
|
+
/** @docs-private */
|
|
672
777
|
onPaste($event: ClipboardEvent): void;
|
|
673
778
|
/** @docs-private */
|
|
674
779
|
onFocus(): void;
|
|
675
780
|
/** Focuses the input. */
|
|
676
781
|
focus(): void;
|
|
677
|
-
private
|
|
782
|
+
private getPasteSeparatorPatterns;
|
|
783
|
+
/**
|
|
784
|
+
* Single path for adding a tag, shared by typed input, blur and paste.
|
|
785
|
+
* `existingValues` is `null` unless `distinct` is on, and is mutated as values are accepted.
|
|
786
|
+
*/
|
|
787
|
+
private addTag;
|
|
788
|
+
/** Values to dedupe against, or `null` when duplicates are allowed. */
|
|
789
|
+
private existingTagValues;
|
|
790
|
+
private tagValues;
|
|
678
791
|
private trimValue;
|
|
679
|
-
|
|
680
|
-
private
|
|
681
|
-
/** Checks whether a keycode is one of the configured separators. */
|
|
682
|
-
private isSeparatorKey;
|
|
792
|
+
/** Checks whether a keydown event matches a separator that applies to typed input. */
|
|
793
|
+
private matchesInputSeparator;
|
|
683
794
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqTagInput, never>;
|
|
684
795
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<KbqTagInput, "input[kbqTagInputFor]", ["kbqTagInput", "kbqTagInputFor"], { "separatorKeyCodes": { "alias": "kbqTagInputSeparatorKeyCodes"; "required": false; }; "distinct": { "alias": "distinct"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; }; "id": { "alias": "id"; "required": false; }; "tagList": { "alias": "kbqTagInputFor"; "required": false; }; "addOnBlur": { "alias": "kbqTagInputAddOnBlur"; "required": false; }; "addOnPaste": { "alias": "kbqTagInputAddOnPaste"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "tagEnd": "kbqTagInputTokenEnd"; }, never, never, true, [{ directive: typeof i1.KbqFieldSizingContent; inputs: {}; outputs: {}; }]>;
|
|
685
796
|
}
|
|
686
797
|
|
|
687
|
-
/** Default options, for the chips module, that can be overridden. */
|
|
688
|
-
interface KbqTagsDefaultOptions {
|
|
689
|
-
/** The list of key codes that will trigger a chipEnd event. */
|
|
690
|
-
separatorKeyCodes: number[];
|
|
691
|
-
separators?: {
|
|
692
|
-
[key: number]: KbqTagSeparator;
|
|
693
|
-
};
|
|
694
|
-
addOnPaste?: boolean;
|
|
695
|
-
}
|
|
696
|
-
/** Injection token to be used to override the default options for the chips module. */
|
|
697
|
-
declare const KBQ_TAGS_DEFAULT_OPTIONS: InjectionToken<KbqTagsDefaultOptions>;
|
|
698
|
-
|
|
699
798
|
declare class KbqTagsModule {
|
|
700
799
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqTagsModule, never>;
|
|
701
800
|
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<KbqTagsModule, never, [typeof i1$1.PlatformModule, typeof KbqTagEditSubmit, typeof KbqTagEditInput, typeof KbqTagList, typeof KbqTag, typeof KbqTagInput, typeof KbqTagTrailingIcon, typeof KbqTagAvatar, typeof KbqTagRemove], [typeof KbqTagList, typeof KbqTag, typeof KbqTagInput, typeof KbqTagTrailingIcon, typeof KbqTagAvatar, typeof KbqTagRemove, typeof KbqTagEditSubmit, typeof KbqTagEditInput]>;
|
|
702
801
|
static ɵinj: _angular_core.ɵɵInjectorDeclaration<KbqTagsModule>;
|
|
703
802
|
}
|
|
704
803
|
|
|
705
|
-
export { KBQ_TAGS_DEFAULT_OPTIONS, KbqTag, KbqTagAvatar, KbqTagEditChange, KbqTagEditInput, KbqTagEditSubmit, KbqTagInput, KbqTagList, KbqTagListChange, KbqTagRemove, KbqTagSelectionChange, KbqTagTrailingIcon, KbqTagsModule };
|
|
706
|
-
export type { KbqTagDragData, KbqTagEvent, KbqTagFocusEvent, KbqTagInputEvent, KbqTagListDroppedEvent, KbqTagSeparator, KbqTagsDefaultOptions };
|
|
804
|
+
export { KBQ_TAGS_DEFAULT_OPTIONS, KbqTag, KbqTagAvatar, KbqTagEditChange, KbqTagEditInput, KbqTagEditSubmit, KbqTagInput, KbqTagList, KbqTagListChange, KbqTagRemove, KbqTagSelectionChange, KbqTagTrailingIcon, KbqTagsModule, kbqTagsDefaultOptionsProvider };
|
|
805
|
+
export type { KbqTagDragData, KbqTagEvent, KbqTagFocusEvent, KbqTagInputEvent, KbqTagListDroppedEvent, KbqTagSeparator, KbqTagSeparatorContext, KbqTagsDefaultOptions };
|
package/textarea/index.d.ts
CHANGED
|
@@ -38,6 +38,11 @@ declare class KbqTextarea implements KbqFormFieldControl<any>, OnInit, OnChanges
|
|
|
38
38
|
* @docs-private
|
|
39
39
|
*/
|
|
40
40
|
focused: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Implemented as part of KbqFormFieldControl.
|
|
43
|
+
* @docs-private
|
|
44
|
+
*/
|
|
45
|
+
readonly autofilled: i0.Signal<boolean>;
|
|
41
46
|
/**
|
|
42
47
|
* Implemented as part of KbqFormFieldControl.
|
|
43
48
|
* @docs-private
|
package/time-range/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { InjectionToken, OnInit, TemplateRef, WritableSignal, Provider, Injector } from '@angular/core';
|
|
3
3
|
import { ValidatorFn, ControlValueAccessor, NgControl, FormControl, Validator, FormGroup, AbstractControl, FormGroupDirective, NgForm, ValidationErrors } from '@angular/forms';
|
|
4
|
-
import { DateAdapter, DateFormatter, PopUpSizes, PopUpPlacements,
|
|
4
|
+
import { DateAdapter, DateFormatter, KbqTimeRangeLocaleConfig, PopUpSizes, PopUpPlacements, ErrorStateMatcher } from '@koobiq/components/core';
|
|
5
5
|
import { KbqPopoverTrigger } from '@koobiq/components/popover';
|
|
6
6
|
import { DurationObjectUnits, DurationUnit } from '@koobiq/date-adapter';
|
|
7
7
|
import { KbqTimepicker, TimeFormats } from '@koobiq/components/timepicker';
|
package/timepicker/index.d.ts
CHANGED
|
@@ -42,6 +42,7 @@ declare class KbqTimepicker<D> implements KbqFormFieldControl<D>, ControlValueAc
|
|
|
42
42
|
private renderer;
|
|
43
43
|
private dateAdapter;
|
|
44
44
|
private localeService;
|
|
45
|
+
private readonly timezoneService;
|
|
45
46
|
/**
|
|
46
47
|
* Implemented as part of KbqFormFieldControl.
|
|
47
48
|
* @docs-private
|
|
@@ -149,6 +150,8 @@ declare class KbqTimepicker<D> implements KbqFormFieldControl<D>, ControlValueAc
|
|
|
149
150
|
private formatUserInput;
|
|
150
151
|
private replaceSymbols;
|
|
151
152
|
private replaceNumbers;
|
|
153
|
+
/** Clamps a time part to the allowed maximum and trims it to two digits */
|
|
154
|
+
private normalizeTimePart;
|
|
152
155
|
/** Checks whether the input is invalid based on the native validation. */
|
|
153
156
|
private isBadInput;
|
|
154
157
|
private spaceKeyHandler;
|
|
@@ -174,6 +177,7 @@ declare class KbqTimepicker<D> implements KbqFormFieldControl<D>, ControlValueAc
|
|
|
174
177
|
private maxValidator;
|
|
175
178
|
private getValidDateOrNull;
|
|
176
179
|
private setViewValue;
|
|
180
|
+
private setSelection;
|
|
177
181
|
private updateView;
|
|
178
182
|
/** @docs-private */
|
|
179
183
|
updateErrorState(): void;
|
package/timezone/index.d.ts
CHANGED
|
@@ -33,13 +33,15 @@ interface KbqTimezonesByCountry {
|
|
|
33
33
|
declare class KbqTimezoneOption extends KbqOption {
|
|
34
34
|
readonly tooltipContentWrapper: i0.Signal<ElementRef<HTMLElement>>;
|
|
35
35
|
readonly tooltipContent: i0.Signal<ElementRef<HTMLElement>>;
|
|
36
|
-
readonly highlightText: i0.InputSignal<string>;
|
|
36
|
+
readonly highlightText: i0.InputSignal<string | readonly string[]>;
|
|
37
|
+
/** Whether `highlightText` was matched with diacritic folding (e.g. via `createSearchPredicate`) — see `kbqHighlightBackground`. */
|
|
38
|
+
readonly foldDiacritics: i0.InputSignal<boolean>;
|
|
37
39
|
get timezone(): KbqTimezoneZone;
|
|
38
40
|
set timezone(zone: KbqTimezoneZone);
|
|
39
41
|
private _timezone;
|
|
40
42
|
get viewValue(): string;
|
|
41
43
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqTimezoneOption, never>;
|
|
42
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<KbqTimezoneOption, "kbq-timezone-option", ["kbqTimezoneOption"], { "highlightText": { "alias": "highlightText"; "required": false; "isSignal": true; }; "timezone": { "alias": "timezone"; "required": false; }; }, {}, never, never, true, never>;
|
|
44
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KbqTimezoneOption, "kbq-timezone-option", ["kbqTimezoneOption"], { "highlightText": { "alias": "highlightText"; "required": false; "isSignal": true; }; "foldDiacritics": { "alias": "foldDiacritics"; "required": false; "isSignal": true; }; "timezone": { "alias": "timezone"; "required": false; }; }, {}, never, never, true, never>;
|
|
43
45
|
}
|
|
44
46
|
|
|
45
47
|
declare const TOOLTIP_VISIBLE_ROWS_COUNT = 3;
|
|
@@ -84,7 +86,7 @@ declare class UtcOffsetPipe implements PipeTransform {
|
|
|
84
86
|
}
|
|
85
87
|
|
|
86
88
|
declare class CitiesByFilterPipe implements PipeTransform {
|
|
87
|
-
transform(value: string, searchPattern?: string): string;
|
|
89
|
+
transform(value: string, searchPattern?: string | readonly string[]): string;
|
|
88
90
|
static ɵfac: i0.ɵɵFactoryDeclaration<CitiesByFilterPipe, never>;
|
|
89
91
|
static ɵpipe: i0.ɵɵPipeDeclaration<CitiesByFilterPipe, "citiesByFilter", true>;
|
|
90
92
|
}
|
|
@@ -113,9 +115,11 @@ declare function offsetFormatterAsObject(value: string): {
|
|
|
113
115
|
*/
|
|
114
116
|
declare function timezonesSortComparator(first: KbqTimezoneZone, second: KbqTimezoneZone): number;
|
|
115
117
|
/**
|
|
116
|
-
* Filtering timezone cities by search string
|
|
118
|
+
* Filtering timezone cities by search string. Accepts a single pattern or several (matching a
|
|
119
|
+
* city if it satisfies any one of them) — patterns that look like a bare UTC offset (e.g. `+3`)
|
|
120
|
+
* are ignored here, since they describe the zone rather than a city name.
|
|
117
121
|
*/
|
|
118
|
-
declare function filterCitiesBySearchString(cities: string, searchPattern?: string): string;
|
|
122
|
+
declare function filterCitiesBySearchString(cities: string, searchPattern?: string | readonly string[]): string;
|
|
119
123
|
|
|
120
124
|
export { KbqTimezoneModule, KbqTimezoneOption, KbqTimezoneOptionTooltip, KbqTimezoneSelect, KbqTimezoneSelectTrigger, TOOLTIP_VISIBLE_ROWS_COUNT, filterCitiesBySearchString, getZonesGroupedByCountry, offset, offsetFormatter, offsetFormatterAsObject, parseOffset, timezonesSortComparator };
|
|
121
125
|
export type { KbqTimezoneGroup, KbqTimezoneZone, KbqTimezonesByCountry };
|
package/toast/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { InjectionToken, TemplateRef, Provider, OnDestroy, ElementRef, ComponentRef, EmbeddedViewRef, ViewContainerRef, ViewRef, Injector } from '@angular/core';
|
|
3
3
|
import { CdkScrollable } from '@angular/cdk/overlay';
|
|
4
4
|
import * as rxjs from 'rxjs';
|
|
5
|
-
import { BehaviorSubject } from 'rxjs';
|
|
5
|
+
import { BehaviorSubject, Observable } from 'rxjs';
|
|
6
6
|
import { AnimationEvent } from '@angular/animations';
|
|
7
7
|
import * as i1 from '@koobiq/components/core';
|
|
8
8
|
import { KbqReadStateDirective, ThemePalette } from '@koobiq/components/core';
|
|
@@ -144,11 +144,34 @@ declare class KbqToastContainerComponent extends CdkScrollable {
|
|
|
144
144
|
private changeDetectorRef;
|
|
145
145
|
readonly service: KbqToastService<any>;
|
|
146
146
|
readonly viewContainer: i0.Signal<ViewContainerRef>;
|
|
147
|
-
|
|
147
|
+
/**
|
|
148
|
+
* Emits while the stack re-lays-out. Toasts are ordinary flow children, so removing one slides the
|
|
149
|
+
* rest for as long as its height animates — and an overlay opened from inside a toast is anchored to
|
|
150
|
+
* a trigger that is moving. CDK only re-measures the origin on a scroll or a viewport resize, so the
|
|
151
|
+
* stack has to say when it moved.
|
|
152
|
+
*
|
|
153
|
+
* The container's own box tracks the reflow exactly: continuously while a leaving toast animates its
|
|
154
|
+
* height away, and once for a removal that is not animated at all, such as a template toast.
|
|
155
|
+
*/
|
|
156
|
+
private readonly reflowed;
|
|
157
|
+
/**
|
|
158
|
+
* `ScrollDispatcher` subscribes to this method when the container registers itself, so merging the
|
|
159
|
+
* reflow signal in re-broadcasts it to every overlay that repositions on scroll — which is what
|
|
160
|
+
* `kbq-select` and the dropdown trigger do by default.
|
|
161
|
+
*/
|
|
162
|
+
elementScrolled(): Observable<Event>;
|
|
148
163
|
createToast<C>(data: KbqToastData, componentType: any, onTop: boolean): ComponentRef<C>;
|
|
149
164
|
createTemplate<C>(data: KbqToastData, template: TemplateRef<any>, onTop: boolean): EmbeddedViewRef<C>;
|
|
150
165
|
remove(viewRef: ViewRef): void;
|
|
151
166
|
getInjector(data: KbqToastData): Injector;
|
|
167
|
+
/**
|
|
168
|
+
* Fakes a scroll on the container so that overlays anchored inside a toast are repositioned by their
|
|
169
|
+
* `RepositionScrollStrategy` when the stack shifts.
|
|
170
|
+
*
|
|
171
|
+
* @deprecated The container reports its own reflow through `elementScrolled()`, so nothing calls this.
|
|
172
|
+
* It is kept only for callers that already hold a container reference — the instance created by
|
|
173
|
+
* `KbqToastService` is not exposed.
|
|
174
|
+
*/
|
|
152
175
|
dispatchScrollEvent: () => void;
|
|
153
176
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqToastContainerComponent, never>;
|
|
154
177
|
static ɵcmp: i0.ɵɵComponentDeclaration<KbqToastContainerComponent, "kbq-toast-container", never, {}, {}, never, never, true, never>;
|
package/toggle/index.d.ts
CHANGED
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
2
|
import { AfterViewInit, OnDestroy, ElementRef } from '@angular/core';
|
|
3
3
|
import { ControlValueAccessor } from '@angular/forms';
|
|
4
|
-
import
|
|
5
|
-
import { KbqColorDirective, KbqCheckedState } from '@koobiq/components/core';
|
|
6
|
-
import * as i1 from '@angular/cdk/a11y';
|
|
4
|
+
import * as i1 from '@koobiq/components/core';
|
|
5
|
+
import { KbqColorDirective, TransitionCheckState, KbqCheckableClickAction, KbqCheckedState } from '@koobiq/components/core';
|
|
6
|
+
import * as i1$1 from '@angular/cdk/a11y';
|
|
7
7
|
|
|
8
8
|
type ToggleLabelPositionType = 'left' | 'right';
|
|
9
9
|
declare class KbqToggleChange {
|
|
10
10
|
source: KbqToggleComponent;
|
|
11
11
|
checked: boolean;
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Toggle click action when user click on input element. Alias of `KbqCheckableClickAction`.
|
|
15
|
+
*/
|
|
16
|
+
type KbqToggleClickAction = KbqCheckableClickAction;
|
|
13
17
|
declare class KbqToggleComponent extends KbqColorDirective implements AfterViewInit, ControlValueAccessor, OnDestroy {
|
|
14
|
-
private
|
|
15
|
-
private
|
|
18
|
+
private readonly changeDetectorRef;
|
|
19
|
+
private readonly focusMonitor;
|
|
20
|
+
private readonly checkable;
|
|
16
21
|
readonly big: _angular_core.InputSignal<boolean>;
|
|
17
22
|
readonly inputElement: _angular_core.Signal<ElementRef<HTMLInputElement>>;
|
|
18
23
|
readonly labelPosition: _angular_core.InputSignal<ToggleLabelPositionType>;
|
|
@@ -24,13 +29,10 @@ declare class KbqToggleComponent extends KbqColorDirective implements AfterViewI
|
|
|
24
29
|
readonly value: _angular_core.InputSignal<string>;
|
|
25
30
|
get disabled(): any;
|
|
26
31
|
set disabled(value: any);
|
|
27
|
-
private _disabled;
|
|
28
32
|
get tabIndex(): number;
|
|
29
33
|
set tabIndex(value: number);
|
|
30
|
-
private _tabIndex;
|
|
31
34
|
get checked(): boolean;
|
|
32
35
|
set checked(value: boolean);
|
|
33
|
-
private _checked;
|
|
34
36
|
/**
|
|
35
37
|
* Whether the toggle is indeterminate. This is also known as "mixed" mode and can be used to
|
|
36
38
|
* represent a checkbox with three states, e.g. a checkbox that represents a nested list of
|
|
@@ -39,7 +41,6 @@ declare class KbqToggleComponent extends KbqColorDirective implements AfterViewI
|
|
|
39
41
|
*/
|
|
40
42
|
get indeterminate(): boolean;
|
|
41
43
|
set indeterminate(value: boolean);
|
|
42
|
-
private _indeterminate;
|
|
43
44
|
/**
|
|
44
45
|
* Property for manually set loading state.
|
|
45
46
|
*/
|
|
@@ -50,7 +51,7 @@ declare class KbqToggleComponent extends KbqColorDirective implements AfterViewI
|
|
|
50
51
|
/** @docs-private */
|
|
51
52
|
protected currentCheckState: TransitionCheckState;
|
|
52
53
|
/** Defines the behavior when a user clicks on the toggle. */
|
|
53
|
-
clickAction:
|
|
54
|
+
clickAction: KbqToggleClickAction;
|
|
54
55
|
private uniqueId;
|
|
55
56
|
constructor();
|
|
56
57
|
ngAfterViewInit(): void;
|
|
@@ -60,25 +61,44 @@ declare class KbqToggleComponent extends KbqColorDirective implements AfterViewI
|
|
|
60
61
|
onChangeEvent(event: Event): void;
|
|
61
62
|
onLabelTextChange(): void;
|
|
62
63
|
onInputClick(event: MouseEvent): void;
|
|
64
|
+
/**
|
|
65
|
+
* Implemented as part of ControlValueAccessor.
|
|
66
|
+
* @deprecated Unused - `ControlValueAccessor` is now implemented by the `KbqCheckable` host directive,
|
|
67
|
+
* so this is never called by Angular forms. Will be removed in the next major version.
|
|
68
|
+
*/
|
|
63
69
|
writeValue(value: any): void;
|
|
70
|
+
/**
|
|
71
|
+
* Implemented as part of ControlValueAccessor.
|
|
72
|
+
* @deprecated Unused - `ControlValueAccessor` is now implemented by the `KbqCheckable` host directive,
|
|
73
|
+
* so this is never called by Angular forms. Will be removed in the next major version.
|
|
74
|
+
*/
|
|
64
75
|
registerOnChange(fn: any): void;
|
|
76
|
+
/**
|
|
77
|
+
* Implemented as part of ControlValueAccessor.
|
|
78
|
+
* @deprecated Unused - `ControlValueAccessor` is now implemented by the `KbqCheckable` host directive,
|
|
79
|
+
* so this is never called by Angular forms. Will be removed in the next major version.
|
|
80
|
+
*/
|
|
65
81
|
registerOnTouched(fn: any): void;
|
|
82
|
+
/**
|
|
83
|
+
* Implemented as part of ControlValueAccessor.
|
|
84
|
+
* @deprecated Unused - `ControlValueAccessor` is now implemented by the `KbqCheckable` host directive,
|
|
85
|
+
* so this is never called by Angular forms. Will be removed in the next major version.
|
|
86
|
+
*/
|
|
66
87
|
setDisabledState(isDisabled: boolean): void;
|
|
67
88
|
private setTransitionCheckState;
|
|
68
|
-
private onTouchedCallback;
|
|
69
|
-
private onChangeCallback;
|
|
70
89
|
private transitionCheckState;
|
|
71
90
|
private emitChangeEvent;
|
|
72
91
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqToggleComponent, never>;
|
|
73
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqToggleComponent, "kbq-toggle", ["kbqToggle"], { "big": { "alias": "big"; "required": false; "isSignal": true; }; "labelPosition": { "alias": "labelPosition"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "indeterminate": { "alias": "indeterminate"; "required": false; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "clickAction": { "alias": "clickAction"; "required": false; }; }, { "change": "change"; "indeterminateChange": "indeterminateChange"; }, never, ["*", "kbq-hint"], true,
|
|
92
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqToggleComponent, "kbq-toggle", ["kbqToggle"], { "big": { "alias": "big"; "required": false; "isSignal": true; }; "labelPosition": { "alias": "labelPosition"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "aria-label"; "required": false; "isSignal": true; }; "ariaLabelledby": { "alias": "aria-labelledby"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "indeterminate": { "alias": "indeterminate"; "required": false; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "clickAction": { "alias": "clickAction"; "required": false; }; }, { "change": "change"; "indeterminateChange": "indeterminateChange"; }, never, ["*", "kbq-hint"], true, [{ directive: typeof i1.KbqCheckable; inputs: {}; outputs: {}; }]>;
|
|
74
93
|
static ngAcceptInputType_tabIndex: unknown;
|
|
75
94
|
static ngAcceptInputType_indeterminate: unknown;
|
|
76
95
|
}
|
|
77
96
|
|
|
78
97
|
declare class KbqToggleModule {
|
|
79
98
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqToggleModule, never>;
|
|
80
|
-
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<KbqToggleModule, never, [typeof i1.A11yModule, typeof KbqToggleComponent], [typeof KbqToggleComponent]>;
|
|
99
|
+
static ɵmod: _angular_core.ɵɵNgModuleDeclaration<KbqToggleModule, never, [typeof i1$1.A11yModule, typeof KbqToggleComponent], [typeof KbqToggleComponent]>;
|
|
81
100
|
static ɵinj: _angular_core.ɵɵInjectorDeclaration<KbqToggleModule>;
|
|
82
101
|
}
|
|
83
102
|
|
|
84
103
|
export { KbqToggleChange, KbqToggleComponent, KbqToggleModule };
|
|
104
|
+
export type { KbqToggleClickAction };
|
package/tooltip/index.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ declare const KBQ_TOOLTIP_SINGLE_INSTANCE_DEFAULT: InjectionToken<boolean>;
|
|
|
15
15
|
* @docs-private
|
|
16
16
|
*/
|
|
17
17
|
interface KbqExclusiveTooltip {
|
|
18
|
-
/** Hides the tooltip because another
|
|
18
|
+
/** Hides the tooltip because another tooltip — or a pop-up on the same element — has taken its place. */
|
|
19
19
|
hideAsInactive(): void;
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
@@ -83,10 +83,25 @@ declare const KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER: {
|
|
|
83
83
|
declare class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipComponent> implements AfterViewInit, OnChanges, OnDestroy, KbqExclusiveTooltip {
|
|
84
84
|
/** Registry holding the single tooltip that is currently visible. */
|
|
85
85
|
private readonly tooltipRegistry;
|
|
86
|
+
private readonly injectedScrollStrategy;
|
|
87
|
+
/**
|
|
88
|
+
* Per-instance override for the scroll strategy, taking precedence over `KBQ_TOOLTIP_SCROLL_STRATEGY`
|
|
89
|
+
* when set. An `@Input` rather than a DI override so it applies to this tooltip instance only, without
|
|
90
|
+
* leaking into other `kbqTooltip`s nested inside the same host (DI overrides are visible to every
|
|
91
|
+
* descendant in the element-injector tree, not just the element they're declared on).
|
|
92
|
+
* @docs-private
|
|
93
|
+
*/
|
|
94
|
+
readonly scrollStrategyOverride: i0.InputSignal<(() => ScrollStrategy) | undefined>;
|
|
86
95
|
/** @docs-private */
|
|
87
|
-
protected scrollStrategy: () => ScrollStrategy;
|
|
96
|
+
protected get scrollStrategy(): () => ScrollStrategy;
|
|
88
97
|
/** @docs-private */
|
|
89
98
|
protected parentPopup: KbqParentPopup | null;
|
|
99
|
+
/**
|
|
100
|
+
* Pop-ups anchored to the very same element — a popover, a dropdown, a select and so on. Resolved with
|
|
101
|
+
* `self` so a pop-up further up the tree (which the tooltip merely lives inside) is not picked up; that
|
|
102
|
+
* case is covered by `parentPopup`.
|
|
103
|
+
*/
|
|
104
|
+
private readonly siblingPopups;
|
|
90
105
|
/** @docs-private */
|
|
91
106
|
protected focusMonitor: FocusMonitor;
|
|
92
107
|
/** @docs-private */
|
|
@@ -208,15 +223,31 @@ declare class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipComponent> imp
|
|
|
208
223
|
* assign `trigger = 'manual'` and therefore stay out of the group.
|
|
209
224
|
*/
|
|
210
225
|
private get participatesInSingleInstance();
|
|
226
|
+
/**
|
|
227
|
+
* Whether `kbqTrigger` contains at least one user-driven event, i.e. the tooltip is not driven purely
|
|
228
|
+
* imperatively. `manual`/`none` tooltips (the validation hints of datepicker, timepicker and inline-edit)
|
|
229
|
+
* bind no listeners and are expected to stay pinned while the user keeps interacting elsewhere.
|
|
230
|
+
*/
|
|
231
|
+
private get hasInteractiveTrigger();
|
|
232
|
+
/**
|
|
233
|
+
* Whether the tooltip is muted because a pop-up on the same element has taken over the anchor.
|
|
234
|
+
*
|
|
235
|
+
* Set when that pop-up opens and released only once the pointer or the focus genuinely leaves the host,
|
|
236
|
+
* never on the pop-up closing. Both matter: a pop-up restores focus to its trigger when it closes (see
|
|
237
|
+
* `KbqPopoverComponent.onEscape`), and removing its backdrop replays `mouseenter` on the trigger without
|
|
238
|
+
* the pointer having moved — either would otherwise pop the tooltip up out of nowhere.
|
|
239
|
+
*/
|
|
240
|
+
private mutedBySiblingPopup;
|
|
211
241
|
/**
|
|
212
242
|
* Sets up an effect that mirrors a `forDisabledComponent`'s disabled signal: when that component is disabled it
|
|
213
243
|
* makes the host focusable (so the tooltip can still be triggered) and enables the tooltip, otherwise disables it.
|
|
214
244
|
*
|
|
215
|
-
* Also joins the "only one tooltip is visible at a time" group
|
|
216
|
-
* here rather than in `ngAfterViewInit`/`ngOnDestroy` because
|
|
217
|
-
* `KbqTitleDirective` and `KbqEllipsisCenterDirective` skip
|
|
218
|
-
* skips `super` in both hooks entirely. `destroyRef`
|
|
219
|
-
* tooltip is still visible — that path disposes the
|
|
245
|
+
* Also joins the "only one tooltip is visible at a time" group and mutes the tooltip while a pop-up on the
|
|
246
|
+
* same element is open. All of this wiring lives here rather than in `ngAfterViewInit`/`ngOnDestroy` because
|
|
247
|
+
* several subclasses override those hooks: `KbqTitleDirective` and `KbqEllipsisCenterDirective` skip
|
|
248
|
+
* `super.ngAfterViewInit()`, and `KbqPasswordToggle` skips `super` in both hooks entirely. `destroyRef`
|
|
249
|
+
* additionally covers a trigger destroyed while its tooltip is still visible — that path disposes the
|
|
250
|
+
* overlay without emitting `visibleChange(false)`.
|
|
220
251
|
*/
|
|
221
252
|
constructor();
|
|
222
253
|
/**
|
|
@@ -227,12 +258,24 @@ declare class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipComponent> imp
|
|
|
227
258
|
/** Stops focus monitoring on the host element and runs the base-class teardown. */
|
|
228
259
|
ngOnDestroy(): void;
|
|
229
260
|
/**
|
|
230
|
-
* Shows the tooltip after `delay` ms. Suppresses showing
|
|
231
|
-
* the keyboard, and applies cursor-relative
|
|
261
|
+
* Shows the tooltip after `delay` ms. Suppresses showing while a pop-up on the same element holds the
|
|
262
|
+
* anchor or on a focus trigger that did not originate from the keyboard, and applies cursor-relative
|
|
263
|
+
* positioning when `relativeToPointer` is enabled.
|
|
232
264
|
*/
|
|
233
265
|
show(delay?: number): void;
|
|
234
266
|
/**
|
|
235
|
-
* Hides the tooltip
|
|
267
|
+
* Hides the tooltip after `delay` ms and, when the user has genuinely left the host, un-mutes a tooltip
|
|
268
|
+
* that a pop-up on the same element had muted.
|
|
269
|
+
*
|
|
270
|
+
* `mouseleave` and `blur` are the release signals because the base class binds `hide` to both regardless
|
|
271
|
+
* of whether the tooltip is currently visible. A pop-up that is still attached does not count: its
|
|
272
|
+
* backdrop steals the hover from the trigger while the pointer stands still, and that `mouseleave` must
|
|
273
|
+
* not be mistaken for the user leaving.
|
|
274
|
+
*/
|
|
275
|
+
hide(delay?: number): void;
|
|
276
|
+
/**
|
|
277
|
+
* Hides the tooltip because something else took its place — another tooltip became visible, or a pop-up
|
|
278
|
+
* anchored to the same element opened.
|
|
236
279
|
*
|
|
237
280
|
* Goes straight to the pop-up instead of `hide()`: `hide()` silently no-ops when the last recorded
|
|
238
281
|
* `triggerName` is `mouseleave` and the pop-up itself is hovered. Hiding through the instance keeps
|
|
@@ -263,7 +306,7 @@ declare class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipComponent> imp
|
|
|
263
306
|
/** @docs-private */
|
|
264
307
|
protected applyRelativeToPointer(): void;
|
|
265
308
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqTooltipTrigger, never>;
|
|
266
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<KbqTooltipTrigger, "[kbqTooltip]", ["kbqTooltip"], { "forDisabledComponent": { "alias": "forDisabledComponent"; "required": false; "isSignal": true; }; "ignoreTooltipPointerEvents": { "alias": "ignoreTooltipPointerEvents"; "required": false; "isSignal": true; }; "singleInstance": { "alias": "kbqTooltipSingleInstance"; "required": false; "isSignal": true; }; "hideWithTimeout": { "alias": "hideWithTimeout"; "required": false; }; "tooltipVisible": { "alias": "kbqVisible"; "required": false; }; "tooltipPlacement": { "alias": "kbqPlacement"; "required": false; }; "relativeToPointer": { "alias": "kbqRelativeToPointer"; "required": false; }; "tooltipPlacementPriority": { "alias": "kbqPlacementPriority"; "required": false; }; "content": { "alias": "kbqTooltip"; "required": false; }; "disabled": { "alias": "kbqTooltipDisabled"; "required": false; }; "enterDelay": { "alias": "kbqEnterDelay"; "required": false; }; "leaveDelay": { "alias": "kbqLeaveDelay"; "required": false; }; "trigger": { "alias": "kbqTrigger"; "required": false; }; "customClass": { "alias": "kbqTooltipClass"; "required": false; }; "context": { "alias": "kbqTooltipContext"; "required": false; }; "color": { "alias": "kbqTooltipColor"; "required": false; }; "arrow": { "alias": "kbqTooltipArrow"; "required": false; }; "offset": { "alias": "kbqTooltipOffset"; "required": false; }; "modifier": { "alias": "kbqTooltipModifier"; "required": false; }; "header": { "alias": "kbqTooltipHeader"; "required": false; }; }, { "placementChange": "kbqPlacementChange"; "visibleChange": "kbqVisibleChange"; }, never, never, true, never>;
|
|
309
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<KbqTooltipTrigger, "[kbqTooltip]", ["kbqTooltip"], { "scrollStrategyOverride": { "alias": "kbqTooltipScrollStrategy"; "required": false; "isSignal": true; }; "forDisabledComponent": { "alias": "forDisabledComponent"; "required": false; "isSignal": true; }; "ignoreTooltipPointerEvents": { "alias": "ignoreTooltipPointerEvents"; "required": false; "isSignal": true; }; "singleInstance": { "alias": "kbqTooltipSingleInstance"; "required": false; "isSignal": true; }; "hideWithTimeout": { "alias": "hideWithTimeout"; "required": false; }; "tooltipVisible": { "alias": "kbqVisible"; "required": false; }; "tooltipPlacement": { "alias": "kbqPlacement"; "required": false; }; "relativeToPointer": { "alias": "kbqRelativeToPointer"; "required": false; }; "tooltipPlacementPriority": { "alias": "kbqPlacementPriority"; "required": false; }; "content": { "alias": "kbqTooltip"; "required": false; }; "disabled": { "alias": "kbqTooltipDisabled"; "required": false; }; "enterDelay": { "alias": "kbqEnterDelay"; "required": false; }; "leaveDelay": { "alias": "kbqLeaveDelay"; "required": false; }; "trigger": { "alias": "kbqTrigger"; "required": false; }; "customClass": { "alias": "kbqTooltipClass"; "required": false; }; "context": { "alias": "kbqTooltipContext"; "required": false; }; "color": { "alias": "kbqTooltipColor"; "required": false; }; "arrow": { "alias": "kbqTooltipArrow"; "required": false; }; "offset": { "alias": "kbqTooltipOffset"; "required": false; }; "modifier": { "alias": "kbqTooltipModifier"; "required": false; }; "header": { "alias": "kbqTooltipHeader"; "required": false; }; }, { "placementChange": "kbqPlacementChange"; "visibleChange": "kbqVisibleChange"; }, never, never, true, never>;
|
|
267
310
|
static ngAcceptInputType_hideWithTimeout: unknown;
|
|
268
311
|
static ngAcceptInputType_relativeToPointer: unknown;
|
|
269
312
|
static ngAcceptInputType_arrow: unknown;
|