@koobiq/components 20.0.0 → 20.2.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-theme.scss +1 -1
- package/accordion/accordion-tokens.scss +1 -0
- package/accordion/{accordion-trigger.component.scss → accordion-trigger.scss} +4 -18
- package/accordion/{accordion.component.scss → accordion.scss} +12 -5
- package/accordion/index.d.ts +215 -119
- package/actions-panel/index.d.ts +1 -0
- package/alert/_alert-theme.scss +14 -4
- package/alert/alert-tokens.scss +4 -4
- package/alert/alert.component.scss +24 -13
- package/alert/index.d.ts +63 -29
- package/app-switcher/app-switcher-dropdown-app.scss +2 -0
- package/autocomplete/autocomplete.scss +2 -1
- package/autocomplete/index.d.ts +35 -29
- package/badge/index.d.ts +2 -3
- 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 +4 -2
- package/core/index.d.ts +515 -21
- package/core/styles/_core.scss +2 -0
- package/core/styles/common/_animation.scss +35 -24
- package/core/styles/common/_connected-overlay.scss +36 -0
- package/core/styles/common/_select.scss +7 -2
- 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-item.scss +16 -0
- package/dropdown/dropdown-tokens.scss +2 -1
- package/dropdown/dropdown.scss +11 -2
- package/dropdown/index.d.ts +73 -6
- package/fesm2022/koobiq-components-accordion.mjs +406 -303
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +15 -6
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
- package/fesm2022/koobiq-components-alert.mjs +88 -48
- package/fesm2022/koobiq-components-alert.mjs.map +1 -1
- package/fesm2022/koobiq-components-app-switcher.mjs +7 -7
- package/fesm2022/koobiq-components-app-switcher.mjs.map +1 -1
- package/fesm2022/koobiq-components-autocomplete.mjs +37 -23
- package/fesm2022/koobiq-components-autocomplete.mjs.map +1 -1
- package/fesm2022/koobiq-components-badge.mjs +5 -4
- package/fesm2022/koobiq-components-badge.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 +9 -0
- package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +5 -1
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +544 -113
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +13 -10
- 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 +105 -31
- 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 +1169 -782
- 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 +6 -6
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +16 -7
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-inline-edit.mjs +30 -7
- 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 +123 -27
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-notification-center.mjs +193 -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 +9 -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-search-expandable.mjs +43 -8
- package/fesm2022/koobiq-components-search-expandable.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +72 -59
- 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 +5 -12
- 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 +42 -18
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-tags.mjs +8 -1
- 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-timepicker.mjs +3 -4
- package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +9 -5
- 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 +168 -8
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +79 -38
- 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 +82 -0
- package/filter-bar/filter-bar-tokens.scss +9 -0
- package/filter-bar/filter-bar.scss +10 -4
- package/filter-bar/filter-refresher.scss +1 -1
- package/filter-bar/filters.scss +25 -20
- package/filter-bar/index.d.ts +764 -336
- package/filter-bar/pipes/base-pipe.scss +12 -44
- package/filter-bar/pipes/pipe-date.scss +20 -14
- package/filter-bar/pipes/pipe-input.scss +10 -0
- 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-button.scss +3 -1
- package/icon/icon-item-tokens.scss +1 -1
- package/icon/index.d.ts +15 -2
- 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/_navbar-item_vertical.scss +7 -5
- package/navbar/index.d.ts +39 -4
- package/navbar/navbar-brand.scss +17 -7
- package/navbar/navbar-item.scss +9 -0
- package/notification-center/_notification-center-theme.scss +2 -1
- package/notification-center/index.d.ts +89 -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 +15 -0
- package/schematics/migrations/alert-signals/README.md +64 -0
- package/schematics/migrations/alert-signals/data.js +70 -0
- package/schematics/migrations/alert-signals/index.js +350 -0
- package/schematics/migrations/alert-signals/schema.json +20 -0
- package/schematics/migrations/autocomplete-panel-width-auto/README.md +68 -0
- package/schematics/migrations/autocomplete-panel-width-auto/index.js +70 -0
- package/schematics/migrations/autocomplete-panel-width-auto/schema.json +15 -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 +15 -0
- package/schematics/ng-add/index.js +1 -1
- package/schematics/utils/angular-parsing.js +11 -2
- package/search-expandable/index.d.ts +3 -0
- package/select/index.d.ts +59 -24
- 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/_tabs-common.scss +60 -31
- package/tabs/_tabs-theme.scss +12 -0
- package/tabs/index.d.ts +4 -2
- package/tabs/tab-header.scss +15 -0
- package/tabs/tab-nav-bar.scss +4 -0
- package/tabs/tabs-tokens.scss +2 -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 +2 -3
- package/title/index.d.ts +92 -2
- package/tooltip/index.d.ts +124 -7
- 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 +53 -22
- package/username/index.d.ts +20 -2
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
|
@@ -1,10 +1,42 @@
|
|
|
1
|
-
import * as rxjs from 'rxjs';
|
|
2
1
|
import * as i0 from '@angular/core';
|
|
3
2
|
import { InjectionToken, ElementRef, AfterViewInit, OnChanges, OnDestroy, Renderer2, WritableSignal, TemplateRef, EventEmitter, SimpleChanges, Type } from '@angular/core';
|
|
3
|
+
import * as rxjs from 'rxjs';
|
|
4
4
|
import { FocusMonitor } from '@angular/cdk/a11y';
|
|
5
5
|
import { ScrollStrategy, Overlay, OverlayConfig } from '@angular/cdk/overlay';
|
|
6
6
|
import { KbqPopUp, KbqPopUpTrigger, KbqParentPopup, KbqPopUpPlacementValues, KbqComponentColors } from '@koobiq/components/core';
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* Default value of the `kbqTooltipSingleInstance` input. Provide `false` at the application level to
|
|
10
|
+
* globally disable the "only one tooltip is visible at a time" behavior.
|
|
11
|
+
*/
|
|
12
|
+
declare const KBQ_TOOLTIP_SINGLE_INSTANCE_DEFAULT: InjectionToken<boolean>;
|
|
13
|
+
/**
|
|
14
|
+
* Contract of a tooltip taking part in the "only one tooltip is visible at a time" group.
|
|
15
|
+
* @docs-private
|
|
16
|
+
*/
|
|
17
|
+
interface KbqExclusiveTooltip {
|
|
18
|
+
/** Hides the tooltip because another one has taken its place. */
|
|
19
|
+
hideAsInactive(): void;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Keeps track of the single tooltip that is currently visible, so that showing a new one hides the
|
|
23
|
+
* previous. Holds the *trigger*, not the overlay component — the latter is re-created on every show.
|
|
24
|
+
*/
|
|
25
|
+
declare class KbqTooltipRegistry {
|
|
26
|
+
/** Tooltip that currently owns the screen, or `null` when nothing is visible. */
|
|
27
|
+
private visibleTooltip;
|
|
28
|
+
/** Marks the tooltip as the only visible one, hiding the previously visible tooltip. */
|
|
29
|
+
setVisible(tooltip: KbqExclusiveTooltip): void;
|
|
30
|
+
/**
|
|
31
|
+
* Clears the registry, but only when the given tooltip is still the registered one. The guard
|
|
32
|
+
* matters because hiding the previous tooltip is asynchronous: its `visibleChange(false)` arrives
|
|
33
|
+
* after the new tooltip has already been registered, and must not wipe that newer entry.
|
|
34
|
+
*/
|
|
35
|
+
clearVisible(tooltip: KbqExclusiveTooltip): void;
|
|
36
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KbqTooltipRegistry, never>;
|
|
37
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<KbqTooltipRegistry>;
|
|
38
|
+
}
|
|
39
|
+
|
|
8
40
|
declare enum TooltipModifier {
|
|
9
41
|
Default = "default",
|
|
10
42
|
Warning = "warning",
|
|
@@ -43,9 +75,19 @@ declare const KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER: {
|
|
|
43
75
|
deps: (typeof Overlay)[];
|
|
44
76
|
useFactory: typeof kbqTooltipScrollStrategyFactory;
|
|
45
77
|
};
|
|
46
|
-
|
|
78
|
+
/**
|
|
79
|
+
* Trigger directive that shows a `KbqTooltipComponent` for its host element. Extends `KbqPopUpTrigger` with
|
|
80
|
+
* tooltip-specific inputs (content, placement, color, arrow, enter/leave delays, modifier and header) and
|
|
81
|
+
* behavior such as opening on keyboard focus only and positioning relative to the mouse cursor.
|
|
82
|
+
*/
|
|
83
|
+
declare class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipComponent> implements AfterViewInit, OnChanges, OnDestroy, KbqExclusiveTooltip {
|
|
84
|
+
/** Registry holding the single tooltip that is currently visible. */
|
|
85
|
+
private readonly tooltipRegistry;
|
|
86
|
+
/** @docs-private */
|
|
47
87
|
protected scrollStrategy: () => ScrollStrategy;
|
|
88
|
+
/** @docs-private */
|
|
48
89
|
protected parentPopup: KbqParentPopup | null;
|
|
90
|
+
/** @docs-private */
|
|
49
91
|
protected focusMonitor: FocusMonitor;
|
|
50
92
|
/** @docs-private */
|
|
51
93
|
protected renderer: Renderer2;
|
|
@@ -64,46 +106,78 @@ declare class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipComponent> imp
|
|
|
64
106
|
* Defaults to `true`.
|
|
65
107
|
*/
|
|
66
108
|
readonly ignoreTooltipPointerEvents: i0.InputSignal<boolean>;
|
|
109
|
+
/**
|
|
110
|
+
* Whether the tooltip takes part in the "only one tooltip is visible at a time" group: showing it
|
|
111
|
+
* hides the previously visible tooltip, and it is hidden when another tooltip is shown.
|
|
112
|
+
*
|
|
113
|
+
* Defaults to `true`; the default can be changed application-wide with the
|
|
114
|
+
* `KBQ_TOOLTIP_SINGLE_INSTANCE_DEFAULT` token.
|
|
115
|
+
*
|
|
116
|
+
* Tooltips without an interactive `kbqTrigger` (`manual`, `none`, …) never take part in the group,
|
|
117
|
+
* regardless of this input — they are shown imperatively and are expected to stay pinned.
|
|
118
|
+
*/
|
|
119
|
+
readonly singleInstance: i0.InputSignalWithTransform<boolean, unknown>;
|
|
67
120
|
/**
|
|
68
121
|
* Changes hiding behavior. By default, tooltip is hidden on mouseleave from trigger.
|
|
69
122
|
* Setting hideWithTimeout to true will delay tooltip hiding and will not hide when the mouse moves from trigger
|
|
70
123
|
* to tooltip.
|
|
71
124
|
*/
|
|
72
125
|
hideWithTimeout: boolean;
|
|
126
|
+
/** Input (`kbqVisible`) that programmatically shows or hides the tooltip; reflects the current `visible` state. */
|
|
73
127
|
get tooltipVisible(): boolean;
|
|
74
128
|
set tooltipVisible(value: boolean);
|
|
129
|
+
/** Input (`kbqPlacement`) that sets the tooltip placement relative to its trigger; reflects the current `placement`. */
|
|
75
130
|
get tooltipPlacement(): KbqPopUpPlacementValues;
|
|
131
|
+
set tooltipPlacement(value: KbqPopUpPlacementValues);
|
|
76
132
|
/**
|
|
77
133
|
* Positions the tooltip relative to the mouse cursor. Only available for top and bottom kbqPlacement.
|
|
78
134
|
* Does not work with kbqPlacementPriority.
|
|
79
135
|
*/
|
|
80
136
|
relativeToPointer: boolean;
|
|
81
|
-
|
|
137
|
+
/** Input (`kbqPlacementPriority`) that sets the ordered fallback placements; reflects the current `placementPriority`. */
|
|
82
138
|
get tooltipPlacementPriority(): string | string[] | null;
|
|
83
139
|
set tooltipPlacementPriority(value: string | string[] | null);
|
|
140
|
+
/** Input (`kbqTooltip`) with the tooltip content — a string or a template. Updating it refreshes an open tooltip. */
|
|
84
141
|
get content(): string | TemplateRef<any>;
|
|
85
142
|
set content(content: string | TemplateRef<any>);
|
|
143
|
+
/** Input (`kbqTooltipDisabled`) controlling whether the tooltip is disabled; setting it to `true` hides it. */
|
|
86
144
|
get disabled(): boolean;
|
|
87
145
|
set disabled(value: boolean);
|
|
146
|
+
/** Input (`kbqEnterDelay`) — delay in milliseconds before the tooltip is shown. Defaults to `400`. */
|
|
88
147
|
enterDelay: number;
|
|
148
|
+
/** Input (`kbqLeaveDelay`) — delay in milliseconds before the tooltip is hidden. Defaults to `0`. */
|
|
89
149
|
leaveDelay: number;
|
|
150
|
+
/** Input (`kbqTrigger`) with the comma-separated trigger events. An empty value resets to hover + focus and rebinds listeners. */
|
|
90
151
|
get trigger(): string;
|
|
91
152
|
set trigger(value: string);
|
|
153
|
+
/** Backing field for `trigger`; defaults to hover + focus. */
|
|
92
154
|
protected _trigger: string;
|
|
155
|
+
/** Input (`kbqTooltipClass`) with an extra CSS class applied to the tooltip; updating it refreshes the class map. */
|
|
93
156
|
get customClass(): string;
|
|
94
157
|
set customClass(value: string);
|
|
158
|
+
/** Input (`kbqTooltipContext`) with the context object passed to a template tooltip; updating it refreshes the open tooltip. */
|
|
95
159
|
get context(): any;
|
|
96
160
|
set context(ctx: any);
|
|
161
|
+
/** Backing field for `context`. */
|
|
97
162
|
private _context;
|
|
163
|
+
/** Input (`kbqTooltipColor`) with the tooltip color theme; the getter returns the `kbq-`-prefixed CSS class. */
|
|
98
164
|
get color(): string;
|
|
99
165
|
set color(value: KbqComponentColors | string);
|
|
166
|
+
/** Backing field for `color`; defaults to `KbqComponentColors.Contrast`. */
|
|
100
167
|
private _color;
|
|
168
|
+
/** Input (`kbqTooltipArrow`) — whether to render the tooltip's arrow/pointer. Defaults to `false`. */
|
|
101
169
|
arrow: boolean;
|
|
170
|
+
/** Input (`kbqTooltipOffset`) — distance in pixels between the tooltip and its trigger; `null` uses the default. */
|
|
102
171
|
offset: number | null;
|
|
172
|
+
/** Output (`kbqPlacementChange`) that emits the new placement whenever the tooltip repositions. */
|
|
103
173
|
readonly placementChange: EventEmitter<any>;
|
|
174
|
+
/** Output (`kbqVisibleChange`) that emits when the tooltip's visibility changes. */
|
|
104
175
|
readonly visibleChange: EventEmitter<boolean>;
|
|
176
|
+
/** Whether the configured trigger list includes the `click` trigger. */
|
|
105
177
|
private get hasClickInTrigger();
|
|
178
|
+
/** @docs-private */
|
|
106
179
|
protected originSelector: string;
|
|
180
|
+
/** @docs-private */
|
|
107
181
|
protected overlayConfig: OverlayConfig;
|
|
108
182
|
/**
|
|
109
183
|
* Visual variant of the tooltip. Accepts `'default'` | `'warning'` | `'extended'`.
|
|
@@ -126,11 +200,48 @@ declare class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipComponent> imp
|
|
|
126
200
|
* the next show/hide cycle.
|
|
127
201
|
*/
|
|
128
202
|
ngOnChanges(changes: SimpleChanges): void;
|
|
203
|
+
/**
|
|
204
|
+
* Whether this tooltip takes part in the "only one tooltip is visible at a time" group.
|
|
205
|
+
*
|
|
206
|
+
* Read through the `trigger` getter on purpose: `KbqTitleDirective` always reports `hover`, so title
|
|
207
|
+
* tooltips participate, while `kbqValidationTooltip` consumers (datepicker, timepicker, inline-edit)
|
|
208
|
+
* assign `trigger = 'manual'` and therefore stay out of the group.
|
|
209
|
+
*/
|
|
210
|
+
private get participatesInSingleInstance();
|
|
211
|
+
/**
|
|
212
|
+
* Sets up an effect that mirrors a `forDisabledComponent`'s disabled signal: when that component is disabled it
|
|
213
|
+
* makes the host focusable (so the tooltip can still be triggered) and enables the tooltip, otherwise disables it.
|
|
214
|
+
*
|
|
215
|
+
* Also joins the "only one tooltip is visible at a time" group. Both the subscription and the teardown live
|
|
216
|
+
* here rather than in `ngAfterViewInit`/`ngOnDestroy` because several subclasses override those hooks:
|
|
217
|
+
* `KbqTitleDirective` and `KbqEllipsisCenterDirective` skip `super.ngAfterViewInit()`, and `KbqPasswordToggle`
|
|
218
|
+
* skips `super` in both hooks entirely. `destroyRef` additionally covers a trigger destroyed while its
|
|
219
|
+
* tooltip is still visible — that path disposes the overlay without emitting `visibleChange(false)`.
|
|
220
|
+
*/
|
|
129
221
|
constructor();
|
|
222
|
+
/**
|
|
223
|
+
* Hides the tooltip when a parent pop-up closes, starts focus monitoring on the host, and—when
|
|
224
|
+
* `ignoreTooltipPointerEvents` is set—adds the panel class that makes the tooltip ignore pointer events.
|
|
225
|
+
*/
|
|
130
226
|
ngAfterViewInit(): void;
|
|
227
|
+
/** Stops focus monitoring on the host element and runs the base-class teardown. */
|
|
131
228
|
ngOnDestroy(): void;
|
|
229
|
+
/**
|
|
230
|
+
* Shows the tooltip after `delay` ms. Suppresses showing on a focus trigger that did not originate from
|
|
231
|
+
* the keyboard, and applies cursor-relative positioning when `relativeToPointer` is enabled.
|
|
232
|
+
*/
|
|
132
233
|
show(delay?: number): void;
|
|
133
|
-
/**
|
|
234
|
+
/**
|
|
235
|
+
* Hides the tooltip because another tooltip became visible.
|
|
236
|
+
*
|
|
237
|
+
* Goes straight to the pop-up instead of `hide()`: `hide()` silently no-ops when the last recorded
|
|
238
|
+
* `triggerName` is `mouseleave` and the pop-up itself is hovered. Hiding through the instance keeps
|
|
239
|
+
* `visibleChange(false)` firing, so `isOpen`, `kbqVisibleChange` and the `kbqVisible` input stay in sync.
|
|
240
|
+
* Does nothing when the tooltip is already detached or when closing is prevented.
|
|
241
|
+
* @docs-private */
|
|
242
|
+
hideAsInactive(): void;
|
|
243
|
+
/** method allows to show the tooltip relative to the given mouse event.
|
|
244
|
+
* @docs-private */
|
|
134
245
|
showForMouseEvent(event: MouseEvent): void;
|
|
135
246
|
/**
|
|
136
247
|
* method allows to show the tooltip relative to the element
|
|
@@ -139,15 +250,20 @@ declare class KbqTooltipTrigger extends KbqPopUpTrigger<KbqTooltipComponent> imp
|
|
|
139
250
|
* For example:
|
|
140
251
|
* const tooltip = new KbqTooltipTrigger();
|
|
141
252
|
* tooltip.showForElement(element);
|
|
142
|
-
*/
|
|
253
|
+
* @docs-private */
|
|
143
254
|
showForElement(element: HTMLElement): void;
|
|
255
|
+
/** @docs-private */
|
|
144
256
|
updateData(): void;
|
|
257
|
+
/** @docs-private */
|
|
145
258
|
closingActions(): rxjs.Observable<void | MouseEvent>;
|
|
259
|
+
/** @docs-private */
|
|
146
260
|
getOverlayHandleComponentType(): Type<KbqTooltipComponent>;
|
|
261
|
+
/** @docs-private */
|
|
147
262
|
updateClassMap(newPlacement?: string): void;
|
|
263
|
+
/** @docs-private */
|
|
148
264
|
protected applyRelativeToPointer(): void;
|
|
149
265
|
static ɵfac: i0.ɵɵFactoryDeclaration<KbqTooltipTrigger, never>;
|
|
150
|
-
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>;
|
|
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>;
|
|
151
267
|
static ngAcceptInputType_hideWithTimeout: unknown;
|
|
152
268
|
static ngAcceptInputType_relativeToPointer: unknown;
|
|
153
269
|
static ngAcceptInputType_arrow: unknown;
|
|
@@ -160,4 +276,5 @@ declare class KbqToolTipModule {
|
|
|
160
276
|
static ɵinj: i0.ɵɵInjectorDeclaration<KbqToolTipModule>;
|
|
161
277
|
}
|
|
162
278
|
|
|
163
|
-
export { KBQ_TOOLTIP_OPEN_TIME, KBQ_TOOLTIP_OPEN_TIME_PROVIDER, KBQ_TOOLTIP_SCROLL_STRATEGY, KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER, KbqToolTipModule, KbqTooltipComponent, KbqTooltipTrigger, MIN_TIME_FOR_DELAY, TooltipModifier, kbqTooltipScrollStrategyFactory };
|
|
279
|
+
export { KBQ_TOOLTIP_OPEN_TIME, KBQ_TOOLTIP_OPEN_TIME_PROVIDER, KBQ_TOOLTIP_SCROLL_STRATEGY, KBQ_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER, KBQ_TOOLTIP_SINGLE_INSTANCE_DEFAULT, KbqToolTipModule, KbqTooltipComponent, KbqTooltipRegistry, KbqTooltipTrigger, MIN_TIME_FOR_DELAY, TooltipModifier, kbqTooltipScrollStrategyFactory };
|
|
280
|
+
export type { KbqExclusiveTooltip };
|
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);
|