@koobiq/components 20.0.0 → 20.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion-trigger.component.scss +0 -18
- package/accordion/accordion.component.scss +9 -2
- package/actions-panel/index.d.ts +1 -0
- package/alert/_alert-theme.scss +0 -4
- package/alert/alert-tokens.scss +4 -4
- package/app-switcher/app-switcher-dropdown-app.scss +2 -0
- package/breadcrumbs/breadcrumbs.scss +4 -0
- package/breadcrumbs/index.d.ts +2 -1
- package/button/button-group.scss +42 -2
- package/button-toggle/button-toggle.scss +23 -0
- package/button-toggle/index.d.ts +3 -1
- package/checkbox/checkbox.scss +5 -4
- package/clamped-text/index.d.ts +1 -0
- package/core/index.d.ts +402 -13
- package/core/styles/common/_animation.scss +4 -0
- package/core/styles/theming/_components-theming.scss +1 -1
- package/core/styles/theming/_scrollbar-theme.scss +4 -0
- package/datepicker/_datepicker-theme.scss +1 -1
- package/datepicker/datepicker-toggle.scss +3 -3
- package/dl/index.d.ts +1 -0
- package/dropdown/dropdown.scss +2 -2
- package/fesm2022/koobiq-components-accordion.mjs +4 -4
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +14 -5
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +2 -2
- package/fesm2022/koobiq-components-alert.mjs.map +1 -1
- package/fesm2022/koobiq-components-app-switcher.mjs +6 -6
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs +6 -4
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +9 -6
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +4 -4
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-checkbox.mjs +2 -2
- package/fesm2022/koobiq-components-checkbox.mjs.map +1 -1
- package/fesm2022/koobiq-components-clamped-text.mjs +4 -0
- package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +4 -0
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +449 -112
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +5 -5
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-dl.mjs +3 -2
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +8 -13
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +33 -22
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +974 -758
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-flag.mjs +66 -0
- package/fesm2022/koobiq-components-flag.mjs.map +1 -0
- package/fesm2022/koobiq-components-form-field.mjs +2 -2
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +2 -2
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +27 -6
- package/fesm2022/koobiq-components-inline-edit.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +39 -20
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-loader-overlay.mjs +2 -2
- package/fesm2022/koobiq-components-loader-overlay.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +9 -5
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +10 -9
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +178 -19
- package/fesm2022/koobiq-components-notification-center.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +12 -4
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +4 -4
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-bar.mjs +2 -2
- package/fesm2022/koobiq-components-progress-bar.mjs.map +1 -1
- package/fesm2022/koobiq-components-progress-spinner.mjs +2 -2
- package/fesm2022/koobiq-components-progress-spinner.mjs.map +1 -1
- package/fesm2022/koobiq-components-radio.mjs +3 -7
- package/fesm2022/koobiq-components-radio.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +38 -16
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidebar.mjs +4 -0
- package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +3 -3
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-skeleton.mjs +2 -2
- package/fesm2022/koobiq-components-skeleton.mjs.map +1 -1
- package/fesm2022/koobiq-components-split-button.mjs +2 -2
- package/fesm2022/koobiq-components-split-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-splitter.mjs +6 -2
- package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
- package/fesm2022/koobiq-components-table.mjs +8 -6
- package/fesm2022/koobiq-components-table.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +19 -7
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +7 -0
- package/fesm2022/koobiq-components-tags.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +7 -14
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-time-range.mjs +4 -4
- package/fesm2022/koobiq-components-time-range.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +6 -0
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +132 -14
- package/fesm2022/koobiq-components-title.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +1 -1
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +2 -2
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +50 -2
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +44 -11
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +67 -41
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/fesm2022/koobiq-components-username.mjs +16 -3
- package/fesm2022/koobiq-components-username.mjs.map +1 -1
- package/file-upload/file-upload-tokens.scss +1 -0
- package/file-upload/index.d.ts +10 -7
- package/filter-bar/_filter-bar-theme.scss +86 -0
- package/filter-bar/filter-bar-tokens.scss +6 -0
- package/filter-bar/filter-bar.scss +10 -4
- package/filter-bar/filter-refresher.scss +1 -1
- package/filter-bar/filters.scss +23 -19
- package/filter-bar/index.d.ts +707 -338
- package/filter-bar/pipes/base-pipe.scss +14 -35
- package/filter-bar/pipes/pipe-date.scss +20 -14
- package/filter-bar/pipes/pipe-multi-tree-select.scss +5 -3
- package/filter-bar/pipes/pipe-multiselect.scss +5 -3
- package/filter-bar/pipes/pipe-readonly.scss +4 -13
- package/filter-bar/pipes/pipe-select.scss +3 -1
- package/filter-bar/pipes/pipe-tree-select.scss +3 -1
- package/flag/flag.scss +53 -0
- package/flag/index.d.ts +44 -0
- package/icon/icon-item-tokens.scss +1 -1
- package/inline-edit/index.d.ts +5 -0
- package/inline-edit/inline-edit.scss +7 -7
- package/link/link-tokens.scss +2 -2
- package/list/index.d.ts +11 -2
- package/loader-overlay/loader-overlay-tokens.scss +1 -1
- package/modal/_modal-animation.scss +6 -6
- package/modal/_modal-theme.scss +5 -0
- package/modal/index.d.ts +3 -1
- package/modal/modal.scss +15 -0
- package/navbar/index.d.ts +1 -0
- package/navbar/navbar-item.scss +9 -0
- package/notification-center/_notification-center-theme.scss +2 -1
- package/notification-center/index.d.ts +88 -3
- package/notification-center/notification-center.scss +42 -4
- package/notification-center/notification-item.scss +3 -2
- package/overflow-items/index.d.ts +1 -0
- package/package.json +7 -3
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/light-theme.css +1 -1
- package/prebuilt-themes/theme.css +1 -1
- package/progress-bar/progress-bar.scss +4 -0
- package/progress-spinner/progress-spinner.scss +5 -1
- package/radio/index.d.ts +1 -5
- package/radio/radio.scss +18 -4
- package/schematics/collection.json +5 -0
- package/schematics/migrations/filter-bar-signals/README.md +66 -0
- package/schematics/migrations/filter-bar-signals/data.js +72 -0
- package/schematics/migrations/filter-bar-signals/index.js +316 -0
- package/schematics/migrations/filter-bar-signals/schema.json +20 -0
- package/schematics/migrations.json +5 -0
- package/schematics/ng-add/index.js +1 -1
- package/select/index.d.ts +10 -2
- package/sidebar/index.d.ts +1 -0
- package/skeleton/skeleton.scss +4 -0
- package/split-button/_split-button-theme.scss +2 -2
- package/splitter/_splitter-theme.scss +2 -2
- package/splitter/index.d.ts +1 -0
- package/table/_table-theme.scss +4 -0
- package/table/index.d.ts +3 -2
- package/tabs/index.d.ts +2 -0
- package/tabs/tab-header.scss +1 -0
- package/tabs/tabs-tokens.scss +1 -1
- package/textarea/index.d.ts +0 -1
- package/time-range/time-range.scss +0 -8
- package/timepicker/timepicker.scss +2 -2
- package/timezone/index.d.ts +1 -0
- package/title/index.d.ts +92 -2
- package/tooltip/index.d.ts +51 -3
- package/tree/_tree-theme.scss +2 -7
- package/tree/index.d.ts +19 -4
- package/tree/toggle.scss +5 -0
- package/tree/tree-option.scss +0 -4
- package/tree-select/_tree-select-theme.scss +1 -1
- package/tree-select/index.d.ts +9 -2
- package/username/index.d.ts +20 -2
package/table/index.d.ts
CHANGED
|
@@ -4,9 +4,10 @@ import * as i1 from '@angular/cdk/a11y';
|
|
|
4
4
|
import * as i2 from '@angular/cdk/platform';
|
|
5
5
|
|
|
6
6
|
declare class KbqTable {
|
|
7
|
-
readonly border: i0.
|
|
7
|
+
readonly border: i0.InputSignalWithTransform<boolean, unknown>;
|
|
8
|
+
readonly disableHover: i0.InputSignalWithTransform<boolean, unknown>;
|
|
8
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqTable, never>;
|
|
9
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<KbqTable, "table[kbq-table]", ["kbqTable"], { "border": { "alias": "border"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
10
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KbqTable, "table[kbq-table]", ["kbqTable"], { "border": { "alias": "border"; "required": false; "isSignal": true; }; "disableHover": { "alias": "disableHover"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
10
11
|
}
|
|
11
12
|
declare class KbqTableCellContent {
|
|
12
13
|
readonly button: i0.Signal<KbqButton | undefined>;
|
package/tabs/index.d.ts
CHANGED
|
@@ -408,6 +408,7 @@ declare class KbqTabHeader extends KbqPaginatedTabHeader {
|
|
|
408
408
|
readonly tabList: ElementRef;
|
|
409
409
|
readonly nextPaginator: ElementRef<HTMLElement>;
|
|
410
410
|
readonly previousPaginator: ElementRef<HTMLElement>;
|
|
411
|
+
private readonly isBrowser;
|
|
411
412
|
/** Width of the active tab, adjusted for icon-only tab margins. */
|
|
412
413
|
protected get activeTabOffsetWidth(): number | undefined;
|
|
413
414
|
/** Left offset of the active tab, adjusted for icon-only tab margins. */
|
|
@@ -554,6 +555,7 @@ declare class KbqTabNavBar extends KbqPaginatedTabHeader implements AfterContent
|
|
|
554
555
|
readonly nextPaginator: ElementRef<HTMLElement>;
|
|
555
556
|
readonly previousPaginator: ElementRef<HTMLElement>;
|
|
556
557
|
readonly items: QueryList<KbqTabLink>;
|
|
558
|
+
private readonly isBrowser;
|
|
557
559
|
/** Whether the nav bar background should be transparent. */
|
|
558
560
|
readonly transparent: i0.InputSignalWithTransform<boolean, unknown>;
|
|
559
561
|
readonly onSurface: i0.InputSignalWithTransform<boolean, unknown>;
|
package/tabs/tab-header.scss
CHANGED
package/tabs/tabs-tokens.scss
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
--kbq-tabs-size-tab-item-content-gap-horizontal: var(--kbq-size-xxs);
|
|
6
6
|
--kbq-tabs-size-tab-item-border-radius: var(--kbq-size-s);
|
|
7
7
|
--kbq-tabs-size-tab-item-focus-outline-width: var(--kbq-size-3xs);
|
|
8
|
-
--kbq-tabs-size-tab-stack-horizontal-border-radius: var(--kbq-size-
|
|
8
|
+
--kbq-tabs-size-tab-stack-horizontal-border-radius: var(--kbq-size-border-radius);
|
|
9
9
|
--kbq-tabs-size-tab-stack-vertical-content-gap-vertical: var(--kbq-size-s);
|
|
10
10
|
/* THEME TOKENS */
|
|
11
11
|
--kbq-tabs-tab-item-filled-on-background-default-background: transparent;
|
package/textarea/index.d.ts
CHANGED
|
@@ -33,14 +33,6 @@
|
|
|
33
33
|
flex-direction: column;
|
|
34
34
|
gap: var(--kbq-size-s);
|
|
35
35
|
|
|
36
|
-
.kbq-time-range-editor__predefined {
|
|
37
|
-
column-count: 2;
|
|
38
|
-
|
|
39
|
-
.kbq-time-range-editor__predefined-option {
|
|
40
|
-
display: block;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
36
|
.kbq-time-range-editor__date-time {
|
|
45
37
|
display: flex;
|
|
46
38
|
flex-direction: row;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
@use '../core/styles/common/tokens' as *;
|
|
2
2
|
|
|
3
3
|
.kbq-timepicker {
|
|
4
|
-
//
|
|
5
|
-
padding-right: var(--kbq-timepicker-size-padding-right);
|
|
4
|
+
// @TODO define --kbq-timepicker-size-padding-right in design-tokens; fallback keeps spacing meanwhile
|
|
5
|
+
padding-right: var(--kbq-timepicker-size-padding-right, var(--kbq-size-s));
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
.kbq-form-field-type-timepicker {
|
package/timezone/index.d.ts
CHANGED
|
@@ -48,6 +48,7 @@ declare class KbqTimezoneOptionTooltip extends KbqTooltipTrigger implements Afte
|
|
|
48
48
|
private readonly changeDetectorRef;
|
|
49
49
|
private readonly resizeObserver;
|
|
50
50
|
private readonly contentObserver;
|
|
51
|
+
private readonly platform;
|
|
51
52
|
private readonly debounceInterval;
|
|
52
53
|
private resizeSubscription;
|
|
53
54
|
private contentObserverSubscription;
|
package/title/index.d.ts
CHANGED
|
@@ -1,35 +1,125 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { AfterViewInit, OnDestroy } from '@angular/core';
|
|
2
|
+
import { AfterViewInit, OnDestroy, TemplateRef } from '@angular/core';
|
|
3
3
|
import * as i1 from '@koobiq/components/tooltip';
|
|
4
4
|
import { KbqTooltipTrigger } from '@koobiq/components/tooltip';
|
|
5
5
|
import { Subject } from 'rxjs';
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* Shows a tooltip with the full text of the host element, but only when that text is truncated —
|
|
9
|
+
* i.e. it overflows horizontally, or vertically when clamped to several lines. The tooltip opens on
|
|
10
|
+
* hover and on keyboard focus, and hides on blur, mouse leave, or window resize.
|
|
11
|
+
*
|
|
12
|
+
* By default, the tooltip content is the trimmed `textContent` of the host. Provide explicit content
|
|
13
|
+
* with `[kbq-title]="stringOrTemplateRef"`. For nested markup, mark the measured container with the
|
|
14
|
+
* `#kbqTitleContainer` template reference and the text element(s) with `#kbqTitleText`; several
|
|
15
|
+
* `#kbqTitleText` elements are supported and the tooltip is shown when any of them overflows.
|
|
16
|
+
*
|
|
17
|
+
* Host components that provide `KBQ_TITLE_TEXT_REF` (e.g. `KbqOption`) supply the text and parent
|
|
18
|
+
* elements automatically, so the directive works without explicit template references.
|
|
19
|
+
*/
|
|
7
20
|
declare class KbqTitleDirective extends KbqTooltipTrigger implements AfterViewInit, OnDestroy {
|
|
21
|
+
/** Optional host component that exposes the measured text/parent elements via `KBQ_TITLE_TEXT_REF`. */
|
|
8
22
|
private componentInstance;
|
|
23
|
+
/** Host native element the directive is attached to. */
|
|
9
24
|
private readonly nativeElement;
|
|
25
|
+
/** SSR-safe window reference used for `getComputedStyle` reads. */
|
|
26
|
+
private readonly window;
|
|
27
|
+
/** Observes host content mutations to re-evaluate overflow and refresh the resolved tooltip content. */
|
|
10
28
|
private contentObserver;
|
|
29
|
+
/**
|
|
30
|
+
* Optional explicit tooltip content. Accepts a `TemplateRef` (rendered as rich tooltip content) or a string.
|
|
31
|
+
* When omitted (a bare `kbq-title` attribute resolves to an empty string), the directive falls back to the
|
|
32
|
+
* trimmed `textContent` of the host (`viewValue`), preserving the default behavior.
|
|
33
|
+
*/
|
|
34
|
+
readonly titleContent: i0.InputSignal<string | TemplateRef<any>>;
|
|
11
35
|
set trigger(value: string);
|
|
36
|
+
/**
|
|
37
|
+
* The pop-up trigger. Always reports `PopUpTriggers.Hover`, so the title tooltip reacts to hover and
|
|
38
|
+
* keyboard focus regardless of the assigned value. The setter is kept only as a no-op workaround so a
|
|
39
|
+
* host that also uses a popover can assign a trigger without breaking `kbq-title`.
|
|
40
|
+
*/
|
|
12
41
|
get trigger(): string;
|
|
42
|
+
/**
|
|
43
|
+
* Whether the host content is clipped and therefore needs a tooltip. Returns `true` if any measured
|
|
44
|
+
* text element overflows the parent — covering multiple `#kbqTitleText` elements, the sub-pixel
|
|
45
|
+
* special case, and both horizontal and vertical overflow.
|
|
46
|
+
*/
|
|
13
47
|
get isOverflown(): boolean;
|
|
48
|
+
/** Whether the text is clipped horizontally: the parent `offsetWidth` is smaller than the child `scrollWidth`. */
|
|
14
49
|
get isHorizontalOverflown(): boolean;
|
|
50
|
+
/** Whether the text is clipped vertically: the parent `offsetHeight` is smaller than the child `scrollHeight`. */
|
|
15
51
|
get isVerticalOverflown(): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Compares measured widths, treating only *visible* clipping as overflow. With `text-overflow: ellipsis`
|
|
54
|
+
* any positive difference counts (even a sub-pixel overflow shows `…`). With `text-overflow: clip` the
|
|
55
|
+
* widths are rounded to whole CSS pixels first — mirroring the integer `offsetWidth`/`scrollWidth` path —
|
|
56
|
+
* so an imperceptible sub-pixel clip is not treated as truncation.
|
|
57
|
+
* @docs-private */
|
|
58
|
+
private isWidthOverflown;
|
|
59
|
+
/** Trimmed `textContent` of the measured parent, used as the default tooltip content. */
|
|
16
60
|
get viewValue(): string;
|
|
61
|
+
/**
|
|
62
|
+
* Measured container element. Resolved as the projected `#kbqTitleContainer`, otherwise the
|
|
63
|
+
* `KBQ_TITLE_TEXT_REF` host's `parentTextElement`, otherwise the host element itself.
|
|
64
|
+
* @docs-private */
|
|
17
65
|
get parent(): HTMLElement;
|
|
66
|
+
/** First effective text element used for overflow detection (the first entry of `childElements`).
|
|
67
|
+
* @docs-private */
|
|
18
68
|
get child(): HTMLElement;
|
|
69
|
+
/** Whether the host element contains exactly one child node and that node is a text node. */
|
|
19
70
|
get hasOnlyText(): boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Whether the measured text truncates with an ellipsis on either the child text element or its
|
|
73
|
+
* wrapping container. Only then is a sub-pixel overflow actually visible (the trailing glyph is
|
|
74
|
+
* replaced by `…`); with the default `text-overflow: clip` a sub-pixel clip is imperceptible, so
|
|
75
|
+
* it must not be reported as truncation. Both elements are checked because `text-overflow` is not
|
|
76
|
+
* inherited and consumers place it differently: `KbqOption`/`KbqDropdownItem` style the measured
|
|
77
|
+
* `child`, whereas `KbqTreeOption` styles the `parent` container that wraps the child.
|
|
78
|
+
* @docs-private */
|
|
79
|
+
private get hasEllipsis();
|
|
80
|
+
/** Whether the element's computed `text-overflow` renders an ellipsis.
|
|
81
|
+
* @docs-private */
|
|
82
|
+
private elementHasEllipsis;
|
|
83
|
+
/**
|
|
84
|
+
* Effective text elements used for overflow detection. Resolves to the projected `#kbqTitleText` elements,
|
|
85
|
+
* otherwise falls back to the `KbqTitleTextRef` host's `textElement`, otherwise to the host element itself.
|
|
86
|
+
* Always contains at least one element.
|
|
87
|
+
* @docs-private */
|
|
88
|
+
private get childElements();
|
|
89
|
+
/** Resolved tooltip content: the explicit `titleContent` input when provided, otherwise the host text.
|
|
90
|
+
* @docs-private */
|
|
91
|
+
private get resolvedContent();
|
|
92
|
+
/** Emits `window:resize` events; subscribed to re-evaluate overflow after the viewport changes.
|
|
93
|
+
* @docs-private */
|
|
20
94
|
readonly resizeStream: Subject<Event>;
|
|
95
|
+
/** Debounce/throttle interval (ms) applied to the resize and content-observer streams. */
|
|
21
96
|
private readonly debounceInterval;
|
|
97
|
+
/** Subscription to `resizeStream`, torn down in `ngOnDestroy`. */
|
|
22
98
|
private resizeSubscription;
|
|
99
|
+
/** Subscription to the content observer, torn down in `ngOnDestroy`. */
|
|
23
100
|
private contentObserverSubscription;
|
|
101
|
+
/** Subscription to the focus monitor, torn down in `ngOnDestroy`. */
|
|
24
102
|
private focusMonitorSubscription;
|
|
103
|
+
/** Projected text elements marked with the `#kbqTitleText` template reference. */
|
|
25
104
|
private childContainer;
|
|
105
|
+
/** Projected container element marked with the `#kbqTitleContainer` template reference. */
|
|
26
106
|
private parentContainer;
|
|
107
|
+
/**
|
|
108
|
+
* Sets the initial tooltip content and wires the streams that toggle the tooltip's `disabled` state:
|
|
109
|
+
* window resize and content mutations re-evaluate overflow, and keyboard focus opens the tooltip
|
|
110
|
+
* while other focus origins hide it.
|
|
111
|
+
*/
|
|
27
112
|
ngAfterViewInit(): void;
|
|
113
|
+
/** Unsubscribes from the resize, content-observer and focus-monitor streams and stops focus monitoring. */
|
|
28
114
|
ngOnDestroy(): void;
|
|
115
|
+
/** Enables the tooltip only when the content is overflown. Bound to `mouseenter` and keyboard focus.
|
|
116
|
+
* @docs-private */
|
|
29
117
|
handleElementEnter(): void;
|
|
118
|
+
/** Always disables (hides) the tooltip. Bound to `mouseleave` and non-keyboard focus changes.
|
|
119
|
+
* @docs-private */
|
|
30
120
|
hideTooltip(): void;
|
|
31
121
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqTitleDirective, never>;
|
|
32
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<KbqTitleDirective, "[kbq-title]", ["kbqTitle"], {}, {}, ["
|
|
122
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<KbqTitleDirective, "[kbq-title]", ["kbqTitle"], { "titleContent": { "alias": "kbq-title"; "required": false; "isSignal": true; }; }, {}, ["parentContainer", "childContainer"], never, true, never>;
|
|
33
123
|
}
|
|
34
124
|
|
|
35
125
|
declare class KbqTitleModule {
|
package/tooltip/index.d.ts
CHANGED
|
@@ -43,9 +43,17 @@ declare const KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER: {
|
|
|
43
43
|
deps: (typeof Overlay)[];
|
|
44
44
|
useFactory: typeof kbqTooltipScrollStrategyFactory;
|
|
45
45
|
};
|
|
46
|
+
/**
|
|
47
|
+
* Trigger directive that shows a `KbqTooltipComponent` for its host element. Extends `KbqPopUpTrigger` with
|
|
48
|
+
* tooltip-specific inputs (content, placement, color, arrow, enter/leave delays, modifier and header) and
|
|
49
|
+
* behavior such as opening on keyboard focus only and positioning relative to the mouse cursor.
|
|
50
|
+
*/
|
|
46
51
|
declare class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipComponent> implements AfterViewInit, OnChanges, OnDestroy {
|
|
52
|
+
/** @docs-private */
|
|
47
53
|
protected scrollStrategy: () => ScrollStrategy;
|
|
54
|
+
/** @docs-private */
|
|
48
55
|
protected parentPopup: KbqParentPopup | null;
|
|
56
|
+
/** @docs-private */
|
|
49
57
|
protected focusMonitor: FocusMonitor;
|
|
50
58
|
/** @docs-private */
|
|
51
59
|
protected renderer: Renderer2;
|
|
@@ -70,40 +78,61 @@ declare class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipComponent> imp
|
|
|
70
78
|
* to tooltip.
|
|
71
79
|
*/
|
|
72
80
|
hideWithTimeout: boolean;
|
|
81
|
+
/** Input (`kbqVisible`) that programmatically shows or hides the tooltip; reflects the current `visible` state. */
|
|
73
82
|
get tooltipVisible(): boolean;
|
|
74
83
|
set tooltipVisible(value: boolean);
|
|
84
|
+
/** Input (`kbqPlacement`) that sets the tooltip placement relative to its trigger; reflects the current `placement`. */
|
|
75
85
|
get tooltipPlacement(): KbqPopUpPlacementValues;
|
|
86
|
+
set tooltipPlacement(value: KbqPopUpPlacementValues);
|
|
76
87
|
/**
|
|
77
88
|
* Positions the tooltip relative to the mouse cursor. Only available for top and bottom kbqPlacement.
|
|
78
89
|
* Does not work with kbqPlacementPriority.
|
|
79
90
|
*/
|
|
80
91
|
relativeToPointer: boolean;
|
|
81
|
-
|
|
92
|
+
/** Input (`kbqPlacementPriority`) that sets the ordered fallback placements; reflects the current `placementPriority`. */
|
|
82
93
|
get tooltipPlacementPriority(): string | string[] | null;
|
|
83
94
|
set tooltipPlacementPriority(value: string | string[] | null);
|
|
95
|
+
/** Input (`kbqTooltip`) with the tooltip content — a string or a template. Updating it refreshes an open tooltip. */
|
|
84
96
|
get content(): string | TemplateRef<any>;
|
|
85
97
|
set content(content: string | TemplateRef<any>);
|
|
98
|
+
/** Input (`kbqTooltipDisabled`) controlling whether the tooltip is disabled; setting it to `true` hides it. */
|
|
86
99
|
get disabled(): boolean;
|
|
87
100
|
set disabled(value: boolean);
|
|
101
|
+
/** Input (`kbqEnterDelay`) — delay in milliseconds before the tooltip is shown. Defaults to `400`. */
|
|
88
102
|
enterDelay: number;
|
|
103
|
+
/** Input (`kbqLeaveDelay`) — delay in milliseconds before the tooltip is hidden. Defaults to `0`. */
|
|
89
104
|
leaveDelay: number;
|
|
105
|
+
/** Input (`kbqTrigger`) with the comma-separated trigger events. An empty value resets to hover + focus and rebinds listeners. */
|
|
90
106
|
get trigger(): string;
|
|
91
107
|
set trigger(value: string);
|
|
108
|
+
/** Backing field for `trigger`; defaults to hover + focus. */
|
|
92
109
|
protected _trigger: string;
|
|
110
|
+
/** Input (`kbqTooltipClass`) with an extra CSS class applied to the tooltip; updating it refreshes the class map. */
|
|
93
111
|
get customClass(): string;
|
|
94
112
|
set customClass(value: string);
|
|
113
|
+
/** Input (`kbqTooltipContext`) with the context object passed to a template tooltip; updating it refreshes the open tooltip. */
|
|
95
114
|
get context(): any;
|
|
96
115
|
set context(ctx: any);
|
|
116
|
+
/** Backing field for `context`. */
|
|
97
117
|
private _context;
|
|
118
|
+
/** Input (`kbqTooltipColor`) with the tooltip color theme; the getter returns the `kbq-`-prefixed CSS class. */
|
|
98
119
|
get color(): string;
|
|
99
120
|
set color(value: KbqComponentColors | string);
|
|
121
|
+
/** Backing field for `color`; defaults to `KbqComponentColors.Contrast`. */
|
|
100
122
|
private _color;
|
|
123
|
+
/** Input (`kbqTooltipArrow`) — whether to render the tooltip's arrow/pointer. Defaults to `false`. */
|
|
101
124
|
arrow: boolean;
|
|
125
|
+
/** Input (`kbqTooltipOffset`) — distance in pixels between the tooltip and its trigger; `null` uses the default. */
|
|
102
126
|
offset: number | null;
|
|
127
|
+
/** Output (`kbqPlacementChange`) that emits the new placement whenever the tooltip repositions. */
|
|
103
128
|
readonly placementChange: EventEmitter<any>;
|
|
129
|
+
/** Output (`kbqVisibleChange`) that emits when the tooltip's visibility changes. */
|
|
104
130
|
readonly visibleChange: EventEmitter<boolean>;
|
|
131
|
+
/** Whether the configured trigger list includes the `click` trigger. */
|
|
105
132
|
private get hasClickInTrigger();
|
|
133
|
+
/** @docs-private */
|
|
106
134
|
protected originSelector: string;
|
|
135
|
+
/** @docs-private */
|
|
107
136
|
protected overlayConfig: OverlayConfig;
|
|
108
137
|
/**
|
|
109
138
|
* Visual variant of the tooltip. Accepts `'default'` | `'warning'` | `'extended'`.
|
|
@@ -126,11 +155,25 @@ declare class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipComponent> imp
|
|
|
126
155
|
* the next show/hide cycle.
|
|
127
156
|
*/
|
|
128
157
|
ngOnChanges(changes: SimpleChanges): void;
|
|
158
|
+
/**
|
|
159
|
+
* Sets up an effect that mirrors a `forDisabledComponent`'s disabled signal: when that component is disabled it
|
|
160
|
+
* makes the host focusable (so the tooltip can still be triggered) and enables the tooltip, otherwise disables it.
|
|
161
|
+
*/
|
|
129
162
|
constructor();
|
|
163
|
+
/**
|
|
164
|
+
* Hides the tooltip when a parent pop-up closes, starts focus monitoring on the host, and—when
|
|
165
|
+
* `ignoreTooltipPointerEvents` is set—adds the panel class that makes the tooltip ignore pointer events.
|
|
166
|
+
*/
|
|
130
167
|
ngAfterViewInit(): void;
|
|
168
|
+
/** Stops focus monitoring on the host element and runs the base-class teardown. */
|
|
131
169
|
ngOnDestroy(): void;
|
|
170
|
+
/**
|
|
171
|
+
* Shows the tooltip after `delay` ms. Suppresses showing on a focus trigger that did not originate from
|
|
172
|
+
* the keyboard, and applies cursor-relative positioning when `relativeToPointer` is enabled.
|
|
173
|
+
*/
|
|
132
174
|
show(delay?: number): void;
|
|
133
|
-
/** method allows to show the tooltip relative to the given mouse event.
|
|
175
|
+
/** method allows to show the tooltip relative to the given mouse event.
|
|
176
|
+
* @docs-private */
|
|
134
177
|
showForMouseEvent(event: MouseEvent): void;
|
|
135
178
|
/**
|
|
136
179
|
* method allows to show the tooltip relative to the element
|
|
@@ -139,12 +182,17 @@ declare class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipComponent> imp
|
|
|
139
182
|
* For example:
|
|
140
183
|
* const tooltip = new KbqTooltipTrigger();
|
|
141
184
|
* tooltip.showForElement(element);
|
|
142
|
-
*/
|
|
185
|
+
* @docs-private */
|
|
143
186
|
showForElement(element: HTMLElement): void;
|
|
187
|
+
/** @docs-private */
|
|
144
188
|
updateData(): void;
|
|
189
|
+
/** @docs-private */
|
|
145
190
|
closingActions(): rxjs.Observable<void | MouseEvent>;
|
|
191
|
+
/** @docs-private */
|
|
146
192
|
getOverlayHandleComponentType(): Type<KbqTooltipComponent>;
|
|
193
|
+
/** @docs-private */
|
|
147
194
|
updateClassMap(newPlacement?: string): void;
|
|
195
|
+
/** @docs-private */
|
|
148
196
|
protected applyRelativeToPointer(): void;
|
|
149
197
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqTooltipTrigger, never>;
|
|
150
198
|
static ɵdir: i0.ɵɵDirectiveDeclaration<KbqTooltipTrigger, "[kbqTooltip]", ["kbqTooltip"], { "forDisabledComponent": { "alias": "forDisabledComponent"; "required": false; "isSignal": true; }; "ignoreTooltipPointerEvents": { "alias": "ignoreTooltipPointerEvents"; "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>;
|
package/tree/_tree-theme.scss
CHANGED
|
@@ -11,11 +11,6 @@
|
|
|
11
11
|
color: var(--kbq-tree-#{$state-name}-text-color);
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
.kbq-tree-node-toggle .kbq-icon.kbq-empty,
|
|
15
|
-
.kbq-icon.kbq-empty.kbq-tree-node-toggle {
|
|
16
|
-
color: var(--kbq-tree-#{$state-name}-tree-toggle-color);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
14
|
.kbq-option-action .kbq-icon.kbq-empty {
|
|
20
15
|
color: var(--kbq-tree-#{$state-name}-action-button-color);
|
|
21
16
|
}
|
|
@@ -69,7 +64,7 @@
|
|
|
69
64
|
&.kbq-disabled {
|
|
70
65
|
@include kbq-tree-option(states-disabled);
|
|
71
66
|
|
|
72
|
-
& .kbq-icon.kbq-empty {
|
|
67
|
+
& .kbq-icon.kbq-empty:not(.kbq-tree-node-toggle .kbq-icon) {
|
|
73
68
|
color: var(--kbq-states-icon-disabled);
|
|
74
69
|
}
|
|
75
70
|
}
|
|
@@ -91,7 +86,7 @@
|
|
|
91
86
|
@include kbq-typography-level-to-styles-css-variables(typography, text-normal);
|
|
92
87
|
}
|
|
93
88
|
|
|
94
|
-
.kbq-
|
|
89
|
+
.kbq-option-caption {
|
|
95
90
|
@include kbq-typography-level-to-styles-css-variables(typography, text-compact);
|
|
96
91
|
}
|
|
97
92
|
}
|
package/tree/index.d.ts
CHANGED
|
@@ -605,9 +605,15 @@ declare class KbqTreeSelection extends KbqTreeBase<any> implements ControlValueA
|
|
|
605
605
|
private elementRef;
|
|
606
606
|
private scheduler;
|
|
607
607
|
private clipboard;
|
|
608
|
+
private readonly platform;
|
|
608
609
|
protected readonly focusMonitor: FocusMonitor;
|
|
609
|
-
/**
|
|
610
|
-
|
|
610
|
+
/**
|
|
611
|
+
* Whether this tree-selection is rendered inside a select panel (enables option
|
|
612
|
+
* hover-to-focus). Defaults to detecting a wrapping `KbqFormField`, and is forced to `true`
|
|
613
|
+
* by the host `KbqTreeSelect` so hover works even when the tree-select has no form-field
|
|
614
|
+
* wrapper (e.g. the filter-bar pipes render the tree-select bare).
|
|
615
|
+
*/
|
|
616
|
+
inSelect: boolean;
|
|
611
617
|
renderedOptions: QueryList<KbqTreeOption>;
|
|
612
618
|
keyManager: FocusKeyManager<KbqTreeOption>;
|
|
613
619
|
selectionModel: SelectionModel<SelectionModelOption>;
|
|
@@ -633,6 +639,8 @@ declare class KbqTreeSelection extends KbqTreeBase<any> implements ControlValueA
|
|
|
633
639
|
get noUnselectLast(): boolean;
|
|
634
640
|
set noUnselectLast(value: boolean);
|
|
635
641
|
private _noUnselectLast;
|
|
642
|
+
/** When `true`, a repeated Ctrl/Cmd+A deselects all options. Off by default (Ctrl+A only selects). */
|
|
643
|
+
readonly selectAllToggle: i0.InputSignalWithTransform<boolean, unknown>;
|
|
636
644
|
get disabled(): boolean;
|
|
637
645
|
set disabled(rawValue: boolean);
|
|
638
646
|
private _disabled;
|
|
@@ -660,7 +668,14 @@ declare class KbqTreeSelection extends KbqTreeBase<any> implements ControlValueA
|
|
|
660
668
|
renderNodeChanges(data: KbqTreeOption[], dataDiffer?: IterableDiffer<KbqTreeOption>, viewContainer?: ViewContainerRef, parentData?: KbqTreeOption): void;
|
|
661
669
|
emitNavigationEvent(option: KbqTreeOption): void;
|
|
662
670
|
emitChangeEvent(option: KbqTreeOption): void;
|
|
663
|
-
|
|
671
|
+
/**
|
|
672
|
+
* Function for handling the combination Ctrl + A (select all). By default, the internal handler is used,
|
|
673
|
+
* which toggles the selection of all non-disabled, selectable options.
|
|
674
|
+
*/
|
|
675
|
+
get selectAllHandler(): (event: KeyboardEvent, tree: KbqTreeSelection) => void;
|
|
676
|
+
set selectAllHandler(fn: (event: KeyboardEvent, tree: KbqTreeSelection) => void);
|
|
677
|
+
private _selectAllHandler;
|
|
678
|
+
selectAllOptions(allowDeselect?: boolean): void;
|
|
664
679
|
copyActiveOption(event: KeyboardEvent): void;
|
|
665
680
|
writeValue(value: any): void;
|
|
666
681
|
/** `View -> model callback called when value changes` */
|
|
@@ -705,7 +720,7 @@ declare class KbqTreeSelection extends KbqTreeBase<any> implements ControlValueA
|
|
|
705
720
|
private canDeselectLast;
|
|
706
721
|
private isFocusReceivedFromNestedOption;
|
|
707
722
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqTreeSelection, never>;
|
|
708
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<KbqTreeSelection, "kbq-tree-selection", ["kbqTreeSelection"], { "treeControl": { "alias": "treeControl"; "required": false; }; "autoSelect": { "alias": "autoSelect"; "required": false; }; "noUnselectLast": { "alias": "noUnselectLast"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "navigationChange": "navigationChange"; "selectionChange": "selectionChange"; "onSelectAll": "onSelectAll"; "onCopy": "onCopy"; }, ["unorderedOptions"], never, true, never>;
|
|
723
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<KbqTreeSelection, "kbq-tree-selection", ["kbqTreeSelection"], { "treeControl": { "alias": "treeControl"; "required": false; }; "autoSelect": { "alias": "autoSelect"; "required": false; }; "noUnselectLast": { "alias": "noUnselectLast"; "required": false; }; "selectAllToggle": { "alias": "selectAllToggle"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "selectAllHandler": { "alias": "selectAllHandler"; "required": false; }; }, { "navigationChange": "navigationChange"; "selectionChange": "selectionChange"; "onSelectAll": "onSelectAll"; "onCopy": "onCopy"; }, ["unorderedOptions"], never, true, never>;
|
|
709
724
|
}
|
|
710
725
|
|
|
711
726
|
declare class KbqTreeModule {
|
package/tree/toggle.scss
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
flex-shrink: 0;
|
|
10
10
|
|
|
11
11
|
height: 100%;
|
|
12
|
+
|
|
12
13
|
// FIXME: default token doesn't exist
|
|
13
14
|
padding-left: var(--kbq-tree-size-toggle-padding);
|
|
14
15
|
padding-right: var(--kbq-tree-size-toggle-padding);
|
|
@@ -27,6 +28,10 @@
|
|
|
27
28
|
|
|
28
29
|
&[disabled] {
|
|
29
30
|
cursor: default;
|
|
31
|
+
|
|
32
|
+
& .kbq-icon {
|
|
33
|
+
color: var(--kbq-tree-states-disabled-tree-toggle-color);
|
|
34
|
+
}
|
|
30
35
|
}
|
|
31
36
|
}
|
|
32
37
|
|
package/tree/tree-option.scss
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
&.kbq-control_has-validate-directive.ng-invalid,
|
|
10
10
|
// Invalid by control `ErrorStateMatcher`
|
|
11
11
|
&.kbq-invalid {
|
|
12
|
-
color: var(--kbq-error
|
|
12
|
+
color: var(--kbq-foreground-error);
|
|
13
13
|
|
|
14
14
|
.kbq-select__placeholder {
|
|
15
15
|
color: var(--kbq-form-field-states-error-placeholder);
|
package/tree-select/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import * as i1 from '@angular/cdk/overlay';
|
|
|
6
6
|
import { ConnectedPosition, CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
|
|
7
7
|
import { ControlValueAccessor, NgForm, FormGroupDirective, NgControl } from '@angular/forms';
|
|
8
8
|
import * as i5 from '@koobiq/components/core';
|
|
9
|
-
import { KbqAbstractSelect, CanUpdateErrorState, ErrorStateMatcher, KbqSelectTrigger, KbqSelectMatcher, KbqSelectSearch, KbqComponentColors } from '@koobiq/components/core';
|
|
9
|
+
import { KbqAbstractSelect, CanUpdateErrorState, ErrorStateMatcher, KbqSelectTrigger, KbqSelectMatcher, KbqSelectSearch, KbqSelectAllEvent, KbqComponentColors } from '@koobiq/components/core';
|
|
10
10
|
import * as i9 from '@koobiq/components/form-field';
|
|
11
11
|
import { KbqFormFieldControl, KbqCleaner } from '@koobiq/components/form-field';
|
|
12
12
|
import * as i4 from '@koobiq/components/tags';
|
|
@@ -151,6 +151,11 @@ declare class KbqTreeSelect extends KbqAbstractSelect implements AfterContentIni
|
|
|
151
151
|
readonly closedStream: Observable<void>;
|
|
152
152
|
/** Event emitted when the selected value has been changed by the user. */
|
|
153
153
|
readonly selectionChange: _angular_core.OutputEmitterRef<KbqTreeSelectChange>;
|
|
154
|
+
/**
|
|
155
|
+
* Event emitted when all options are selected or deselected via the Ctrl/Cmd + A shortcut.
|
|
156
|
+
* Not emitted when a custom `selectAllHandler` is supplied — the handler owns the behaviour then.
|
|
157
|
+
*/
|
|
158
|
+
readonly onSelectAll: _angular_core.OutputEmitterRef<KbqSelectAllEvent<KbqTreeOption, KbqTreeSelect>>;
|
|
154
159
|
/**
|
|
155
160
|
* Event that emits whenever the raw value of the select changes. This is here primarily
|
|
156
161
|
* to facilitate the two-way binding for the `value` input.
|
|
@@ -189,6 +194,8 @@ declare class KbqTreeSelect extends KbqAbstractSelect implements AfterContentIni
|
|
|
189
194
|
get autoSelect(): boolean;
|
|
190
195
|
set autoSelect(value: boolean);
|
|
191
196
|
private _autoSelect;
|
|
197
|
+
/** When `true`, a repeated Ctrl/Cmd+A deselects all options. Off by default (Ctrl+A only selects). */
|
|
198
|
+
readonly selectAllToggle: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
192
199
|
get value(): any;
|
|
193
200
|
get id(): string;
|
|
194
201
|
set id(value: string);
|
|
@@ -362,7 +369,7 @@ declare class KbqTreeSelect extends KbqAbstractSelect implements AfterContentIni
|
|
|
362
369
|
private scrollActiveOptionIntoView;
|
|
363
370
|
private subscribeOnSearchChanges;
|
|
364
371
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KbqTreeSelect, never>;
|
|
365
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqTreeSelect, "kbq-tree-select", ["kbqTreeSelect"], { "hiddenItemsText": { "alias": "hiddenItemsText"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "backdropClass": { "alias": "backdropClass"; "required": false; "isSignal": true; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "sortComparator": { "alias": "sortComparator"; "required": false; "isSignal": true; }; "multiline": { "alias": "multiline"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "autoSelect": { "alias": "autoSelect"; "required": false; }; "id": { "alias": "id"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "selectAllHandler": { "alias": "selectAllHandler"; "required": false; }; "panelMinWidth": { "alias": "panelMinWidth"; "required": false; "isSignal": true; }; "panelWidth": { "alias": "panelWidth"; "required": false; "isSignal": true; }; "searchMinOptionsThreshold": { "alias": "searchMinOptionsThreshold"; "required": false; }; "hiddenItemsTextFormatter": { "alias": "hiddenItemsTextFormatter"; "required": false; }; }, { "openedChange": "openedChange"; "openedStream": "opened"; "closedStream": "closed"; "selectionChange": "selectionChange"; "valueChange": "valueChange"; }, ["cleaner", "customTrigger", "customMatcher", "customTagTemplateRef", "tree", "search"], ["kbq-select-matcher, [kbq-select-matcher]", "kbq-select-trigger, [kbq-select-trigger]", "kbq-cleaner", "[kbqSelectSearch]", "[kbq-select-search-empty-result]", "kbq-tree-selection", "kbq-select-footer,[kbq-tree-select-footer]"], true, never>;
|
|
372
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KbqTreeSelect, "kbq-tree-select", ["kbqTreeSelect"], { "hiddenItemsText": { "alias": "hiddenItemsText"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; "isSignal": true; }; "backdropClass": { "alias": "backdropClass"; "required": false; "isSignal": true; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "sortComparator": { "alias": "sortComparator"; "required": false; "isSignal": true; }; "multiline": { "alias": "multiline"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "autoSelect": { "alias": "autoSelect"; "required": false; }; "selectAllToggle": { "alias": "selectAllToggle"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; }; "hasBackdrop": { "alias": "hasBackdrop"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "selectAllHandler": { "alias": "selectAllHandler"; "required": false; }; "panelMinWidth": { "alias": "panelMinWidth"; "required": false; "isSignal": true; }; "panelWidth": { "alias": "panelWidth"; "required": false; "isSignal": true; }; "searchMinOptionsThreshold": { "alias": "searchMinOptionsThreshold"; "required": false; }; "hiddenItemsTextFormatter": { "alias": "hiddenItemsTextFormatter"; "required": false; }; }, { "openedChange": "openedChange"; "openedStream": "opened"; "closedStream": "closed"; "selectionChange": "selectionChange"; "onSelectAll": "onSelectAll"; "valueChange": "valueChange"; }, ["cleaner", "customTrigger", "customMatcher", "customTagTemplateRef", "tree", "search"], ["kbq-select-matcher, [kbq-select-matcher]", "kbq-select-trigger, [kbq-select-trigger]", "kbq-cleaner", "[kbqSelectSearch]", "[kbq-select-search-empty-result]", "kbq-tree-selection", "kbq-select-footer,[kbq-tree-select-footer]"], true, never>;
|
|
366
373
|
static ngAcceptInputType_multiple: unknown;
|
|
367
374
|
static ngAcceptInputType_disabled: unknown;
|
|
368
375
|
}
|
package/username/index.d.ts
CHANGED
|
@@ -165,6 +165,24 @@ declare class KbqUsernameCustomPipe<T = unknown> implements PipeTransform {
|
|
|
165
165
|
static ɵpipe: i0.ɵɵPipeDeclaration<KbqUsernameCustomPipe<any>, "kbqUsernameCustom", true>;
|
|
166
166
|
static ɵprov: i0.ɵɵInjectableDeclaration<KbqUsernameCustomPipe<any>>;
|
|
167
167
|
}
|
|
168
|
+
interface KbqUsernameTextOptions {
|
|
169
|
+
/** Formats the login segment. Defaults to identity. */
|
|
170
|
+
formatLogin?: (login: string) => string;
|
|
171
|
+
/**
|
|
172
|
+
* Formats the site segment.
|
|
173
|
+
* Defaults to wrapping in parentheses, matching kbq-username display.
|
|
174
|
+
*/
|
|
175
|
+
formatSite?: (site: string) => string;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Builds a full username string from a pre-formatted name plus optional login and site,
|
|
179
|
+
* mirroring the text rendered by `kbq-username`.
|
|
180
|
+
*
|
|
181
|
+
* Provide custom `formatLogin` / `formatSite` to tailor the output.
|
|
182
|
+
*/
|
|
183
|
+
declare function kbqBuildUsernameText(data: {
|
|
184
|
+
name: string;
|
|
185
|
+
} & Partial<Pick<KbqUserInfo, 'login' | 'site'>>, options?: KbqUsernameTextOptions): string;
|
|
168
186
|
|
|
169
187
|
declare class KbqUsernameModule {
|
|
170
188
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqUsernameModule, never>;
|
|
@@ -172,5 +190,5 @@ declare class KbqUsernameModule {
|
|
|
172
190
|
static ɵinj: i0.ɵɵInjectorDeclaration<KbqUsernameModule>;
|
|
173
191
|
}
|
|
174
192
|
|
|
175
|
-
export { KBQ_PROFILE_MAPPING, KbqMappingMissingError, KbqUsername, KbqUsernameCustomPipe, KbqUsernameCustomView, KbqUsernameFormatKey, KbqUsernameModule, KbqUsernamePipe, KbqUsernamePrimary, KbqUsernameSecondary, KbqUsernameSecondaryHint, kbqDefaultFullNameFormat, kbqDefaultFullNameFormatCustom };
|
|
176
|
-
export type { KbqFormatKeyToProfileMapping, KbqFormatKeyToProfileMappingExtended, KbqUserInfo, KbqUsernameMode, KbqUsernameStyle };
|
|
193
|
+
export { KBQ_PROFILE_MAPPING, KbqMappingMissingError, KbqUsername, KbqUsernameCustomPipe, KbqUsernameCustomView, KbqUsernameFormatKey, KbqUsernameModule, KbqUsernamePipe, KbqUsernamePrimary, KbqUsernameSecondary, KbqUsernameSecondaryHint, kbqBuildUsernameText, kbqDefaultFullNameFormat, kbqDefaultFullNameFormatCustom };
|
|
194
|
+
export type { KbqFormatKeyToProfileMapping, KbqFormatKeyToProfileMappingExtended, KbqUserInfo, KbqUsernameMode, KbqUsernameStyle, KbqUsernameTextOptions };
|